développeurs développeurs

publicité
Page 1
UML2 pour les développeurs
21:07
Xavier Blanc
Maître de conférences à l’Université Pierre et Marie Curie (Paris 6), Xavier Blanc est responsable de l’enseignement des techniques de modélisation en 3e année de licence et en master d’informatique. Ses recherches portent
depuis 1998 sur l’ingénierie guidée par les modèles et il est le représentant du LIP6 (Laboratoire d’informatique
de l’Université Paris 6) à l’OMG. Il est également auteur de MDA en action, paru chez le même éditeur.
Isabelle Mounier
Maître de conférences à l’Université Pierre et Marie Curie, Isabelle Mounier enseigne principalement les techniques de développement d’applications en licence d’informatique. Ses activités de recherche ont d’abord porté
sur la vérification de propriétés temporelles de systèmes informatiques modélisés par des réseaux de Petri et
elle s’intéresse aujourd’hui aux aspects formels des langages de modélisation tels qu’UML.
Un cours d’initiation à UML conçu pour les développeurs et les étudiants en informatique
La plupart des livres sur UML s’adressent avant tout aux concepteurs et architectes logiciels, selon une démarche « tout-modèle »
dans laquelle la production de code est traitée comme une activité subalterne. Cette approche suscite évidemment des réticences
chez les développeurs et déconcerte les étudiants, dont la formation reste axée principalement sur la programmation et qui mesurent mal les enjeux du formalisme UML.
UML 2 pour les développeurs prend le contre-pied de ces approches classiques. L’ouvrage montre comment articuler harmonieusement modélisation et programmation, en insistant sur les gains de productivité que permettent ces allers-retours entre les
modèles UML et le code.
Chaque notion UML importante est introduite par un exemple et chaque chapitre se clôt par une série d’exercices corrigés (90
au total), qui permettront au lecteur de tester ses connaissances.
Pour illustrer concrètement les relations entre code et modèles, les auteurs font le choix du langage Java, les principes présentés étant naturellement transposables à d’autres langages.
Sur le site www.editions-eyrolles.com
• Dialoguez avec les auteurs
• Téléchargez les modèles et le code source des exemples du livre
782212 120295
Pourquoi modéliser • Diagrammes de classes • Reverse Engineering • Rétroconception et patrons de conception (design patterns)
• Génération de code • Diagrammes de séquence • Diagrammes de séquence de test • Plates-formes d’exécution • Diagrammes
de cas d’utilisation • Développement avec UML • Corrigés des exercices.
9
Au sommaire
16,90 €
Xavier Blanc
Isabelle Mounier
avec la contribution de Cédric Besse
UML2
UML2
pour
les
pour les
développeurs
développeurs
Cours avec exercices corrigés
Cours avec exercices corrigés
X. Blanc
I. Mounier
11/09/06
Code éditeur : G12029 • ISBN : 2-212-12029-X
blanc
© Groupe Eyrolles 2006,
ISBN : 2-212-12029-X
Table des matières
Préface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
III
Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
V
Avant-propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VII
Une approche à contre-pied . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VIII
Organisation de ce cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
VIII
À qui s’adresse ce cours ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
IX
CHAPITRE 1
Un curieux besoin de modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Construction d’applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Le code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Les modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
CHAPITRE 2
Diagrammes de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
Vue structurelle du modèle UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Paradigme orienté objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Concepts élémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Associations entre classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
Concepts avancés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
13
14
19
CHAPITRE 3
Reverse Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
Sémantiques UML et Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Différences des sémantiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
28
XII
UML pour les développeurs
Synthèse entre UML et les langages de programmation . . . . . . . . . . . . . . .
30
Passage de code Java vers les diagrammes de classes . . . . . . . . . . . . . .
Règles de correspondance du Reverse Engineering . . . . . . . . . . . . . . . . . .
30
Intérêt et limites du Reverse Engineering . . . . . . . . . . . . . . . . . . . . . . . .
Diagrammes à faire après un Reverse Engineering . . . . . . . . . . . . . . . . . . .
34
32
35
CHAPITRE 4
Rétroconception et patrons de conception . . . . . . . . . . . . . . . . . .
39
Identification des dépendances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Qu’est-ce qu’une dépendance ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Impact des cycles de dépendances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Casser les cycles de dépendances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
39
Patron de conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le patron de conception Observer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
41
43
45
45
CHAPITRE 5
Génération de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
D’UML à Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
UML vers Java et Java vers UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
54
Approches UML et code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
56
Cycle de développement UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
CHAPITRE 6
Diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
Vue comportementale du modèle UML . . . . . . . . . . . . . . . . . . . . . . . . . .
Concepts élémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le temps dans les diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . . .
63
64
66
Liens avec la vue structurelle du modèle . . . . . . . . . . . . . . . . . . . . . . . . .
Objet et classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Diagramme et modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68
Concepts avancés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interactions et génération de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fragment d’interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Limites intrinsèques des interactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
70
68
69
70
72
72
Table des matières
XIII
CHAPITRE 7
Diagrammes de séquence de test . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
Les tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Comment utiliser les tests ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
Écriture de cas de test à partir d’un modèle UML . . . . . . . . . . . . . . . . .
Cas de test abstrait et interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Cas de test exécutables et interactions . . . . . . . . . . . . . . . . . . . . . . . . . . . .
79
80
80
81
CHAPITRE 8
Plates-formes d’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
Java dans UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modèles 100 % UML et modèles UML pour Java . . . . . . . . . . . . . . . . . . .
UML productif ou pérenne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
87
87
88
Niveaux conceptuel et physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Abstraction de la plate-forme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Niveaux d’abstraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
90
Cycle de développement UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Intégration des deux niveaux dans le cycle . . . . . . . . . . . . . . . . . . . . . . . . .
Approches possibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
92
90
91
92
92
CHAPITRE 9
Diagrammes de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
Vue fonctionnelle du modèle UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Fonctionnalités d’une application orientée objet . . . . . . . . . . . . . . . . . . . . .
Concepts élémentaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
97
98
Liens avec les autres parties du modèle . . . . . . . . . . . . . . . . . . . . . . . . . .
100
Concepts avancés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Concepts avancés relatifs aux cas d’utilisation . . . . . . . . . . . . . . . . . . . . . .
Concept avancé relatif aux acteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
101
101
104
CHAPITRE 10
Développement avec UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
Analyse et conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Analyse du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Conception de la solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
110
110
XIV
UML pour les développeurs
Comment passer du quoi au comment ? . . . . . . . . . . . . . . . . . . . . . . . . . . .
111
Méthode de développement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La méthode « UML pour le développeur » . . . . . . . . . . . . . . . . . . . . . . . . .
114
115
CHAPITRE 11
Corrigés des TD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
123
TD1. Un curieux besoin de modélisation . . . . . . . . . . . . . . . . . . . . . . . . .
123
TD2. Diagrammes de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
127
TD3. Reverse Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
136
TD4. Rétroconception et patrons de conception . . . . . . . . . . . . . . . . . . .
141
TD5. Génération de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
146
TD6. Diagrammes de séquence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
151
TD7. Diagrammes de séquence de test . . . . . . . . . . . . . . . . . . . . . . . . . . .
158
TD8. Plates-formes d’exécution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
161
TD9. Diagrammes de cas d’utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . .
166
TD10. Développement avec UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
169
ANNEXE 1
Code d’un carnet d’adresses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
183
ANNEXE 2
Exemple de partiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
193
Questions de cours (4 points) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
193
Exercices (16 points) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
194
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
201
Téléchargement