You are on page 1of 161

UML (Introduction)

Unified Modeling Language

Pr. BENHADOU

Gense dUML

UML est le fruit de lunification de 3 mthodes de modlisation orientes objet


OMT (Object Modeling Technique) : James Rumbaugh Booch : Grady Booch OOSE (Object Oriented Software Engineering) : Ivar Jacobson

UML est le fruit dun consensus gnral


labor avec le concours de la communaut des utilisateurs

UML est une notation (relativement) simple et non propritaire


standardis par lOMG (Object Management Group)

Gense dUML
UML 2.0

- 2002

- 1999 - 1997(Q4) - 1997 (Q1) - 1996 - 1995


UML 0.9 Mthode unifie 0.8 UML 1.0 UML 1.1

UML 1.3

- 1993

Booch93

OMT -2

Autres mthodes Booch91

OMT -1

OOSE

Partenaires

OMG

UML est une notation

UML est un langage de modlisation objet


9 diagrammes standardiss (facettes complmentaires dun systme) Support des phases dAnalyse et de Conception oriente objet

UML est un langage de communication


utilisation dun mme formalisme par tous les intervenants permet de lever les ambiguts du langage naturel

UML est un langage simple de haut niveau


facile apprhender car visuel indpendant de tout langage de programmation

Plusieurs axes de modlisation

Axe structurel
modlisation statique du systme quels objets manipule le systme ? dtermination du QUOI

Axe comportemental / dynamique


modlisation dynamique du systme sous quelles conditions agit le systme ? dtermination du QUAND

Axe fonctionnel
modlisation des traitements offerts par le systme que fait le systme ? dtermination du COMMENT

Les diagrammes proposs par UML

Systme (contextuel)
Diagramme de cas dutilisation Diagrammes de composants Diagrammes de dploiement Diagramme de packages Diagramme de classes Diagramme dobjets Diagramme de collaboration Diagramme de squence Diagramme dtats Diagramme dactivits

Systme (architecture)

Structurels

Dynamiques

Fonctionnels

10

UML (Cas dutilisation)


Unified Modeling Language

Cas dutilisation (Use Cases)

Objectifs
Dfinir les besoins fonctionnels du systme Les cas dutilisation ont pour principal objectif la capture des fonctionnalits couvertes par le systme Dfinir le primtre fonctionnel du systme Les cas dutilisation permettent de dfinir les frontires du systme avec son environnement Dfinir le dialogue entre lutilisateur et le systme Les cas dutilisation recensent comment lutilisateur interagit avec le systme
14

Cas dutilisation (Use Cases)

Objectifs (suite)
Etablir les scnarios fonctionnels qui seront utiliss pour la recette du systme Les cas dutilisation recensent et dcrivent les principales fonctionnalits attendues du systme Servir de support de rfrence tout au long des phases de dveloppement du systme Les cas dutilisation seront consults et rfrencs tout au long du processus de dveloppement du systme
15

Cas dutilisation

Une interaction en provenance de lextrieur dclenche un flot de contrle (squence dactivits) au sein du systme Pendant lexcution de ce flot de contrle, plusieurs interactions avec son initiateur peuvent avoir lieu Chaque flot de contrle correspond une fonctionnalit ou un processus fonctionnel attendu du systme

Dposer argent

Retirer argent

16

Cas dutilisation (Notation)

Un cas dutilisation est


reprsent par un ovale Le nom du cas dutilisation apparat lintrieur de lovale. Il est compos :
- dun nom optionnel de
paquetage - du nom de la fonctionnalit quil prend en charge

Notation

DAB::Retirer argent

18

Description dun cas dutilisation

Titre (commence par un verbe) Objectif (descriptif court : une phrase si possible) Acteurs Pr-conditions
conditions ncessaires pour que le cas dutilisation sexcute

Scnario nominal
description pas pas textuelle chaque tape du cas dutilisation est numrote
1. Introduire la carte 2. Taper le code 3.

Exceptions Post-conditions Frquence & performance requises

tat dune partie du systme aprs lexcution du cas dutilisation

19

Acteur (Dfinition)

Un acteur dfinit un rle quune entit extrieure assume lors de son interaction avec le systme
Lacteur est lorigine des vnements initiateurs reus par le systme Lacteur dialogue par la suite avec le cas dutilisation dont il est linitiateur L acteur possde un nom : celui du rle quil joue lors de son interaction avec le systme Lacteur nest pas forcment humain. Il peut sagir :
dun autre systme dun quipement
21

Acteur (Notation)

Un acteur est reprsent


par un petit personnage Le nom de lacteur apparat sous le petit personnage On peut dfinir des catgories dacteurs plus gnrales ou au contraire spcialiser un type dacteur

Notation

Utilisateur

Utilisateur externe

Utilisateur interne
23

Comment dterminer les acteurs

Se poser les questions suivantes : Qui installe le systme ? Qui utilise le systme ? Qui dmarre le systme ? Qui maintient le systme? Quels sont les autres systmes qui utilisent le systme ? Qui fournit de linformation au systme ? Qui rcupre de linformation partir du systme ?

24

Diagramme de cas dutilisation (Dfinition)

Le diagramme de cas dutilisation est une reprsentation contextuelle de haut niveau du systme modlis
Permet de dfinir de manire prcise les frontires du systme modliser Montre les interactions entre le systme et son environnement extrieur Montre les dpendances existant entre les cas dutilisation

25

Diagramme de cas dutilisation (Notation)

Le diagramme de cas dutilisation met en scne : - les acteurs - les cas dutilisation - les interactions entre acteurs et cas dutilisation - les dpendances entre cas dutilisation

Notation

Cas dutilisation 1

Acteur 1

Cas dutilisation 2

Cas dutilisation 3

Acteur 2

26

Dpendances entre cas dutilisation

Il existe 3 types de dpendances entre use cases : Les dpendances dutilisation Mise en facteur de squences dvnement communes

Les dpendances dextension Externalisation de squences dvnement exceptionnelles


Les dpendances de gnralisation Gnralisation / spcialisation de cas dutilisation

28

Dpendance dutilisation

Indique quun cas


dutilisation utilise systmatiquement et intgralement une squence dactivits dcrite dans un autre cas dutilisation

Notation
Cas dutilisation 1

include Authentifier carte include Cas dutilisation 2

Cas dutilisation 2 Acteur 1

Est reprsente par une


flche pointille tiquete include , pointant vers le cas dutilisation utilis
Le cas dutilisation 1 utilise systmatiquement le cas dutilisation 2 29

Dpendance dutilisation

Permet de dcomposer
un cas dutilisation complexe en cas dutilisation plus simples
Acteur 1 Client

Retirer argent include

include Authentifier carte Cas dutilisation 2

Dposer Dposer argent argent

Permet de factoriser des


comportements utiles plusieurs cas dutilisation
Client

Retirer argent

include Authentifier carte

include Dposer argent

31

Dpendance dextension

Indique quun cas


dutilisation utilise facultativement ou sous certaines conditions une squence dactivits dcrite dans un autre cas dutilisation

Notation
Cas dutilisation 1

Cas dutilisation 2 extend

Cas dutilisation 2 Utilisateur

Est reprsente par une


flche pointille tiquete extend , pointant vers le cas dutilisation tendu
Le cas dutilisation 2 est une extension du cas dutilisation 1 32

Dpendance dextension

Le cas dutilisation tendu


contient une liste de points dextension Un point dextension est compos dun nom suivi dun numro dtape (emplacement) Le cas dutilisation qui tend indique dans sa description sous quelles conditions il se dclenche

Notation
Cas dutilisation 1 Points dextension : . point extension1 : emplacement1 . point extension2 : emplacement2 Cas dutilisation 2 extend

Cas dutilisation 2 Utilisateur

Condition de dclenchement Au point point extension1 : Etape1 Etape2

33

Dpendance dextension

Permet dajouter un
cas dutilisation un comportement exceptionnel complexe (hors cas nominal) Dtermine les conditions dapplication dun comportement alternatif au cas nominal Dporte la description dune exception significative dans un cas dutilisation
Retirer argent include Points dextension : . Guichet vide : avant tape 1 . Carte invalide : avant tape 2 Authentifier carte Cas dutilisation 2 extend

Traiter authentification incorrecte Client

Si le code fourni est incorrect Au point Carte invalide : 1. Alerter le client 2. Redemander la saisie du code 3.

34

Dpendance dextension

Un comportement
exceptionnel complexe dun cas dutilisation doit tre dport dans un cas dutilisation avec une dpendance extend Un comportement exceptionnel simple doit tre explicit dans le paragraphe Exceptions de la description du cas dutilisation

Retirer argent Points dextension : . Guichet vide : avant tape 1 . Carte invalide : avant tape 2

extend

Traiter authentification incorrecte

Titre Rsum (une phrase) Acteurs Pr-conditions Scnario nominal Exceptions .Exceptions Post-conditions

35

Dpendance de gnralisation

Indique quun cas


dutilisation est une spcialisation dun autre cas dutilisation

Notation
Cas dutilisation 1

include Authentifier carte Cas dutilisation 2

Est reprsente par une


flche dhritage pointant du cas dutilisation spcialis vers le cas dutilisation le plus gnral
Acteur 1 Cas dutilisation 2

Le cas dutilisation 2 est une spcialisation du cas dutilisation 1 36

Dpendance de gnralisation

Permet de factoriser un
comportement commun un ensemble de cas dutilisation proches

Notation

include Retirer argent Authentifier carte Cas dutilisation 2

Le cas dutilisation le plus


gnral est dit abstrait si seuls les cas dutilisation spcialiss sont excutables
Utilisateur <<Abstract>> Ouvrir compte

Retirer argent avec ticket

Ouvrir compte chque

Ouvrir compte pargne

37

Scnario

Le scnario est au cas dutilisation ce que lobjet est la classe


Un cas dutilisation propose un comportement nominal (scnario nominal) Un cas dutilisation propose aussi un ou plusieurs comportements alternatifs (scnario alternatif) chacun reprsentant un cheminement particulier dans le cas dutilisation Un cas dutilisation dcrit aussi des situations exceptionnelles Lidal est de crer suffisamment de scnarios couvrant lessentiel dun cas dutilisation
Il est inutile didentifier tous les scnarios possibles

38

Exemple de scnario (I)

CAS DUTILISATION # 2 Nom : prendre une commande Contexte : systme de prise de commande par tlphone pour un club de loisir Objectif : le membre, aprs avoir consult son catalogue, tlphone pour commander Scnario :
# 1 : le tlvendeur identifie linternaute (CU#21) # 2 : le membre choisit les articles commands # 3 : le systme accepte la commande # 4 : le systme envoie la commande la logistique

39

Exemple de scnario (III)

CAS DUTILISATION # 2 Nom : prendre une commande Contexte : systme de prise de commande par tlphone pour un club de loisir Objectif : le membre, aprs avoir consult le catalogue, tlphone pour commander Scnario :
# 1 : le tlvendeur identifie linternaute # 2 : le membre choisit les articles commands # 3 : le systme accepte la commande # 4 : le systme envoie la commande la logistique

Extensions :
# 1a : linternaute nest pas membre # 2a : un des articles nest pas en nombre suffisant : proposer une rduction du nombre darticle ? # 3a : linternaute a eu un incident de paiement : est-il VIP ?
41

Recommandations

Ne pas confondre cas dutilisation et scnario


Chaque cas dutilisation correspond un objectif dun acteur vis vis du systme Un scnario dcrit le droulement dun cas dutilisation Ne pas oublier les scnarios correspondant aux principaux cas dchec du cas dutilisation (mot de passe invalide, carte de crdit invalide, article du catalogue indisponible ou en nombre insuffisant)

Ne dcrire que les principaux cas dutilisation du systme Un cas dutilisation doit contenir une quantit apprciable et tangible de travail Ne pas dcomposer trop finement les cas dutilisation Les dpendances dutilisation et dextension ne doivent tre utilises que pour des comportements significatifs du systme
43

Recommandations (suite)

Complter le diagramme de cas dutilisation par un diagramme de squence ou un diagramme de collaboration Faire figurer uniquement les acteurs en interaction avec les cas dutilisation Un diagramme de cas dutilisation nest pas un diagramme de flots de donnes Les dpendances entre cas dutilisation ne traduisent pas un change de donnes ou un flot de contrle (diagramme dactivit)

45

UML (Diagramme de classes)


Unified Modeling Language

Diagramme de classes

Objectifs Dterminer les donnes qui seront manipules par le systme Ces donnes sont organises en classes Donner la structure statique de ces donnes Ce diagramme permet de dcrire la structure interne de chacune des classes Reprsenter les relations statiques existant entre les diffrentes donnes du systme La navigation parmi les classes est rendue possible par lexistence dassociations qui les unissent
50

Diagramme de classes

Objectifs (suite) Poser les fondements stables rgissant la totalit de larchitecture du systme Ce modle est le garant du respect du paradigme objet

Faire abstraction des aspects temporels et dynamiques de la modlisation Seul laspect statique compte, la dynamique est prise en charge par dautres modles

51

Diagramme de classes (Dfinition)

Le diagramme de classes est un diagramme entits-associations dcrivant les diffrentes classes, leur structure et les associations statiques les unissant
Le diagramme de classes est un diagramme structurel ne prsentant que les classes et pas les instances de classe Il permet de dcrire la structure interne des classes en terme dattributs et doprations Il permet de reprsenter les associations statiques entre les classes, mais ne dcrit pas comment les liens effectifs entre les instances sont effectus
52

Diagramme de classes
Exemple

Client

1 *

possde

0..1

CompteCourant

1 souscrit 0..1

achte * Actions

Plan Epargne Actions

53

Classe (Dfinition)

Une classe est une abstraction de choses du monde rel possdant des caractristiques et des comportements communs
La classe est la fabrique, le moule, partir duquel on fabrique les instances (les objets) Seules les caractristiques pertinentes pour le problme tudi entrent dans la composition de la classe

54

Classe

Abstraction

Abstraction

Chien
age pedigree courir() aboyer()

Personne
age nationalit se promener() crier()
55

Classe (Notation)
Une classe est reprsente par un rectangle dcoup en 3 parties Sont prsents :
le nom de la classe la liste de ses attributs la liste de ses oprations

Notation

<< Strotype >> Nom paquetage :: Nom classe Attributs Oprations

56

Attribut de la classe (Dfinition et notation)

Un attribut est une caractristique intrinsque partage par tous les objets dune classe
Lattribut possde un nom unique dans la classe

Notation
<< Strotype >> Nom paquetage :: Nom classe
nomAttribut1 : typeAttribut1 = valeurInitiale1 nomAttributN : typeAttributN = valeurInitialeN

On peut associer lattribut le type des valeurs quil peut prendre


On peut donner une valeur initiale lattribut

58

Attribut de la classe
Recommandations pour trouver les attributs

Ne donner les types et les valeurs initiales des attributs quen phase de Conception

Lorsquune classe possde de trs nombreux attributs se poser la question du dcoupage de la classe

60

Opration de la classe (Dfinition et notation)

Une opration est un service que propose une classe sur son interface
Lopration possde un nom pas forcment unique dans la classe On peut associer lopration ses arguments On peut associer lopration son type de retour

Notation
<< Strotype >> Nom paquetage :: Nom classe

nomOpration1 (nomArg1 : TypeArg1 = valeurParDfaut1, ...) : typeRetour1 nomOprationN (nomArgN : TypeArgN = valeurParDfautN, ...) : typeRetourN

61

Exemple de classe

Compte
numero solde effectuerVirement() Accesseurs getSolde() setSolde() getNumero() setNumero()

63

Visibilit et Porte des constituants de la classe


La visibilit prcise la manire dont un nom peut tre vu et utilis par les autres (public, protg, priv) La porte prcise dans quel contexte un nom prend sa signification (instance ou classe) Par dfaut, la visibilit est publique et la porte est dinstance

Notation
Nom Classe +Attribut public #Attribut protg -Attribut priv Attribut de classe /Attribut driv +Opration publique() #Opration protge() -Opration prive() Opration de classe()
64

Association (Dfinition)

Une association est une abstraction de liens qui peuvent exister entre les instances de plusieurs classes
Dans le monde rel, les objets sont lis physiquement ou fonctionnellement les uns avec les autres Ces liens entre objets se traduisent au niveau des classes par des associations Une association traduit donc une relation structurelle statique entre deux ou plusieurs classes

65

Association

Abstraction

Abstraction

Chien
ge pedigree courir() aboyer()

Abstraction

Personne
ge nationalit se promener() crier()
66

Association (Notation)
Une association est reprsente au moyen dun trait orient reliant chacune des classes concernes Il est possible de nommer lassociation et de prciser les rles tenus par chaque classe

Notation Client
achte

Voiture

Personne

salari employeur

Socit
67

Nom de lassociation

Le nom de lassociation est en gnral une forme verbale active ou passive qui dcrit globalement le lien Le nom de lassociation est facultatif

Notation

Client

achte

Voiture

Le nom doit apparatre sur lassociation, mais ne doit pas tre rattach lune des extrmit
68

Rles de lassociation

Le rle permet de dcrire, laide dun nom, comment une classe peroit une autre classe au travers de lassociation Un rle doit figurer lextrmit de lassociation quil qualifie Les rles sont facultatifs Lassociation peut faire figurer les deux, un seul ou aucun des rles

Notation

Personne salari
employeur

Socit

69

Association rflexive

Une association peut mettre en jeux deux classes distinctes Mais, elle peut aussi apparatre sur une seule et mme classe Dans ce cas prcis, lassociation est dite rflexive

Client

achte

Voiture

Exemple dassociation classique

Vit en couple avec

Personne

Exemple dassociation rflexive

71

Navigabilit de lassociation

La navigabilit dune association permet de dfinir dans quel sens lassociation peut tre parcourue La navigabilit dune association est modlise par une flche sur lextrmit pouvant tre atteinte par navigation La navigabilit peut tre bidirectionnelle Labsence de flche sur les deux extrmits signifie que lassociation est bidirectionnelle

Notation
Personne
a vu

Film

Chaque personne a accs aux films qu'elle a dj vus, mais partir d'un film, on interdit de retrouver la liste des personnes l'ayant vu

Client

achte

Voiture

Lassociation peut tre parcourue dans les deux sens

72

Multiplicits de lassociation

La cardinalit dun ensemble est le nombre dlments de cet ensemble La multiplicit est la spcification des valeurs de cardinalit admissibles pour un ensemble

Notation
Personne
1 ..* emploie 1

Socit

Une socit emploie de une plusieurs personnes Une personne est employe par une seule socit

La multiplicit est associe une extrmit de lassociation et indique combien dinstances de la classe considre peuvent tre lies une instance de lautre classe

Client
0..1

achte *

Voiture

Un client achte zro plusieurs voitures Une voiture peut tre achete par un client au plus

73

Multiplicits de lassociation

La multiplicit est une spcification respectant les conventions suivantes :


1 0..1 : un et un seul (notation facultative) : zro ou un

N
M..N * 0..* 1..*

: exactement N (N: entier naturel)


: de M N (deux entiers naturels) : de zro plusieurs : de zro plusieurs : de un plusieurs

N..*

: N ou plus (N: entier naturel)

74

Classe associative
Une association peut tre matrialise par une classe dans une des circonstances suivantes : si lassociation est porteuse dattributs si lassociation se matrialise par un objet concret dans le monde rel si lassociation est de multiplicit M .. N Une classe associative est une classe part entire Elle est modlise par un lien en pointill allant de la classe vers lassociation concerne

Notation

Classe A

Classe B

Classe associative

82

Classe associative
Exemples

Socit
nom numSiret adresse

1..* Emploi
fonction salaire

Personne
nom prenom age

Etudiant
nom prnom adresse

1..* Rsultat
note

1..*

Concours
nom cole date lieu

83

Les diffrents types dassociation

Il existe plusieurs types dassociation Lagrgation Forme spciale dassociation entre un tout et une partie La composition Forme spciale dagrgation o le cycle de vie de la partie est rgi par celui du tout Lhritage Forme spciale dassociation permettant de factoriser les caractristiques et comportement communs un ensemble de classes Lassociation simple Ce sont les associations qui ne se rclament daucune des catgories prcdemment cites

84

Agrgation
Une agrgation est une association non symtrique dans laquelle lune des deux classes joue un rle prpondrant Une agrgation est une relation tout-partie entre un agrgat (le tout) et un composant (la partie) Lagrgation est reprsente par un losange blanc du ct de lagrgat Le composant peut appartenir simultanment plusieurs agrgats Le cycle de vie des composants nest pas tributaire de celui de lagrgat

Personne

tudie 1..* 0..*

Universit

Une personne peut tudier dans aucune plusieurs universits Une universit peut accueillir de une plusieurs personnes

85

Composition
Une composition est une agrgation part entire La composition est reprsente par un losange noir du ct de lagrgat Le composant ne peut pas appartenir simultanment plusieurs agrgats (multiplicit 1 ou 0..1 ct agrgat) Le cycle de vie des composants est tributaire de celui de lagrgat Si la multiplicit est 0..1 ct agrgat, le composant peut ne pas tre associ lagrgat immdiatement, mais une fois lassociation effectu le composant vit et meurt avec lagrgat

Universit

possde

1..*

Salle

Une universit est compose de une plusieurs salles Une salle nappartient qu une et une seule universit

86

Gnralisation / Spcialisation
La gnralisation / spcialisation est une relation de classification entre une classe plus gnrale et une classe plus spcialise On lappelle aussi relation dhritage ou relation estune-sorte-de La gnralisation est reprsente au moyen dune flche pointant de la classe la plus spcialise vers la classe la plus gnrale

Notation
Super-classe
Spcialisation

Gnralisation

Sous-classe

88

Gnralisation / Spcialisation
Exemple

Compte numro solde getSolde()

CompteCourant montantDcouvertAutorise getDecouvert()

CompteEpargne tauxEpargne calculerIntrts()


89

Classe et opration abstraites


Une classe abstraite est une classe pour laquelle il nest pas possible de crer dinstances directement Son nom est crit en italique Une opration abstraite dune classe A est une opration ne possdant pas dimplmentation dans A mais qui doit obligatoirement tre implmente dans les sous-classes de A Sa signature est crite en italique Toute classe contenant au moins une opration abstraite est abstraite

Forme gomtrique Dessiner()

Rectangle Dessiner()

Rond Dessiner()

90

Diagramme de classes (Recommandations)

Toujours garder lesprit quun diagramme de classe propose une vision statique des donnes du problme Les associations dun diagramme de classes sont statiques, mais la cration des liens entre objets est dynamique Ne jamais hsiter donner les multiplicits

95

UML (Diagramme dobjets, Diagrammes dinteraction)


Unified Modeling Language

Diagrammes dobjets et dinteraction


Issus en grande partie de la mthode OMT (Rumbaugh) et de la mthode Booch Sappuient sur un diagramme de classe. Ils prsentent les relations et les interactions intervenant entre certains objets du systme Le diagramme dobjets est trs peu utilis car redondant avec le diagramme de classes Le diagramme de squence est trs important car (a) il est trs descriptif et (b) il peut tre facilement coupl un cas dutilisation Le diagramme de collaboration est trs difficile dutilisation pour les interactions un peu complexes
99

1 Les diagrammes dinteraction

Diagrammes dinteraction

Il existe deux types de diagrammes dinteraction :


Le diagramme de collaboration Il met laccent sur la reprsentation spatiale dune interaction Le diagramme de squence Il met laccent sur la reprsentation temporelle dune interaction

Diagramme de collaboration et diagramme de squence sont quivalents

101

Interaction (Dfinition)

Une interaction est un ensemble dobjets qui interagissent en schangeant des messages

Les objets dun diagramme dobjets peuvent participer une interaction Un diagramme dinteraction propose la mme information quun diagramme dobjets, en y ajoutant les envois de messages interobjets

102

Les types de message

Deux objets qui communiquent peuvent le faire au moyen dun message Lenvoi dun message peut provoquer :
soit le dclenchement dune opration sur lobjet rcepteur soit lmission dun signal vers lobjet destination (voir diagramme tats-transitions) soit la cration dune instance soit la destruction dune instance

103

1.1 Le diagramme de collaboration

Diagramme de collaboration

Objectifs Montrer explicitement les interactions pouvant intervenir entre des objets Reprsenter les interactions en favorisant une vision spatiale de celles-ci Prciser lordre dans lequel les interactions interviennent sans avoir recours au temps

105

Diagramme de collaboration
Exemple

Un diagramme de collaboration est identique un diagramme dobjets auquel on ajoute des envois de message Les messages sont reprsents par des flches numrots pour indiquer lordre des envois Un lment extrieur au systme, comme un acteur, peut figurer dans un diagramme de collaboration

MaBanque:Banque 1 : effectuerVirement 2 : dbiter MonCompteCourant:CompteCourant

3 : Crditer

MonCompteEpargne:CompteEpargne
106

1.2 Le diagramme de squence

Diagramme de squence

Objectifs Montrer explicitement les interactions pouvant intervenir entre des objets Reprsenter les interactions temporelle de celles-ci en favorisant une vision

Prciser la chronologie des interactions en prcisant les contraintes temporelles

109

Objet du diagramme de squence (Notation)


Dans un diagramme de squence, on ajoute lobjet un axe temporel reprsentant sa ligne de vie Cet axe temporel est matrialis par une ligne pointille sous lobjet

Notation

nomObjet: nomClasse

Sur cet axe temporel apparaissent des bandes rectangulaires reprsentant les priodes dactivit de lobjet
On considre que le temps scoule du haut vers le bas

Axe temporel

110

Envoi de message
Les envois de message sont matrialiss par des flches tiquets par le nom du message envoy 3 types de message :
Message synchrone lobjet metteur envoie le message et reste bloqu tant que le destinataire na pas fini de traiter le message reu Message asynchrone lmetteur envoie le message et ne reste pas bloqu pendant le traitement du message par le destinataire Message rflexif lobjet senvoie un message lui-mme

Notation
: Classe1 : Classe2

Message synchrone Retour dappel synchrone

Message rflexif

Message asynchrone Retour asynchrone

111

Diagramme de squence
Exemple

Reprsentation chronologique des envois de messages entre objets Possibilit dexprimer de faon prcise les contraintes temporelles grce un axe gradu Un lment extrieur au systme, comme un acteur, peut figurer dans un diagramme de squence

: Client

: ServeurWeb
Afficher carte Passer cde

: Cuisinier

Dcrire cde

Raliser plat

Envoyer message

Donner disponibilit
112

Cration, animation et destruction dun objet


Certains messages ont une signification bien prcise :
Message Crer message ayant pour nom Crer , demandant la cration dune instance Message dactivation message de nom quelconque qui dclenche une bande dactivit chez une instance Message Dtruire message ayant pour nom Dtruire demandant la destruction dune instance

Notation
: Classe1
Crer

: Classe2

Message activation

Dtruire

Une instance dtruite voit sa bande dactivit sachever par une croix

113

Condition sur message


Il est possible de faire apparatre des branchements conditionnels sur un diagramme de squence Les conditions sont prsentes sous formes de gardes entre [ crochets ]

: Client

: Serveur

: Cuisinier

: Barman

Passage cde
[Repas] Description cde [Apritif] Description cde

114

Contraintes temporelles

Tracer une flche oblique pour reprsenter un dlai de propagation important entre deux objets Des contraintes temporelles sur laxe vertical peuvent tre ajoutes sous forme textuelle entre {accolades}

Notation
: Classe1
X
Message1

: Classe2

{Y-X >10s}
Message2

115

2 Le diagramme dobjet

Diagramme dobjets

Objectifs Illustrer par un exemple concret un diagramme de classes Faciliter la validation dun diagramme de classes complexe en prsentant une ou plusieurs instanciation de celui-ci Visualiser un instantan de ltat dun systme

117

Diagramme dobjets (Dfinition)

Un diagramme dobjets est une instance dun diagramme de classes reprsentant des objets et les liens qui les unissent
Un diagramme dobjets est un graphe reprsentant des instances de classe lies entre elles statiquement Un diagramme dobjet est conforme au diagramme de classes quil illustre (vrifie les contraintes) Un diagramme dobjets ne montre pas les interactions entre les objets
118

Objet (Notation) Notation


Un objet est reprsent par un rectangle dcoup en deux compartiments Sont prsents :
le nom de lobjet la liste des attributs valoriss

nomObjet : nomClasse
nomAttribut1 = valeur1 nomAttributN = valeurN

119

Nom de lobjet (Notation)


Le nom de lobjet peut tre prsent selon trois formats plus ou moins prcis Il peut contenir :
Un nom optionnel identifiant lobjet de manire unique Le nom optionnel de la classe laquelle appartient lobjet

Notation
nomObjet

Ou

nomObjet : nomClasse

Le nom de lobjet est soulign

Ou

: nomClasse

120

Diagramme dobjets
Exemple

Diagramme de classes

Personne
nom prnom

salari

Socit
employeur
nom activit

Philippe:Personne nom = Dupont prnom = Philippe

Diagramme dobjets
Nagora:Socit nom = Nagora Eric:Personne nom = Durand prnom = Eric 121 activit = SSII

Objet composite
Exemple

Diagramme de classes

Universit

possde

1..*

Salle

Diagramme dobjets

Orsay : Universit
salle H123 : Salle salle G246 : Salle

123

Diagramme dobjets (Recommandations)

Le diagramme dobjets ne doit tre utilis que pour clarifier certaines structures complexes apparaissant sur un diagramme de classes Tous les objets du diagramme de classes ne doivent pas obligatoirement figurer sur le diagramme dobjets Le diagramme dobjets peut servir de base un diagramme dinteraction

124

Diagrammes dobjets et dinteraction (Recommandations)

Utiliser le diagramme dobjets uniquement pour illustrer des situations complexes dun diagramme de classes Ne pas mlanger diagramme de classes et diagramme dobjets sur un mme modle (certains outils le permettent) Privilgier lutilisation du diagramme de squence celle du diagramme de collaboration, ds la phase danalyse Ne pas mlanger des niveaux de dtails diffrent sur le mme diagramme de squence

125

UML (Diagramme tats-transitions)


Unified Modeling Language

Diagramme tats-transitions
Objectifs Dfinir les circonstances permettant le dclenchement des traitements Certains traitements sont tributaires de la survenue dvnements dans le systme Reprsenter les interactions asynchrones au sein du systme Lappel synchrone de fonctionnalit nest pas toujours un moyen de communication satisfaisant, en particulier pour les applications industrielles ou temps-rel Dterminer les tats stables par lesquels passe le systme Parmi linfinit dtats caractrisant un systme, seuls quelques uns sont significatifs pour le problme donn
129

Diagramme tats-transitions (Dfinition) Le diagramme tats-transitions est un automate tats finis dcrivant les diffrents tats par lesquels passe une instance quelconque dune classe en rponse des vnements
Le diagramme tats-transitions ne prsente que les tats significatifs pour le problme pos Il ne montre que les transitions autorises entre les diffrents tats de lobjet Il donne des prcisions sur les vnements dclencheurs des transitions Il indique les traitements effectus par lobjet lorsquune transition est effectue
130

Diagramme tats-transitions

Un diagramme tats-transitions est utilis pour dcrire le comportement type dune instance quelconque dune classe Seules les classes ayant un cycle de vie significatif ncessitent le recours au diagramme tats-transitions Un diagramme tats-transitions est utilis pour modliser le comportement dobjets actifs interagissant entre-eux de manire asynchrone

131

Diagramme dtats-transitions
Exemple

atteint la majorit [ job trouv ]

en activit

ge lgal de la retraite

embauche perte emploi atteint la majorit [pas de job trouv] la retraite

dcs

au chmage

ge lgal de la retraite

132

Etat dun objet

Un objet est caractris par un ensemble dattributs Les attributs dun objet changent de valeur au cours du temps

Voiture couleur : chane anne : entier marque : chane

Les valeurs des attributs dun objet forment ltat de lobjet

Voiture couleur = bleue anne = 1980 marque = Renault

peindre en jaune

Voiture couleur = jaune anne = 1980 marque = Renault

normale

repeinte

133

Comment trouver les tats significatifs dun objet


Pierre Pierre

En gnral, les tats significatifs dun objet peuvent tre dcels en examinant :
les valeurs de ses attributs qui satisfont certaines conditions intressantes pour le systme les activits quil exerce dans le systme les vnements sur lesquels il est en attente

ge = 12

ge = 34

Oui

Mineur
Non

[ ge < 18 ]

Majeur

Ampoule
Eclairer()
Allume Eteinte

Au dpart

En course

135

Etat d un objet (Notation)

Un tat est reprsent

au moyen dun rectangle coins arrondis

Notation

Le nom de ltat est

positionn lintrieur du rectangle

Le nom de ltat est en


gnral un adjectif ou une petite phrase le dcrivant

NomEtat

136

Etat initial et tat final d un objet (Notation)


Ltat initial indique le point

de dpart par dfaut du diagramme tats-transitions

Notation
Etat initial

Ltat initial est reprsent


par un point noir plein

Ltat final indique que le


cycle de vie de linstance sachve
Etat final

Ltat final est reprsent

par un point noir encercl

137

Evnement (Dfinition) Un vnement est loccurrence dun stimulus susceptible dentraner le dclenchement dune raction au sein du systme
La provenance de lvnement peut tre aussi bien interne, quexterne au systme

Un vnement est par nature instantan et doit donc tre trait immdiatement
Un vnement ne provoque pas systmatiquement une raction de la part du systme

138

Les diffrents types dvnement


Il existe divers types dvnement :

Lvnement sur condition Condition boolenne particulire dont la valeur passe VRAI (ne pas confondre avec une garde) ex : le feu est vert
Lvnement temporel Ecoulement dune certaine priode de temps ou occurrence dune certaine heure / date dfinie ex : Aprs (15s) Quand (date = 1er Janvier 2002) Le signal Signal explicitement mis par un objet Ex : Bouton Souris = down

139

Signal mis par un objet

Un objet peut mettre un signal


vers un autre objet

Notation

A la diffrence de linvocation
dune mthode, un signal est asynchrone
Signal User input

Les signaux peuvent tre

modliss sur un diagramme de classes laide dune classe strotype Signal


donnes Elles apparaissent comme attributs de la classe

Signal Bouton Souris


position

Signal Touche clavier


caractre

Un signal peut transporter des

140

Transition entre tats (Dfinition) Une transition est une connexion oriente entre deux tats, se dclenchant lorsque lvnement auquel elle est associe est reu par lobjet et provoquant ainsi le passage dun tat vers lautre
Une absence de transition entre deux tats indique quil nest pas possible pour un objet de passer de lun de ces tats vers lautre Ltat source est ltat dans lequel se trouve lobjet avant lapparition de lvnement Ltat cible est ltat dans lequel se retrouve lobjet aprs la survenue de lvnement
141

Transition entre tats (Notation)


Une transition est modlise sous la forme dune flche reliant les deux tats, tiquete par une description textuelle de la transition La description textuelle est constitue de trois lments :
Un vnement dclencheur Une condition de garde Une action

Notation
vnement [ Garde ] / Action

NomEtatSource

NomEtatCible

142

Garde sur transition (Dfinition et notation)

Une garde sur une transition est une condition boolenne optionnelle qui doit tre vrifie pour que la transition puisse tre dclenche lors de la survenue de lvnement
A la diffrence de lvnement sur condition, la garde est value une
seule fois ( la survenue de lvnement) La garde est exprime sous la forme dun texte entre [ crochets ]

Notation
60me anniversaire [ a cotis ]

Salari

Retrait

143

Action dune transition (Dfinition et notation)

Une action sur une transition est un traitement atomique excut lorsque la transition est dclenche
Une action peut comporter
- Des appels des oprations de lobjet - Des crations et destructions dautres instances - Des envois de signaux vers des objets (y compris lui-mme)

Une action ne peut pas tre interrompue par un vnement et


saccomplit totalement contrairement une activit Salari
60me anniversaire [ a cotis ] / Faire un pot()

Retrait

vigilance

Mouvement dtect / Send(Problme) Central

En alerte
144

Transition rflexive sur un tat


Une transition peut avoir pour tat source et tat cible un seul et mme tat On parle alors de transition rflexive ou auto-transition Ce type de transition est utile lorsque lon souhaite excuter une action tout en revenant dans le mme tat

Notation
Arrt

Bouton off press

Tic horloge / Emettre bip()

En marche

Bouton on press

145

Actions dun tat (Dfinition) Une action dtat est un traitement interne atomique associ un tat et dont les conditions de dclenchement sont lies soit la survenue dun vnement, soit lentre ou la sortie de ltat
Un tat peut comporter :
Une action en entre A chaque fois que lobjet entre dans ltat, laction est excute Un action en sortie A chaque fois que lobjet sort de ltat, laction est excute Plusieurs actions internes sur vnement A chaque fois quun vnement dfini survient, une transition interne est dclenche et laction associe est excute
146

Actions dun tat (Notation)

Les actions associes un tat


sont identiques celles associes aux transitions

Notation NomEtat
Entry / Action entre Exit / Action sortie Evnement1 / Action1 EvnementN / ActionN

Les actions en entre et en sortie

permettent de factoriser des traitements effectuer Elles sont prcdes des mot-cls Entry ou Exit

Une transition interne na pas les

mmes effets quune transition rflexive

147

Activit dun tat (Dfinition) Une activit dtat est une squence interruptible dactions associe un tat et sexcutant tant que lobjet se trouve dans cet tat
Chaque action composant lactivit est atomique (non interruptible
et sexcutant totalement)

Par contre, la squence est interruptible par un vnement


quelconque intervenant entre deux actions

Une activit peut sexcuter indfiniment dans un tat ou bien


sachever delle-mme ou bout dun certain temps

Aprs interruption conscutive un vnement, lactivit


redmarre si lobjet est rest dans le mme tat
148

Activit dun tat (Notation)


Lactivit
dun tat est prcde du mot-cl Do

Notation

Lactivit se dclenche une


fois que lobjet se retrouve dans ltat associ celle-ci

NomEtat
Entry / Action entre
Exit / Action sortie Evnement1 / Action1 EvnementN / ActionN Do / Activit

Si ltat possde une action en


entre, celle-ci sera dclenche avant que ne dmarre lactivit

La survenue dun vnement

sur action interne interrompt lactivit le temps du traitement de laction interne


149

Activit et actions
Exemple

Activits de la journe 9h / prparerCaf()


prparerCaf() dbrancherRpondeur() travailler() rpondreTlphone() travailler () ouvrirPorte() travailler () brancherRpondeur() manger() dbrancherRpondeur() travailler () rpondreTlphone() travailler () brancherRpondeur() prendrePain() 150

Au bureau
Entry / dbrancherRpondeur() Exit / brancherRpondeur() tlphoneSonne / rpondreTlphone() sonneriePorte / ouvrirPorte() 12h / manger()

Do / travailler()
18h / prendrePain()

Sous-tats squentiels
Exemple

Dmarr Marche avant


2nde Cal monter descendre 1re freiner descendre monter 3me monter 4me freiner descendre 5me descendre monter

enclencher

dbrayer Point mort enclencher Marche arrire

158

UML (Diagramme dactivits)


Unified Modeling Language

Diagramme dactivits

Objectifs Dterminer les activits induites par un flot de contrle transverse au systme La modlisation objet incite utiliser la dlgation entre objets et de ce fait rend difficile la lecture des flots de contrle au travers du systme Dfinir avec prcision les traitements qui ont cours au sein du systme Certains algorithmes ou calculs ncessitent de la part du modlisateur une description pousse

167

Diagrammes dactivits

Objectifs (suite) Reprsenter les interactions synchrones au sein du systme Certains types dapplication dveloppent de lourds algorithmes ou calculs squentiels et nont pas recours des communications asynchrones entre objets

168

Diagramme dactivits
Exemple

Choisir terrain

Choisir maison
[trop cher] [abordable]

Voir notaire

Chercher location

Voir banquier
172

Diagramme dactivits

Une transition sur un diagramme dactivits est reprsente par une flche ventuellement tiquete par une garde Un branchement conditionnel est reprsent par un losange do partent toutes les alternatives obligatoirement exclusives On utilise des fourches et des jonctions pour synchroniser les activits entre-elles Etat initial et final peuvent tre reprsents sur le diagramme

Choisir terrain

Choisir maison

Voir notaire

[trop cher]

[abordable]

Voir banquier

173

Sous-diagramme dactivits

Sous-diagramme

Un tat activit figurant sur un diagramme dactivit peut tre redcompos dans un sousdiagramme dactivit La terminaison du sousdiagramme entrane le dclenchement de la transition en sortie de lactivit dcompose

Choisir terrain

Choisir maison

Voir notaire

[trop cher]

[abordable]

Voir banquier

Etudier projet

Prendre dcision 174

Couloirs dun diagramme dactivits


Chaque couloir possde un nom Il nest pas obligatoire que ce nom ait une smantique particulire En gnral, un couloir correspond une classe du systme

Client
Passer commande

Commercial

Magasinier

Enregistrer commande

Payer

Excuter commande

Livrer commande

Rcuprer commande 175

UML (Diagramme de composants, Diagramme de dploiement)


Unified Modeling Language

Diagramme de composants

Objectifs Visualiser lorganisation physique gnrale dun systme dcrite en terme de composants logiciels Prsenter les dpendances unissant les diffrents constituants logiciels du systme Etablir les diffrentes configurations physiques logiciels du systme liant les lments

180

Diagramme de composants (Dfinition)

Un diagramme de composants est un diagramme reprsentant lorganisation et les dpendances liant les lments physiques logiciels dun systme
Un diagramme de composants propose une vision statique de lorganisation des lments physiques logiciels du systme Un diagramme de composants montre les dpendances existant entre les composants physiques logiciels du systme Un diagramme de composants ne montre pas les interactions entre les composants physiques logiciels
181

Diagramme de composants
Exemple

Banque.h {version=3.1}

Compte.h {version=2.2} Banque.cpp {version=3.1}

Client.h {version=1.0}

Entreprise.h {version=1.2}

182

Composant (Dfinition) Un composant est un lment physique logiciel interchangeable dun systme qui fournit limplmentation dun ensemble dinterfaces
Un composant est limplmentation physique logicielle dun ensemble dlments logiques (classe ou collaboration) Un composant propose un ensemble dinterfaces quil se doit de respecter Un composant peut tre remplac par un autre composant respectant les mmes interfaces Un composant peut tre un excutable, une librairie, une table, un fichier source, un document,
183

Composant (Notation) Notation


Un composant est reprsent par un rectangle avec des onglets
Le nom du composant peut tre prcd du nom du paquetage qui le contient Il est possible de dvelopper le composant de faon faire apparatre le nom des lments logiques quil implmente
<< Strotype >> Nom paquetage :: Nom composant

Ralise Nom Elment logique 1 Nom Elment logique N

184

Interface dun composant (Dfinition) Une interface est un ensemble doprations servant spcifier un service propos par un composant ou par une classe
Une interface peut tre associe aussi bien au niveau logique (rare) quau niveau physique Linterface contient les oprations mises la disposition des autres composants Un composant peut implmenter plusieurs interfaces Un composant se doit de proposer une implmentation pour chacune de ses interfaces
185

Interface dun composant (Notation)


Une interface peut tre reprsente sous la forme dune icne (rond) ou sous une forme dveloppe prsentant les oprations Il est possible de reprsenter lexportation et limportation dune interface par un composant

Client.java

Compte.java

GestionCompt e << Interface >> GestionCompt e Ouvrir(int) Dposer(int) Retirer(int)

Client.java

Compte.java

186

Diagramme de dploiement

Objectifs Etablir la cartographie complte de dploiement du logiciel sur le matriel Visualiser la topologie matrielle dun systme Etablir la nature des connexions reliant les lments matriels du systme

187

Diagramme de dploiement (Dfinition)

Un diagramme de dploiement est un diagramme de classes ou un diagramme dobjets reprsentant les nuds ou les instances de nuds sur lesquels le systme sexcute
Un diagramme de dploiement propose une vision statique de la topologie du matriel sur lequel sexcute le systme Un diagramme de dploiement montre les associations (connexions) existant entre les nuds du systme Un diagramme de dploiement ne montre pas les interactions entre les nuds
188

Diagramme de dploiement
Exemple

<<processor>> Serveur Web Mmoire=128 meg

<<processor>> Serveur Applicatif Mmoire=256 meg

<<processor>> Serveur de donnes Mmoire=256 meg

<<network>> Rseau local

<<processor>> Proxy Mmoire=128 meg

189

Noeud (Dfinition) Un nud est un lment physique matriel sur lequel le systme sexcute

Un nud est un lment matriel sur lequel sont dploys un certain nombre de composants logiciels du systme Un nud est un lment matriel sur lequel sont excuts un certain nombre de composants logiciels du systme Un nud peut tre un processeur, un priphrique, un rseau Un nud est assimilable une classe et possde donc des attributs
190

Noeud (Notation)
Un nud est reprsent par un cube Le nom du nud peut tre prcd du nom du paquetage qui le contient Il est possible de dvelopper le nud de faon faire apparatre le nom de ses attributs Il est possible de dvelopper le nud de faon faire apparatre le nom des composants quil dploie

Notation

<< Strotype >> Nom paquetage :: Nom nud

Nom attribut 1: type1

Nom attribut N : typeN

Dploie Nom Composant 1 Nom Composant N


191

Connexion entre nuds (Dfinition) Une connexion est une connexion physique reliant deux nuds entre-eux
Une connexion entre deux nuds est lquivalent dune association entre deux classes sur un diagramme de classes Exemples de connexion :
une connexion Ethernet, une ligne srie, un bus partag,

192

Instance de nud (Notation)

On peut reprsenter des instances de nuds dans un diagramme de dploiement objet Une instance de nud est reprsent par un cube Le nom de linstance dun nud est compos dun identifiant de linstance suivi du nom du nud Les attributs de linstance apparaissent valoriss

Notation

<< Strotype >>

Nom instance :: Nom nud Nom attribut 1 = valeur1

Nom Composant N = valeurN

Dploie Nom Composant 1 Nom Composant N


193

UML (Paquetage)
Unified Modeling Language

Sommaire

Introduction Objectifs Paquetage Espace de nommage dun paquetage Dpendances entre paquetages

196

Paquetage

Notion introduite vritablement par UML car superficiellement dcrite par OMT (module, sheet) et par Booch (subsystem ) Le paquetage est uniquement un lment dorganisation et na pas de ralit concrte dans le systme physique final

Notion fondamentale pour la gestion de gros systmes ncessitant la mise en place dune organisation hirarchique et rpartie

197

Paquetage

Objectifs Dcomposer un systme complexe selon une organisation hirarchique La meilleure faon daborder les gros systmes consiste les dcomposer en sous-systmes lmentaires Structurer un systme complexe selon une organisation modulaire Le paquetage permet de mettre en uvre un dcoupage en couches, soit base dinterfaces client/serveur, soit selon les diffrentes vues architecturales du systme

198

Paquetage

Objectifs (suite) Rpartir leffort de modlisation sur lensemble des acteurs impliqus dans la construction du systme Un gros systme ncessite la participation de nombreux intervenants sur lesquels il faut rpartir la charge de travail Rpartir les tches de modlisation selon les comptences de chacun Le paquetage favorise la mise en place dune organisation o lon attribue chaque intervenant une unit de travail rpondant ses comptences

199

Paquetage (Dfinition)

Un paquetage est un regroupement dlments de modlisation

Un paquetage permet de regrouper sous une mme appellation un ensemble dlments de modlisation UML tels que :
des classes, des composants, des nuds, des collaborations, des cas dutilisation, des diagrammes de classes, de collaboration, de squence, de cas dutilisation, dautres paquetages

200

Paquetage
Un paquetage est susceptible de contenir nimporte quel lment de modlisation UML Dans la pratique on utilise les paquetages :
Pour regrouper au sein dune mme entit, un diagramme de cas dutilisation, les diagrammes de collaboration ou de squence associs, le diagramme de classes et les diagrammes tatstransitions correspondant Il apparat alors comme un dossier dans une arborescence de fichiers Pour dcomposer des hirarchies de classes dans les diagrammes de classe Il possde donc une reprsentation graphique associe

Le type de la relation qui unit les lments leur paquetage est de type composition

201

Paquetage
Exemple

Gestion commerciale

import

Gestion utilisateurs

import import

Gestion produits

import

Gestion fournisseurs

202

Paquetage (Notation)
Un paquetage est reprsent par un dossier contenant un nom Le nom du paquetage peut tre prfix par le nom du paquetage qui le contient Le contenu du paquetage peut tre expos Les lments constituant le paquetage donne la visibilit (prive, publique, protge) quils affichent vis--vis de lextrieur

Notation

NomPaquetagePre::NomPaquetage

Nom Paquetage
+lment1 +lment2 #lment4 -lment3

203

Espace de nommage dun paquetage

Un paquetage forme un espace de nommage Le nom des lments dun paquetage doit tre unique au sein du paquetage Le nom dun lment au sein de paquetages imbriqus est prfix par tous les paquetages englobant ex : GestionProduits::Catalogue::Boulon

204

Dpendances entre paquetages

Il existe 4 types de dpendances entre paquetages : Les dpendances amies Accs tous les lments dun paquetage quelque soit leur visibilit Les dpendances dimportation Importation dlments dans lespace de nommage en tenant compte des visibilits Les dpendances daccs Accs des lments en tenant compte de leur visibilit Les dpendances de gnralisation Gnralisation / spcialisation de paquetage
205

Dpendances entre paquetages (Notation)


Une dpendance amie est tiquete par friend Une dpendance dimportation est tiquete par import Une dpendance daccs est tiquete par access Une dpendance de gnralisation utilise la flche de gnralisation

Notation

friend

access

import

206

Paquetage (Recommandations)

Penser utiliser les paquetages pour structurer votre projet Penser que le paquetage permet de hirarchiser des diagrammes (classes, cas dutilisation, ), mais aussi de regrouper un ensemble de diagrammes entre-eux

Lutilisation du paquetage est fondamentale pour la mise en place dune dmarche systme

207

UML (Mcanismes dextension dUML)


Unified Modeling Language

Sommaire

Introduction Objectifs Note Strotype Etiquette Contrainte Extensions standard Invariant, pr-condition, post-condition OCL

209

Mcanismes dextension dUML

Les mcanismes dextension sont essentiels car ce sont eux qui garantissent louverture du langage et son adaptabilit de nouvelles problmatiques Mcanismes utiliser avec prcaution et parcimonie ne mettre entre les mains que des responsables mthodes

210

Mcanismes dextension dUML

Objectifs Augmenter la porte du langage dans des directions bien matrises Les concepts standard proposs par UML peuvent tre insuffisants pour modliser certains problmes complexes Adapter le langage des habitudes et mthodes de dveloppement particulires Certains corps de mtier ou certaines entreprises possdent une culture de dveloppement qui leur est propre

211

Mcanismes dextension dUML

UML fournit 4 mcanismes dextension du langage : Les notes Apport dun commentaire nayant aucune consquence sur la smantique du modle Les strotypes Cration de nouveaux concepts UML partir des concepts standard Les tiquettes (tagged values) Extension des proprits associes un concept UML Les contraintes Extension de la smantique dun concept UML en ajoutant de nouvelles rgles ou en modifiant les anciennes
212

Mcanismes dextension standard dUML

UML fournit des strotypes, des tiquettes et des contraintes standard :


strotype : extend, use, import, executable, process, thread, tiquette : persistance, smantique, contrainte : sous-ensemble, ordonn, ou, disjoint, chevauchement, complte,

UML permet de dfinir ses propres strotypes, tiquettes et contraintes

213

Note (Dfinition) Une note est un commentaire textuel ou graphique que lon attache un lment ou un ensemble dlments
Une note ne modifie pas la smantique du modle Elle est reprsente par un rectangle corn li par un ou plusieurs traits pointills aux lments quelle commente

Les attributs et les mthodes de ces classes seront dfinies en phase de Conception

Client

Cf. Guide mthode http://wwww.nagora.com/ projetY/conception.html

Compte
214

Strotype (Dfinition) Un strotype est une chane de caractres qui associe un lment UML existant permet de dsigner un nouveau type dlment UML
Un strotype apparat entre guillemets prs du nom de l lment strotyp On peut reprsenter un strotype au moyen dune nouvelle icne
<<Mtier>> Client
Une reprsentation textuelle et une reprsentation graphique dune classe strotype

<<Technique>> Connexion BD

Client <<Sous-systme>> Gestion utilisateurs 215

Etiquette (Dfinition) Une tiquette est une chane de caractres qui associe un lment UML permet de lui ajouter une proprit et sa valeur associe
Ltiquette apparat entre {accolades} et prcise le nom de la proprit et sa valeur Utiles pour la gnration de code ou la gestion de configuration

Utilisateur
nom { persist = Oui } prnom { persist = Oui } dure connexion { persist = Non }

Serveur
{ processeurs = 4 }

Gestion utilisateurs
{ version = 2.1 }

216

Contrainte (Dfinition) Une contrainte est une chane de caractres qui associe un lment UML permet dajouter de nouvelles rgles ou de modifier des rgles existantes
La contrainte apparat entre {accolades} et dfinit la rgle appliquer On peut utiliser du texte informel ou recourir lutilisation dun langage plus prcis comme OCL (Object Constraint Language)
{ dont un compte chque } Compte * type

Utilisateur

Employ
anciennet * parrain * parrain

Client

{ scuris }

Serveur

{ self.parrain.anciennet > 1an }

217

Invariant, pr-condition, postcondition


Il existe 3 contraintes standard strotypes mritant dtre cites ci :
La contrainte strotype invariant Il sagit dune contrainte attache un ensemble de classes ou de relations et dont la condition associe doit toujours tre vrifie dans le temps par les instances ou les liens des lments attachs La contrainte strotype pr-condition Il sagit dune contrainte attache une opration dune classe et dont la condition doit tre vrifie pour que lopration puisse tre invoque La contrainte strotype post-condition Il sagit dune contrainte attache une opration dune classe et dont la condition doit tre vrifie aprs linvocation de lopration
218

Object Constraint Language

OCL est un langage formel pour exprimer des contraintes OCL est un langage facile lire et crire OCL nest pas un langage de programmation
Pas de logique de programme Ne sert pas dcrire des flots de contrle

OCL est un langage dvaluation dexpression


Une expression retourne une valeur qui nest pas ncessairement boolenne

OCL est un langage typ


Integer, Real, Boolean, String, Enumeration, Collection, Set, Bag

219

Object Constraint Language

OCL est utilis pour Spcifier des contraintes gnrales sur les classes, les associations et les oprations Spcifier des invariants sur les classes et les associations Spcifier des pr / post conditions sur les oprations Dcrire des gardes Naviguer dans les diagrammes

220

Object Constraint Language

On associe une expression OCL un contexte dapplication, soit avec un lien de dpendance, soit en utilisant le mot-cl Context On peut prciser la nature de la contrainte : invariant, pr/post condition

Personne

{self.ge > 18}

{ Context Personne inv : self.ge > 18 }

221

Object Constraint Language


Exemples

Context Personne inv : self.anciennet > 0 Context Personne::setPrimeAnciennet() post : self.anciennet > 1 AND result = self.anciennet * 1500 Context Socit inv : self.employeur.auChmage=False inv : self.employ->notEmpty (redondant avec multiplicit)

Socit
anciennet setPrimeAnciennet()

employ {Ou - exclusif} employeur

1..*

Personne
auChmage 222

You might also like