Conception avec UML

Conception
avec UML
(basé sur
Enterprise Java with UML)
Buts
La conception consiste à réaliser le logiciel
modélisé en analyse.
• l'analyse décrit "ce que l'on va construire"
• la conception décrit "comment on va le
construire"
PG / UML - Conception / v 1.4
Page 2
Inputs
PG / UML - Conception / v 1.4
Page 3
Rôles
Analyser
l’architecture
Définir le
Concevoir
Définir la
l’architecture concurrence déploiement
Architecte
Analyser les cas
d’utilisation
Concepteur
Concepteur Base
de données
PG / UML - Conception / v 1.4
Concevoir les
sous systèmes
Concevoir les
cas d’utilisation
Concevoir les
classes
Concevoir la
base de données
Page 4
Démarche
Développement incrémental centré sur les UCs
On sélectionne dans notre modèle d'analyse les
UCs les plus prioritaires / pertinents
Pour ces UCs :
- diagrammes de séquence
- diagrammes de classes (de conception)
PG / UML - Conception / v 1.4
Page 5
Classes de conception
Les classes d'analyse définies dans les UCs
vont devoir être "transformées" en classes de
conception en fonction des technologies
retenues dans l'architecture
PG / UML - Conception / v 1.4
Page 6
Objet <<entity>>
• Un simple POJO,
• Pourra être associé à des DTO (DataTransfert
Object ou ValueObject Design pattern)
• Peut devenir un EJB Entity Bean
(POJO avec annotations JPA)
PG / UML - Conception / v 1.4
Page 7
Objet <<lifecycle>>
•
•
•
•
DataAccessObject,
EJB Entity Bean,
Entity manager de JPA,
…
PG / UML - Conception / v 1.4
Page 8
Objet <<control>>
Fournit un service spécifique à
un objet <<boundary>> :
–
–
–
–
Simple Façade,
Business Delegate,
Servlet,
EJB Session bean, …
PG / UML - Conception / v 1.4
Page 9
Objet <<boundary>>
Le plus souvent objet d’interface
utilisateur (UI) …
(avec son controller!)
• Application web :
– Servlet, page jsp, page php, …
• Client riche :
– JDialog ou JFrame Swing, …
PG / UML - Conception / v 1.4
Page 10
Controller != <<control>>?
Controller = C du design pattern MVC
Développement web + MVC => MVC/Model 2:
- Model = POJO ou DTO
- Vue = page JSP (ou JSF, …)
- Controller = servlet (et Actions dans Struts)
- il doit déléguer les traitements métiers à la couche
Service (<<control>>)
- il sélectionne la Vue à afficher.
PG / UML - Conception / v 1.4
Page 11
MVC model 2
PG / UML - Conception / v 1.4
Page 12
Struts MVC
PG / UML - Conception / v 1.4
Page 13
JSF MVC
PG / UML - Conception / v 1.4
Page 14
Autres activités essentielles
• ajouter des classes techniques (classes
d'implémentation, ...)
• traduire les associations UML entre les classes
(en List, Vector, clés primaires, ...)
• utiliser certains des designs patterns les plus
courants (Singleton, Etat, DAO, DTO, ...)
PG / UML - Conception / v 1.4
Page 15
Contenu du document de conception
Pour chaque UC :
• Liste des objets (de conception) candidats
• Diagrammes de séquence
(modèle dynamique)
• Diagramme de classes
(modèle statique)
PG / UML - Conception / v 1.4
Page 16
YAPS UC2 : Diagramme de séquence
PG / UML - Conception / v 1.4
Page 17
YAPS UC2 : Diagramme de classes
PG / UML - Conception / v 1.4
Page 18
Autre exemple avec Struts
PG / UML - Conception / v 1.4
Page 19
Diagramme de séquence avec Struts
PG / UML - Conception / v 1.4
Page 20