UML - Introduction à la notation

237
UML — The Unified Modeling Language Introduction à la notation Gerson Sunyé Université de Nantes [email protected]

description

Introduction à la notation UML.

Transcript of UML - Introduction à la notation

Page 1: UML - Introduction à la notation

UML — The Unified Modeling Language

Introduction à la notation

Gerson Sunyé Université de Nantes

[email protected]

Page 2: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Introduction

• UML - Langage de modélisation unifié

• Standard de l’OMG (Object Management Group)

• Une notation (syntaxe concrète)

• Un méta-modèle (syntaxe abstraite)

• Ce n’est pas une méthode (pas de processus de développement)

�2

Page 3: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Un peu d’histoire La jungle de méthodes des années 90

• OMT (Rumbaugh et al.), OOA/OOD (Booch), OOA (Coad), OOSE (Jacobson), OOA/OODLE (Schlaer & Mellor) , Fusion (HP), Classe-Relation (Desfray).

• et aussi: DFD (De Marco), Etat-transition (Harel), ER (Chen), CRC (Wirf & Brooks), JSD (Jackson)

Page 4: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Un peu d’histoire

• Les années 80-90:

• Différents langage de modélisation

• Différentes interprétations des constructeurs de modélisation

• Peu d’outils, pas adaptés

• Pas d’échange de modèles

Page 5: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Objectifs d’UML

• Proposer un langage visuel de modélisation, indépendant de l’implémentation et du processus de développement

• Proposer une base formel pour l’interprétation des modèles

Page 6: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Objectifs d’UML

• Intégrer des concepts de haut niveau: Composants, Patrons de conception (Patterns), Cadres d’applications (Framewoks)

• Encourager l’outillage

Page 7: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

UML et le processus de développement

• Un processus est composé (au minimum) des étapes suivantes: • Expression des besoins • Analyse • Conception • Réalisation, validation, maintenance

Page 8: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Analyse et conception

• UML: une même notation, deux niveaux d’abstraction différents

• Une frontière floue, qui doit être précisée par une méthode de développement

Page 9: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Analyse avec UML

• Généralement:

• Le résultat de l’analyse est un modèle idéal de la solution

• Abstraction des particularités de la plate-forme d’implémentation (persistance, réseau, etc.)

Page 10: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Conception avec UML

• Le résultat de la conception est un modèle de la solution, adapté au monde réel

• Ce modèle reste indépendant du langage d’implémentation

Page 11: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Modélisation avec UML

• Diagrammes de cas d’utilisation

• Diagrammes structurels

• Diagrammes comportementaux

• Mécanismes d’extension

�11

Page 12: UML - Introduction à la notation

Diagrammes de cas d’utilisation

�12

Page 13: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Modèle des cas d’utilisation

• Buts : • modéliser le point de vue des utilisateurs • définir les limites précises du système

• Notation très simple, compréhensible par tous, y compris le client

• Permet de structurer : • les besoins (cahier des charges) • le reste du développement

• Modéle (principalement) communicationnel

CasU1

CasU4

CasU5

CasU2

CasU3

A1

A2

S A3

Page 14: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Modèle des cas d’utilisation

• Moyens :

• Les acteurs UML

• Les use-cases UML

• Utilisation d’un dictionnaire du domaine

Page 15: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Use Case Diagram Example

DistributeurDeBillets

Client

RetirerDeLArgent AuDistributeur

ConsulterSonCompte

AssurerLaMaintenance TechnicienAjouter

DesBilletsTransporteurDeBillets

RetirerLesCartesAvalées

Page 16: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Modèle de cas d’utilisation

• Diagramme de cas d’utilisation !

• Modèle de cas d’utilisation • descriptions textuelles, • diagrammes de cas

d'utilisation • diagrammes de

séquences • dictionnaire de données • …

CasU1

CasU4

CasU5

CasU2

CasU3

A1

A2

S A3

Page 17: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Eléments de base

Acteurs Cas d'utilisation Système

Page 18: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Cas d’utilisation (CU)

• Cas d’utilisation • une manière d’utiliser le système • une suite d’interactions entre un acteur et le système

• Correspond à une fonction du système visible par l’acteur • Permet à un acteur d’atteindre un but • Doit être utile en soi • Regroupe un ensemble de scénarii correspondant à un même

but

RetirerDeLArgentAu Distributeur

TaperSonCodeEnregistrerEntrée EntrerPendantLesHeuresDOuverture

SIdentifier

Page 19: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Système

• Le système est • modélisé par un ensemble de cas d’utilisation • vu comme une boîte noire !

• Le système contient : • les cas d’utilisation, • mais pas les acteurs. !

• Un modèle de cas d’utilisation permet de définir : • les fonctions essentielles du système, • les limites du système, • le système par rapport à son environnement, • délimiter le cadre du projet !

Page 20: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Acteurs

• Un Acteur = • élément externe • qui interagit avec le système (prend des décisions, des

initiatives. Il est "actif".) • Rôle qu’un "utilisateur" joue par rapport au système

CapteurAIncendie

PorteurDeCarte AdministrateurGardien

Page 21: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Acteurs vs. utilisateurs

Ne pas confondre les notions d’acteur et de personne utilisant le système

!• Une même personne peut jouer plusieurs rôles

ex: Maurice est directeur mais peut jouer le rôle de guichetier !• Plusieurs personnes peuvent jouer un même rôle ex: Paul et Pierre sont deux clients !• Un rôle par rapport au système plutôt qu’une position dans

l'organisation ex: PorteurDeCarte plutôt qu'Enseignant !• Un acteur n’est pas forcément un être humain ex: un distributeur de billet peut être vu comme un acteur

Page 22: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Différents types d’acteurs

Ne pas oublier d'acteurs : !• Utilisateurs principaux

ex: client, guichetier !

• Utilisateurs secondaires ex: contrôleur, directeur, ingénieur système, administrateur... !

• Périphériques externes ex: un capteur, une horloge externe, ... !

• Systèmes externes ex: système bancaires

Page 23: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Notation

•Notations alternatives pour les acteurs PorteurDeCarte

PorteurDeCarte

<<actor>>PorteurDeCarte

PorteurDeCarte

CapteurAIncendie

<<actor>>

SystèmeBancaire

<<actor>>

■ Note de style : utiliser plutôt le stéréotype <<actor>> pour les acteurs non humains

Page 24: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Relations entre les éléments de base

• Relations acteurs ⟷ cas d'utilisation ? !

• Relations acteurs ⟷ acteurs ? !

• Relations cas d'utilisation ⟷ cas d'utilisation ??

? ?

Page 25: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Relation acteur ⟷ cas d'utilisation

• Point de vue besoin: représente la possibilité d'atteindre un but • Point de vue système: représente un canal de communication

• Echange de messages, potentiellement dans les deux sens • Protocole particulier concernant le cas d'utilisation considéré

ClientRetirerDeLArgent

AuDistributeur

ClientRetirerDeLArgent

AuDistributeur

Page 26: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Relation acteur ⟷ cas d'utilisation

• Description via des diagrammes de séquences "systèmes" !

• Plus tard dans le cours ...

Client

RetirerDeLArgentAuDistributeur

Page 27: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Relation acteur ⟷ cas d'utilisation

• Acteur "primaire » • utilise le système comme

outil pour réaliser son but • initie généralement la

communication • Acteur(s) "auxiliaire(s)"

• interviennent suite à l'intervention de l'acteur primaire

• offrent généralement leurs services au système

Guichetier

SystèmeBancaire

ConsulterUnCompte

Acteur primaire

Acteur auxiliaire

Page 28: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Relation cas d’utilisation ⟷ cas d’utilisation

• Communications internes non modélisées.

• UML se concentre sur la description du système et de ses interactions avec l'extérieur

• Formalisme bien trop pauvre pour décrire l'intérieur du système. Utiliser les autres modèles UML pour cela.

• Autres relations possibles entre CU (slides suivants) Système

Bancaire

Directeur

Client

RetierDeLArgent

ConsulterLesSoldes

Page 29: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Relation cas d’utilisation ⟷ cas d’utilisation

• Utilisation («include» / « uses ») • Utilisation d’autres use-cases pour en préciser la définition !

• Extension («extend» / « extends ») • Un use-case étendu est une spécialisation du use-case père

Page 30: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Relation acteur ⟷ acteur

• Communications externes non modélisée !

• UML se concentre sur la description du système et de ses interactions avec l'extérieur

Guichetier

Client

RetirerDeLArgentAuDistributeur

ConsulterSonCompte

RetirerDeLArgentParChèque

Page 31: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Relation acteur ⟷ acteur : généralisation

• La seule relation entre acteurs est la relation de généralisation

GuichetierEnChef

Guichetier

CréerUnCompte

RetirerDeLArgentDUnCompte

AnnulerUnCompte

FermerUnCompte

Page 32: UML - Introduction à la notation

Notation — résumé

«subsystem»Commandes

Consulter

Commander

MàJ catalogue

Traiter Commande

Etablir crédit

Client

0..1

1

1

1

0..1

0..1

Page 33: UML - Introduction à la notation

Notation — résumé

Retrait Lecture carte«includes»

Transaction sur

distributeur

Aide en ligne«extends»

Page 34: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Exemple de marquage

DistributeurDeBillets

Client RetirerDeLArgentAuDistributeur

ConsulterSonCompte

GérerLaSécuritéAdministrateur

AjouterDesBilletsTransporteur

DeBillets

S’identifier

Page 35: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Cas d'utilisation vs. Scénarii

• Un scénario est un exemple :

• une manière particulière d’utiliser le système …

• … par un acteur particulier … • … dans un contexte particulier. !

• cas d’utilisation = ensemble de scénarios

!

• scénario = une exécution particulière d’un CU

Page 36: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Diagramme de séquences système

• Pour décrire un scénario : un diagramme de séquences • Diagramme de séquences :

• L’une des notations UML, une notation générale • Peut être utilisée dans de nombreux contextes • Permet de décrire une séquence de messages échangés entre différents objets • Différents niveaux de détails !

• Pour décrire un scénario simple, deux objets : l’acteur et le système !!

⇒ « Diagramme de séquences système »

Page 37: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Exemple de diagramme de séquence système

paul : Client le systèmeInsérer carte

Entrer code ‘1234 ’ 

Demander code

Message d ’erreur

Demander code

Entrer code ‘6622 ’ 

Vérifier carte

Vérifier code

...

Appeler Sylvia

Page 38: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Cas d'utilisation vs. scénarii

Niveau modèle

Niveau instances

Page 39: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Un peu de méthodologie…

Stabilisation du modèle par consensus

grandissant

!

• Équivalent à définir une table des matières et des résumés pour chaque chapitre • Pas de règles strictes • Effectuer les meilleurs regroupement possibles • Rester simple ! • Structuration possible en termes de paquetages • Culture d'entreprise

Page 41: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Pour en savoir encore plus

Page 42: UML - Introduction à la notation

Diagrammes structurels

�42

Page 43: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Diagrammes Structurels

• Classes • Objets • Structures composite

�43

Page 44: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Classificateurs, attributs et opérations • Associations • Généralisation • Dépendances • Paquetages

Diagramme de classes

�44

Page 45: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Classificateurs

Page 46: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Rappel: objet

• Encapsulation d’un état et d’un ensemble d’opérations (qui s’appliquent à cet état) • Abstraction d’une entité réelle • Identité unique • Existence temporelle (création, modification, destruction)

�46

Page 47: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Description du comportement et des propriétés communs à un ensemble d’objets • Un objet est une instance d’une classe • Chaque classe a un nom

Rappel: classe

�47

Page 48: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Notation

• Sans détails • Analyse • Conception • Propriétés groupées

selon leur visibilité

�48

HTML Page

HTML Page

title : Stringsize : Integerrender()save()

HTML Page

+ title : String+ /size : Integer~ version : Integer# contents : String- visibility : Boolean = true- tags : String [1..*]+ render()+ save()- optimize()

HTML Page

public title : String /size : Integerpackage version : Integerprotected contents : Stringprivate visibility : Boolean = true tags : String [1..*]public render() save()private optimize()

Page 49: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Caractéristique structurelle typée d’un classificateur, qui spécifie la structure des instances de ce classificateur

• Peuvent être dérivés d’autres attributs

Attributs

�49

Page 50: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Propriétés: • {readOnly}, {union}, {subsets <p>}, {redefines

<p>}, {ordered}, {unique}, {id}, {non-unique}, <prop-constraint>.

• Visibilité: [+,~,#,-] • Peuvent être soulignés (attributs de classe)

Attributs

Syntaxe: [visibility][/]name[:type][multiplicity] [=default][{prop-modifier}]

�50

Page 51: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Caractéristique comportementale d’un classificateur qui spécifie le nom, les types, les paramètres et les contraintes pour invoquer un comportement associé

Opération

�51

Page 52: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Peut être soulignée (opération de classe) • Propriétés: redefines<operation-name>, query, ordered, unique • direction: in, out, inout

Opération

parameter: [direction]name : type-expression [multiplicity] = default-value [param-properties]

Syntaxe: [visibility]name (parameter-list):return-type {oper-properties}-

�52

Page 53: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Classes abstraites • Datatypes • Interfaces • Classes paramétrées

Autres classificateurs

�53

Page 54: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Classes abstraites

• Encapsulent un comportement commun

• Ne possèdent pas d’instances

• Possèdent des opérations abstraites

Etudiant

Etudiant{abstract}

�54

Page 55: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• deferred en Eiffel • abstract en Java • pure virtual en C++ • méthodes ^self shouldNotImplement en Smalltalk

Classes abstraites

�55

Page 56: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Type, dont: • les valeurs n’ont pas

d’identité • les opérations sont de

fonctions “pures”

Datatypes

«dataType»Date

day : Integermonth : Integeryear : Integer

�56

Page 57: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Enumeration • Types primitifs:

• Boolean, Integer, UnlimitedNatural, String

Datatypes

«enumeration»Temperature

Cold

Hot

�57

Page 58: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Une déclaration d’un ensemble cohérent d’opérations

• Une interface peut être implémentée ou demandée

Interfaces

HTML Page

title : Stringsize : Integerrender()save()

«Interface»

Serializable

+ read()+ write

Exporter

write()

HTML Page

title : Stringsize : Integerrender()save()

Exporter

write()

Serializable

�58

Page 59: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Indispensable pour les classes conteneurs (e.g. Listes)

• Existe en Ada, Eiffel, C++ (templates) et Java (>1.5)

• N’est pas nécessaire en Smalltalk et Python

Classes paramétrées

Vecteuritem : Ttaille : intajouter()supprimer()

T

Polygone

<<bind>> <Point>

�59

Page 60: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Associations

Page 61: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Une association entre deux classes représente un lien stable entre deux objets (instances de ces classes)

Rappel: association

�61

Page 62: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Un lien d’utilisation, temporaire, n’est pas une association

Rappel: association

feature {VISITOR} accept(v: VISITOR) is do v.visitExemple(Current) end -- accept

�62

Page 63: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Nom • Rôles • Cardinalités • Direction de lecture • Navigabilité

Notation

HTMLFolder

HTMLPage

1 contents

Possède

container*

�63

Page 64: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Exacte : 1 • Plusieurs (0 à n): * • Optionnelle: 0,1 • Spécifiée: 1, 2, 4 • Intervalle: 1-10

Cardinalités - Notation

�64

Page 65: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• {set} : chaque élément est présent au plus une fois (par défaut) • {bag} : un élément peut être présent plus d’une fois • {ordered}: set ordonné • {sequence} or {seq}: bag ordonné

Propriétés des rôles

�65

Page 66: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• {redefines <end-name>} : redéfinition d’un autre rôle • {subsets <property-name} : le rôle représente un sous-ensemble • {union} : union dérivée de tous ses sous-ensembles

Propriétés des rôles

�66

Page 67: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Association réflexive • Association n-aire • Association qualifiée • Association-classe • Agrégation partagée • Agrégation composite

Cas particuliers (1/2)

�67

Page 68: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Association réflexive

• Liaison entre objets de la même classePersonne

enfant

parent

0..2

*

�68

Page 69: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Association n-aire

• Association entre plus de deux classes

• Interprétation confuse des cardinalités

Enseignant Matière

Classe

*enseignement

1..*

1..*

�69

Page 70: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Association qualifiée

• Qualificatif: attribut spécial, qui permet de réduite la cardinalité (de n à 1)

• Une clef permettant de distinguer un objet de façon unique

Banque compte Personne* 0..1

�70

Page 71: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Association-classe

• Aussi appelée classe de liaison

Etudiant Matière

Notevaleur : intop()op()

�71

Page 72: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Agrégation

• Notion de “tout” et “partie”

• Partagée et compositeVoiture Roue

Chassis

4,6

1

�72

Page 73: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Généralisation

Page 74: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Héritage, caractéristique des langages à objets • Partage de structure et comportement entre classes

Généralisation

�74

Page 75: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Mécanisme d’extension de module • ajout de fonctionnalités dans la sous-classe • réutilisation de code

Utilisation (1/2)

�75

Page 76: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Mécanisme de classification : sous-typage • relation X est-une-sorte-de Y (est substituable à) • organisation des systèmes complexes (cf. Linnaeus) • réutilisation d’interface

Utilisation (2/2)

�76

Page 77: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Relation “est une sorte de”, “est remplaçable par”

Notation

Etudiant{abstract}

Etudiant de Maîtrise

Etudiant de DESS

Etudiant

Etudiant de Maîtrise

Etudiant de DESS

�77

Page 78: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• complete/incomplete: couverture. Une personne est soit un homme, soit une femme.

• disjoint/overlapping: si les classificateurs partagent des instances. Une personne peut être aussi un étudiant.

Generalization Set

Personne

Etudiant Homme Femme

{complete, disjoint}{incomplete, disjoint}

�78

Page 79: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Attributs • Opérations • Associations • Contrats, états, etc. (mais cela, nous verrons plus tard)

Généralisation

�79

Page 80: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Un attribut qui a le même nom qu’un attribut hérité est une redéfinition

Attributs

Personnenom : Stringsecu : Integernaissance : Date

Personneid {redefines nom}naissance : Integer

�80

Page 81: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Une opération peu être redéfinie si: • elle a le même nombre

de paramètres • Le type de chaque

paramètre est conforme au paramètre correspondant

Opérations

Départementvirer (e : Etudiant)

Département d'infovirer (e : EtudiantInfo)

�81

Page 82: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Les associations sont héritées par les sous-classes

Associations

Etudiant

Etudiant de Maîtrise

Etudiant de DESS

Départementappartient

�82

Page 83: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Il est possible de spécialiser une association • Double emploi avec <redefined> ?

Associations

Etudiant Département

Etudiant en informatique

Département d'info

appartient

appartient{redefined appartient}

�83

Page 84: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Relation entre deux éléments (client et fournisseur) • Abstraction • Permission • Réalisation • Substitution

Dépendances

�84

Page 85: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Entre éléments de différents niveaux sémantiques • «derive» : éléments dérivés, pas forcément du même type • «refine» : raffinement entre modèles • «trace» : (aussi) - utilisé pour marquer les changements entre

modèles.

Abstraction (1/2)

�85

Page 86: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Relation entre un «type» du modèle d’analyse avec une classe du modèle de conception

Abstraction (2/2)

«type»Personne

Personne Impl

«refine»

�86

Page 87: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Outillage de méthodes de développement (RUP, Catalysis, etc.)

Intérêt de l’abstraction

�87

Page 88: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Droits d’accès aux propriétés privées

Permission

Etudiant+ nom- cartable

Professeur«permit»

�88

Page 89: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Relation entre deux ensembles d’éléments, de spécification et d’implémentation

• Utilisé pour représenter: raffinement, optimisation, transformations, synthèses, etc.

• «realize»

Réalisation

�89

Page 90: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Relation entre classificateurs. Les instances du fournisseur peuvent remplacer celles du client

Substitution

Etudiant+ nom- cartable

Espion«substitute»

�90

Page 91: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• «call» : dépendance entre opérations (où classes) • «create» : le client créé des instances du fournisseur

(classificateurs) • «instantiate» : les opérateurs du client créent des instances du

fournisseur

Usage

�91

Page 92: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• «send» : entre une opération et un signal

Usage (2/2)

�92

Page 93: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Représentation des associations non permanentes • Très utiles pour estimer la testabilité d’un modèle ou l’impact

d’un changement

Intérêt de l’usage

�93

Page 94: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Principal mécanisme d’extension d’UML • Permet l’extension (ou plutôt la restriction) de la plupart des

éléments de modélisation: classe, objet, opération, acteur, cas d’utilisation, diagrammes, etc.

Stéréotypes

�94

Page 95: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Peuvent introduire: • une nouvelle notation • des contraintes

d’utilisation • Très utiles pour

l’interprétation d’un modèle

Notation

«persistent»Personne

nom : Stringsecu : Integernaissance : Date

Personne

nom : Stringsecu : Integernaissance : Date

«persistent»Personne

nom : Stringsecu : Integernaissance : Date

Personne

�95

Page 96: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Pair de la forme “étiquette=valeur”, attachée aux éléments de modélisation

Etiquettes (tagged values)

Personne{author = G. Sunyé,status = incomplete}

nom : Stringsecu : Integernaissance : Date

�96

Page 97: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Compléments de modélisation sous forme textuelle, attachées à un élément ou un diagramme

• Peuvent être stéréotypées

Notes

Départementvirer (e : Etudiant)

Département d'infovirer (e : EtudiantInfo)

Le département d'informatique ne peut virer que les étudiants

d'informatique

�97

Page 98: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Mécanisme d’extension, permettant d’adapter UML à l’aide d’un ensemble de stéréotypes

• Le profil “Standard” contient les stéréotypes utilisés dans UML • Autres profils: J2EE/EJB, COM, .NET, CCM, etc.

Profils

�98

Page 99: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Groupement d’éléments, qui leur fournit un espace de nommage commun

Paquetage (1/3)

�99

Page 100: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Utilisé pour structurer une application • Il se compose de classes et d’autres paquetages • Il référence des classes ou d’autres paquetages

Paquetage (2/3)

�100

Page 101: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Utilisé pour réglementer la visibilité des classes et paquetages qui le composent

Paquetage (3/3)

�101

Page 102: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Vues externe et interne

Notation

Types

«datatype»Date

Types

�102

Page 103: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Importation («import»): les éléments de l’espace de nommage sont importés

• Accès («access»): les éléments sont simplement utilisés

Dépendances entre paquetages

Types

Persistence Gestion

«import»

«access»

�103

Page 104: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Une fusion définie la manière dont un paquetage étend un autre • Composé de liens de généralisation et de redéfinition

Fusion de paquetages

�104

Page 105: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Vue externe

Notation

Types

Enumerations My Types

«merge»

«merge»

�105

Page 106: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Vue interne

Notation

«datatype»Types::Date

My Types

«datatype»Date

�106

Page 107: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Diagrammes Structurels

• Classes • Objets • Structures composite

�107

Page 108: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Représentation d’objets, de liens et de valeurs. • Très utiles pour expliquer les associations entre classes ou le

résultat d’une opération

Diagramme d’instances

�108

Page 109: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Similaire à celle d’une classe • Le nom de l’instance et celui de la classe sont soulignés

et séparés par “:” • Les deux noms sont facultatifs

Notation

Arnaud : Etudiant

adresse = "13 r du pont"age : Integer = 38

: Département

nom = "Informatique"

appartient

�109

Page 110: UML - Introduction à la notation

UML — Composants

Gerson Sunyé[email protected]

�110

Page 111: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Composant

• Connecteur

• Artefact

• Port

Élements du diagramme de composants

�111

Page 112: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Composants:

• Partie remplaçable d’un système.

• Son comportement est spécifié en terme d’interfaces requises et fournies.

Définition

�112

Page 113: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Interfaces requises et fournies.

Notation

«component»Dictionnaire

Synonymes

AntonymesTexte structuré

«component»Dictionnaire

«provided interfaces» Synonymes Antonymes«required interfaces» Texte structuré

�113

Page 114: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Point d’interaction entre un composant et son environnement.

• La nature de ces interactions est spécifiée par des interfaces.

Port

«component»DictionnaireSynonymes

Antonymes

�114

Page 115: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Liaison entre un contrat externe (port) et la réalisation.

• Assemblage, délégation.

Connecteur

:Index

:Langue

Dictionnaire

Texte structuréAntonymes

«component»:Texte

Texte structuré «component»:Dictionnaire

Texte structuré �115

Page 116: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Diagrammes Structurels

• Classes • Objets • Composants • Déploiement • Structures composite

�116

Page 117: UML - Introduction à la notation

UML — Composants

Page 118: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Composant

• Connecteur

• Artefact

• Port

Élements du diagramme de composants

�118

Page 119: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Composants:

• Partie remplaçable d’un système.

• Son comportement est spécifié en terme d’interfaces requises et fournies.

Définition

�119

Page 120: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Interfaces requises et fournies.

Notation

«component»Dictionnaire

Synonymes

AntonymesTexte structuré

«component»Dictionnaire

«provided interfaces» Synonymes Antonymes«required interfaces» Texte structuré

�120

Page 121: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Point d’interaction entre un composant et son environnement.

• La nature de ces interactions est spécifiée par des interfaces.

Port

«component»DictionnaireSynonymes

Antonymes

�121

Page 122: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Liaison entre un contrat externe (port) et la réalisation.

• Assemblage, délégation.

Connecteur

:Index

:Langue

Dictionnaire

Texte structuréAntonymes

«component»:Texte

Texte structuré «component»:Dictionnaire

Texte structuré �122

Page 123: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Diagrammes Structurels

• Classes • Objets • Composants • Déploiement • Structures composite

�123

Page 124: UML - Introduction à la notation

UML — Déploiement

Page 125: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Éléments de modélisation:

• Artefact

• Chemin de communication

• Déploiement

• Dispositif

• Noeud

Diagramme de déploiement

�125

Page 126: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Spécification d’une pièce physique d’information utilisée dans le processus de développement

• Fichiers source, modèles, scripts, binaires, document, etc.

Artefact

�126

Page 127: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Un artefact est un classificateur: il possèdes des propriétés et des opérations

• Il peut s’associer avec d’autres artefacts

Artefact

�127

Page 128: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Stéréotypes standards: «source», «executable»

Notation

«artifact»

Order.jar

«artifact»

Order.jar

�128

Page 129: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Ressource logique sur laquelle les artefacts sont déployés.

Noeud

�129

Page 130: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Connexion, instances

Notation

Zope ZODB1 1..4

CMF

«deploy»

:Zope

:Zope

CMF«artifact»«artifact»

Plone

�130

Page 131: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Association entre deux noeuds, permettant l’échange de signaux et de messages.

Chemin de communication

�131

Page 132: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

• Ressource (artefact) déterminant les paramètres d’exécution d’un artefact.

Spécification de déploiement

«artifact»

Order.jar

«deployment spec»

description.xml

�132

Page 133: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Classes • Objets • Structures composite

Diagrammes structurels

�133

Page 134: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Structures internes • Collaborations

Structures composite

�134

Page 135: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Spécification d’éléments créés à l’intérieur d’un classificateur

Structures internes

�135

Page 136: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Propriétés • Instances • Références

Notation

:Point [3] :Color

Triangle

:Triangle

a:Point

c:Pointb:Point

blue:Color

Trianglemake(c : Color)

«create»

�136

Page 137: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Spécification de la structure d’un ensemble d’éléments (rôles) qui réalisent une tache commune

• Représentation de la structure d’un patron de conception

Collaborations

�137

Page 138: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Rôle: rôle d’une classe participant à une collaboration

• Connecteur: lien permettant la communication entre deux classes

Notation (1/3)

/Observer:Dependent /Subject:Model

Observer

�138

Page 139: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Les propriétés définies par les classificateurs doivent être possédées par les classes jouant leurs rôles

Notation (2/3)

Modelnotify()

addDependent()

Dependentupdate()

Observer

Observer Subject

�139

Page 140: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Occurrence d’une collaboration

Notation (3/3)

Fenêtre Donnée

:Observer

Observer Subject

�140

Page 141: UML - Introduction à la notation

Diagrammes comportementaux

�141

Page 142: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Diagrammes de comportement

• Etat-transition • Interaction • Activités

�142

Page 143: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Diagrammes état-transition

• Modélisation d’un comportement par un système fini d’états et de transitions

• Il existe deux sortes de digrammes d’état: • De comportement • De protocole

�143

Page 144: UML - Introduction à la notation

Diagramme de d’état de comportement

�144

Page 145: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

• Décrivent un comportement à l’aide d’un graphe d’États, interconnectés par des Transitions, qui sont déclenchées par des Événements

• En d’autres termes, décrivent les réactions d’un objet aux changements de son environnement.

• Essentiellement, un diagramme de Harel • Attachés à un classificateur (sauf interfaces) ou à une opération

• Sont hérités, et peuvent être spécialisés

Machines à états

�145

Page 146: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

• Relation unidirectionnelle entre deux états (ou entre deux machine d’état)

• Interne à un état • Externe: implique un changement d’état • Locale: s’applique à tous les états d’un état composite

Transition

�146

Page 147: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Transition — notation

Evt1 [cond] / m() ^Evt2E1 E2

état transition

événement reçuévénement émisactioncondition de garde

�147

Page 148: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Transition — exemple

Syntaxe : trigger [guard]/ trigger

Open Closequit(user) [user has rights] / parent := user.parent(); parent.update()

�148

Page 149: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

• Evénement qui peut causer l’exécution d’un comportement qui lui est associé. Exemples: • Message: Événement ou Opération • Temporel • Changement

Déclencheur (Trigger)

�149

Page 150: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Événement/Signal

• Un événement est un type de message pouvant être échangé entre deux objets.

• Asynchrone (contrairement aux opérations, qui sont synchrones) • Peut transporter des données. • Correspond à un message asynchrone dans les diagrammes de

séquence.

�150

Page 151: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Événement

• Stimuli auxquels réagissent les objets • Occurrence déclenchant une transition d’état

• Abstraction d’une information instantanée échangée entre des objets et des acteurs • Un événement est instantané • Un événement correspond à une communication

unidirectionnelle • Un objet peut réagir à certains événements lorsqu'il est dans

certains états. • Un événement appartient à une classe d'événements (classe

stéréotypée «signal»).

�151

Page 152: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Événement

• Déclaration au sein d’un diagramme de classe au moyen d’une Classe stéréotypée « signal » !

!

!

!

• Utilisation au sein • d’un diagramme de séquence pour représenter les interactions

dynamiques entre objets, • des diagrammes d'états pour représenter les déclencheurs de

transitions.

�152

Page 153: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Notion d’événements

• Les événements sont considérés comme des objets

time : Integer

«signal»IO Event

device : Integer

«signal»User Input

position : Point

«signal»Mouse Click

key : Integer

«signal»Key Pressed

port : Integer

«signal»Network

�153

Page 154: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Types d’événements

• Réalisation d’une condition arbitraire • transcrit par une condition de garde sur la transition

• Réception d’un signal issu d’un autre objet • transcrit en un événement déclenchant sur la transition

• Réception d’un appel d’opération par un objet • transcrit comme un événement déclenchant sur la transition

• Période de temps écoulée • transcrit comme une expression du temps sur la transition

�154

Page 155: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

• Contrainte évaluée avant le déclenchement d’une transition

Garde

�155

Page 156: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

• Déclenchée par une transition ou interne à un état • Définit un comportement, spécifié dans n’importe quel langage

(!)

Activité

�156

Page 157: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Notion d’action

• Action : opération instantanée (conceptuellement) et atomique (ne peut être interrompue)

• Déclenchée par un événement • Traitement associé à la transition • Ou à l’entrée dans un état ou à la sortie de cet étatUser_input / mise_sous_tension

délai_mise_en_veille / passage_en_mode_veille

Veille Allumé

action

action�157

Page 158: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Notion d’activité interne à un état

• Activité : opération se déroulant continuellement tant que l’on est dans l’état associé • do/ action

• Une activité peut être interrompue par un événement.

TéléphoneN° invalide Téléphone raccroché Invalide

do / passer message

activité�158

Page 159: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

• Situation stable d’un objet: • en attente d’un événement, ou • en train de réaliser une tâche

• Conditionne la réponse de l’objet à des événements • programmation réactive /  « temps réel »

• Peut avoir des variables internes • Attributs de la classe attachée à ce diagramme d’états

• Trois sortes: simple, composite et sous-machine

Etat

�159

Page 160: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Compartiments: • Nom • Activités internes • Transitions internes

Notation

ICQ-Connectedentry/say_hello()exit/bye_bye()do/poll()keyboard/read_msg()

�160

Page 161: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

• Etat englobant différents sous-états • Possède une entrée et une sortie • Transition arrivant -> entrée • Transition sortant -> sort de tous les états

Etat composite

�161

Page 162: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Notation

Offline Available N/A Freedeconnect()

Online

set_available()

not_available() free_for_chat()

�162

Page 163: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Notation

• Etat composite avec indicateur de décomposition

Online

do/poll()

�163

Page 164: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Régions concurrentes, représentant 2 (ou n) aspects indépendants d’un objet.

• Activités parallèles • Evitent l’expression d’un

produit cartésien

Composite Orthogonal

Online

InvisibleVisible

Available

�164

Page 165: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Diagrammes d'états concurrents : exemple

Préparation d'un avion

Remplissage PleinMaintenance

Réservoir pleinpréparation Avion

prêt

Chargement nourriture Nourriture

chargée

Approvisionnement

Compartiment plein

Equipage absent Vérification

avion

Equipage

Montée

vérification OK

�165

Page 166: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Sous-machine

• Référence à une machine d’états

�166

Page 167: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

• Référence à une machine d’états • Points de connexion:

• Entrée • Sortie

Notation

Connexion:ConnexionMachine

timeout

�167

Page 168: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Initial, Final • Entrée, sortie • Fourchette, jonction

(régions orthogonales) • Choix

Pseudo-états

id

[>10]

[<=10]

�168

Page 169: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Envoi et réception d’événements

• Séquence d’actions • Pour une vue “orientée

transition”

Transitions particulières

Abort

Timeout

Connected

reason = timeout

Offline

�169

Page 170: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Ajout de nouvelles transitions ou de nouveaux états

• Spécialisation d’états (transformation d’un état simple en composite)

• Un état peut être {final}

Spécialisation

Online Offline

Connection {extended}

new transition

�170

Page 171: UML - Introduction à la notation

Diagramme d’état de protocole

�171

Page 172: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Machines d’état de protocole

• Spécialisation des machines d’états • Toujours attachées à un classificateur • Représentent un cycle de vie d’un objet et spécifient quels

messages sont acceptés à chaque état

�172

Page 173: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Similaire aux machines d’états

• Notée {protocol}

Notation

Porte {protocol}

Ouverte Fermée[couloir->libre] Fermer/

�173

Page 174: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

• Spécifient une pré et une post condition

Transitions

[pré-condition] événement / [post-condition]

�174

Page 175: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Spécifient un invariant

Etats

[invariant]Etat

�175

Page 176: UML - Introduction à la notation

Résumé

�176

Page 177: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Exemple de diagramme d'états

Actif

En composition

connecté

décroche combiné

Repos

Appelé raccroche

Dialogue Sonnerie do/ sonneRéponse de l’appelé/

autorise parole

Compose numéro (n)

Appelant raccroche/ déconnexion

Tonalité do/ joue tonalité

Occupé do/ tonalité occupée

occupé

15 sec

Invalide do/ dit message

Compose numéro (n) [n.isInvalid]

Timeout do/ timeout tone 15 sec

Compose numéro (n)

Etablissement

OccupéLibre

Dernier numéro

�177

Page 178: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Émission d’événements

• Automate d’états d’une télécommande double (TV + MAGNETOSCOPE) :

Contrôle distantMAGNETOSCOPE

TVcontrôle

TVcontrôle

MAGNETO

bouton marche ^signal ON/OFF

Télévision

Arrêt Marche

signal ON/OFF

�178

Page 179: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de NantesGerson Sunyé — Université de Nantes

Etat-transition (résumé)

• Format : • événement (arguments) [conditions] / action ^événements provoqués

• Déclenchement : • par un événement (peut être nul).

• Peut avoir des arguments. • Conditionné par des expressions booléennes sur l'objet courant,

l'événement, ou d'autre objets.

• Tir de la transition : • Exécute certaines actions instantanément. • Provoque d'autres événements ; globaux ou vers des objets cibles.

�179

Page 180: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Diagrammes de comportement

• Interaction • Activités

�180

Page 181: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Définissent le comportement d’un Classificateur • Le comportement est défini par deux ensembles de traces:

• Valides • Invalides

Interactions

�181

Page 182: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Interactions

• Décrivent l’échange de messages entre objets. Diagrammes: • Séquence • Communication • Aperçu d’interaction

�182

Page 183: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Interaction

• Diagramme de Séquences

�183

Page 184: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Exemples de coopération entre objets • Illustrent la dynamique d’enchaînement d’un traitement à travers

les messages échangés entre objets • Représentation du temps comme une dimension explicite

(verticale)

Diagramme de séquences (scénario)

�184

Page 185: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Constitution: • Un message initiateur • Un ensemble d’objets et de messages • Des cadres (frames) • Des contraintes de temps

Diagramme de séquences

�185

Page 186: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Notation

sd Exemple

obj : C1 obj2 : C2

obj3 : C1

Message Asynchrone

Message synchrone

creation()

new = obj3

message(obj, obj2)

debut

�186

Page 187: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Messages

• Communication (synchrone ou asynchrone) entre deux lignes de vie. Sortes de message: • Complet (événements d’envoi et de réception connus) • Trouvé (événement d’envoi inconnu) • Perdu (événement de réception inconnu) • Inconnu

�187

Page 188: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Asynchrone • Synchrone • Création • Perdu • Trouvé

Messages - Notation

Message Asynchrone

Message synchrone

obj3 : C1creation()

retour

�188

Page 189: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Messages - Syntaxe

message ::= [attribut =] signal-ou-operation [(arguments)][: valeur-retour] | ‘*’arguments ::= argument [, arguments]

argument ::= [paramètre=]valeur-argument | attribut = paramètre-sortie [valeur-argument] |

message(14, -, 3.14, “hello”)v=message(16, variable):96message(id=16)

Exemples:

�189

Page 190: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Ligne de vie: • Représente l’existence d’un objet à un

moment particulier • Entre la création et la destruction

• Activation: • Période d’exécution d’une activité (lui-

même, délégation)

Ligne de vie, Activation

obj : C1

�190

Page 191: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Observation de durée, contraintes

• Observation de temps (instants), contraintes

Contraintes temporelles

:User :ACSystem

Code d = duration

CardOut {0..13}

{d..3*d}

{t..t+3}

t = now

�191

Page 192: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Région définissant une sémantique précise à l’intérieur d’une interaction

• Raccourcis pour l’écriture de traces

• Composé de [1..*] “Opérandes”

Fragments

sd Region Critique

obj : C1 obj2 : C2

msg()

msg()

critical

�192

Page 193: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Alternatives (alt): choix de comportement, entre deux opérandes

Fragments

sd Exemple

obj : C1 obj2 : C2

msg()

msg()

alt [x == 42]

[else]

�193

Page 194: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Option (opt): l’opérande est optionnelle. Elle peut ne pas exister • Break (break): l’opérande est exécutée, à la place du reste de

l’interaction (raccourci pour alternative)

Fragments

�194

Page 195: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Parallèle (par): le comportement spécifié par les deux opérandes peut s’exécuter en parallèle (fusion entre les messages)

• Négatif: le fragment représente des traces invalides

Fragments

�195

Page 196: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Région critique (critical): les traces spécifiées ne peuvent pas être intercalées

Fragments

�196

Page 197: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Assertion (assert): spécification de la seule continuation valable

• Ignorer et Considérer (ignore | consider): spécification des messages significatifs

Fragments

sd Exemple ignore {t,r}

:X :Y

consider {q,v,w} v()

assert

q()

�197

Page 198: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Boucle (loop): l’opérande sera répétée autant de fois que défini par une garde

• Autres: strict, ordonnancement strict, ordonnancement faible

Fragments

�198

Page 199: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Diagramme de Communication

Interaction

�199

Page 200: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Comme le diagramme de séquences, sert à représenter des exemples de coopération d’objets

• Cependant: la dimension temporelle est représentée par une séquence et les liens entre objets sont visibles

Diagramme de Communication

�200

Page 201: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Equivalent à un diagramme de séquences

• Le chemin utilisé par les messages est visible

Notation

Gildas:Caissier

Aurélie:Client

1: demande argent()

2 : reçoit argent()

�201

Page 202: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Notation

:Carre :Segment

origine:Point

destination:Point

Sylvain

afficher() 1 *(i=1..4):affiche()4

1.1 position()

1.2 position()

Séquences consécutives et imbriquées

�202

Page 203: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Diagrammes de comportement

!

• Interaction • Activités

�203

Page 204: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Spécifie la séquence et les conditions pour coordonner différents comportements (plutôt que les classificateurs contenant ces comportements)

• Attachés à un Classificateur

Diagramme Activités

�204

Page 205: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Composés d’un ensemble d’actions et de flots (de contrôle et de données)

• Spécifient une opération (conception) • Peuvent spécifier un workflow • Sémantique basée sur les réseaux de Petri

Diagramme Activités

�205

Page 206: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Paramètres d’entrée et de sortie

• Pré et post-conditions • Exceptions

Notation

{activity}Activité

Attribut : type

Attribut : type

Operation(param)

Operation(param)

Action Action

Action

Nom de l'activité «precondition» contrainte«postcondition» contrainte

�206

Page 207: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Notation

�207

Page 208: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

Actions

• Représentent un comportement d’exécution (une étape dans l’exécution d’un algorithme)

• Peuvent avoir une pré et une post conditions

• Types: fonctions primitives, appel de comportement, envoi d’événements, manipulation d’objets (lecture/écriture d’attributs)

Verser Café

boisson choisie = Café«localPrecondition»

le café est versé«localPostcondition»

�208

Page 209: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• De contrôle: déclenche une action une fois que l’action précédente est finie

• D’objet: chemin par lequel peuvent passer des objets et des données

Flots

�209

Page 210: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Instance d’un classificateur, potentiellement dans un état particulier

• Événements

Objet

Café

[chaud]

{ordering = LIFO}

Annulation

�210

Page 211: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Région d’une activité qui peut avoir une sortie alternative au flot normal

Région interruptive

déterminer boisson

mettre café dans le filtre

ajouter de l'eau dans le réservoir obtenir gobelet

mettre filtre dans la machine

infuser

Annulation

préparation annulée

�211

Page 212: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Région qui s’exécute plusieurs fois, selon les éléments de la collection passée en entrée

• Types d’exécution: parallèle, itérative ou stream

Région d’expansion

parallel

�212

Page 213: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Fin d’activité, fin de flot • Fourchette

Autres noeuds

Préparer café

Livrer café

[encore du café]

[plus de café]

�213

Page 214: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Décision: branchement sur plusieurs transitions

• Fusion: accepte un flot parmi plusieurs

Autres noeuds

[cout>10]

[cout<=10]

�214

Page 215: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Jointure • Fourchette

Autres Noeuds

�215

Page 216: UML - Introduction à la notation

Gerson Sunyé - Université de NantesGerson Sunyé - Université de Nantes

• Groupement d’actions ayant des caractéristiques communes

• Utilisées pour affecter des actions à des ressources différentes (Classificateurs, Noeuds)

Partition

déterminer boisson

mettre café dans le filtre

ajouter de l'eau dans le réservoir

mettre filtre dans la machine

infuser

:Dis

tribu

teur

de

Bois

sons

:Caf

etiè

re

�216

Page 217: UML - Introduction à la notation

Mécanismes d’extension

�217

Page 218: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Motivation

• Malgré sa richesse, UML n’est pas adapté à tous les domaines.

• Formes d’extension:

• Ajout de nouveaux éléments.

• Création de nouvelles propriétés.

• Spécification d’une nouvelle sémantique.

• Mécanismes disponibles:

• Stéréotypes, étiquettes et contraintes.�218

Page 219: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Stéréotypes

• Utilisés pour créer des éléments de modélisation spécifiques à un domaine.

• Par exemple, pour modéliser une base de données:

• «Entity», «Relationship»

• «Table», «Index»

�219

Page 220: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Stéréotypes - notation

• Textuelle: entre guillemets (« »)

• Icône

«Database»

Séminaires

list_all_lectures()

Séminaires

list_all_lectures()

Séminaires

�220

Page 221: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Étiquettes

• Définition de propriétés pour n’importe quel élément de modélisation.

• Attachées à des éléments existants ou à des stéréotypes. • Présentées sous la forme d’une paire étiquette=valeur

�221

Page 222: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Étiquettes

• Utiles pour ajouter des informations concernant: • La documentation • Le contrôle de version • La génération de code • etc.

�222

Page 223: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Étiquettes - notation

• Présentées entre crochés.{version = 1.1}

Cours

Nom : StringDurée : Integer

�223

Page 224: UML - Introduction à la notation

Méta-modèle

�224

Page 225: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Méta-modélisation

• Spécification d’un langage de modélisation grâce à un autre langage de modélisation, appelé «métalangage» ou «métalangue».

�225

Page 226: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Métalangage

• Une métalangue est une langue qui prend pour objet une autre langue et qui la formalise.

• Un métalangage n’est rien d’autre qu’un langage. • Même s’il s’agit d’un méta-méta-méta-méta-méta-méta-méta-

méta-méta-méta-méta-méta-métalangage.

�226

Page 227: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Langage

• Un langage est composé d’une syntaxe et d’une sémantique. • La syntaxe spécifie les sujets (concepts, entités) et les verbes

(liens entre ces concepts) d’un langage. • La sémantique donne une interprétations aux sujets et aux

verbes

�227

Page 228: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Syntaxe abstraite

• Définition des liens possibles • Exemple: une association lie deux classes, une classe contient des

attributs, etc.

�228

Page 229: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Syntaxe concrète

• Syntaxe concrète: définition de la représentation des sujets et des verbes.

• Par exemple: graphique (diagrammes), textuelle (HUTN).

Cours

Nom : StringDurée : Integer

Class “Cours” { attribute: “nom” { type = “String” } attribute: “durée” { type = “String” } }

�229

Page 230: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Méta-modèle

• Modèle représentant la syntaxe abstraite d’un langage. • Celui de UML est représenté en MOF et organisé en différents

paquetages. • Il est complété par des règles de bonne formation (well

formedness rules) sous la forme de contraintes OCL.

�230

Page 231: UML - Introduction à la notation

Profils

�231

Page 232: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Profil

• Mécanisme d’extension d’UML permettant la création de modèles dans des domaines spécifiques:

• Systèmes de temps-réel, EJB, Corba, Test, etc.

�232

Page 233: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Spécification

• Un profil est un paquetage qui contient un ensemble de mécanismes d’extension: stéréotypes, étiquettes, contraintes, etc.

• Ces mécanismes s’appliquent à des éléments UML existants:

• les profils ne modifient pas le méta-modèle de UML.

�233

Page 234: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Rôle

• Identifier un sous-ensemble d’UML

• Spécifier des stéréotypes et/ou des étiquettes.

• Spécifier d’autres règles de bonne formation.

• Spécifier une sémantique (toujours en langage naturel).

�234

Page 235: UML - Introduction à la notation

Gerson Sunyé - Université de Nantes

Exemple

• Profil UML pour la modélisation de données.

• Éléments:

• Entités

• Associations

• Contraintes: les entités sont des classes qui n’ont pas de comportement

�235

Page 236: UML - Introduction à la notation

Le profil de modélisation

context Stereotypeinv: self.name = “Entity” implies self.baseClass.ownedOperation->isEmpy()

Data modeling profile

Classfrom Core

Associationfrom Core

«Stereotype»Entity

«Stereotype»Relationship

�236

Page 237: UML - Introduction à la notation

Exemple

«Entity»Lecture

«Entity»Professor«Relationship»

�237