UML 2 Analyse et conception
Pré requis
- Connaitre le langage orienté objet
Objectifs de la formation
- Savoir utiliser le formalisme UML 2 pour le développement agile d'un système d'information
- Découvrir UML de façon concrète et pratique au travers des différentes étapes du projet de développement
- Maîtriser les bonnes pratiques de conception logicielle fondamentales
- Comprendre comment formaliser la conception dans un document lisible et rigoureux, à l'aide du formalisme UML
Public :
Les architectes logiciels, les concepteurs développeur, les Chef de projets et développeurs agiles
Contenu du cours
Introduction et prise en main du sujet
Processus de développement:
- Gestion de projet en cascade vs agile
- La place des activités de spécification et de conception
Conception Orientée Objet:
- Séparation des préoccupations et limitation des dépendances
- Introduction à UML
Prise en main de l'étude de cas:
- Comprendre les besoins généraux du client
Définir le système à réaliser
- S'approprier le métier: au travers de l'étude de cas, comprendre les processus métier (diagramme d'activité) et les informations du domaine (diagramme de classe)
- Spécifier les exigences – au travers de l'étude de cas, définir et formaliser dans un document lisible et rigoureux:
- Les exigences fonctionnelles: identifier les acteurs et les cas d'utilisation du système
- Les exigences non fonctionnelles à l'aide de l'approche FURPS
- Le détail des interfaces du système
- Prendre en main le plan de développement projet : objectifs et planification des différentes itérations/sprints de l'étude de cas
Concevoir le système logociel - les fondamentaux
- Définir la plateforme technique : définir l'architecture matérielle (diagramme de déploiement), choisir le framework logiciel
- Concevoir un code source répondant aux exigences, maintenable et évolutif
- Définir une architecture du code: le pattern en couches MVC, étendu au système entier Concevoir les attributs: attributs identifiants et dérivés association entre classes (diagramme de classe)
- Concevoir les traitements et la communication entre classes (diagramme de séquence) : utiliser les scénarios de cas d'utilisation – répondre aux exigences fonctionnelles, séparer les préoccupations selon MVC
- Affiner la structuration du code source : affiner la structuration en packages (diagramme de packages), factoriser du code avec la généralisation – du bon usage de l'héritage, faire communiquer les classes en limitant les dépendances: utilisation des interfaces et des singletons – pattern de communication requête/notification, gérer les états (diagramme d'états)
- Concevoir les composants déployables : définir les composants et leurs interfaces (diagramme de composant), définir le déploiement des composants (diagramme de déploiement)
Concevoir le système logiciel - affinements techniques
- Prendre en compte la persistance – itération/sprint 2
- Prendre en compte la distribution – itération/sprint 3
- Prendre en compte la technologie du Web – itération/sprint 4
Pour aller plus loin
- Compléments sur les processus itératifs/agiles
- Le processus TUP (Two Tracks Unified Process) et l'approche MDA (Model Driven Architecture)
- Mettre en place UML dans l'entreprise
