UML2 : Les diagrammeslaurent.henocque.com/oldsite/doc/UML 2.0 Diagrammes...•UML propose des...

Post on 25-Mar-2020

7 views 1 download

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