Académique Documents
Professionnel Documents
Culture Documents
Pierre-Alain Muller
pa.muller@essaim.univ-mulhouse.fr ESSAIM, 12 rue des Frres Lumire 68093 Mulhouse Cedex
Version 2.0 1 Pierre-Alain Muller
Au menu
La gense dUML Un survol dUML La notation UML Vers un processus unifi La suite de lhistoire
Version 2.0
Pierre-Alain Muller
La gense dUML
Version 2.0
Pierre-Alain Muller
Version 2.0
Pierre-Alain Muller
Version 2.0
Pierre-Alain Muller
Langage de modlisation
Gnrique Expressif Flexible (configurable, extensible) Syntaxe et smantique Unification par convergence aujourdhui
Version 2.0
Pierre-Alain Muller
Processus
Gnrique Impossible standardiser
Personnes, applications, cultures...
Version 2.0
Pierre-Alain Muller
Comment modliser ?
La manire de modliser influence fortement
La comprhension du problme La solution
Version 2.0
10
Pierre-Alain Muller
Version 2.0
12
Pierre-Alain Muller
Logiciels et matriels
Ingnierie des systmes
Personnes
Ingnierie des affaires Unification sur plusieurs domaines dapplications
Version 2.0 13 Pierre-Alain Muller
La notation unifie
Base sur les mthodes de BOOCH, OMT et OOSE Influence par les bonnes ides des autres mthodes Mrie par le travail en commun
Version 2.0
14
Pierre-Alain Muller
Principales influences
Souvent une histoire imbrique
Booch Catgories et sous-systmes Embley Classes singletons et objets composites Fusion Description des oprations, numrotation des messages Gamma, et al.Frameworks, patterns, et notes Harel Automates (Statecharts) Jacobson Cas dutilisation (use cases) Meyer Pr- et post-conditions Odell Classification dynamique, clairage sur les vnements OMT Associations Shlaer-MellorCycle de vie des objets Wirfs-Brock Responsabilits (CRC)
Version 2.0 15 Pierre-Alain Muller
Version 2.0
16
Pierre-Alain Muller
Les objectifs
Reprsenter des systmes entiers Etablir un couplage explicite entre les concepts et les artefacts excutables Prendre en compte les facteurs dchelle Crer un langage de modlisation utilisable la fois par les humains et les machines
Version 2.0
17
Pierre-Alain Muller
Approche retenue
Identifier la smantique des concepts de base Classer les concepts Construire un mtamodle Choisir une notation graphique Regrouper par niveau dabstraction, complexit et domaine
Version 2.0
18
Pierre-Alain Muller
Mtamodle
Identification des concepts fondamentaux
Dfinition de la smantique de ces concepts Choix dune reprsentation graphique
Exemples de modles
Un systme possde plusieurs modles
Systme
Modle danalyse
Version 2.0
Modle de conception
21
Modle de ralisation
Modle de dploiement
Pierre-Alain Muller
Les tapes
Octobre 95
Unified Method V0.8
Octobre 96
UML V0.91 (The Unified Modeling Language for Object-Oriented Development)
Janvier 97
UML 1.0 est soumise lOMG
Septembre 97
Approbation par le comit technique de lOMG
Version 2.0 22 Pierre-Alain Muller
Evolution de UML
Version 2.0
23
Pierre-Alain Muller
Acceptation de UML
UML est dans le domaine public Soutenue par le march
Microsoft, HP, IBM, Oracle...
Successeur naturel des mthodes de Booch, OMT et OOSE UML est le fruit de lexprience et des besoins de la communaut des utilisateurs
Version 2.0 24 Pierre-Alain Muller
Les partenaires
Courant 96 UML devient un enjeu stratgique Consortium de partenaires
DEC, HP, i-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft, Oracle, Rational Software, TI et Unisys IBM, Platinum, Data Access Technologies, Reich Technologies, Softeam, Taskon A/S
Version 2.0
25
Pierre-Alain Muller
En rsum
UML est une notation, pas une mthode UML est un langage de modlisation objet UML convient pour toutes les mthodes objet UML est dans le domaine public
Version 2.0
26
Pierre-Alain Muller
Un survol dUML
Version 2.0
27
Pierre-Alain Muller
Elments de modlisation
Briques pour capturer la smantique des applications Pas accessibles directement aux utilisateurs Reprsentation interne (outils) Reprsentation externe (change entre outils)
Version 2.0
28
Pierre-Alain Muller
Elments de modlisation
Les objets
Une entit dun monde rel ou virtuel
Les classes
La description dun ensemble dobjets
Les tats
Une tape de la vie dun objet
Les tches
Un flot de contrle indpendant
Version 2.0 29 Pierre-Alain Muller
Elments de modlisation
Les cas dutilisation
Une manire dont un acteur utilise le systme
Les collaborations
La ralisation dun cas dutilisation par une socit dobjets collaborants
Elments de modlisation
Les composants
Un module contenant des entits dimplmentation
Les noeuds
Un dispositif matriel capable dexcuter du logiciel
Les paquetages
Une partition du modle
Les notes
Un commentaire, une explication ou une annotation
Version 2.0 31 Pierre-Alain Muller
Relations
Lassociation
Une connexion smantique entre instances
La gnralisation
Une relation de classification
La dpendance
Lutilisation dun lment par un autre
La trace
Dpendance inter-modles
Version 2.0 32 Pierre-Alain Muller
Mcanismes communs
Les strotypes <<strotype>>
Extension des classes du mtamodle
Les tiquettes
Paire (nom, valeur)
Les notes
Commentaire textuel
Types primitifs
Boolen Expression Liste Multiplicit
Point
Chane Temps
Nom
Non interprt
Version 2.0
34
Pierre-Alain Muller
La notation UML
Version 2.0
35
Pierre-Alain Muller
Notation
Manipule par les utilisateurs Simple, intuitive, expressive, cohrente Vues graphiques (multiples) des lments de modlisation
Version 2.0
36
Pierre-Alain Muller
Composants
Classes
Squence
Activit
Objets
Dploiement
Cas dutilisation
Etats-Transitions
Collaboration
Version 2.0
37
Pierre-Alain Muller
Diagrammes
Les diagrammes de classes
Les classes et les relations statiques
Diagrammes (suite)
Les diagrammes de cas dutilisation
Les acteurs et lutilisation du systme
Version 2.0
39
Pierre-Alain Muller
Diagrammes (suite)
Les diagrammes de composants
Les composants dimplmentation et leurs relations
Version 2.0
40
Pierre-Alain Muller
Paquetages
Organisation des modles
Nom de paquetage
Cat <<Catgorie>>
Sub <<Sous-systme>>
Version 2.0
41
Pierre-Alain Muller
Diagrammes de classes
Les classes
Nom de classe
Nom de classe
Version 2.0
42
Pierre-Alain Muller
Diagrammes de classes
Les attributs et les oprations
Nom de classe
Nom : type = valeur initiale Nom( )
A
+Attribut public #Attribut protg -Attribut priv Attribut de classe +Opration publique( ) #Opration protge( ) -Opration prive( ) Opration de classe( )
Version 2.0
43
Pierre-Alain Muller
Diagrammes de classes
Les associations
A B
Version 2.0
44
Pierre-Alain Muller
Diagrammes de classes
Dcoration des associations
Socit
<Travaille pour
Personne
Pilote
Socit Employeur Employ Personne
Avion
Personne
Passagers
Version 2.0
45
Pierre-Alain Muller
Diagrammes de classes
Multiplicit des associations
1 0..1 m..n * 0..* 1..* un et un seul zro ou un de m n de zro plusieurs de zro plusieurs dun plusieurs
Version 2.0
46
Pierre-Alain Muller
Diagrammes de classes
Exemples
Personne
1 0..* {Ordonne}
Personne
Compte
Parents 2
Enfants
Personne
Dlgus
Version 2.0 47 Pierre-Alain Muller
Diagrammes de classes
Restriction des associations (qualification)
A
Cl
Echiquier
Case 1
Version 2.0
48
Pierre-Alain Muller
Diagrammes de classes
Les classe-associations
A B
C
attributs oprations( )
Version 2.0
49
Pierre-Alain Muller
Diagrammes de classes
Les agrgations
Connexions bidirectionnelles non symtriques
Voiture 1 1 Moteur
Parent * Enfants *
Propritaire Personne
1..* 0..*
Personne
Immeuble
Agrgat
0..1 *
Composant
<Soccupe de
Pierre-Alain Muller
Version 2.0
50
Diagrammes de classes
Gnralisation simple et multiple
Super-classe Classe plus gnrale
Sous-classe
Version 2.0
51
Pierre-Alain Muller
Diagrammes de classes
Les discriminants partitionnent les sous-classes
Animal Station Nourriture Bipde Quadrupde Herbivore Carnivore A plumes A poils A cailles Protection
Lapin
Version 2.0
52
Pierre-Alain Muller
Diagrammes de classes
Exemple de contrainte
Champignon
{Exclusif} Agaricus Boletus Pas de mlange des dimensions Pied bleu Bolet de loup
Version 2.0
53
Pierre-Alain Muller
Diagrammes de classes
Relation de dpendance
Liste <<Instanciation>> BAL <<Friend>> Itrateur
Version 2.0
54
Pierre-Alain Muller
Diagrammes de classes
Les interfaces
Jeu doprations
ICommon IStyle Client ISpelling {remote} StyleAgent IGrammar StyleAgent
Version 2.0
55
Pierre-Alain Muller
Diagrammes dobjets
Reprsentation des objets
Nom de lobjet
: Classe
BoutonOK : IHM::Contrles::BoutonPoussoir
Version 2.0
56
Pierre-Alain Muller
Diagrammes dobjets
Reprsentation des objets et des liens
Voiture
: Voiture : Moteur
Moteur 1 1
1
: Roue : Roue : Roue : Roue
4 Roue
Version 2.0
57
Pierre-Alain Muller
Diagrammes dobjets
Dcorations
Passagers : Bus Conducteur : Personne : Destination : Personne
Version 2.0
58
Pierre-Alain Muller
Diagrammes de collaboration
Reprsentation spatiale dune interaction
: Ascenseur
2: Allumer : Lumire
Version 2.0 59
: Porte
Pierre-Alain Muller
Diagrammes de collaboration
Reprsentation des messages
Message Argument A Argument
Version 2.0
60
Pierre-Alain Muller
Diagrammes de collaboration
Exemples
A.1, B.3 / Message A B
A *[i :=1..n] : Message
:X
[X>Y] : Message A
p := Question A
Version 2.0
61
Pierre-Alain Muller
Diagrammes de collaboration
Syntaxe des envois de message
4 : Afficher (x, y) -- message simple 3.3.1 : Afficher (x, y) -- message imbriqu 4.2 : ge := Soustraire (Aujourdhui, DateDeNaissance) -- message imbriqu avec valeur retourne [Age >= 18 ans] 6.2 : Voter () -- message conditionnel 4.a, b.6 / c.1 : Allumer (Lampe) -- synchronisation avec dautres flots dexcution 1 * : Laver () -- itration 3.a, 3.b / 4 *||[i := 1..n] : Eteindre () -- itration parallle
Version 2.0
62
Pierre-Alain Muller
Diagrammes de collaboration
Les objets actifs
: Traitement de texte 2 : Ecrire 1 : Lire : Imprimante : Scanner
Version 2.0
63
Pierre-Alain Muller
Diagrammes de collaboration
La place de lutilisateur
1: Venir me chercher au RDC : Personne
: Ascenseur
: Cabine
Version 2.0
64
Pierre-Alain Muller
Diagrammes de collaboration
Reprsentation des patterns
handler KeyboardHandler successor Chain of Responsibility handler MIDIHandler successor
client Sequencer
handler
EventHandler
Version 2.0
65
Pierre-Alain Muller
Diagrammes de squence
Reprsentation temporelle dune interaction
Un objet Un autre objet Encore un objet
Version 2.0
66
Pierre-Alain Muller
Diagrammes de squence
Exemples
Un objet
Un objet
Message rflexif
Un autre objet
Un message
Un objet
Message synchrone
Message asynchrone
Dtruire
Version 2.0
67
Pierre-Alain Muller
Diagrammes de squence
Un objet
A Message
Exemples
Rcursion
A B
Version 2.0
68
Pierre-Alain Muller
Diagrammes dtats-transitions
Reprsentation des automates
Statecharts (David Harel)
Classe
1 0..1
Automate
Version 2.0
69
Pierre-Alain Muller
Diagrammes dtats-transitions
Exemples
/ Op1 Un tat
entry: Op2 do: Op3 exit: Op4 on UnEvnement: Op5
C D2 In A Out D1 X Y
/ Op6
Version 2.0
70
Pierre-Alain Muller
Diagrammes dtats-transitions
Exemples
Tlviseur Bascul
Attente
Arrt
Version 2.0
71
Pierre-Alain Muller
Diagrammes dactivits
Reprsentation dun automate du point de vue des activits
E1 do: Activit
Activit finie E2
Version 2.0
72
Pierre-Alain Muller
Diagrammes dactivits
Exemples
Version 2.0
73
Pierre-Alain Muller
Version 2.0
74
Pierre-Alain Muller
<<Etend>>
Identification
Version 2.0
75
Pierre-Alain Muller
Version 2.0
76
Pierre-Alain Muller
Diagrammes de composants
Reprsentation des lments de ralisation
Spcification Gnrique Main Tche
Version 2.0
77
Pierre-Alain Muller
Diagrammes de composants
1: invoke (URL) Client Server 4: create
L
2: load 3: doit
The extension is called via a server thread, selected from a thread pool. 5: create
ISAPI Extension 10: write response COM Server Object 8: do some operation 6: send a message
Message Queue
Version 2.0
78
Pierre-Alain Muller
Diagrammes de dploiement
Architecture matrielle et rpartition du logiciel
TX Serveur X 3 Console <<TCP/IP>> 1 SGBD 1 * PC Pilote 1 Matre Porte <<RNIS>> Imprimante <<Dispositif>> 1 1 Serveur
1..10
Version 2.0
79
Pierre-Alain Muller
Diagrammes de dploiement
Node1 Module A Node1 Module B
xyz
abc
<process> ProcW
Version 2.0
80
Pierre-Alain Muller
Version 2.0
81
Pierre-Alain Muller
Objectifs
Construire des modles de systmes Organiser le travail Grer le cycle de vie de A Z Grer le risque Obtenir de manire rptitive des produits de qualit constante
Version 2.0
82
Pierre-Alain Muller
Caractristiques du processus
Dirig par les cas dutilisation Centr sur larchitecture Itratif Incrmental
Version 2.0
83
Pierre-Alain Muller
Conception et Ralisation
Raliser les cas dutilisation
Test
Vrifier que les cas dutilisation sont satisfaits
Version 2.0
84
Pierre-Alain Muller
Cas 2
Cas 3
Version 2.0
85
Pierre-Alain Muller
En conception
Gnration des cas de test depuis les diagrammes dinteraction et les automates dtats finis
Version 2.0
86
Pierre-Alain Muller
Organisation du travail
Dcoupage par cas dutilisation
Analyse Conception et ralisation Test
Experts du domaine
Intgrateurs et Testeurs
Version 2.0
87
Pierre-Alain Muller
Version 2.0
Architecture logicielle
Architecture = Elments + Formes + Motivations Architecture = Stratgie + Tactique
Version 2.0
89
Pierre-Alain Muller
La vision de larchitecte
Il nexiste pas une seule manire de regarder un systme
Philippe Kruchten, le modle 4 + 1 vues, IEEE Software, Nov. 95
Version 2.0
90
Pierre-Alain Muller
Le modle 4 + 1 vues
La vue logique La vue de ralisation La vue des processus La vue de dploiement La vue des cas dutilisation
Version 2.0
91
Pierre-Alain Muller
La vue logique
Aspects statiques et dynamiques Les lments
Les objets Les classes Les collaborations Les interactions Les paquetages <<Catgorie>>
92 Pierre-Alain Muller
Version 2.0
La vue de ralisation
Organisation des modules dans lenvironnement de dveloppement Les lments
Les modules Les sous-programmes Les tches (en tant quunits de programme, comme en Ada) Les paquetages <<sous-systme>>
Version 2.0 93 Pierre-Alain Muller
Version 2.0
La vue de dploiement
Les ressources matrielles et limplantation du logiciel dans ces resources Les lments
Les noeuds Les modules Les programmes principaux
Version 2.0
95
Pierre-Alain Muller
Version 2.0
96
Pierre-Alain Muller
Rcapitulatif
9 XH GH V FD V G X WLOLV D WLR Q ' LD J U D P P H GH FDV G X WLOLV D WLR Q ' LD J U D P P H G H F OD V V H V ' LD J U D P P H G R E MH WV ' LD J U D P P H GH Vp TXH QFH ' LD J U D P P H GH F R OOD E R U D WLR Q 2 E MH WV / LH Q V $ F WH X U V 2 E MH WV 0 H VVD JH V $ F WH X U V 2 E MH WV / LH Q V 0 H VVD JH $ F WH X U V &DV G X WLOLV D WLR Q & OD V V H V 5 H OD WLR Q V & OD V V H V 2 E MH WV / LH Q V $ F WH X U V 2 E MH WV 0 H VVD JH V $ F WH X U V 2 E MH WV / LH Q V 0 H VVD JH V
97
9 X H OR J LT X H
9 XH GH U p D OLV D WLR Q
9 XH GH V S UR F H V V X V
9 XH GH G p S OR LH P H Q W
2 E MH WV 0 H VVD JH V 2 E MH WV / LH Q V 0 H VVD JH V
Version 2.0
Pierre-Alain Muller
Rcapitulatif (suite)
9 XH GHV FDV GXWLOLVDWLRQ ' LDJUDPPH GpWDWV WUDQVLWLRQV ' LDJUDPPH GDFWLYLWp ' LDJUDPPH GH FRPSRVDQWV ' LDJUDPPH GH GpSORLHPHQW ( WDWV 7UDQVLWLRQV $FWLYLWpV 7UDQVLWLRQV 9 XH ORJLTXH 9 XH GH UpDOLVDWLRQ 9 XH GHV SURFHVVXV ( WDWV 7UDQVLWLRQV $FWLYLWpV 7UDQVLWLRQV & RPSRVDQWV & RPSRVDQWV & RPSRVDQWV 9 XH GH GpSORLHPHQW ( WDWV 7UDQVLWLRQV $FWLYLWpV 7UDQVLWLRQV
1 RHXGV /LHQV
Version 2.0
98
Pierre-Alain Muller
Version 2.0
99
Pierre-Alain Muller
Version 2.0
102
Pierre-Alain Muller
Vue de lencadrement
Des phases
Inception (tude doportunit) Elaboration (architecture, planning) Construction Transition
Inception Elaboration Construction Transition
time
Version 2.0
103
Pierre-Alain Muller
Vue technique
Des itrations
Version 2.0
104
Pierre-Alain Muller
Incrments
Le logiciel volue par incrment Une itration correspond un incrment Les itrations peuvent voluer en parallle
Version 2.0 105 Pierre-Alain Muller
Construction
Construction Release 1 Construction Release 2 Construction Release 3
Transition
Generation 1
Preliminary Iteration
Architect. Iteration
Architect. Iteration
Devel. Iteration
Devel. Iteration
Devel. Iteration
Version 2.0
106
Pierre-Alain Muller
Transition Release
Preliminary Iteration
Iteration #1
Iteration #2 ...
Iteration #n+1
Iteration #...
Iteration #m
Iteration #m+1
Iteration #m+2 ..
Version 2.0
107
Pierre-Alain Muller
UML en rsum
Un langage de modlisation unifi
Version 2.0
La suite de lhistoire
Version 2.0
109
Pierre-Alain Muller
Prochaines tapes
1 er semestre 97
Consolidation de la proposition UML 1.0
Septembre 97
Approbation du standard par le comit technique de lOMG
Version 2.0
110
Pierre-Alain Muller
Version 2.0
111
Pierre-Alain Muller
Sommaire
Gense dUML Approche objet Notation UML Encadrement des projets objet Etude de cas
112 Pierre-Alain Muller
Version 2.0