Cours UML Support1 PDF
Cours UML Support1 PDF
Cours UML Support1 PDF
Pr. BENHADOU
Gense dUML
Gense dUML
UML 2.0
- 2002
UML 1.3
- 1993
Booch93
OMT -2
OMT -1
OOSE
Partenaires
OMG
Axe structurel
modlisation statique du systme quels objets manipule le systme ? dtermination du QUOI
Axe fonctionnel
modlisation des traitements offerts par le systme que fait le systme ? dtermination du COMMENT
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
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
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
Notation
DAB::Retirer argent
18
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.
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)
Notation
Utilisateur
Utilisateur externe
Utilisateur interne
23
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
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
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
Il existe 3 types de dpendances entre use cases : Les dpendances dutilisation Mise en facteur de squences dvnement communes
28
Dpendance dutilisation
Notation
Cas dutilisation 1
Dpendance dutilisation
Permet de dcomposer
un cas dutilisation complexe en cas dutilisation plus simples
Acteur 1 Client
Retirer argent
31
Dpendance dextension
Notation
Cas dutilisation 1
Dpendance dextension
Notation
Cas dutilisation 1 Points dextension : . point extension1 : emplacement1 . point extension2 : emplacement2 Cas dutilisation 2 extend
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
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
Titre Rsum (une phrase) Acteurs Pr-conditions Scnario nominal Exceptions .Exceptions Post-conditions
35
Dpendance de gnralisation
Notation
Cas dutilisation 1
Dpendance de gnralisation
Permet de factoriser un
comportement commun un ensemble de cas dutilisation proches
Notation
37
Scnario
38
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
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 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
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
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
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
56
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
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
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
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
Personne
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
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
N
M..N * 0..* 1..*
N..*
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
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
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
Rectangle Dessiner()
Rond Dessiner()
90
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
Diagrammes dinteraction
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
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
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
3 : Crditer
MonCompteEpargne:CompteEpargne
106
Diagramme de squence
Objectifs Montrer explicitement les interactions pouvant intervenir entre des objets Reprsenter les interactions temporelle de celles-ci en favorisant une vision
109
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 rflexif
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
Notation
: Classe1
Crer
: Classe2
Message activation
Dtruire
Une instance dtruite voit sa bande dactivit sachever par une croix
113
: 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
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
nomObjet : nomClasse
nomAttribut1 = valeur1 nomAttributN = valeurN
119
Notation
nomObjet
Ou
nomObjet : nomClasse
Ou
: nomClasse
120
Diagramme dobjets
Exemple
Diagramme de classes
Personne
nom prnom
salari
Socit
employeur
nom activit
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
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
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
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
en activit
ge lgal de la retraite
dcs
au chmage
ge lgal de la retraite
132
Un objet est caractris par un ensemble dattributs Les attributs dun objet changent de valeur au cours du temps
peindre en jaune
normale
repeinte
133
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
Notation
NomEtat
136
Notation
Etat initial
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
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
Notation
A la diffrence de linvocation
dune mthode, un signal est asynchrone
Signal User input
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
Notation
vnement [ Garde ] / Action
NomEtatSource
NomEtatCible
142
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
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)
Retrait
vigilance
En alerte
144
Notation
Arrt
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
Notation NomEtat
Entry / Action entre Exit / Action sortie Evnement1 / Action1 EvnementN / ActionN
permettent de factoriser des traitements effectuer Elles sont prcdes des mot-cls Entry ou Exit
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)
Notation
NomEtat
Entry / Action entre
Exit / Action sortie Evnement1 / Action1 EvnementN / ActionN Do / Activit
Activit et actions
Exemple
Au bureau
Entry / dbrancherRpondeur() Exit / brancherRpondeur() tlphoneSonne / rpondreTlphone() sonneriePorte / ouvrirPorte() 12h / manger()
Do / travailler()
18h / prendrePain()
Sous-tats squentiels
Exemple
enclencher
158
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
Client
Passer commande
Commercial
Magasinier
Enregistrer commande
Payer
Excuter commande
Livrer commande
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
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}
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
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
Client.java
Compte.java
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
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
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
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
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
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 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
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
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
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
Sommaire
Introduction Objectifs Note Strotype Etiquette Contrainte Extensions standard Invariant, pr-condition, post-condition OCL
209
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
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
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
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
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
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
217
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
219
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
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
221
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()
1..*
Personne
auChmage 222