UML2 : Les diagrammeslaurent.henocque.com/oldsite/doc/UML 2.0 Diagrammes...•UML propose des...
Transcript of UML2 : Les diagrammeslaurent.henocque.com/oldsite/doc/UML 2.0 Diagrammes...•UML propose des...
UML2 : Les diagrammesLaurent Henocque
http://laurent.henocque.free.fr/Enseignant Chercheur ESIL/INFO France
http://laurent.henocque.perso.esil.univmed.fr/mis à jour en Novembre 2008
Licence Creative Commons
Cette création est mise à disposition selon le ContratPaternité-Partage des Conditions Initiales àl'Identique 2.0 France disponible en ligne
http://creativecommons.org/licenses/by-sa/2.0/fr/
ou par courrier postal à Creative Commons, 559Nathan Abbott Way, Stanford, California 94305,USA.
Références Normatives
• L'infrastructure UML• http://www.omg.org/cgi-bin/doc?formal/05-07-05• La superstructure UML• http://www.omg.org/cgi-bin/doc?formal/05-07-04• OCL• http://www.omg.org/cgi-bin/doc?ptc/05-06-06
Autres références
• Ce support de cours s'appuie sur des exemplesconcrets mis à disposition librement sur internetpar différentes sources– http://www.rational.com– http://www.visualuml.com– http://uml.free.fr– http://http://www.sparxsystems.com.au/resourc
es/uml2_tutorial/index.html
Objectifs
• Présenter les différents diagrammesUML2.0
UML : Diagrammes de Classes
Préambule
• UML propose des artéfacts particuliers pourles diagrammes.
• Toutefois, ces propositions sont seulementsuggérées, ne sont pas obligatoires, et nefont en aucun cas partie de la norme
• Un diagramme à la mode OOA (nuages)peut donc constituer un document UMLvalide, selon des conventions prédéfinies
Diagrammes de Classes
• les diagrammes de classes, ou de structure,définissent les constructions élémentairesd'un modèle: types, classes, relations utilespour le reste (pose des contraintes)
Elements graphiques desdiagrammes statiques
Exemple
Exemples de Classes
Classes: héritage
Classes: associations
Classe : notation simple
• Une classe définit un "type", ensembled'objets pouvant exister à l'exécution duprogramme
Voiture
Bateau
Véhicule
Encapsulation
Classe : syntaxe détaillée
Attribut multivalué
Attribut dérivé
Classes Abstraites
Héritage
Heritage ??
Polymorphisme
Animal
Chat Chien Raton laveur
Généralisation Spécialisation
COHERENCE
Super-classe
Sous-classe
Généralisation
Véhicule
Tapis volant
AérienTerrestre
TapisMULTIPLE
Fusion de plusieurs classesen une seule classe Sous-classe
Super-classe
Super-classe
Héritage multiple
Véhicule
A voile TerrestreA moteur Marin
Motorisation Milieu
DISCRIMINANTDISCRIMINANT
Généralisations Multiples
Véhicule
A voile TerrestreA moteur Marin
Pétrolette
Motorisation Milieu
{Inclusif}
Nécessaire
Obligation d'Héritage de toutesles dimensions
Exemple
Core Backbone Simplifié
Classification (Distilled)
Dérivation (Distilled)
Exemple : Espresso Compilateur• http://types.bu.
edu/Espresso/report/Espresso.html
Types fondamentaux
Exemplelog4j
Stéréotypes et Variations
Instances
Stéréotypes dans les classes
Le stéréotype "utility"
Templates
SP CPP
UML : Packages
Diagrammes de Packages
• Utilisés pour séparer le modèle enconteneurs logiques, et décrire leursinteractions à un haut niveau
Exemple de Packages
Packages
Packages
Stéréotypes de Packages
Packages (Distilled)
UML : Associations
Association
Lien
Nommage d'Association
Rôles
Nécessité des noms de Rôles
Cardinalités
Navigabilité
Agregation
Relation de Composition
Composition Vue Interne
Agrégation et composition(Distilled)
Associations qualifiées
Association qualifiée (Distilled)
Relation N-aire
Classe d'association
Classe d'association (Distilled)
Classe d'association 2
Association dérivée
Relation de dépendance
• Une dépendance traduit l’existence d’unlien fugitif entre deux classes, par exemplelors de la création d’un objet, ou d’unpassage de paramètre
DernierDiagrammeClasses(Distilled)
UML : Contraintes Exprimées dansle modèle
Contraintes
Contraintes
Contraintes
Contraintes: Exercice : tout peut êtredécrit dans le modèle?
UML : Interfaces
Interfaces
Interfaces
Réalisation d'Interfaces
Interfaces (Distilled)
Interfaces (Distilled)
UML : Composants Déploiement
Diagrammes Objet (d'instances)
• Les diagrammes objet illustrent lesinteractions concrètes entre instances declasses (les liens y sont des instances desrelations)
Composants et Composites
Liens internes entre composants
Instances
• Les instances ne sont pas utilisées dans lesdiagrammes de classes, mais apparaissentdans les cas d'utilisation, et les diagrammesde trace d'événements (activity diagrams)
Instances
Diagramme de collaboration
Exemple
Diagrammes de Structure Composite
• Les diagrammes de structure compositedonnent le moyen de stratifier la structure etde se concentrer sur des détails internesconcernant les associations.
• Un tel diagramme décrit la structure interned'un classifieur.
Exemples
Collaborations
Diagrammes de Composants
• Les diagrammes de composants sont utiliséspour modéliser des structures à plus hautniveau, ou plus complexes, qui déclarentdes interfaces précises. La plupart du temps,un composant fait intervenir plusieursclasses
Exemples
Deployment Diagrams
• Les diagrammes de déploiement décriventla disposition concrète des éléments dumodèle dans le monde physique
Exemples
Exemples
Modules
Composants
Ex: Composants ArgoUML
Déploiement
Deploiement(Distilled)
UML : Etats
Diagrammes de machines d'étatsfinis
• Les diagrammes d'état finis décrivent lesétats stables d'une classe, et les transitionsquoi s'y appliquent
Exemple
Exemples
Exemples
Exemple
Exemple
Jonction
Historique
Concurrence
Diagrammes de Communication
• Les diagrammes de communicationdécrivent le réseau et le séquencement demessages entre objets pendant l'exécutiond'une collaboration
Transition
Transition Gardée
Etats Composites
Abstraction des Etats Composites
Entry / Exit / On / Do
Transitions Boucles
Parallélisme
Synchronisation
Exemple Etats
Etats (Distilled)
Etats (Distilled)
Etats (Distilled)
UML : Activités
Activity Diagrams
• Les diagrammes d'activité ont un largechamp d'utilisation. A plus haut niveau, ilspeuvent servir à capturer les points dedécision et le contrôle dans un process. Ilspeuvent aussi servir à documenter unalgorithme.
Exemple
Exemple
Exemple
Exemple
Expansion regions
Exemple : exceptions, régionsinterruptibles
Parameter sets
Transition entre Activités
Couloirs d'Activités
Transition Gardée
Machineà Café
Synchronisation
UML : Séquences
Diagrammes de Séquence
• Les diagrammes de séquence sont desdiagrammes de communication danslesquels la dimension verticale est utiliséepour matérialiser l'écoulement du temps
Exemples
Exemples
Temps concret
Boucles
Sections critiques
Décomposition
Invariants
Séquences
Activation
Messages de Séquences
Diagramme deSéquence
Sequence(Distilled)
Sequence (Distilled)
Sequence (Distilled)
UML : Collaborations
Collaborations
Collaborations
Collaborations
Collaboration au Niveau Classe
Collaboration (Distilled)
Collaborations et Packages
UML : Use Cases
Diagrammes de Cas d'Utilisation
• Ces diagrammes modélisent des interactionsentre les utilisateurs et le système. Ilsdéfinissent le comportement, les conditionset contraintes sous la forme de scripts ou descénarios
Exemples
Exemples
Exemples
Use Casesdansl'analyse
Use Cases
Use Case
Use Case
Stéréotypes de Use Cases
Relations de Use Case (Distilled)
Use Case Points d'extension (Distilled)
UML : Diagrammes de Timing
Timing Diagrams
• Ces diagrammes combinent les diagrammesde séquence et d'état pour proposer un pointde vue sur l'évolution de l'état d'un objet aufil du temps, et sur les messages quimodifient cet état.
UML : Diagrammes d'"interactionoverview"
Interaction Overview Diagrams
• Ces diagrammes utilisent diagrammesd'activité et de séquence pour décrirecomment des fragments d'interaction(décrits par des diagrammes de séquence)sont combinés par des points de décision etdes flux
UML 2.0 Elements nouveaux
Métamodèle
• Diagrammes de collaboration ->diagrammes de communication
• Diagrammes de d'interaction hybrides(overview of interaction)
• Diagrammes temporels (timing diagrams)• Diagrammes de structure composite
Diagrammes de classe
• Les attributs et les associations unidirectionnellessont devenues deux notations équivalentes pour lemême concept de "propriété" (property).
• Les multiplicités discontinues ont été abandonnées([2,7])
• Diverses propriétés et mots clef ont étéabandonnées ("frozen", <<parameter>>,<<local>>)
Diagrammes de séquence
• Nouvelle notation dite de "cadred'interaction" (interaction frame) pour lessections itératives, conditionnelles del'exécution, et divers modes de contrôle
• Cela permet de décrire des algorithmes defaçon réaliste dans les diagrammes deséquence
Diagrammes de Séquence
Diagrammes de séquence (2)
• Les marqueurs d'itération et les gardes desmessages ont été supprimés (ils servaientprécisément à décrire des algorithmes)
• Les têtes de lignes de vie ne sont plus desinstances, mais des "participants"
Diagrammes de classe
• Les stéréotypes sont plus précisémentdéfinis. Les chaînes entre guillemets sontdes "mots clef" (keyword), dont certainsseulement sont des stéréotypes
• La classification multiple utilise desensembles de classification ("classificationsets") pour grouper les généralisations
Interfaces
• Les classes peuvent requérir des interfaces,et pas seulement les proposer
Diagrammes de composants
• Les composants n'ont plus une icônespécifique, mais deviennent un stéréotypecomme les autres– (la différence entre classe et composant n'avait
jamais été claire)
Structure composite• La structure composite permet de
décomposer récursivement une classe danssa structure interne, notamment pour faireapparaître les éléments de la classe liés auxinterfaces
Exemple de Structure Composite
Classe Active
• Une classe active décrit des instances don’tchacune possède son propre thread decontrôle.
Diagrammes d'état
• UML 2.0 supprime la distinction entreactions et activités.
• Une activité est simplement indiquée parune clause dans un état "do/"
• (ou "do-activity/")
Diagrammes d'activité
• Ces diagrammes ne sont plus un casparticulier des diagrammes d'état
• Suppression de l'obligation de fairecorrespondre chaque "fork" à un "join"
• Ces diagrammes sont mieux compriscomme des diagrammes de flot de jetons(de type réseau de Petri)
Diagrammes d'activité
Diagrammes d'activité
Nombreuses nouvelles notations :• signaux de temps et d'acceptation• paramètres• spécifications de join• pins (puces)• transformations de flot• rateaux de sous diagrammes (subdiagram rakes)• régions d'expansion• terminaisons de flots
Diagrammes d'activité
• Les flots entrants multiples étaient traitéscomme un "merge" implicite en UML 1.x(sans synchronisation)
• Ils deviennent un "join" implicite (avecsynchronisation)
• Recommandation : utiliser des join oumerge explicites!
Diagrammes d'activité
• Les lignes de vie (life lines ou swim lanes)devinennent multi dimensionnelles,
• elles sont appelées des partitions
Fin du document