Académique Documents
Professionnel Documents
Culture Documents
DVELOPPEMENT
ANALYSE ET CONCEPTION
TUDES
Joseph Gabay
David Gabay
UML 2
ANALYSE ET CONCEPTION
Joseph Gabay
Directeur de projet informatique au CNRS
Charg de cours luniversit de Paris-Dauphine
David Gabay
Chef de projet chez Cap Gemini
Toutes les marques cites dans cet ouvrage sont des
marques dposes par leurs propritaires respectifs.
Avant-propos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX
Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
A. Rcapitulatif des concepts dUML 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
B. Rcapitulatif de la dmarche UP7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Avant-propos
Cest grce un premier niveau de travail de fond men en commun par ces trois
compres quest ne en 1995 la mthode dite unifie qui a t ensuite consacre par
lOMG (Object Management Group) en 1997 avec la diffusion de la premire version
de la norme : UML V1.1.
Prcisons aussi que les trois auteurs lorigine dUML ont poursuivi leur mission
dexplication et dillustration des diffrentes versions successives dUML en publiant
des ouvrages de rfrence comme [Jacobson2000b] et [Rumbaugh2004].
Il nous semble important de souligner le rle majeur jou par lOMG. En effet,
cet organisme international de normalisation a en charge non seulement la norme
UML mais aussi dautres rflexions mthodologiques comme lapproche MDA
(Model Driven Architecture) qui pousse encore plus loin les limites de lautomatisa-
tion de la production du logiciel.
Ainsi nous pouvons imaginer que nous arriverons bien un jour disposer dune
mthode de conception et de dveloppement standardise couvrant tout le cycle de
fabrication dun logiciel en permettant une production fortement automatise de la
programmation.
Mais soyons ralistes, cela demandera notre avis probablement plusieurs dcen-
nies tant donn les difficults qui restent traiter et la complexit des niveaux
dabstraction quil faut arriver modliser.
Cest loccasion pour nous de lancer un petit avertissement aux concepteurs
dUML travaillant lOMG pour leur dire que certes lobjectif vis reprsente un
norme challenge pour toute la profession informatique, mais cela ne doit pas se tra-
duire par une plus grande lourdeur et complexit du contenu de cette norme. En
effet, cest le ressenti que nous commenons avoir en observant les versions succes-
sives de la norme qui se caractrise aujourdhui par plusieurs centaines de pages lire
et un nombre sans cesse croissant de concepts assimiler associs une reprsenta-
tion graphique qui devient aussi de plus en plus dense.
Positionnement de louvrage
Notre tude des nombreux ouvrages dj publis sur UML 2, nous a permis de cons-
tater quil en existait dj un certain nombre qui stait attach une prsentation
relativement exhaustive et dtaille de la norme, comme par exemple dans
[Muller2000] et [Fowler2004a] ou encore dautres plus synthtiques comme
[Scott2004], [Fowler2004b], [Barbier2005] et [Blaha2002].
Cependant, nous navons pas trouv de livres traitant la fois laspect norma-
tif dUML 2 et la dmarche dlaboration des diagrammes couvrant lanalyse et la
conception des systmes dinformation.
Nous avons donc dcid de rpondre ce besoin en essayant de traiter le plus
efficacement possible les treize diagrammes dUML 2 conformment la norme et
en accompagnant le lecteur dans un apprentissage progressif fond sur de nombreux
exemples, des exercices corrigs et de vritables tudes de cas se rapprochant de pro-
jets rels dentreprise.
Avant-propos XI
Nous proposons donc dans un mme ouvrage dune part laspect thorique des
concepts dUML 2 et leur reprsentation graphique et dautre part une dmarche de
mise en uvre illustre par des fiches guides pour les activits danalyse et de con-
ception mener dans le cadre des dveloppements des systmes dinformation (SI).
En rsum nous nous sommes fix trois objectifs en ralisant ce livre :
prsenter les treize diagrammes dUML 2 en essayant de concilier au mieux le
respect strict de la norme avec une application centre sur les systmes
dinformation des entreprises.
illustrer la modlisation laide des diagrammes dUML 2 en sappuyant sur
des exemples et des exercices adapts au contexte professionnel donc aux
attentes des concepteurs et dveloppeurs dapplication.
proposer une dmarche de mise en uvre dUML 2 qui est fonde sur les
processus standard du dveloppement itratif et incrmental et qui prenne en
compte notre propre exprience de praticiens de la mthode. Cette dmarche
fait lobjet dune description prcise des activits avec notamment des fiches
guides et une mise en application dans deux tudes de cas consquentes.
Organisation de louvrage
Louvrage est structur en six chapitres :
Le chapitre 1 dcrit les concepts de lapproche objet et propose une premire
prsentation dUML 2 en mettant laccent sur les dernires volutions.
XII UML2 analyse et conception
En rsum, le lecteur pourra tout dabord acqurir les connaissances ncessaires lappren-
tissage dUML 2 (chapitres 1 3) et ensuite sexercer la mise en pratique grce la dmar-
che propose et aux deux tudes de cas couvrant lensemble des phases danalyse et de
conception (chapitres 4 6).
Remerciements
Quil nous soit permis de remercier tous ceux qui ont apport une contribution dans
la ralisation de cet ouvrage.
Plus particulirement, nous voudrions remercier Jacques LAVIELLE pour les
changes fructueux sur les concepts et la dmarche et pour toutes les discussions que
nous avons eues autour des enseignements dUML luniversit Paris-Dauphine.
Enfin, nous adressons tous nos remerciements Nicolas ZENOU pour son aide
prcieuse et efficace dans la relecture attentive quil a bien voulu consacrer cet
ouvrage.
1
Concepts de lapproche objet
et prsentation dUML 2
Aujourdhui lapproche objet occupe une place prpondrante dans le gnie logiciel.
En effet, ces dernires annes nous avons assist tout dabord une utilisation plus
large des langages de programmation objet de rfrence comme C++, C# et Java et
ensuite lintroduction des concepts objet dans dautres langages comme par
exemple VB.NET, Perl et mme Cobol. Le dveloppement trs important dapplica-
tions lies Internet constitue une des principales explications de ce phnomne
sans prcdent alors que lon aurait pu sattendre un dmarrage plus prcoce de ce
changement compte tenu de lexistence ds le dbut des annes 80 des premiers
langages objet tel que C++.
notre avis les deux vnements majeurs qui ont marqu cette volution se sont
produits la fin des annes 90 avec larrive de Java en 1995 et dUML en 1997.
Notre objectif est donc de prsenter lessentiel des concepts objet qui nous
paraissent ncessaires une bonne comprhension dUML. Les concepts qui nous
semblent importants bien matriser sont les suivants :
objet et classe,
encapsulation et interface,
association et agrgation de classes,
gnralisation et spcialisation de classe,
polymorphisme,
persistance.
2 Chapitre 1. Concepts de lapproche objet et prsentation dUML 2
Son comportement est caractris par les oprations quil peut excuter. Dans
notre cas nous pouvons avoir les oprations suivantes :
entrer dans lorganisme,
changer de qualification,
changer de lieu de travail,
sortir de lorganisme.
Concept de classe
Une classe est labstraction dun ensemble dobjets qui possdent une structure iden-
tique (liste des attributs) et un mme comportement (liste des oprations).
1.1 Concepts de lapproche objet 3
Un objet est une instance dune et une seule classe. Une classe abstraite est une
classe qui na pas dinstance. Les concepts de classe et dobjet sont interdpendants.
Exemple
Considrons la classe Employ qui reprsente lensemble des employs dune entre-
prise. La description de la classe Employ comportera les lments suivants :
Nom de classe : Employ.
Attributs :
numro,
nom,
qualification,
site de travail.
Oprations :
engager un employ,
consulter un employ,
modifier un employ,
dpart dun employ.
CLASSE N
Traitements
Accs I 1- Oprations accessibles Donnes :
aux donnes N - opration 1 liste
via linterface T
E - opration 2 des attributs
(partie visible
R - opration 3
de la classe) F
A
C
E
1.1.5 Polymorphisme
Le polymorphisme est la capacit donne une mme opration de sexcuter diff-
remment suivant le contexte de la classe o elle se trouve.
Ainsi une opration dfinie dans une super-classe peut sexcuter de manire dif-
frente selon la sous-classe o elle est hrite.
1.1 Concepts de lapproche objet 5
Exemple
Soit la classe Employ et ses deux sous-classes Cadre et NonCadre.
Nom de classe : Employ.
Attributs :
numro,
nom,
salaire de base.
Oprations : calculSalaire( ).
Nom de la sous-classe : Cadre.
Attributs : niveau dencadrement.
Oprations : calculSalaire( ).
Nom de la sous-classe : NonCadre.
Attributs : niveau de spcialisation.
Oprations : calculSalaire( ).
Le principe de calcul du salaire tant de calculer pour chaque type demploy une
prime spcifique en fonction soit du niveau dencadrement, soit du niveau de spcia-
lisation selon le type demploy.
Voyons maintenant comment se ralise lapplication du polymorphisme lors de
lexcution des oprations.
Dans cet exemple, lorsque lon appelle lopration calculSalaire( ), cest lopra-
tion de sous-classe Cadre ou celle de la sous-classe NonCadre qui est en fait active
selon lobjet concern. Lopration de la sous-classe fait en gnral appel explicite-
ment lopration calculSalaire( ) de la super-classe pour bnficier des traitements
communs aux cadres et non cadres et ensuite il y aura poursuite du traitement spci-
fique la sous-classe.
1.1.6 Persistance
La persistance est la proprit donne un objet de continuer exister aprs la fin
de lexcution du programme qui la cr.
Par dfaut dans lapproche objet, aucun objet nest persistant. Les modles dcri-
vent le systme en excution en mmoire centrale et ne tiennent pas compte a priori
de ltat du systme qui doit tre stock sur disque.
La gestion de la mmoire incombe au programmeur avec notamment le problme
de la libration des espaces.
6 Chapitre 1. Concepts de lapproche objet et prsentation dUML 2
Au-del de ces deux avantages majeurs et compte tenu de la plus grande modula-
rit dans la construction dune application laide dobjets, la maintenance lmen-
taire de chaque classe est en soi plus simple raliser que celle dun logiciel unique
traitant toutes les donnes dun systme. Il importe bien entendu dans lapproche
objet de construire son systme en veillant minimiser le nombre de relations entre
classes.
1.2.1 Historique
Regardons tout dabord ce qui sest pass au dbut des annes 90. Par rapport la
cinquantaine de mthodes danalyse et de conception objet qui existaient au dbut
des annes 90, seulement trois dentre elles se sont dtaches nettement au bout de
quelques annes. En effet, la volont de converger vers une mthode unifie tait
dj bien relle et cest pour cette raison que les mthodes OMT, BOOCH et OOSE
se sont dmarques des autres.
OMT (Object Modeling Technique) de James Rumbaugh et BOOCH de
Grady Booch ont t les deux mthodes les plus diffuses en France durant les
annes 90. Par ailleurs, OOSE de Ivar Jacobson sest aussi impose dans le monde
objet pour la partie formalisation des besoins.
1.2 Prsentation gnrale dUML 7
Pour aller plus loin dans le rapprochement, James Rumbaugh et Grady Booch se
sont retrouvs au sein de la socit Rational Software et ont t ensuite rejoints par
Ivar Jacobson en se donnant comme objectif de fusionner leur mthode et crer
UML (Unified Methode Language).
Il est important de noter que contrairement ce qui avait t envisag au dpart,
le processus de dveloppement a t sorti du champ couvert par le projet de norme.
UML est donc une norme du langage de modlisation objet qui a t publie,
dans sa premire version, en novembre 1997 par lOMG (Object Management
Group), instance de normalisation internationale du domaine de lobjet.
En quelques annes, UML sest impose comme standard utiliser en tant que
langage de modlisation objet.
Aujourdhui, en cette fin de la premire dcennie des annes 2000, nous avons
dj une dizaine dannes de recul sur lenseignement et la pratique dUML en entre-
prise.
Mta-modle
Le langage de modlisation UML respecte un certain nombre de rgles sur les
concepts manipuls (classes, attributs, oprations, paquetages) ainsi que sur la
syntaxe dcriture et le formalisme de reprsentation graphique. Lensemble de ces
rgles constitue en soi un langage de modlisation qui a fait lobjet dun mta-
modle UML. Lintrt de disposer dun mta-modle UML permet de bien
matriser la structure dUML et de faciliter son volution.
Cette approche a t gnralise par lOMG en normalisant la reprsentation des
mta-modles par la dfinition en 1997 dun mta mta-modle dfini dans le MOF
(Meta-Object Facility). Le MOF reprsente ainsi un super langage de dfinition des
mta-modles.
Plus globalement, le MOF se retrouve au sommet dune architecture de descrip-
tion quatre niveaux :
M3, niveau du MOF ;
M2, niveau des mta-modles (UML est un des mta-modles) ;
M1, constitu par les modles (les diagrammes dUML sont des instances de
ce niveau) ;
1.2 Prsentation gnrale dUML 9
M0, constitu par les instances (les ralisations de diagrammes pour une situa-
tion donne sont des instances de ce niveau).
Strotype
Un strotype constitue un moyen de classer les lments de la modlisation. Un
certain nombre de strotypes sont dj dfinis dans UML (voir annexe C de la
norme), mais dautres valeurs de strotypes peuvent tre ajoutes si cela est nces-
saire soit lvolution gnrale dUML, soit la prise en compte de situations parti-
culires propres aux entreprises.
Les strotypes peuvent sappliquer nimporte quel concept dUML. Nous nous
intresserons dans cet ouvrage un certain nombre dentre eux que nous prsente-
rons au niveau des diagrammes lorsque leur utilisation nous paratra pertinente.
En particulier, dans le diagramme de classe, le strotype permet de considrer de
nouveaux types de classe. Cette possibilit dextension pour les classes, se dfinit
donc au niveau mta-classe.
Formalisme et exemple
Le nom du strotype est indiqu entre guillemets. Un acteur peut tre vu comme un
strotype particulier dune classe appele acteur. Lexemple (fig. 1.2) montre une
classe Client strotype comme acteur .
Client
acteur
Valeur marque
UML permet dindiquer des valeurs particulires au niveau des lments de modli-
sation et en particulier pour les attributs de classe. Une valeur marque se dfinit au
niveau mta-attribut.
Formalisme et exemple
La valeur marque est mise entre accolades avec indication du nom et de la valeur :
{persistance : string} si lon veut ajouter ce type dattribut dans une classe.
Profil
Afin de donner la possibilit de spcialiser chaque application dUML son propre
contexte, UML propose de dfinir un profil dutilisation caractris principalement
par la liste des strotypes, la liste des valeurs marques et les contraintes spcifies
pour un projet donn.
10 Chapitre 1. Concepts de lapproche objet et prsentation dUML 2
Note
Une note correspond un commentaire explicatif dun lment dUML.
Formalisme et exemple
La figure 1.3 montre le formalisme et un exemple de la reprsentation dune note.
Commentaire Ce modle
reprsente la vue
des gestionnaires
Contrainte
Une contrainte est une note ayant une valeur smantique particulire pour un
lment de la modlisation. Une contrainte scrit entre accolades {}. Dans le cas o
la contrainte concerne deux classes ou plus, celle-ci sinscrit lintrieur dune note.
Formalisme et exemple
Premire forme dcriture dune contrainte : {ceci est une contrainte}.
Deuxime forme dcriture : lintrieur dune note (fig. 1.4).
Parking Rsident
possder
Immeuble
{le parking
dun rsident se trouve
dans limmeuble rsider
du rsident}
Formalisme et exemple
Afin de donner un premier aperu des principaux diagrammes tant sur laspect du
formalisme que sur leur usage, nous proposons titre introductif un petit exemple
trs simple.
Considrons une nouvelle socit de formation qui souhaite dvelopper un pre-
mier niveau de site web dans lequel elle prsente succinctement les formations pro-
poses et enregistre en ligne les demandes de catalogue.
Nous pouvons ds ce stade de lanalyse reprsenter le diagramme des cas dutilisa-
tion (fig. 1.5).
Consulter catalogue
Internaute
Cas
dutilisation
Commander catalogue
Client
Le diagramme de classe (fig. 1.6) va nous permettre de dcrire les concepts mani-
puls, savoir : Client, Catalogue et Formation.
1.2 Prsentation gnrale dUML 13
Client
Catalogue
numClient commander
nomClient dateCatalogue
+crer( ) +crer( )
+consulter( ) +consulter( )
Formation
attributs codeFormation
intitulFormation
descriptionFormation
contenir
oprations
+ajouterFormation( )
+consulterFormation( )
sd Consulter formation
: Catalogue : Formation
: Internaute
consulterCatalogue( )
loop Consultation thme
consulterFormation( )
change de messages
entre objets
Le schma propos reprend les treize diagrammes en les rpartissant sur les quatre
ensembles dfinis (fig. 1.8).
Nous avons adopt, dans cet ouvrage, les abrviations suivantes pour les treize diagrammes :
DAC : Diagramme dactivit
DCL : Diagramme de classe
DOB : Diagramme dobjet
DCP : Diagramme de composant
DCU : Diagramme des cas dutilisation
DCO : Diagramme de communication
DET : Diagramme dtat-transition
DGI : Diagramme global dinteraction
DPA : Diagramme de paquetage
DPL : Diagramme de dploiement
DSC : Diagramme de structure composite
DSE : Diagramme de squence
DTP : Diagramme de temps
1.2 Prsentation gnrale dUML 15
DOB
DGI
+ (objets)
(vue macro
DCL de DAC et DSE)
DAC (classes DET
(processus, et associations) + (tats dobjet)
flots de contrle
et de donnes)
DTP
(tats dobjet et temps)
2.1.1 Objet
Nous allons donner une premire dfinition du concept dobjet avant de traiter le
concept de classe. La description dun objet sera complte simultanment la
prsentation du concept de classe.
Un objet est un concept, une abstraction ou une chose qui a un sens dans le con-
texte du systme modliser. Chaque objet a une identit et peut tre distingu des
autres sans considrer a priori les valeurs de ses proprits.
18 Chapitre 2. Les diagrammes structurels (ou statiques)
Exemple
La figure 2.1 montre des exemples dobjets physiques (une chaise, une voiture, une
personne, un vlo) et dobjets de gestion (la Commande n 12, le Client Durand).
Co mmande Client
n 12 Durand
Autres caractristiques
Un objet est caractris par les valeurs de ses proprits qui lui confrent des tats
significatifs suivant les instants considrs. Le formalisme de reprsentation dun
objet est donn aprs celui dune classe.
La figure 2.2 montre le formalisme gnral des compartiments dune classe et des
premiers exemples.
Nom de la classe
Voiture Client
Attributs
Marque
Oprations Puissance Description rduite
la dsignation
de la classe
Responsabilits Classe rduite
et/ou exception deux compartiments
Description complte
Attribut
Un attribut est une proprit lmentaire dune classe. Pour chaque objet dune
classe, lattribut prend une valeur (sauf cas dattributs multivalus).
Formalisme et exemple
La figure 2.3 montre le formalisme et un exemple de reprsentation des attributs de
classe.
Caractristiques
Le nom de la classe peut tre qualifi par un strotype . La description complte
des attributs dune classe comporte un certain nombre de caractristiques qui
doivent respecter le formalisme suivant :
Visibilit/Nom attribut : type [= valeur initiale {proprits}]
Visibilit : se reporter aux explications donnes plus loin sur ce point.
Nom dattribut : nom unique dans sa classe.
Type : type primitif (entier, chane de caractres) dpendant des types
disponibles dans le langage dimplmentation ou type classe matrialisant
un lien avec une autre classe.
Valeur initiale : valeur facultative donne linitialisation dun objet de la
classe.
{proprits} : valeurs marques facultatives (ex. : interdit pour mise jour
interdite).
Un attribut peut avoir des valeurs multiples. Dans ce cas, cette caractristique est
indique aprs le nom de lattribut (ex. : prnom [3] pour une personne qui peut
avoir trois prnoms).
Un attribut dont la valeur peut tre calcule partir dautres attributs de la classe
est un attribut driv qui se note /nom de lattribut driv . Un exemple dattribut
driv est donn la figure 2.5.
Opration
Une opration est une fonction applicable aux objets dune classe. Une opration
permet de dcrire le comportement dun objet. Une mthode est limplmentation
dune opration.
Formalisme et exemple
Chaque opration est dsigne soit seulement par son nom soit par son nom, sa liste
de paramtres et son type de rsultat. La signature dune mthode correspond au
nom de la mthode et la liste des paramtres en entre. La figure 2.4 montre le
formalisme et un exemple de reprsentation doprations de classe.
rouler (vitesse)
Nom et caractristique opration 1
Nom et caractristique opration 2
Caractristiques
La description complte des oprations dune classe comporte un certain nombre de
caractristiques qui doivent respecter le formalisme suivant :
Visibilit Nom dopration (paramtres) [:[type rsultat] {proprits}]
Visibilit : se reporter aux explications donnes plus loin sur ce point.
Nom dopration : utiliser un verbe reprsentant laction raliser.
Paramtres : liste de paramtres (chaque paramtre peut tre dcrit, en plus
de son nom, par son type et sa valeur par dfaut). Labsence de paramtre
est indique par ( ).
Type rsultat : type de (s) valeur(s) retourn(s) dpendant des types dispo-
nibles dans le langage dimplmentation. Par dfaut, une opration ne
retourne pas de valeur, ceci est indiqu par exemple par le mot rserv
void dans le langage C++ ou Java.
{proprits} : valeurs facultatives applicables (ex. : {query} pour un compor-
tement sans influence sur ltat du systme).
Exemples de classes et reprsentation dobjets
La figure 2.5 prsente lexemple dune classe Voiture . La figure 2.6 donne le
formalisme dun objet.
Voiture
marque : texte
puissance : entier
cylindre : entier
anne : entier
/anciennet : entier
dmarrer ( )
rouler ( )
freiner ( )
arrter ( )
valeur attribut 1
valeur attribut 2
valeur attribut N
Il est utile de prciser que la reprsentation des objets sera utilise dans plusieurs
autres diagrammes importants dUML. Cest le cas notamment du diagramme de
squence ou encore du diagramme dtat-transition.
La figure 2.7 prsente des exemples dobjets.
audi audi
10 CV 10 CV
2L 2L
2001 2001
Exemple
La figure 2.8 montre un exemple dutilisation des symboles de la visibilit des
lments dune classe.
Dans cet exemple, tous les attributs sont dclars de type priv, les oprations
dmarrer et freiner sont de type public, lopration rouler est de type
priv et lopration arrter est de type protg.
Voiture
- marque
- puissance
- cylindre
- anne
- chiffreAffaire
+ dmarrer ( )
- rouler ( )
+ freiner ( )
# arrter ( )
Formalisme et exemple
Cest le soulignement de lattribut ou de lopration qui caractrise cette proprit.
Dans lexemple de la figure 2.9, lattribut ristourne est de type classe et lopra-
tion crer est une opration excutable au niveau de la classe.
Voiture
- marque
- puissance
- cylindre
- anne
- chiffreAffaire
- ristourne
- crer ( )
+ dmarrer ( )
+ rouler ( )
+ freiner ( )
+ arrter ( )
Formalisme et exemple
La figure 2.10 donne le formalisme de lassociation. Le symbole (facultatif) indique
le sens de lecture de lassociation. Dans cette figure est donn aussi un exemple de
reprsentation dune association.
Personne Voiture
Possder
Rle dassociation
Le rle tenu par une classe vis--vis dune association peut tre prcis sur lassocia-
tion.
Exemple
La figure 2.11 donne un exemple de rle dassociation.
Personne Entreprise
Travailler dans
Multiplicit
La multiplicit indique un domaine de valeurs pour prciser le nombre dinstance
dune classe vis--vis dune autre classe pour une association donne. La multiplicit
peut aussi tre utilise pour dautres usages comme par exemple un attribut multi-
valu. Le domaine de valeurs est dcrit selon plusieurs formes :
Intervalle ferm Exemple : 2, 3 ..15.
Valeurs exactes Exemple : 3, 5, 8.
2.1 Diagramme de classe (DCL) et diagramme dobjet (DOB) 25
Formalisme et exemple
Nous donnons, la figure 2.12, quelques exemples des principales multiplicits dfi-
nies dans UML.
* 0..1
une instance de A correspond
A B 0 ou 1 instance de B.
une instance de B correspond
0 nombre non dtermin
dinstances de A.
Navigabilit
La navigabilit indique si lassociation fonctionne de manire unidirectionnelle ou
bidirectionnelle, elle est matrialise par une ou deux extrmits flches. La non-
navigabilit se reprsente par un X
Les situations possibles de navigabilit sont reprsentes la figure 2.13.
Par dfaut, on admet quune navigabilit non dfinie correspond une navigabi-
lit implicite.
Dans lexemple donn la figure 2.14, une personne sont associes ses copies
dexamen mais linverse nest pas possible (retrouver directement lauteur de la copie
dexamen, notamment avant la correction de la copie).
Contraintes
Dautres proprits particulires (contraintes) sont proposes dans UML pour
prciser la smantique dune association.
Ordre de tri
Pour une association de multiplicit suprieure 1, les liens peuvent tre :
non ordonns (valeur par dfaut),
ordonns ou tris lorsque lon est au niveau de limplmentation (tri sur une
valeur interne).
Un exemple est donn la figure 2.15. Dans cet exemple, pour une entreprise
donne, les personnes seront enregistres suivant un ordre qui correspondra un des
attributs de Personne.
Personne Entreprise
1..* Travailler dans 1, 2
nom nom entreprise
prnom adresse
{ordonn}
Projet
code projet
affecter ( )
Entreprise
*
nom entreprise
Personne Mobiliser adresse
* *
nom
prnom
Travailler Employer
Affectation
date dbut
date fin
Classe Association
Formalisme et exemple
La figure 2.17 donne le formalisme gnral de lagrgation.
Classe 1
Classe 2
La figure 2.18 montre un exemple de relation dagrgation. Dans cet exemple, nous
avons modlis le fait quun ordinateur comprend une UC, un clavier et un cran.
Ordinateur
puissance
marque
1 1 1
U.C. Clavier cran
Composition
La composition est une relation dagrgation dans laquelle il existe une contrainte
de dure de vie entre la classe composant et la ou les classes compos . Autre-
ment dit la suppression de la classe compos implique la suppression de la ou des
classes composant .
Formalisme et exemple
La figure 2.19 donne le formalisme gnral de la composition. La figure 2.20 montre
un exemple de relation de composition. Une seconde forme de prsentation peut
tre aussi utilise, elle est illustre la figure 2.21.
2.1 Diagramme de classe (DCL) et diagramme dobjet (DOB) 29
Classe 1
Classe compos
Classe 2
Classe composant
Commande
1 1..*
Commande
En-tte 1
Formalisme et exemple
Soit la relation entre les rpertoires et les fichiers appartenant ces rpertoires. un
rpertoire est associ 0 n fichiers. Si lon veut restreindre cette association pour ne
considrer quun fichier associ son rpertoire, la relation qualifie est alors utilise
pour cela. La figure 2.22 montre la reprsentation de ces deux situations.
Rpertoire Fichier
1 contenir *
1 1
Dpendance
La dpendance entre deux classes permet de reprsenter lexistence dun lien sman-
tique. Une classe B est en dpendance de la classe A si des lments de la classe A
sont ncessaires pour construire la classe B.
Formalisme et exemple
La relation de dpendance se reprsente par une flche en pointill (fig. 2.23) entre
deux classes.
Classe A Classe B
Interface
Une classe dinterface permet de dcrire la vue externe dune classe. La classe
dinterface, identifie par un nom, comporte la liste des oprations accessibles par les
autres classes. Le compartiment des attributs ne fait pas partie de la description dune
interface.
Linterface peut tre aussi matrialise plus globalement par un petit cercle asso-
ci la classe source.
La classe utilisatrice de linterface est relie au symbole de linterface par une fl-
che en pointill. La classe dinterface est une spcification et non une classe relle.
Une classe dinterface peut sassimiler une classe abstraite.
Formalisme et exemple
La figure 2.24 donne le formalisme, sur un exemple, des deux types de reprsentation
dune interface.
code numro
1* Donner accs 1
dlacer ( ) contrler ( )
ouvrir ( )
fermer ( )
utilise
ralise interface
Autorisation Indique que la classe
Indique que la classe Mot de passe utilise
Fentre ralise linterface Autorisation
linterface Autorisation
ouvrir ( )
code numro
1* Donner accs 1
dlacer ( ) contrler ( )
ouvrir ( )
fermer ( )
Classe A
Spcialisation Gnralisation
(hritage)
Sous-classe Sous-classe
A1 A2
Classe abstraite
Une classe abstraite est une classe qui na pas dinstance directe mais dont les classes
descendantes ont des instances. Dans une relation dhritage, la super-classe est par
dfinition une classe abstraite. Cest le cas de la classe Employ dans lexemple
prsent la figure 2.26.
Employ
nom
prnom
date naissance
calculer ge ( )
Dans certains cas, il est possible de ne pas citer toutes les sous-classes mais dindi-
quer seulementdes points de suspension ().
Formalisme et exemple
La figure 2.27 montre un exemple dhritage avec recouvrement dinstances entre
les classes tudiant et Employ. En effet, une mme personne peut tre la fois
tudiante dans une universit et employe dans une entreprise.
Personne
tudiant Employ
{chevauchement}
1..*
tre inscrit 1..*
Travailler
1
1
Universit
Entreprise
Lhritage multiple
Dans certains cas, il est ncessaire de faire hriter une mme classe de deux classes
parentes distinctes. Ce cas correspond un hritage multiple.
Exemple
La figure 2.29 montre un exemple classique dhritage multiple o la classe Vhicule
amphibie hrite des classes Vhicule terrestre et Vhicule marin .
2.1 Diagramme de classe (DCL) et diagramme dobjet (DOB) 35
Classe A
nom
prnom
ge
Classe A1 Classe A2
nom nom
extension
prnom ge
ge restriction
sexe
crer ( )
crer ( )
Vhicule
Vhicule Vhicule
terrestre marin
Vhicule Bateau
Auto amphibie
2.1.8 Exercices
Nous proposons au lecteur une srie de quatre exercices sur le diagramme de classe
ainsi quun exercice de synthse (Locagite) pour lequel nous fournirons au fur et
mesure du parcours sur UML les principaux diagrammes.
Exercice 1
nonc
Il est demand de reprsenter le diagramme de classe dune gestion technique de
documents. Chaque document est compos dun ou plusieurs feuillets. Un feuillet
comporte du texte et des objets gomtriques qui constituent deux types dobjets
graphiques supportant des oprations de type : slectionner, copier, couper, coller et
dplacer.
Nous considrons les quatre objets gomtriques suivants : cercle, ellipse, carr,
rectangle. Il est demand dutiliser les proprits de la gnralisation et la spcialisa-
tion afin de reprsenter au mieux ces objets gomtriques.
Corrig
La figure 2.30 propose au lecteur un corrig type. Dautres variantes peuvent tre
envisages notamment dans les choix de gnralisation et spcialisation.
Exercice 2
nonc
Une entreprise nationale de vente dappareil lectromnager souhaite raliser une
premire exprience danalyse objet avec la mthode UML sur un petit sous-
ensemble de son SI. Ce sous-ensemble concerne le suivi des personnels des agences
locales implantes dans les rgions. Chaque rgion est pilote par une direction
rgionale qui a en charge un certain nombre dagences locales. Une direction rgio-
nale est caractrise par un code et un libell.
2.1 Diagramme de classe (DCL) et diagramme dobjet (DOB) 37
Objet graphique
Document Feuillet
nom
nom nom
copier ( )
ouvrir ( ) 1..* ouvrir ( ) coller ( )
1..*
fermer ( ) fermer ( ) couper ( )
dplacer ( )
Rond Ligne
centre x
rayon y
dessiner ( ) dessiner ( )
Quadrilatre
Cercle Ellipse
Carr Rectangle
Chaque agence est caractrise par un code, un intitul, une date de cration et
une date de fermeture.
une agence sont rattaches une plusieurs personnes. Chaque personne est
caractrise par les donnes : numro, qualit (M., Mme, Mlle), nom, prnom, date
de naissance, date prvisionnelle darrive, date darrive et date de dpart.
Il est demand dlaborer le diagramme de classe de ce premier sous-ensemble du
SI de cette entreprise.
Corrig
Les trois classes constituant ce systme sont videntes puisque dj bien identifies
dans lnonc : Direction rgionale, Agence et Personnel.
Lassociation entre Direction rgionale et Agence est une agrgation qui matria-
lise une relation structurante entre ces classes. La relation entre Agence et Person-
nel est une association de un plusieurs.
Les oprations mentionnes dans chaque classe correspondent aux oprations
lmentaires ncessaires la gestion du personnel des agences.
38 Chapitre 2. Les diagrammes structurels (ou statiques)
Le corrig type est donn la figure 2.31. Nous donnons aussi, figure 2.32, un
exemple de diagramme dobjet associ ce diagramme de classe.
Direction rgionale
code : nombre
libell : texte DIAGRAMME DE CLASSE
DE L'EXERCICE 2
consulter ( )
demander-crer-agence ( )
demander-supprimer-agence ( )
comprendre
Personnel
1..* code : nombre
date arrive agence : DATE
numro : nombre
Agence qualit : texte
code : nombre nom : texte
intitul : texte prnom : texte
date cration : DATE date naissance : DATE
date fermeture : DATE date prvisionnelle arrive : DATE
appartenir
date arrive agence : DATE
crer ( ) date dpart agence : DATE
1 1..*
supprimer ( ) crer ( )
modifier ( ) supprimer ( )
visualiser ( ) rechercher ( )
imprimer ( ) imprimer ( )
rattacher_personnel ( ) modifier ( )
dtacher_personnel ( ) rattacher lagence ( )
Dir-rg-Alsace
EXEMPLE
15 DE DIAGRAMME DOBJET
Alsace
comprendre
Ag-Strasbourg : Agence
: personnel
671
Strasbourg appartenir
15/01/98
Exercice 3
nonc
La socit Forma possde un service qui gre la formation interne. Sa mission
comporte plusieurs fonctions :
laborer les catalogues qui dcrivent les cours et donnent les dates prvision-
nelles des sessions.
Inscrire les personnes qui dsirent participer aux sessions et leur envoyer leur
convocation.
Dterminer les formateurs qui vont animer les sessions et leur envoyer leur
convocation (ces personnes sont choisies parmi celles qui peuvent enseigner
un cours). Certaines sessions peuvent tre animes par une personne dun
organisme extrieur.
Faire le bilan des participations relles aux formations.
Les cours sont dtermins afin de rpondre aux besoins de formation internes.
Certains cours sont organiss en filires, cest--dire quils doivent tre suivis dans un
certain ordre. Exemple : le cours ITE 16 (la dmarche ITEOR OO) ne peut tre
suivi avant ITE 03 (UML). Les cours utilisent des documents rfrencs (tab. 2.1).
Corrig
La lecture du sujet et en particulier lanalyse des attributs indiqus conduisent
identifier rapidement les classes suivantes : Session, Cours, Catalogue, Document,
Personne et Organisme.
Une rflexion complmentaire mene sur la classe Personne permet de distinguer
en fait trois sous-classes spcialises : PersonneExterne, PersonneIntNe (non ensei-
gnante) et PersonneIntEn (enseignante).
Le diagramme de classes peut tre labor ensuite sans difficult. La figure 2.33
donne le corrig type de cet exercice.
40 Chapitre 2. Les diagrammes structurels (ou statiques)
Document
-n document
habiliter animer -titre document
Personne
-matricule +crer ( )
-nom
-prnom 0..*
Session
+crer ( ) utiliser
0..* -n session-cours
-date session 0..* 0..*
-tat
PersExt PersIntNEns PersIntEns -lieu Cours
1..* 0..*
-service -service 1 -code cours
+crer ( )
+enseigner ( ) +inscrire ( ) +annuler ( ) se drouler -intitul ncessiter
+enseigner ( ) +commencer ( ) -dure
0..*
0..* +clore ( )
1 0..* 0..* +convoquer ( ) +crer ( )
inscrire
0..*
diriger 1..*
Catalogue
Organisme
-n catalogue
1 -organisme -date
1
rattacher +crer ( ) +crer ( )
Exercice 4
nonc
Il vous est demand de grer les apports de raisin de la cooprative viticole de cham-
pagne. Le processus de traitements des apports de raisin correspond un droule-
ment en plusieurs tapes.
Dpart des camions pour le ramassage des raisins Le ramassage est orga-
nis par le responsable du transport. Tous les matins, durant la campagne de
ramassage, chaque chauffeur-livreur charge dans son camion un certain
nombre de palettes vides et passe la pese. Le responsable du transport
enregistre le dpart du camion en lui affectant un n dapport ainsi que son
poids vide (la gestion des itinraires ne fait pas partie de la prsente
tude).
Les camions ont t pralablement rpertoris par la cooprative avec leur
capacit exprime en nombre de palettes. Il est frquent quun mme
camion soit utilis pour plusieurs apports.
Retour des camions et pese des apports Larrive dun camion de palettes
de caisses de raisins correspond un apport de raisin. Les date et heure darri-
ve de cet apport sont soigneusement notes dans un registre avec le numro
dimmatriculation du camion.
Ds larrive dun apport, les palettes sont dcharges puis peses. Le poids et
le nombre de caisses par palettes sont soigneusement contrls par le respon-
sable de la pese puis enregistrs.
2.1 Diagramme de classe (DCL) et diagramme dobjet (DOB) 41
428 8 459
102 14 642
14 10 670
123 12 578
42 Chapitre 2. Les diagrammes structurels (ou statiques)
Corrig
La lecture du sujet et en particulier lanalyse des attributs indiqus conduisent
identifier rapidement les classes suivantes : Apport, Camion, Lot, Palette, Cpage,
Commune, Livreur et Parcelle.
Le diagramme de classes peut tre labor ensuite sans difficult. La figure 2.34
donne le corrig type de cet exercice.
Apport
Camion -napport
1 * -poidsVide
-ncamion
-nitinraire
-nbMaxiPalette
-dateArrive Pese
* -dateDpart
-nbCamions
* -poids
1
peser
concerner rpartir
*
1 Lot
Livreur -nLot
*
Palette
0..* -nPalette
0..*
appartenir
correspondre
1
Cooprative Indpendant 1
-%Production Cepage Commune
* -codeCepage -nInsee
1
-nomCommune
choisir
exploiter
Classement 0..*
1
*
Statut -nClassement classer
Parcelle
-nParcelle -codeStatut 0..*
-libelleStatut
Anne
Corrig
laboration du diagramme de classe : lanalyse de lensemble des donnes disponi-
bles nous permet de mettre en vidence les classes suivantes : Propritaire, Gte,
Gtes grs, Catalogue, Activit, Priode Location, Rservation, Client et Contrat
Location. Le diagramme de classe correspondant est donn la figure 2.35.
44 Chapitre 2. Les diagrammes structurels (ou statiques)
Catalogue
Contrat de location
Prix total
Conditions de rservation
1..*
1 PriodeLocation +modifNcontratP()
2.2.1 Composant
Chaque composant est assimil un lment excutable du systme. Il est caract-
ris par :
un nom ;
une spcification externe sous forme soit dune ou plusieurs interfaces requi-
ses1, soit dune ou plusieurs interfaces fournies2 ;
un port de connexion.
Formalisme gnral
Un composant est reprsent (fig. 2.36) par un classeur avec le mot-cl composant
ou bien par un classeur comportant une icne reprsentant un module.
1. Une interface requise est une interface ncessaire au bon fonctionnement du composant.
2. Une interface fournie est une interface propose par le composant aux autres composants.
2.2 Diagramme de composant (DCP) 47
Connecteur dassemblage
Une interface fournie se reprsente laide dun trait et dun petit cercle et une
interface requise laide dun trait et dun demi-cercle. Ce sont les connecteurs
dassemblage.
Un exemple de modlisation avec les connecteurs dassemblage est donn la
figure 2.37, le composant Commande possde deux interfaces fournies et deux inter-
faces requises.
Connecteur dinterfaces
Une autre reprsentation peut tre aussi utilise en ayant recours aux dpendances
dinterfaces utilise et ralise :
pour une interface fournie, cest une relation de ralisation partant du compo-
sant et allant vers linterface ;
pour une interface requise, cest une dpendance avec le mot-cl utilise
partant du composant et allant vers linterface.
Compartiment
Une dernire manire de modliser un composant avec une reprsentation bote
noire est de dcrire sous forme textuelle les interfaces fournies et requises lint-
rieur dun second compartiment.
Un exemple de modlisation avec les compartiments est donn la figure 2.39.
composant
Commande
interfaces fournies
GestionCommande
SuiviCommande
interfaces requises
Produit
Personne
Compartiment
Une manire de modliser un composant avec une reprsentation bote blanche est
de dcrire sous forme textuelle les interfaces fournies et requises lintrieur dun
compartiment, les classificateurs (classes, autres composants) dans un autre compar-
timent, les artefacts (lment logiciel : jar, war, ear, dll) qui reprsentent physique-
ment le composant dans un dernier compartiment.
Un exemple de modlisation avec les compartiments est donn la figure 2.40.
composant
Commande
interfaces fournies
GestionCommande
SuiviCommande
interfaces requises
Produit
Personne
ralisations
DetailCommande
LigneCommande
artifacts
Commande.jar
Dpendance
Une autre reprsentation interne du composant peut tre aussi utilise en ayant
recours aux dpendances. Ainsi, les classificateurs qui composent le composant sont
relis celui-ci par une relation de dpendance.
Les relations entre les classificateurs (association, composition, agrgation) sont
aussi modlises. Nanmoins, si elles sont trop complexes, elles peuvent tre repr-
sentes sur un diagramme de classe reli au composant par une note.
Un exemple de modlisation bote blanche avec les dpendances est donn la
figure 2.41.
Ports et connecteurs
Le port est reprsent par un petit carr sur le composant. Les connecteurs permettent
de relier les ports aux classificateurs. Ils sont reprsents par une association navigable
et indiquent que toute information arrive au port est transmise au classificateur.
Un exemple de reprsentation avec port et connecteur du composant Com-
mande est donn la figure 2.42.
2.3.1 Nud
Un nud correspond une ressource matrielle de traitement sur laquelle des arte-
facts seront mis en uvre pour lexploitation du systme. Les nuds peuvent tre
interconnects pour former un rseau dlments physiques.
Formalisme et exemple
Un nud ou une instance de nud se reprsente par un cube ou paralllpipde
(fig. 2.43).
2.3.2 Artefact
Un artefact est la spcification dun lment physique qui est utilis ou produit par
le processus de dveloppement du logiciel ou par le dploiement du systme. Cest
donc un lment concret comme par exemple : un fichier, un excutable ou une
table dune base de donnes.
Un artefact peut tre reli dautres artefacts par notamment des liens de dpendance.
Formalisme et exemple
Un artefact se reprsente par un rectangle (fig. 2.44) caractris par le mot-cl
artifact et/ou une icne particulire dans le coin droit du rectangle.
Formalisme et exemple
Une spcification de dploiement se reprsente par un rectangle avec le mot-cl
deployment spec . Un exemple dun artefact avec une spcification de dploie-
ment est donn la figure 2.45.
52 Chapitre 2. Les diagrammes structurels (ou statiques)
deployement spec
SpecCommande
Excution : execcmd
CommandeServeur1
<<artifact>> <<artifact>>
PriseCom.jar facture.jar
CommandeServeur1
<<deploy>> <<deploy>>
<<artifact>> <<artifact>>
PriseCom.jar facture.jar
CommandeServeur1
<<artifact>>
facture.jar
<<artifact>>
PriseCom.jar
<<device>>
Serveur web
<<artifact>>
static.zip
<<device>>
Serveur application front
<<artifact>>
front.ear
<<device>>
Serveur application mtier
<<artifact>>
metier.ear
<<device>>
Serveur BDD
<<artifact>>
scripts.sql
2.4.1 Paquetage
Un paquetage regroupe des lments de la modlisation appels aussi membres,
portant sur un sous-ensemble du systme. Le dcoupage en paquetage doit traduire
un dcoupage logique du systme construire qui corresponde des espaces de
nommage homognes.
2.4 Diagramme de paquetage (DPA) 55
Les lments dun paquetage peuvent avoir une visibilit dclare soit de type
public (+) soit priv (-).
Un paquetage peut importer des lments dun autre paquetage. Un paquetage
peut tre fusionn avec un autre paquetage.
Formalisme et exemple
La figure 2.50 montre le formalisme gnral dun paquetage et les trois manires de
prsenter un paquetage.
Reprsentation globale Le nom du paquetage se trouve lintrieur du
grand rectangle.
Reprsentation dtaille Les membres du paquetage sont reprsents et le
nom du paquetage densemble sinscrit dans le petit rectangle.
Reprsentation clate Les membres du paquetage sont relis par un lien
connect au paquetage par le symbole .
Nom du
paquetage
Membre A Membre B
Nom du paquetage
Nom du paquetage
+
Membre A Membre B
Gestion commerciale
+
Commande Facture
import
Domaine client Domaine tiers
import
import
import
Location
Rservation
Enfin, UML propose aussi une opration de fusion entre deux paquetages. Le lien
de dpendance comporte dans ce cas le mot-cl merge .
Ce type de lien permet de fusionner deux paquetages et dobtenir ainsi un paque-
tage contenant la fusion des deux paquetages dorigine. Pour bien clarifier cette op-
ration, il est important de qualifier par des rles les paquetages dans cette fusion.
Ainsi trois rles sont distinguer :
le paquetage fusionner (entrant dans la fusion, mais prserv aprs la fusion) ;
le paquetage recevant (paquetage dorigine avant la fusion, mais non conserv
aprs la fusion) ;
le paquetage rsultat (paquetage contenant le rsultat de la fusion et crasant
le contenu du paquetage dorigine).
Un exemple type de fusion entre deux paquetages est donn la figure 2.54.
A A B
merge fusion
devenir
B
B
Paquetage dorigine
Paquetage rsultat
2.5.1 Collaboration
Une collaboration reprsente un assemblage de rles dlments qui interagissent en
vue de raliser une fonction donne. Il existe deux manires de reprsenter une
collaboration :
reprsentation par une collaboration de rles,
reprsentation par une structure composite : le diagramme de structure
composite.
attribut1
attribut1
attribut1
attribut1
attribut2
attribut2 attribut2
attribut2
mapping stockage
Dans cet exemple, la fonction Persistance objets mtier rsulte dune collabora-
tion entre la classe ClasseMtier considre suivant le rle mapping et la classe
TableBDD considre suivant le rle stockage.
Cette reprsentation permet aussi de prciser les seuls attributs des classes parti-
cipantes qui sont considrs suivant les rles pris en compte.
3
Les diagrammes
comportementaux
Acteur
Un acteur est un utilisateur type qui a toujours le mme comportement vis--vis
dun cas dutilisation. Ainsi les utilisateurs dun systme appartiennent une ou
plusieurs classes dacteurs selon les rles quils tiennent par rapport au systme.
Une mme personne physique peut se comporter en autant dacteurs diffrents
que le nombre de rles quelle joue vis--vis du systme.
Ainsi par exemple, ladministrateur dun systme de messagerie peut tre aussi
utilisateur de cette mme messagerie. Il sera considr, en tant quacteur du systme,
dans le rle dadministrateur dune part et dans celui dutilisateur dautre part.
Un acteur peut aussi tre un systme externe avec lequel le cas dutilisation va
interagir.
Formalisme et exemple
Un acteur peut se reprsenter symboliquement par un bonhomme et tre iden-
tifi par son nom. Il peut aussi tre formalis par une classe strotype acteur
(fig. 3.1).
acteur
Nom de lacteur
Formalisme et exemple
Un cas dutilisation se reprsente par un ovale dans lequel figure son intitul.
Linteraction entre un acteur et un cas dutilisation se reprsente comme une
association. Elle peut comporter des multiplicits comme toute association entre
classes (voir 2.1 Diagramme de classe).
Le formalisme de base de reprsentation dun cas dutilisation est donn la
figure 3.2.
Interaction
Nom du cas
dutilisation
Nom de lacteur
Chaque cas dutilisation doit tre dcrit sous forme textuelle afin de bien identi-
fier les traitements raliser par le systme en vue de la satisfaction du besoin
exprim par lacteur.
Exemple
La figure 3.3 montre un exemple dun systme de messagerie comportant quatre cas
dutilisation.
Nous verrons, dans la suite de la prsentation dUML, quun cas dutilisation peut
avoir une ou plusieurs instances reprsentes par des scnarios. Chaque scnario
fait lobjet lui-mme dun diagramme de squence ou de communication.
En conclusion, nous dirons quun systme est caractris par son comportement
vis--vis de ses utilisateurs. Ce comportement se reprsente sous forme dun en-
semble de cas dutilisation qui correspond aux besoins des acteurs de ce systme.
64 Chapitre 3. Les diagrammes comportementaux
Systme de messagerie
1 *
Connexion
1
Acteur A
1 *
Lecture bote
1
1
*
*
Changement de droit Administrateur
Relation dinclusion
Une relation dinclusion dun cas dutilisation A par rapport un cas dutilisation B
signifie quune instance de A contient le comportement dcrit dans B.
Formalisme et exemple
La figure 3.4 donne le formalisme et un exemple dune relation dinclusion entre cas
dutilisation.
3.1 Diagramme des cas dutilisation (DCU) 65
Cas A
include
Cas B
include
Cas C
Les cas A et C
ont recours au cas B
1
* include
Cration
dun nouvel abonn Contrle paiement
abonnement
Gestionnaire
Relation dextension
Une relation dextension dun cas dutilisation A par un cas dutilisation B signifie
quune instance de A peut tre tendue par le comportement dcrit dans B. Deux
caractristiques sont noter :
le caractre optionnel de lextension dans le droulement du cas dutilisation
standard (A) ;
la mention explicite du point dextension dans le cas dutilisation standard.
Formalisme et exemple
La figure 3.5 donne un exemple dune relation dextension entre cas dutilisation.
Une note peut tre ajoute la reprsentation du cas dutilisation permettant
dexpliciter la condition.
Relation de gnralisation
Une relation de gnralisation de cas dutilisation peut tre dfinie conformment
au principe de la spcialisation-gnralisation dj prsente pour les classes.
Formalisme et exemple
La figure 3.6 donne un exemple dune relation de gnralisation de cas dutilisation.
66 Chapitre 3. Les diagrammes comportementaux
extend Cas A
Cas B
Point d'extension : X
Servir
boisson chaude
1 *
Point dextension : X
Condition :
Client {si plus de sucre}
extend Point dextension : X
Servir
supplment sucre
1 *
Retirer argent
Client
3.1.5 Exercices
Exercice 1
nonc
Une bibliothque universitaire souhaite automatiser sa gestion. Cette bibliothque
est gre par un gestionnaire charg des inscriptions et des relances des lecteurs
quand ceux-ci nont pas rendu leurs ouvrages au-del du dlai autoris. Les biblio-
thcaires sont chargs de grer les emprunts et la restitution des ouvrages ainsi que
lacquisition de nouveaux ouvrages.
Il existe trois catgories dabonn. Tout dabord les tudiants qui doivent seule-
ment sacquitter dune somme forfaitaire pour une anne afin davoir droit tous les
services de la bibliothque. Laccs la bibliothque est libre pour tous les ensei-
gnants. Enfin, il est possible dautoriser des tudiants dune autre universit sins-
crire exceptionnellement comme abonn moyennant le versement dune cotisation.
Le nombre dabonn externe est limit chaque anne environ 10 % des inscrits.
Un nouveau service de consultation du catalogue gnral des ouvrages doit tre
mis en place.
Les ouvrages, souvent acquis en plusieurs exemplaires, sont rangs dans des
rayons de la bibliothque. Chaque exemplaire est repr par une rfrence gre
dans le catalogue et le code du rayon o il est rang.
Chaque abonn ne peut emprunter plus de trois ouvrages. Le dlai demprunt
dun ouvrage est de trois semaines, il peut cependant tre prolong exceptionnelle-
ment cinq semaines.
Il est demand dlaborer le diagramme des cas dutilisation (DCU).
68 Chapitre 3. Les diagrammes comportementaux
Corrig
Reprsentation du DCU La figure 3.7 propose un corrig-type de cet exercice. Six
cas dutilisation peuvent tre identifis :
inscription la bibliothque,
consultation du catalogue,
emprunt douvrages,
restitution douvrages,
approvisionnement douvrages,
relance emprunteur.
Comme le montre la figure 3.7, cinq types dacteurs peuvent tre identifis :
tudiant,
externe,
emprunteur,
gestionnaire,
bibliothcaire.
tudiant
S'inscrire include
Paiement
des droits
Externe
Consulter catalogue
Gestionnaire
Emprunter ouvrage
Emprunteur
Rendre ouvrage
Approvisionner ouvrage
Bibliothcaire
Relancer
Exercice de synthse
En reprenant lnonc de lexercice de synthse Locagite, nous allons laborer le
diagramme des cas dutilisation des quatre activits dcrites :
Catalogue, cette activit se dcompose en trois cas dutilisation :
cas dutilisation 1.1 : Gestion annuelle du catalogue
cas dutilisation 1.2 : Publication du catalogue
cas dutilisation 1.3 : Contrle annuel de ltat du gte
Propritaire, cette activit se dcompose en deux cas dutilisation :
cas dutilisation 2.1 : Gestion propritaire
cas dutilisation 2.2 : Authentification propritaire
Rservation, cette activit dcompose en deux cas dutilisation :
cas dutilisation 3.1 : Gestion des rservations
cas dutilisation 3.2 : Authentification client
Location, cette activit se dcompose en deux cas dutilisation :
cas dutilisation 4.1 : Gestion des locations
cas dutilisation 4.2 : Gestion des annulations
Pour ces cas dutilisation considrs, quatre acteurs types externes peuvent tre
identifis :
le propritaire,
le propritaire adhrent (qui met en location son gte),
le client rservataire,
le client locataire.
Dans le cadre de cet exercice de synthse, nous nous limiterons donner la description
textuelle des scnarios des cas dutilisation de lactivit catalogue (cas 1.1, 1.2 et 1.3).
Scnario nominal
1. Crer un nouveau propritaire sil nexiste pas.
2. Crer un gte.
3. Ajouter le gte cr au catalogue.
Scnarios alternatifs
1-a : Erreurs dtectes dans la saisie du propritaire :
Le systme raffiche le formulaire de saisie en indiquant les erreurs dtectes.
Le coordonnateur corrige les erreurs.
Le cas dutilisation reprend laction 1 du scnario nominal.
2-a : Erreurs dtectes dans la saisie du gte :
Le systme raffiche le formulaire de saisie en indiquant les erreurs dtectes.
Le coordonnateur corrige les erreurs.
Le cas dutilisation reprend laction 2 du scnario nominal.
Gestionnaire catalogue
Propritaire
<<extend>>
<<extend>>
<<include>
<<include>>
Propritaire adhrent
<<include>> <<extend>>
<<extend>>
<<include>>
4.1 Gestion location
Client locataire
Scnarios alternatifs :
1-a : le propritaire ou le gte nexiste pas :
Le systme raffiche le formulaire de saisie en indiquant lerreur dtecte.
Le gestionnaire corrige les erreurs.
Le cas dutilisation reprend laction 1 du scnario nominal.
Formalisme et exemple
Un objet reste dans un tat pendant une certaine dure. La dure dun tat corres-
pond au temps qui scoule entre le dbut dun tat dclench par une transition i et
la fin de ltat dclench par la transition i+1. Une condition, appele garde ,
peut tre associe une transition.
Le formalisme de reprsentation dtat-transition est donn la figure 3.9.
Candidature
accepte Prise de fonction [date d'embauche chue]
Employ Employ
recrut en activit
Action et activit
Une action est une opration instantane qui ne peut tre interrompue ; elle est
associe une transition.
Une activit est une opration dune certaine dure qui peut tre interrompue,
elle est associe un tat dun objet.
Formalisme et exemple
Le formalisme de reprsentation dtat-transition comprenant la reprsentation
daction et/ou activit est donn la figure 3.11.
La figure 3.12 montre un exemple des actions et activits dtats ainsi que la des-
cription complte dune transition.
tat 1 tat 2
Maladie [avec arrt]/mise en arrt
faire : travaille faire : mise en arrt
Formalisme et exemple
Le formalisme de reprsentation des tats initial et final est donn la figure 3.13.
tat 1 tat 4
tat 2 tat 3
initial final
Afin de nous rapprocher des situations relles, nous proposons la figure 3.14 un
premier exemple tir dune gestion commerciale qui montre le diagramme dtat-
transition de lobjet client.
re
Passer 1 commande Non-paiement Limite
financire
Client dpasse
Client Client
prospect actif douteux
Paiement
Client
Ne passe plus en contentieux
commande
Client Client
inactif supprim
Fin du
Une anne
contentieux
sans commande
En prvision
darrive
Prise de fonction
En activit
Dpart de lagence
Parti
Formalisme et exemple
Le formalisme de reprsentation dtats composites est donn la figure 3.16.
enregistr/contrler contrl/dcider
Reu Contrl Accept
Symbole de reprsentation
dun tat composite
Dans cet exemple, ltat contrl est un tat composite qui fait lobjet dune des-
cription individualise un second niveau que lon appelle aussi sous-machine dtat.
Anomalie
Entre
standard
Figure 3.17 Exemple dune sous-machine dtat avec point dentre et de sortie
Point de jonction
Lorsque lon veut relier plusieurs tats vers dautres tats, un point de jonction
permet de dcomposer une transition en deux parties en indiquant si ncessaire les
gardes propres chaque segment de la transition.
lexcution, un seul parcours sera emprunt, cest celui pour lequel toutes les
conditions de garde seront satisfaites.
Formalisme et exemple
Le formalisme de reprsentation dtats-transitions avec point de jonction est donn
la figure 3.18.
Point de choix
Le point de choix se comporte comme un test de type : si condition faire action1
sinon faire action2.
Formalisme et exemple
Le formalisme de reprsentation dtats composites est donn la figure 3.19.
3.2 Diagramme dtat-transition (DET) 77
Point de jonction
[typeMessage = Fax]
message Fax A/R
reu message Fax
Point de choix
[else]
A/R Fax
message Fax message Fax reu/activerA/R
reu
tat historique
La mention de lhistorisation dun tat composite permet de pouvoir indiquer la
rutilisation du dernier tat historis en cas de besoin.
Formalisme et exemple
Le formalisme de reprsentation dtats historiss est donn la figure 3.20.
H tat historis
Programme Lavage
remise en marche
arrt/mise en marche
3.2.4 Exercices
Exercice 1
nonc
Soit reprsenter le diagramme dtat-transition dun objet personnel en suivant les
vnements de gestion depuis le recrutement jusqu la mise en retraite.
Aprs le recrutement, une personne est considre en activit ds sa prise de
fonction dans lentreprise. Au cours de sa carrire, nous retiendrons seulement les
vnements : cong de maladie et prise de cong annuel. En fin de carrire, nous
retiendrons deux situations : la dmission et la retraite.
Corrig
Nous proposons au lecteur un corrig type la figure 3.21. Ce corrig ne reprsente
quune solution parmi dautres variantes possibles suivant la lecture faite de
lnonc. Pour notre part, nous avons retenu les tats caractristiques : recrut, acti-
vit, en cong, en arrt, parti et retraite.
3.2 Diagramme dtat-transition (DET) 79
retraite
Maladie/mise en maladie
Arrive/prise de fonction
Reprise/reprise activit
Retour
Dmission/dpart cong/mise
en activit Prise de cong/mise en cong
parti en cong
Exercice de synthse
En se replaant dans lexercice de synthse Locagite, nous allons retenir lobjet
Gtes grs comme support dapplication du diagramme dtat-transition. Quatre
tats permettent de caractriser son comportement :
tat 1 : Gte louer
tat 2 : Gte rserv
tat 3 : Gte rserv ferme
tat 4 : Gte rserv lou
annulation sjour
cration rservation
Gte louer rserv
acompte
pas acompte
rserv
ferme
annulation sjour
solde
pas solde
location
lou
Nous avons par ailleurs rserv un traitement particulier pour les concepts action
et activit. En effet, tant donn que ces concepts sont au cur du diagramme
dactivit, nous avons prfr les traiter de manire dtaille ce niveau alors
quils sont dj voqus dans le diagramme dtat-transition.
Action
Une action correspond un traitement qui modifie ltat du systme. Cette action
peut tre apprhende soit un niveau lmentaire proche dune instruction en
termes de programmation soit un niveau plus global correspondant une ou
plusieurs oprations.
Formalisme et exemple
Une action est reprsente par un rectangle dont les coins sont arrondis comme pour
les tats du diagramme dtat-transition (fig. 3.23).
transition
action 1 action 2
Activit
Une activit reprsente le comportement dune partie du systme en termes
dactions et de transitions. Une activit est compose de trois types de nuds :
nud dexcution (action, transition),
nud de contrle (nud initial, nud final, flux de sortie, nud de bifurca-
tion, nud de jonction, nud de fusion-test, nud de test-dcision, pin
dentre et de sortie),
nud dobjet.
Nud de bifurcation
(fourche)
rception paiement
Examen
candidature Points
de bifurcation
Prparation Prparation
entretien technique entretien DRH
Formalisme et exemple
Le formalisme de reprsentation dun nud de jonction est donn la figure 3.28.
84 Chapitre 3. Les diagrammes comportementaux
Nud de jonction
(synchronisation)
Nud de test-dcision
Un nud de test-dcision permet de faire un choix entre plusieurs flots sortants en
fonction des conditions de garde de chaque flot. Un nud de test-dcision na quun
seul flot en entre. On peut aussi utiliser seulement deux flots de sortie : le premier
correspondant la condition vrifie et lautre traitant le cas sinon.
Formalisme et exemple
Le formalisme de reprsentation dun nud de test-dcision ainsi quun premier
exemple sont donns la figure 3.29. Un second exemple avec nud de test-dci-
sion est donn la figure 3.30.
Facturer particulier
[particulier]
Saisir
commande
[grossiste] Facturer grossiste
Examen
candidature
Transition
Entretien
Nud de fusion-test
Un nud de fusion-test permet davoir plusieurs flots entrants possibles et un seul
flot sortant. Le flot sortant est donc excut ds quun des flots entrants est activ.
Formalisme et exemple
Le formalisme de reprsentation dun nud de fusion-test ainsi quun exemple sont
donns la figure 3.31.
Nud de fusion-test
Commander
par tlphone
Commander
Facturer
par messagerie
Commander
par courrier
facturer
p1
r1
p2
p1 : entier
p2 : texte
r1 : rel
Figure 3.32 Formalisme et exemple dactivit avec pin dentre et de sortie
Commander Facturer
: commande : commande
Commander Facturer
[commande]
Partition
UML permet aussi dorganiser la prsentation du diagramme dactivit en couloir
dactivits. Chaque couloir correspond un domaine de responsabilit dun certain
nombre dactions.
Les flots dobjets sont aussi reprsents dans le diagramme. Lordre relatif des cou-
loirs de responsabilit nest pas significatif.
Demander produit
Commander
Enregistrer commande
crer
[Commande]
Facturer
crer
[Facture]
Formalisme et exemple
Le formalisme de reprsentation ainsi quun exemple dactions de communication
sont donns la figure 3.35.
Signal reu
Signal envoy
Actionner ouverture
3.3.3 Exercices
Exercice 1
En reprenant lexercice relatif la gestion de la bibliothque trait dans les cas
dutilisation nous pouvons laborer le diagramme dactivit correspondant.
Deux acteurs ont t identifis :
Bibliothcaire charg de lapprovisionnement des ouvrages, de la gestion du
catalogue et de lenregistrement des emprunts et retours douvrages ;
Gestionnaire, charg de linscription des adhrents et de la relance des adh-
rents ayant dpass le dlai de restitution des ouvrages.
Gestionnaire Bibliothcaire
[ouvrage]
[adhrent]
enregistrer emprunt/retour
[ dlai dpass ]
[ dlai dpass ]
relancer adhrent
Exercice de synthse
La figure 3.37 reprsente le diagramme dactivit de Locagite. Ce diagramme nous
permet de montrer, par couloir de responsabilit des acteurs internes Locagite, les
tats-actions excuts.
90 Chapitre 3. Les diagrammes comportementaux
enregistrer rservations
enregistrer nouveau gte
[ dlai dpass ]
diter catalogue
[ arrive solde ]
annuler contrat
enregistrer solde
sd nom du diagramme
reprsentation du diagramme
Ligne de vie
Une ligne de vie reprsente lensemble des oprations excutes par un objet. Un
message reu par un objet dclenche lexcution dune opration. Le retour dinfor-
mation peut tre implicite (cas gnral) ou explicite laide dun message de retour.
Formalisme et exemple
Le formalisme est donn dans lexemple type prsent la figure 3.39.
sd Diagramme 1
message 2()
message 3
message 4
message 5()
retour message3
objet 1 : Classe 1
Cration objet 2
objet 2 : Classe 2
Destruction objet 2
Il est aussi possible dans certains outils de modlisation dindiquer plus simple-
ment la cration dune nouvelle instance dobjet en utilisant le mot-cl create
(voir exemple dans les tudes de cas prsentes la fin de cet ouvrage).
Contrainte temporelle
Des contraintes de chronologie entre les messages peuvent tre spcifies. De plus lorsque
lmission dun message requiert une certaine dure, il se reprsente sous la forme dun
trait oblique. Un exemple gnral de contrainte temporelle est donn la figure 3.41.
Lorsque le diagramme de squence est utilis pour reprsenter un sous-ensemble
du logiciel raliser, il est possible dindiquer le pseudo-code excut par un objet
pendant le droulement dune opration.
3.4 Diagramme de squence (DSE) 93
Formalisme et exemple
Dans lexemple propos (fig. 3.42), le fragment ContrlerProduit est reprsent
avec un port dentre et un port de sortie.
Un fragment dinteraction dit combin correspond un ensemble dinteraction
auquel on applique un oprateur. Un fragment combin se reprsente globalement
comme un diagramme de squence avec indication dans le coin gauche du nom de
loprateur.
Treize oprateurs ont t dfinis dans UML : alt, opt, loop, par, strict/weak, break, ignore/
consider, critical, negative, assertion et ref.
94 Chapitre 3. Les diagrammes comportementaux
sd Diagramme densemble
Interface
IHM Client
: Gestionnaire
saisirCommande( )
contrlerClient( )
seq ContrlerProduit
Produit
contrlerExistenceProduit
existeProduit( )
Oprateur alt
Loprateur alt correspond une instruction de test avec une ou plusieurs alterna-
tives possibles. Il est aussi permis dutiliser les clauses de type sinon.
Formalisme et exemple
Loprateur alt se reprsente dans un fragment possdant au moins deux parties spa-
res par des pointills. Lexemple donn (fig. 3.43) montre lquivalent dun test
deux conditions explicites (sans clause sinon).
Oprateur opt
Loprateur opt (optional) correspond une instruction de test sans alternative (sinon).
Formalisme et exemple
Loprateur opt se reprsente dans un fragment possdant une seule partie (fig. 3.44).
Oprateur loop
Loprateur loop correspond une instruction de boucle qui permet dexcuter une
squence dinteraction tant quune condition est satisfaite.
Il est possible aussi dutiliser une condition portant sur un nombre minimum et
maximum dexcution de la boucle en crivant : loop min, max. Dans ce cas, la bou-
cle sexcutera au minimum min fois et au maximum max fois. Il est aussi possible de
combiner loption min/max avec la condition associe la boucle.
3.4 Diagramme de squence (DSE) 95
: Adhrent : Emprunt
: Gestionnaire
saisirAdhrent( ) contrlertat( )
alt tatEmprunt
[tat emprunt=rendu]
autoriserEmprunt( )
: Adhrent : Emprunt
: Gestionnaire
relancer( )
testerArelancer( )
retourSituationRelance
opt Relancer [si relance]
relancer( )
Formalisme et exemple
Loprateur loop se reprsente dans un fragment possdant une seule partie et englo-
bant toutes les interactions faisant partie de la boucle. Un exemple est donn la
figure 3.45.
96 Chapitre 3. Les diagrammes comportementaux
: Association : Adhrent
Oprateur par
Loprateur par (parallel) permet de reprsenter deux sries dinteractions qui se
droulent en parallle.
Formalisme et exemple
Loprateur par se reprsente dans un fragment possdant deux parties spares par
une ligne en pointill. Cest un oprateur qui est notre avis plutt utilis dans
linformatique temps rel et cest pour cela que nous ne donnerons quun exemple
type (fig. 3.46).
Traitements A1 et A2 mens
en parallle au traitement B3
par traiterA1( )
traiterA2( )
traiterB3( )
Formalisme et exemple
Lexemple prsent figure 3.47 montre que les oprations A1, A2, B1, B2 et A3
doivent tre excutes dans cet ordre puisquelles font partie du fragment dinterac-
tion comportant loprateur strict.
strict
traiterA1( )
traiterA2( )
traiterB1( )
traiterB2( )
traiterA3( )
Oprateur break
Loprateur break permet de reprsenter une situation exceptionnelle correspondant
un scnario de rupture par rapport au scnario gnral. Le scnario de rupture
sexcute si la condition de garde est satisfaite.
Formalisme et exemple
Lexemple prsent figure 3.48 montre que les oprations annulerOp1( ),
annulerOp2( ) et afficherAide( ) ne seront excutes que si la touche F1 est active
sinon le fragment est ignor et la squence de traitement passe directement de
lopration Op2( ) lopration Op3( ).
98 Chapitre 3. Les diagrammes comportementaux
sd Exemple break
Op1( )
Op2( )
break [F1]
annulerOp1( )
annulerOp2( )
afficherAide( )
Op3( )
Formalisme et exemple
Lexemple prsent figure 3.49 montre que :
dans le fragment consider, les messages Op1, Op2 et Op5 doivent tre obliga-
toirement prsents lors de lexcution du fragment sinon le fragment nest pas
excut,
dans le fragment ignore, les messages Op2 et Op3 peuvent tre absents lors de
lexcution du fragment.
Oprateur critical
Loprateur critical permet dindiquer quune squence dinteractions ne peut tre
interrompue compte tenu du caractre critique des oprations traites. On considre
que le traitement des interactions comprises dans la squence critique est atomique.
Formalisme et exemple
Lexemple prsent figure 3.50 montre que les oprations Op1( ), Op2( ) et Op3( )
du fragment critical doivent sexcuter sans interruption.
3.4 Diagramme de squence (DSE) 99
consider {Op1,Op2,Op5)
Op1( ) Op2( )
Op3( )
Op5( )
ignore {Op2,Op3}
Op2( )
Op3( )
Op5( )
critical
Op1( )
Op2( )
Op3( )
Oprateur negative
Loprateur neg (negative) permet dindiquer quune squence dinteractions est
invalide.
Formalisme et exemple
Lexemple prsent figure 3.51 montre que les oprations Op1( ) et Op2( ) du frag-
ment neg sont invalides. Une erreur sera dclenche dans ce cas lexcution du
fragment.
neg
Op1( )
Op2( )
Oprateur assertion
Loprateur assert (assertion) permet dindiquer quune squence dinteractions est
lunique squence possible en considrant les messages changs dans le fragment.
Toute autre configuration de message est invalide.
Formalisme et exemple
Lexemple prsent figure 3.52 montre que le fragment assert ne sexcutera que si
lunique squence de traitement Op1( ), Op2( ) et Op3( ) se ralise en respectant
lensemble des caractristiques de ces oprations (paramtre dentre, type de
rsultat). Toute autre situation sera considre invalide.
Oprateur ref
Loprateur ref permet dappeler une squence dinteractions dcrite par ailleurs
constituant ainsi une sorte de sous-diagramme de squence.
Formalisme et exemple
Lexemple prsent figure. 3.53 montre que lon fait appel un fragment Contrle
des droits qui est dcrit par ailleurs.
3.4 Diagramme de squence (DSE) 101
assert
Op1( )
Op2( )
Op3( )
ref
Scnario A
Client X
Reprsentant Commande Facture
Demande
Disponibilit
articles
Rponse
Proposition disponibilit
commande
Commande
Commande
Facturation
Facture
3.4.5 Exercices
Exercice 1
En se rfrant au sujet de lexercice 3 du diagramme de classe, nous donnons titre
dexemple, la figure 3.55 le diagramme de squence. Ce scnario correspond la
cration dune agence intgrant la cration dune personne.
: DirectionRgionale
1 : Cration
d'une agence
agence : Agence
2 : Cration
du directeur de lagence
personnel : Personnel
3 : Directeur
de lagence cr
4 : Agence cre
Exercice de synthse
Nous reprenons ici les cas dutilisation dcrits dans lexercice de synthse du DCU.
La figure 3.56 reprsente le DSE du cas dutilisation Gestion annuelle du catalogue.
La figure 3.57 reprsente le DSE du cas dutilisation Publication du catalogue.
: Gestionnaire catalogue
crationGte( )
contrleSaisie( )
crationPropritaire( )
<<create>>
crationGte( )
contrleSaisie( )
MAJactivit( )
ajoutGte( )
contrlerGte( )
contrlePropritaire( )
modifActivit( )
erreur propritaire
afficheTarifSemaine( )
afficheActivit( )
Rle
Chaque participant un change de message correspondant une ligne de vie dans
le diagramme de squence se reprsente sous forme dun rle dans le diagramme de
communication. Un rle est identifi par :
<nom de rle> : <nom du type>
Une des deux parties de cette identification est obligatoire ainsi que le sparateur
: . Le nom du rle correspond au nom de lobjet dans le cas o lacteur ou la classe
ont un rle unique par rapport au systme. Le nom du type correspond au nom de la
classe lorsque lon manipule des objets.
Exemple
administrateur : utilisateur
Pour un utilisateur qui est vu au travers de son rle dadministrateur.
Message
Un message correspond un appel dopration effectu par un rle metteur vers un
rle rcepteur. Le sens du message est donn par une flche porte au-dessus du lien
3.5 Diagramme de communication (DCO) 105
Exemples
1.2.1 * [3 fois] pour un message adresser trois fois de suite.
1.2a et 1.2b pour deux messages envoys en mme temps.
Exemple rcapitulatif de dsignation de message :
1.2a.1.1[si t > 100] : lancer( )
Ce message signifie :
1.2a : numro du message reu avant lenvoi du message courant.
1.1 : numro de message courant envoyer.
[si t > 100] : message envoyer si t > 100.
lancer( ) : nom du message envoyer.
sd Communication
1- commandeDemande( )
Client Commande
2- rechercheProduit( )
3- commandeRalise( )
Produit
3.5.3 Exercices
Exercice 1
En reprenant le sujet de lexercice 1 du diagramme de squence, nous donnons la
figure 3.60 son quivalent en diagramme de communication.
4 : Agence cre
personnel : Personnel
Les lignes de vie concernes par le diagramme global dinteraction peuvent tre
cites dans len-tte du diagramme mais ne sont pas reprsenter graphiquement.
Concepts manipuls
Le diagramme global dinteraction utilise les concepts du diagramme dactivit
auquel on ajoute deux complments :
Les fragments dinteraction du diagramme de squence Il sagit comme le
montre la figure 3.61 de la notion de fragment dinteraction vue dans le
diagramme de squence mais qui ne doit pas tre dtaill ce niveau.
sd Interaction
Client Commande
commander( )
ref
Nom du fragment
ref
activer systmeContrle Accs
sd
Utilisateur systmeContrle
contrlerCode
Contrle non OK
Contrle OK
sd
Utilisateur systmeContrle
Message Entrer
ref
ouvrirPorte
Concepts manipuls
Le diagramme de temps utilise trois concepts de base :
Ligne de vie Elle reprsente lobjet que lon veut dcrire. Elle se dessine de
manire horizontale. Plusieurs lignes de vie peuvent figurer dans un
diagramme de temps.
tat ou ligne de temps conditionne Les diffrents tats que peut prendre
lobjet dtude sont lists en colonne permettant ainsi de suivre le comporte-
ment de lobjet ligne par ligne (une ligne pour un tat).
tats linaires Il sagit du mme concept que le prcdent, mais la reprsen-
tation de la succession des tats est faite de manire linaire laide dun
graphisme particulier.
Dans cet exemple, nous avons deux objets tudier : pompe eau et chauffage de
leau. Nous allons considrer pour chacun dentre eux deux tats significatifs : activ
et dsactiv.
110 Chapitre 3. Les diagrammes comportementaux
sd Chauffage vapeur
Vapeur demande
et rserve eau Rserve eau
:pompe eau
insuffisante suffisante
activ
dsactiv
:chauffage eau
activ
timer t
sd Chauffage vapeur
{ t..t +3}
timer t
Nous proposons dans ce chapitre tout dabord une synthse des deux principaux
processus de dveloppement objet qui ont t associs UML. Il sagit de UP
(Unified Process) et de RUP (Rational Unified Process). Ensuite nous prsentons notre
propre dmarche de dveloppement UP7 qui est fonde sur UP.
Ces principes sont la base du processus unifi dcrit par les auteurs dUML.
Rle
Un rle dfinit le comportement et les responsabilits dune ressource ou dun
groupe de ressources travaillant en quipe. Le rle doit tre considr en termes de
casquette quune ressource peut revtir sur le projet. Une ressource peut jouer
plusieurs rles sur le projet.
Par exemple sur un projet, Paul peut tre la fois chef de projet et architecte. Il
reprsente deux rles au sens dUP (fig. 4.1).
Activit
Les rles ont des activits qui dfinissent le travail quils effectuent. Une activit est
une unit de travail quune ressource, dans un rle bien prcis, peut effectuer et qui
produit un rsultat dans le cadre du projet. Lactivit a un but clairement tabli,
gnralement exprime en termes de cration ou de mise jour dartefacts, comme
un modle, une classe ou un planning. Les ressources sont affectes aux activits
selon leurs comptences et leur disponibilit.
Par exemple, les activits planifier une itration et anticiper les risques
sont attribues au rle de chef de projet.
Le schma de la figure 4.1 prsente sur un exemple le positionnement et les liens
entre ressources, rles et activits.
114 Chapitre 4. Dmarche de dveloppement
Artefacts
Un artefact est un ensemble dinformations qui est produit, modifi ou utilis par le
processus. Les artefacts sont les produits effectifs du projet. Les artefacts sont utiliss
comme input par les ressources pour effectuer une activit et sont le rsultat doutput
dactivits du processus.
Un exemple dartefacts rencontrs au cours du projet est un planning dune itra-
tion ou un diagramme produit dans une activit.
Workflows
Une numration de tous les rles, activits et artefacts ne constitue pas un
processus. En effet, il est ncessaire davoir une faon de dcrire des squences dacti-
vits mesurables qui produisent un rsultat de qualit et montre linteraction entre
les ressources. Le workflow est une squence dactivits qui produit un rsultat
mesurable. En UML, il peut tre exprim par un diagramme de squence, un
diagramme de communication ou un diagramme dactivit.
Schma densemble
UP peut tre dcrit suivant deux dimensions traduites en deux axes comme le
montre la figure 4.2 :
Un axe horizontal reprsentant le temps et montrant laspect dynamique du
processus. Sur cet axe, le processus est organis en phases et itrations.
Un axe vertical reprsentant laspect statique du processus. Sur cet axe, le
processus est organis en activits et workflows.
Inception
Organisation
en fonction
du contenu :
les activits
Itrations
Inception (Lancement)
Cette phase correspond linitialisation du projet o lon mne une tude doppor-
tunit et de faisabilit du systme construire. Une valuation des risques est aussi
ralise ds cette phase.
En outre, une identification des principaux cas dutilisation accompagne dune
description gnrale est modlise dans un diagramme de cas dutilisation afin de
dfinir le primtre du projet. Il est possible, ce stade, de faire raliser des maquet-
tes sur un sous-ensemble des cas dutilisation identifis.
Ce nest qu lissue de cette premire phase que lon peut considrer le projet
vritablement lanc.
laboration
Cette phase reprend les rsultats de la phase dinception et largit lapprciation de
la faisabilit sur la quasi-totalit des cas dutilisation. Ces cas dutilisation se retrou-
vent dans le diagramme des cas dutilisation qui est ainsi complt.
Cette phase a aussi pour but danalyser le domaine technique du systme dve-
lopper afin daboutir une architecture stable. Ainsi, toutes les exigences non recen-
ses dans les cas dutilisation, comme par exemple les exigences de performances du
systme, seront prises en compte dans la conception et llaboration de larchitec-
ture.
Lvaluation des risques et ltude de la rentabilit du projet sont aussi prcises.
Un planning est ralis pour les phases suivantes du projet en indiquant le nombre
ditrations raliser pour les phases de construction.
116 Chapitre 4. Dmarche de dveloppement
Construction
Cette phase correspond la production dune premire version du produit. Elle est
donc fortement centre sur les activits de conception, dimplmentation et de test.
En effet, les composants et fonctionnalits non implments dans la phase prc-
dente le sont ici.
Au cours de cette phase, la gestion et le contrle des ressources ainsi que lopti-
misation des cots reprsentent les activits essentielles pour aboutir la ralisation
du produit. En parallle est rdig le manuel utilisateur de lapplication.
Transition
Aprs les oprations de test menes dans la phase prcdente, il sagit dans cette
phase de livrer le produit pour une exploitation relle. Cest ainsi que toutes les
actions lies au dploiement sont traites dans cette phase.
De plus, des bta tests sont effectus pour valider le nouveau systme auprs
des utilisateurs.
Itrations
Une phase peut-tre divise en itrations. Une itration est un circuit complet de dve-
loppement aboutissant une livraison (interne ou externe) dun produit excutable.
Ce produit est un sous-ensemble du produit final en cours de dveloppement, qui
crot incrmentalement ditration en itration pour devenir le systme final.
Chaque itration au sein dune phase aboutit une livraison excutable du systme.
Analyse
Lanalyse permet une formalisation du systme dvelopper en rponse lexpres-
sion des besoins formule par les utilisateurs. Lanalyse se concrtise par llaboration
4.4 Les principaux apports de RUP 117
Conception
La conception prend en compte les choix darchitecture technique retenus pour le
dveloppement et lexploitation du systme. La conception permet dtendre la
reprsentation des diagrammes effectue au niveau de lanalyse en y intgrant les
aspects techniques plus proches des proccupations physiques.
Implmentation
Cette phase correspond la production du logiciel sous forme de composants, de
bibliothques ou de fichiers. Cette phase reste, comme dans toutes les autres mthodes,
la plus lourde en charge par rapport lensemble des autres phases (au moins 40 %).
Test
Les tests permettent de vrifier :
la bonne implmentation de toutes les exigences (fonctionnelles et techniques),
le fonctionnement correct des interactions entre les objets,
la bonne intgration de tous les composants dans le logiciel.
Classiquement, diffrents niveaux de tests sont raliss dans cette activit : test
unitaire, test dintgration, test de rception, test de performance et test de non-
rgression.
Aprs cette prsentation dUP et afin dclairer le lecteur sur les principaux pro-
cessus de dveloppement actuellement utiliss dans lapproche objet, nous donnons
ci-aprs une description gnrale de RUP.
En son temps, la socit Rational Software (rachete par IBM) avait dvelopp
une version spcifique dUP sous le nom de RUP (Rational Unified Process), cette
dmarche a fait lobjet dun ouvrage [Kruchten2000]. Dans la prsentation qui
suit, nous avons surtout mis laccent sur les principaux apports de RUP par rapport
UP.
RUP (Rational Unified Process) est un processus bas sur une approche discipline
afin de bien matriser lassignation des tches et la responsabilisation des diffrents
acteurs participant au cycle de dveloppement du logiciel. RUP a pour objectif prin-
cipal de faire appliquer les bonnes pratiques de dveloppement aux entreprises, ce
qui confre au produit final une meilleure qualit.
118 Chapitre 4. Dmarche de dveloppement
RUP se veut tre un modle volutif qui doit tre configur pour pouvoir tre uti-
lis en intgrant les contraintes, les spcificits et lhistorique de lorganisation qui
ladopte.
Nous allons prsenter les principaux apports de RUP par rapport UP en traitant
les points suivants :
les bonnes pratiques,
les phases du processus,
les activits du processus.
Modlisation visuelle
RUP prconise lutilisation dun langage de modlisation standard comme UML qui
permet aux membres de lquipe de dveloppement de communiquer sans ambi-
gut.
Lutilisation doutils de modlisation visuelle est fortement recommande par
RUP. Ceux-ci permettent de modliser larchitecture et ses composants laide de
diagrammes. De plus, ils facilitent la gestion des modles de RUP et contribuent
maintenir la cohrence entre les diffrentes phases du processus : de lexpression des
besoins limplmentation. En rsum, la modlisation visuelle permet de grer la
complexit des logiciels.
1
2
3
4
5
6
8
9
jalon est constitu dun ensemble de critres dvaluation. Ces critres doivent tre
satisfaits pour passer la phase suivante. La figure 4.4 illustre les diffrents jalons au
cours du processus.
IOC
LCO LCA PR
Capacit
Objectifs Architecture Livraison
oprationnelle
du cycle de vie du cycle de vie du produit
initiale
temps
Le jalon LCO
La phase de lancement se termine par le jalon Objectifs du cycle de vie . Ce jalon
permet de sassurer que les critres suivants sont bien pris en compte par le projet :
Les exigences fondamentales, les caractristiques cls et les contraintes princi-
pales sont documentes.
tude de rentabilit dfinie et approuve.
Estimation de charge raliste, phases identifies, priorits dfinies et risques
dfinis.
Planning de phase dlaboration dfini.
Primtre dfini.
Le jalon LCA
La phase dlaboration se termine par le jalon Architecture du cycle de vie . Ce
jalon permet de sassurer que les critres suivants sont bien appliqus dans le projet :
Un ou plusieurs prototypes ont t raliss pour explorer les fonctionnalits
critiques et les scnarios architecturalement significatifs.
Architecture du projet dfinie et stable.
Risques dfinis et pris en compte dans larchitecture.
Planning des phases suivantes dtaill et prcis.
Le jalon IOC
La phase de construction se termine par le jalon Capacit oprationnelle
initiale . Ce jalon permet de sassurer que les critres suivants sont bien appliqus
dans le projet :
Version du produit assez stable et mature pour tre fournie au client.
Les tests sont tablis et dvelopps pour valider les versions excutables.
4.4 Les principaux apports de RUP 121
Le jalon PR
La phase de transition se termine par le jalon Livraison du produit . Ce jalon
permet de sassurer que les critres suivants sont bien appliqus dans le projet :
Le produit complet et achev en accord avec les exigences du client est dploy.
Le client est satisfait.
Les dpenses du projet correspondent aux dpenses prvues.
Les activits
Les activits de RUP, dcrites ci-aprs, sont celles qui sont nouvelles par rapport
UP. Les autres activits sont dj dcrites dans UP.
Modlisation mtier
La modlisation mtier permet de mieux comprendre la structure et la dynamique
de lorganisation tudie. Elle assure au client que les utilisateurs finaux et les dve-
loppeurs partagent une vision commune de lorganisation. Elle permet daboutir
une cartographie des processus mtier de lorganisation cliente.
Dploiement
Le but de lenchanement des activits de dploiement est de livrer le produit aux
utilisateurs finaux. Cela inclut de nombreuses sous-activits :
Packaging du logiciel.
Livraison du logiciel.
Migration des donnes existantes (dans certains cas).
Installation du logiciel.
Assistance aux utilisateurs.
Ces sous-activits sont ralises pour la plupart lors de la phase de transition.
Nanmoins, un certain nombre dentre elles doivent tre prpares lors de la phase
de construction comme par exemple le packaging du logiciel.
122 Chapitre 4. Dmarche de dveloppement
Gestion de projet
La gestion dun projet logiciel est lart de mesurer les objectifs comptitifs, de grer
les risques et les contraintes pour fournir un produit qui satisfait les besoins exprims
par les utilisateurs.
Pour cela, RUP insiste sur laspect itratif du processus de dveloppement et four-
nit un cadre de travail dj document par :
un framework pour la gestion dun projet logiciel,
des conseils pour la planification, lallocation des ressources, la prise de dci-
sion et le suivi de projet,
un framework pour grer les risques.
Environnement
La gestion de lenvironnement consiste mettre en place tout ce qui permet aux
diffrents acteurs/rles de raliser au mieux leurs activits. Ce qui revient fournir
lorganisation, lenvironnement de dveloppement tant processus quoutils qui
va aider lquipe de dveloppement.
Cet environnement peut tre adapt pour chaque projet. Ainsi RUP fournit des
modles et des outils facilement adaptables aux diffrents types de projet.
4.5 Dmarche de dveloppement UP7 123
2- Exigences
fonctionnelles
3- Analyse
des cas dutilisation
4- Synthse
de lanalyse
5- Conception
6- Implmentation
7- Test
Le gris sur le schma reprsente leffort consentir pour chaque activit durant
les phases dun projet. Ainsi par exemple, pour lactivit 3 (Analyse des cas dutilisa-
tion), lactivit commence lgrement lors de la phase de lancement puis se droule
principalement lors de la phase dlaboration et se termine en phase de construction.
124 Chapitre 4. Dmarche de dveloppement
Il est noter que sur le schma, la proportion que reprsente chaque activit par
rapport lensemble de la charge de dveloppement dun projet a t respecte gra-
phiquement.
Compte tenu de notre exprience et des ratios habituellement constats dans la
profession, nous avons retenu la rpartition indicative suivante pour les volumes
deffort consentir sur les activits dun projet.
Modlisation mtier : 5 %.
Exigences fonctionnelles : 5 %.
Analyse des cas dutilisation : 20 %.
Synthse de lanalyse : 5 %.
Conception : 10 %.
Implmentation : 40 %.
Test : 15 %.
Il importe bien entendu, de tenir compte pour chaque projet de ses spcificits en
termes par exemple de complexit fonctionnelle, contraintes techniques, et comp-
tence des ressources affectes.
Les activits 6 et 7, Implmentation et Tests , sont prsentes sur notre
schma pour couvrir ce niveau la totalit des activits en rfrence UP, mais elles
ne sont pas traites dans louvrage.
Cette dmarche est par dfinition itrative. Il est ainsi possible, si ncessaire, de
traiter des itrations lintrieur de chaque phase. Chaque itration doit se con-
clure par un produit livrable sous forme de maquette ou de prototype.
Des itrations successives permettent daffiner les rsultats de chaque phase.
Au terme de ces deux premires activits, lexpression des besoins (au sens UP)
est couverte.
lissue de cette activit, lanalyse des cas dutilisation est produite mais non
encore consolide ni valide dfinitivement.
Au terme des activits 3 et 4, lanalyse (au sens activit UP) est couverte.
126 Chapitre 4. Dmarche de dveloppement
Activit 5 Conception
La cinquime activit de la dmarche se concentre sur le comment faire . Elle a
pour but de dfinir et de mettre en place les choix darchitecture technique, et de
complter la description du systme sous langle technique. Cette activit permet
dobtenir quatre rsultats :
Les choix techniques retenus.
Les scnarios techniques par cas dutilisation (diagrammes de squence tech-
nique).
Les classes techniques par cas dutilisation (diagrammes de classe technique).
Le regroupement sous forme de paquetage de lensemble des classes techni-
ques en un seul diagramme (diagramme de paquetage).
Schma de la dmarche
Pour illustrer la description gnrale des activits de la dmarche, la figure 4.6
prsente chaque activit avec ses diffrentes sous-activits. Une sous-activit
aboutit llaboration dun ou plusieurs diagrammes UML ou dun schma de
support au dveloppement du systme (hors UML). chaque sous-activit est asso-
cie une fiche guide qui est ensuite dtaille.
4.5 Dmarche de dveloppement UP7 127
1 Modlisation mtier
2 Exigences fonctionnelles
4 Synthse de lanalyse
5 Conception
6 Implmentation
7 Tests
Modlisation mtier
Sous-activit 1.1 :
laboration du schma de contexte du domaine dtude Date :
Point darrive Systme tudier positionn par rapport aux processus de lentreprise et
primtre fonctionnel dfini.
Dmarche dlaboration
Recommandation :
Mettre en vidence le sous-ensemble tudier (sous-ensemble gris/mis en pointill) dans le
schma de contexte.
4.5 Dmarche de dveloppement UP7 129
Sous-activit 1.2 :
laboration du diagramme dactivit Date :
Point de dpart Systme tudier positionn par rapport aux processus de lentreprise et
primtre fonctionnel dfini.
Point darrive Acteurs identifis et processus mtiers du systme tudi dfinis (flot de
contrle, flot de donnes) dans le DAC.
Dmarche dlaboration
4 Reprsenter les donnes lies aux actions. Ces donnes sont dcrites laide des concepts
du domaine. Ces concepts permettent dinitialiser le diagramme de classe mtier.
5 Dterminer le flot de donnes c'est--dire lenchanement des donnes entre elles et/ou avec
des actions.
Recommandations :
Veiller la lisibilit du DAC :
Limiter le nombre dactivits-actions reprsentes soit en privilgiant celles qui sont
structurantes, soit en utilisant une prsentation plusieurs niveaux.
Essayer dans la mesure du possible de tracer des flots faciles lire (viter les traits obliques).
130 Chapitre 4. Dmarche de dveloppement
Sous-activit 1.3 :
laboration du diagramme de classe mtier Date :
Point de dpart Acteurs identifis et processus mtiers du systme tudi dfinis (flot de
contrle, flot de donnes).
Point darrive Concepts mtiers identifis dfinis dans le DCL mtier et le glossaire
mtier.
Dmarche dlaboration
1 Identifier les concepts du domaine sous forme de classes en prenant comme base ceux
dfinis dans le diagramme dactivit.
4 Dcrire de manire gnrale les concepts du domaine afin dobtenir un glossaire mtier.
Recommandations :
1 Se limiter ce niveau aux concepts structurants pour le systme tudier.
2 laborer en synthse un dossier de modlisation mtier.
4.5 Dmarche de dveloppement UP7 131
Exigences fonctionnelles
Sous-activit 2.1 :
laboration du diagramme des cas dutilisation systme Date :
Point de dpart Concepts mtiers identifis et dfinis dans le DCL mtier et le glossaire
mtier.
Point darrive Besoins mtiers recueillis sous la forme de cas dutilisation (DCU systme)
et dcrits de manire gnrale.
DMARCHE DLABORATION
1 Identifier les acteurs mtiers* du systme (acteurs internes et acteurs et/ou systmes
externes) en prenant comme base ceux dfinis dans le DAC.
3 Reprsenter les interactions entre les acteurs mtiers et les cas dutilisation mtiers.
(*) Les acteurs mtiers identifis lors de cette tape sont ceux correspondant une vue mtier
du systme.
(**) Les cas dutilisation identifis lors de cette tape sont ceux correspondant une vue mtier
du systme.
Recommandations :
1 Utiliser des verbes pour dcrire les cas dutilisation.
2 Il est bon de se limiter moins dune dizaine de cas dutilisation ce niveau l.
132 Chapitre 4. Dmarche de dveloppement
Sous-activit 2.2 :
laboration des diagrammes de squence systme Date :
Objectif Dfinir les interactions entre les acteurs mtiers et le systme (bote noire)
pour tous les cas dutilisation mtiers.
Point de dpart Besoins mtiers recueillis sous la forme de cas dutilisation et dcrits de
manire gnrale.
Point darrive Interactions entre acteurs mtiers et systme dfinis dans le DSE.
Dmarche dlaboration
3 Dterminer les messages changs entre les acteurs et le systme (synchrones, asynchrones,
rsultats).
Recommandation :
Ne pas chercher, dans cette activit, dcrire le dtail des interactions entre les objets du
systme.
4.5 Dmarche de dveloppement UP7 133
Sous-activit 2.3 :
laboration du schma de navigation gnrale Date :
Point de dpart Interactions entre acteurs et systme dfinies pour les cas dutilisation
mtiers.
Dmarche dlaboration
1 Identifier les principaux crans provenant des cas dutilisation mtiers et des interactions
dcrites dans le DSE systme. Les crans correspondent aux tats du schma de navigation
gnrale si lon utilise un diagramme dtat-transition pour la reprsentation de la navigation.
Recommandation :
Se limiter une premire vue gnrale de lenchanement des crans correspondant la
vision mtier.
134 Chapitre 4. Dmarche de dveloppement
Sous-activit 3.1 :
laboration du diagramme des cas dutilisation Date :
Objectif Dfinir la totalit des cas dutilisation (mtiers et informatiques). Les cas
dutilisation informatiques sont des fonctions complmentaires qui nont
pas t identifies lors de lactivit prcdente (ex. un module
dadministration).
Dmarche dlaboration
1 Identifier tous les acteurs du systme en prenant comme base ceux dfinis dans le DCU
systme de lactivit prcdente. Les acteurs informatiques apparaissent ce niveau de
lanalyse (ex. Administrateur dune application).
2 Identifier tous les cas dutilisation en prenant comme base ceux dfinis dans le DCU systme
de lactivit prcdente. Ceux-ci sont souvent dcomposs un niveau plus dtaill. Les cas
dutilisation informatiques apparaissent ce niveau de lanalyse.
Recommandation :
Veiller limiter le nombre de cas dutilisation. Ne pas dpasser la dizaine par niveau de
description.
4.5 Dmarche de dveloppement UP7 135
Sous-activit 3.2 :
Description des cas dutilisation Date :
Dmarche dlaboration
4 Dcrire le scnario nominal sous forme de liste dactions avec une numrotation
chronologique (1- Action 1, 2- Action 2). Lobjectif du CU doit tre atteint au terme du
scnario.
5 Dcrire le(s) scnario(s) alternatif(s) sous forme de liste dactions avec une numrotation
chronologique le reliant au scnario nominal (1a : titre 1, Cas alternatif a de ltape 1 du
scnario nominal). Le(s) scnario(s) alternatif(s) doit sachever par la satisfaction ou labandon
de lobjectif.
Recommandations :
1 Pour le scnario nominal :
Utiliser 3 9 actions.
viter de faire apparatre les dtails de lIHM dans les actions.
Utiliser des phrases courtes et simples pour les actions.
Ne pas utiliser les si sinon dans les actions.
2 Pour le scnario alternatif :
Terminer celui-ci par une action de ce type : le CU se termine ou le le CU reprend
au point N .
136 Chapitre 4. Dmarche de dveloppement
Sous-activit 3.3 :
laboration des diagrammes de squence Date :
Objectif Reprsenter les interactions entre les acteurs et les objets du systme pour
tous les cas dutilisation en considrant les diffrents scnarios dcrits.
Point de dpart Cas dutilisation dcrits de manire textuelle et concepts mtiers identifis
et dfinis.
Point darrive Interactions entre acteurs et objets du systme dcrits dans le DSE pour
tous les cas dutilisation.
Dmarche dlaboration
2 Reprsenter les objets du systme impliqus dans le scnario en prenant comme base ceux
identifis lors de lactivit de modlisation mtier.
3 Identifier les messages (synchrones/asynchrones) entre les acteurs et les objets et entre les
objets eux-mmes. La chronologie des changes doit tre respecte.
Recommandations :
1 Se limiter la reprsentation des principaux scnarios de chaque CU.
2 Pour des messages ou des fragments dinteractions complexes, les expliciter par des notes.
3 Utiliser des fragments dinteraction de type ref pour faciliter la lecture du DSE.
4.5 Dmarche de dveloppement UP7 137
Sous-activit 3.4 :
laboration des diagrammes dtat-transition Date :
Objectif Dfinir dune part les tats des objets significatifs du systme tudi et
dautre part les actions associes aux transitions.
Point de dpart Cas dutilisation dcrits de manire textuelle et concepts mtiers identifis
et dfinis.
Point darrive Les diffrents tats des objets et les transitions entre objets reprsents
dans le DET.
Dmarche dlaboration
1 Identifier les tats pertinents de lobjet reprsenter. Considrer les tats lmentaires mais
aussi composites si ncessaire.
2 Dfinir les transitions entre les tats des objets avec ventuellement les gardes associes.
Utiliser, le cas chant, tous les oprateurs disponibles (points de jonction, points de choix).
3 Dfinir les actions pour les transitions et les activits pour les objets.
Recommandation :
Utiliser uniquement les diagrammes dtat pour des objets dont il est ncessaire de
comprendre le comportement dans tout le systme (tats caractrisques).
138 Chapitre 4. Dmarche de dveloppement
Sous-activit 3.5 :
laboration des interfaces utilisateur Date :
Objectif Modliser les interfaces utilisateur de tous les cas dutilisation pour donner
une vue concrte de lapplication aux utilisateurs.
Point de dpart Cas dutilisation dcrits de manire textuelle et interactions entre acteurs et
objets du systme dfinies pour tous les cas dutilisation.
Point darrive Interfaces utilisateur dfinies pour tous les cas dutilisation.
Dmarche dlaboration
1 Identifier toutes les entres de lIHM qui correspondent aux paramtres des messages du
DSE pour chaque CU.
4 Reprsenter les sorties de lIHM qui correspondent aux rsultats du message du DSE
pour chaque CU.
Recommandation :
Raliser des interfaces utilisateur simples facilement modifiables compte tenu des frquents
retours des utilisateurs traiter.
4.5 Dmarche de dveloppement UP7 139
Sous-activit 3.6 :
laboration des diagrammes de classe Date :
Point de dpart Interactions entre acteurs et objets du systme dfinies pour tous les cas
dutilisation et concepts mtiers dfinis dans la modlisation mtier.
Point darrive Classes et associations dfinies pour chaque cas dutilisation dans les DCL
par cas dutilisation.
Dmarche dlaboration
1 Identifier les classes du CU en prenant comme base les objets dfinis dans le diagramme de
squence du CU et les concepts mtiers.
2 Prciser les attributs des classes partir de ceux identifis dans le DSE (paramtres des
messages) et des entres de lIHM.
3 Prciser les oprations des classes partir des messages du DSE et des actions et activits du
DET. Un message entrant dun objet correspond une opration de la classe sollicite.
Recommandation :
Sassurer que le DCL de chaque CU reste lisible pour les acteurs mtiers au moins au niveau
du nom des classes et des principales relations.
140 Chapitre 4. Dmarche de dveloppement
Synthse de lanalyse
Sous-activit 4.1 :
laboration du diagramme de classe rcapitulatif Date :
Objectif Regrouper lensemble des classes dans un seul diagramme pour avoir une
vision globale du systme tudi.
Point de dpart Tous les diagrammes de classe des cas dutilisation tudis.
Dmarche dlaboration
2 Mettre en commun, pour les mmes classes, les attributs et oprations de chaque classe
dfinis dans les DCL par CU. Chaque classe doit tre dcrite de manire exhaustive.
3 Mettre en commun toutes les associations entre les classes dfinies dans les DCL par CU.
4 Dterminer les relations entre diffrents DCL des CU. Mettre en place les nouvelles relations
ncessaires dans le DCL rcapitulatif.
Recommandation :
Sassurer que le DCL rcapitulatif reste lisible pour les acteurs mtiers au moins au niveau du
nom des classes et des principales relations. tablir, le cas chant, un DCL rcapitulatif deux
niveaux de lecture.
4.5 Dmarche de dveloppement UP7 141
Sous-activit 4.2 :
laboration de la matrice de validation Date :
Dmarche dlaboration
2 tablir une correspondance entre les CU mtiers et les CU danalyse via la matrice de
validation.
NB : des cas dutilisation peuvent tre prsents uniquement dans lactivit danalyse des CU
car ils rpondent une problmatique spcifique lie par exemple la gestion des utilisateurs
par un administrateur.
3 Conclure sur la compltude de lactivit danalyse des CU en sassurant que tous les CU
mtier ont t repris dans lactivit danalyse des CU.
Recommandation :
Mettre en vidence (gras) dans la matrice, les CU qui nont pas pour origine un CU mtier.
142 Chapitre 4. Dmarche de dveloppement
Conception
Sous-activit 5.1 :
Ralisation des choix techniques Date :
Dmarche dlaboration
NB : nous donnons, aprs les fiches guides, une description complmentaire sur cette sous-
activit.
Recommandation :
Ne pas ngliger la prise en compte des exigences techniques (contraintes de performances)
qui peuvent avoir une influence forte sur le choix dune architecture.
4.5 Dmarche de dveloppement UP7 143
Sous-activit 5.2 :
laboration des diagrammes de squence technique Date :
Objectif Reprsenter les interactions entre les acteurs et tous les objets du systme
(incluant les objets techniques) pour tous les cas dutilisation en considrant
les diffrents scnarios associs. Reprsenter les objets en utilisant la
classification dIvar Jacobson* (Dialogue, Contrleur, Entit).
Point darrive Interactions entre les acteurs et tous les objets du systme (incluant les
objets techniques) dfinies pour tous les cas dutilisation.
Dmarche dlaboration
2 Reprsenter les objets du systme impliqus dans le scnario en prenant comme base ceux
identifis lors du DSE de lactivit 3 :
Objets Dialogue .
Objets Contrleur .
Objets Entit .
Objets techniques (Collection, Date) identifis uniquement lors de cette tape.
3 Reprsenter les messages (synchrones/asynchrones) entre les acteurs et les objets et entre
les objets eux-mmes. La chronologie des changes doit tre respecte.
Recommandations :
1 Expliciter par des notes, les messages ou les fragments dinteractions complexes.
2 Utiliser des fragments dinteraction pour faciliter la lecture du DSE.
144 Chapitre 4. Dmarche de dveloppement
Sous-activit 5.3 :
laboration des diagrammes de classe techniques Date :
Objectif Dfinir toutes les classes (incluant les classes techniques) et associations
pour tous les cas dutilisation. Reprsenter les classes en utilisant la
classification dIvar Jacobson (Dialogue, Contrleur, Entit).
Point de dpart Interactions entre les acteurs et tous les objets du systme (incluant les
objets techniques) dfinies pour tous les cas dutilisation et DCL de lactivit
3.
Point darrive Toutes les classes (incluant les classes techniques) et associations dfinies
pour tous les cas dutilisation.
Dmarche dlaboration
2 Prciser les attributs des classes et leurs caractristiques (visibilit, type, valeur initiale)
partir de ceux identifis dans le DSE (paramtres des messages).
3 Prciser les oprations des classes et leurs caractristiques (paramtres avec type, type de
rsultat) partir des messages du DSE.
Recommandation :
Veiller regrouper dans la modlisation les classes dialogue , contrleur , et entit
pour une meilleure lecture du diagramme.
4.5 Dmarche de dveloppement UP7 145
Sous-activit 5.4 :
laboration du diagramme de paquetage Date :
Objectif Regrouper lensemble des classes en paquetage pour avoir une vision
globale et structure du systme tudi.
Dmarche dlaboration
1 Regrouper lensemble des classes par ensemble homogne. Chaque ensemble correspond
un paquetage (ex . Gestion Mail). Lensemble peut correspondre un dcoupage technique
(archictecture en couches) ou fonctionnel.
Recommandations :
1 Veiller respecter deux principes pour le regroupement des classes en paquetage :
Cohrence interne : constitution dun ensemble homogne fonctionnel/technique.
Faible couplage externe.
2 Ne pas reprsenter sur le DPA les dpendances import par transitivit.
146 Chapitre 4. Dmarche de dveloppement
Cette architecture prsente les spcificits suivantes par rapport aux architectu-
res classiques :
La couche coordination ne manipule plus directement les objets mtiers, mais
passe par des appels de services.
Les objets mtiers se trouvent dans des bibliothques de classe directement
charges dans le mme processus que les services ; le cot des appels aux objets
mtiers est alors trs faible.
Les services agissent comme des botes noires faisant abstraction de la
complexit du modle objet. Ces services prsentent un ensemble de fonc-
tionnalits restreintes et permettent de rduire les changes entre les couches.
148 Chapitre 4. Dmarche de dveloppement
Dans le cadre de cette premire tude cas, il est systmatiquement indiqu, pour chaque
diagramme ou activit produire, le numro de la fiche guide qui apporte un support
mthodologique la mise en uvre de la dmarche dUML (UP7) prconise dans cet
ouvrage.
150 Chapitre 5. tude de cas n 1 Analyse
Processus financiers
Processus ressources humaines
Dcision d'attribution
Directeur d'unit
DU DS CO DG
Cadrage
Exprimer
la demande Organiser instruction
[Cadrage saisi]
[Demande exprime]
Instruire
Consolider proposition
5.3 Exigences fonctionnelles 153
En rsum, les quatre types de moyen considrs dans cette tude de cas sont :
RH-chercheurs,
RH-ingnieurs,
RF-budget,
RF-quipement.
0- Saisir la demande
DU
DG
5- Enregistrer larbitrage DG des moyens
CO
1- Grer les cadrages
<<systme>>
: ALLOC
: CO demanderChoisirTypemoyen( )
demanderSaisirCadrage(DS, typemoyen)
cran cadrage
saisirCadrage(nombre)
afficherCadrage( )
cadrage
modifierCadrage(nombre)
cadrage modifi
<<systme>>
: ALLOC
: DS_
demanderFiches(DS)
liste units
choisirUnits(listeUnits)
fiches de demande
<<systme>>
: ALLOC
demanderChoisirTypemoyen( )
: DS
demandeProposerAttribution(DS, typemoyen)
liste units
attribution enregistre
<<systme>>
: ALLOC
: CO
demanderChoisirTypemoyen( )
demandeConsoliderPropositions(typemoyen)
consoliderPropRubriques(listeRubriques)
fichier de consolidation
<<systme>>
: ALLOC
: CO demanderChoisirTypemoyen( )
demanderSaisirArbitrage(DS, typemoyen)
cran arbitrage
saisirArbitrage(dateArbitrage)
validerArbitrage(codeV)
<<systme>>
: ALLOC
: DS
demanderNotifierMoyens(DS)
Gestion
des cadrages
dition
des fiches de demandes
Gestion
des moyens attribus
Arbitrage
des propositions
Notification
des moyens attribus
Directeur d'unit
3- Proposer les attributions de moyens
<<include>>
CO <<include>>
4- Grer les moyens proposs
Point dextension
si besoin tableau de suivi
Dans le DSE, les cas derreurs ainsi que la recherche des intituls DS et type de
moyen nont pas t reprsents.
: InterfaceUtilisateur : Cadrage-DS
: CO demanderChoisirTypemoyen( )
demanderSaisirCadrage(DS, typemoyen)
demanderSaisirCadrage(DS, typemoyen)
confirmerSaisie(accord)
validerSaisie(typemoyen, accord)
cadrage cadrage
modifierCadrage(nombre)
modifierCadrage(DS, typemoyen, nombre)
InterfaceUtilisateur Cadrage-DS DS
-nom -DStypeMoyenC -codeDS
-prenom -cadrageA fixer -intitulDS
-id -date 1
+saisirCadrage() 1..*
+afficherCadrage()
+afficherCadrage() +saisirCadrage()
+modifierCadrage() +validerSaisie()
+demanderChoisirTypemoyen() +modifierCadrage()
+confirmerSaisie() +demanderSaisirCadrage() cadrer
+demanderSaisirCadrage() 1..*
TypeMoyen
1
-typemoyen
-intitulTypemoyen
extraireHistoD-RH()
extraireHistoA-RH()
extraireHistoD-RF()
extraireHistoA-RF()
fiches
fiches de demande
- Code et intitul DS - DS
DS
-codeDS rattacher
-intitulDS Histo-Attribution-RH Histo-Attribution-RF
1
+listerUnits() 1..* allouer-histoRH -numAttribHA-RH -numAttribHA-RF
+extraireFiche() -dateAttribHA-RH -dateAttribHA-RF
Unit -gradeHA-RH -typeMoyensHA-RF
1..*
-code unit -nombreHA-RH -montantHA-RF
1..*
Demande mettre -intitul unit 1 -extraireHistoA-RH() +extraireHistoA-RF()
-nom directeur
-numDemande 1..* 1 -adresse rue 1
-dateDemande allouer-histoRF
-adresse ville
+extraireDemandeF() -adresse code postal Histo-Demande-RH Histo-Demande-RF
+listerUnits() -numDemandeHD-RH -numDemandeHD-RF
-dateDemandeHD-RF
1 1..* -dateDemandeHD-RH -typemoyensHD-RF
-gradeHD-RH
1 demander-histoRH -nombreHD-RH -montantHD-RF
InterfaceUtilisateur
-justificationHD-RH -justificationHD-RF
-nom
+extraireHistoD-RH() +extraireHistoD-RF()
-prenom
-id
1..*
+demanderFiches()
+choisirUnits() demander-histoRF
Scnario nominal
1 Le DS choisit le type de moyen traiter.
2 Le systme affiche la liste des units du DS.
3 Le DS choisit lunit pour laquelle il veut faire une proposition dattribution.
4 Le systme affiche le formulaire de saisie des propositions dattribution pr
rempli avec les demandes du type de moyen slectionn effectues par lunit.
5 Le DS renseigne les donnes de la proposition dattribution.
6 Le systme vrifie la prsence des donnes obligatoires.
7 Le systme enregistre la saisie et affiche les attributions mises jour.
5.4 Analyse des cas dutilisation 165
Scnarios alternatifs
4-a Saisie dune proposition dattribution sans demande pralable
Le systme affiche le formulaire de saisie des propositions dattribution vierge.
Le cas dutilisation reprend laction 5 du scnario nominal.
4-b Modification dune proposition dattribution saisie
Le systme affiche le formulaire de saisie des propositions dattribution
avec les demandes et les propositions dattribution de lunit pr-remplies.
Le cas dutilisation reprend laction 5 du scnario nominal.
4-c Consultation des propositions dattribution
Le systme affiche les propositions dattribution de lunit slectionne
avec les demandes de moyens associes.
Fin du cas.
7-a Erreurs dtectes dans la saisie
Le systme raffiche le formulaire de saisie en indiquant les erreurs dtectes.
Linstructeur corrige les erreurs.
Le cas dutilisation reprend au point 6 du scnario nominal.
: DS_ demanderChoisirTypemoyen()
loop Toutes les units du DS
demanderProposerAttribution(DS, typemoyen) listerUnits(DS) extraireUnits()
unit extraite
liste units liste units
choisirUneunit(codeUnit) afficherSaisieAttribution(codeUnit, typemoyen)
extraireDemandeP(codeUnit, typemoyen)
cran de saisie d'une attribution
saisirAttribution(typemoyen, codeUnit, nombre)
contrlerAttribution(typemoyen, codeUnit, nombre)
validerAttribution(codevalid)
validerAttribution(codevalid)
attribution enregistre
attribution enregistre
Dans le DSE, seul le scnario nominal est reprsent pour le traitement dune uni-
t. La recherche de lintitul DS et type de moyen na pas t traite.
166 Chapitre 5. tude de cas n 1 Analyse
Attributions
-numAttrib
correspondre -dateAttrib
InterfaceUtilisateur
0..* +contrlerAttribution()
-nom +validerAttribution()
-prenom
-id
DS
+saisirAttribution()
1..* -codeDS
+validerAttribution()
+demanderChoisirTypemoyen() -intitulDS
+demandeProposerAttribution() 0..1 allouer
+choisirUneunit() +listerUnits()
Demande rattacher
1 1
-numDemande
-dateDemande Unit
+extraireDemandeP() 1..*
-code unit
-intitul
-nom
i directeur
-adresse rue
-adresse ville TypeMoyen
-adresse code postal
mettre -typemoyen
+afficherSaisieAttribution() -intitulTypemoyen
+listerUnits()
: CO demanderChoisirTypemoyen()
L'obtention de la liste des rubriques disponibles
demanderConsoliderPropositions(typemoyen)
demanderListeRubriques(typemoyen) pour unit et attributions n'est pas reprsente
extraireAttributionG(typemoyens, listeRubriques)
extraireAttributionG(typemoyen, listeRubriques)
Attributions
InterfaceUtilisateur
correspondre -numAttrib
-nom -dateAttrib
-prenom 0..*
-id +extraireAttributionG()
+consoliderPropRubriques()
+demanderConsoliderProposition() 0..*
allouer
+demanderChoisirTypemoyen() 0..1
Demande
emettre 1
-numDemande
0..* 1 Unit
-dateDemande
-code unit
+extraireDemandeG()
TypeMoyen -intitul unit
-nom directeur
-typemoyen
-adresse rue
-intitulTypemoyen
DS rattacher -adresse ville
1..* -adresse code postal
-codeDS
1 +extraireDemandeG()
-intitulDS
+demanderListeRubriques()
+extraireMoyensP()
+exraireAttributionG()
: InterfaceUtilisateur : Cadrage-DS
: CO demanderChoisirTypemoyen()
cran arbitrage
cran arbitrage
saisirArbitrage(dateArbitrage) modifierArbitrage(dateArbitrage)
arbitrage modifi
confirmer arbitrage saisi
validerArbitrage(codeV) validerArbitrage(codeV)
InterfaceUtilisateur
-nom Cadrage-DS
-prenom
-typeMoyenC
-id
-cadrageA
-date arbitrage TypeMoyen
+saisirArbitrage()
+demanderChoisirTypemoyen() cadrer
+afficherArbitrage() -typemoyen
+demanderSaisirArbitrage() -intitulTypemoyen
+validerArbitrage() 1..* 1
+validerArbitrage()
+modifierArbitrage()
: DS_
Attributions-RH
-gradeA
Attributions -nombreA
InterfaceUtilisateur
-numAttrib Attribution-RF
-nom -dateAttrib
-prenom -typeMoyensA
-id +extraireAttributionN() -montantA
+demanderNotifierMoyens()
Unit
-code unit
0..*
-intitul unit DS
-nom directeur
-adresse rue 1..* 1 +codeDS
1 -adresse ville +intitulDS
-adresse code postal rattacher
+notifierMoyens()
allouer +notifierMoyens()
: InterfaceUtilisateur : Cadrage-DS
: Utilisateur
demanderChoisirTypemoyen() listerTypemoyens()
choisirUntypemoyen(typemoyen)
InterfaceUtilisateur Cadrage-DS
-nom -DStypeMoyenC
-prenom -cadrageA TypeMoyen
-id -date cadrage cadrer
-typemoyen
+demanderChoisirTypemoyen() +listerTypemoyens() 1..* 1 -intitulTypemoyen
+choisirUntypemoyen()
: DS_
demanderTableauxdesuivi(typemoyen, DS)
Attributions Cadrage-DS
-numAttrib -DStypeMoyenC
-dateAttrib 0..*
-cadrageA
+donnerAttribution() allouer -date arbitrage
+extraireCadrage()
1
Unit
Les fonctionnalits attendues sont dcrites dans ltape dexpression des besoins
de la dmarche UML.
[Activit
relance]
Piloter activit
et frais [Frais
grs]
Communiquer activit
et frais
[Activit
gre]
[Activit [Frais
communique] communiqus]
1. Par simplification dcriture et en considrant le cas trait, nous avons pris lhypothse que le
poste de secrtaire est occup par une femme.
178 Chapitre 6. tude de cas n 2 Analyse et conception
Profil
+libell
possde
Utilisateur Activit Date
1 +nom ralise +charge correspond +jour
1..*
+prnom +mois
+identifiant 1 1..* 1..* 1 +anne
1
Division engage se rapporte
+libell
0..* 1
Frais Projet
+montant se rapporte +code projet
+libell
0..* 1
0..*
correspond
Les concepts mtiers dcrits sont illustrs sur les figures 6.4 et 6.5. Il sagit des for-
mulaires utiliss avant informatisation : le relev mensuel dactivit et le relev
mensuel de frais.
6.2 Modlisation mtier
System
Grer activit
Employ
Grer frais
Relancer activit
Secrtaire
Manager
Exporter activit et frais
<<Systme externe>>
Service Facturation
Un rcapitulatif de ses frais sur le mois en cours ou sur les mois prcdents est
propos lemploy. Si lemploy ne peut renseigner ses frais pour cause de
maladie ou absence, la secrtaire est habilite renseigner ses frais.
Cas dutilisation 3- Relancer activit La secrtaire relance par message-
rie, partir du 10 de chaque mois, les employs nayant pas ou partiellement
renseign leurs activits mensuelles. Si la secrtaire ne peut relancer lactivit,
le manager est habilit le faire sa place.
Cas dutilisation 4- Consulter tableaux de bord Le manager visualise
des tableaux de bord sur lactivit, les frais, et le taux dactivit pour un projet
donn ou une division donne et sur une priode donne.
Cas dutilisation 5- Exporter activits et frais la fin de chaque mois,
la secrtaire exporte les activits et les frais de tous les employs vers le service
facturation. Si la secrtaire ne peut exporter les activits et les frais, le mana-
ger est habilit le faire sa place.
<<system>>
Gestion des frais
et activits
: Employ
loop
saisirActivit(charge,code projet,jour,mois,anne)
activit saisie
consulterActivit(mois)
Pour tous
les jours du mois
activits
<<system>>
Gestion des frais et activits
: Employ
loop
saisirFrais(montant,code projet,jour,mois,anne)
frais saisis
consulterFrais(mois)
Pour toutes
les activits avec frais
frais
<<system>>
Gestion des frais et activits
: Manager
consulterTableaux(projet,mdebutPriode,adebutPeriode,mfinPriode, afinPriode )
alt
[debutPeriode
[dbutPriode = finPeriode
finPriode || debutPeriode
dbutPriode > finPeriode]
finPriode]
[periode OK]
[priode
tableaux de bord
<<system>>
Gestion des frais et activits
exporterActivitFrais()
importerActivitFrais()
<<system>>
Gestion des frais et activits
: Secrtaire
activit relance
[ secrtaire ou manager ]
Tableaux de bord
[ manager ]
Exportation activit et frais
[ employ ou secrtaire ]
Saisie frais
[ employ ou secrtaire ]
Consultation activit
[ employ ou secrtaire ]
Saisie activit
Saisir activit
Modifier activit
Saisir frais
Consulter frais
Secrtaire
Modifier frais
Relancer activit
Manager
<<Systme externe>>
Exporter activits et frais Service facturation
Crer utilisateur
Modifier utilisateur
Supprimer utilisateur
Grer rfrentiel
Les scnarios alternatifs des cas dutilisation ont t modliss uniquement sur le
cas dutilisation Relancer activit .
: Employ
loop
saisirActivit(charge, code projet, jour, mois, anne)
<<create>>
Activit(charge, code projet, jour, mois, anne)
checkActivitePositive(charge)
getProjet(code projet)
projet
getDate(jour, mois, anne)
date
activit
pour toutes
les activits de la semaine
S1 S2 S3 S4
Total : 5 j
Ajouter un code
Valider
Date
-jour
-mois
-anne
+getDate(jour, mois, anne)
correspond
1..*
Utilisateur
-nom Activit
-prnom ralise -charge
-identifiant
-mot de passe 1 1..* +Activit(charge, code projet, jour, mois, anne)
+checkActivitePositive(charge)
+saisirActivit(charge, code projet, jour, mois, anne)
1..*
se rapporte
1
Projet
-code projet
-libell
: Employ
getActivits(mois)
checkActivitMois(mois)
loop getDate()
comparerMois(mois)
activits
Pour toutes les activits enregistres,
calculTotalMoisActivit(mois) la mthode getActivits ne renvoie
que les activits du mois slectionn
cumul activit
Consulter activit
Mois : Mois
Valider
CP1 1 1 1 1 1
CP2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Total : 21 j
Date
-jour
-mois
-anne
correspond
1..*
Utilisateur
-nom Activit
-prnom
-charge
-identifiant
ralise
-mot de passe +Activit(charge, code projet, jour, mois, anne)
1 1..* +getDate()
+saisirActivit(charge, code projet, jour, mois, anne)
+checkActivitPositive(charge)
+getActivits(mois)
+calculTotalMoisActivit(mois)
+checkActivitMois(mois)
: Utilisateur
Vrification que le jour du mois
courant est > 10
: Secrtaire
getUtilisateursRelance()
checkAllActiviteComplete()
loop
isActiviteComplete(mois)
loop
getMail()
envoiMail(mail)
Sur le mme DSE (fig. 6.21) sont reprsents le scnario alternatif 1a Relance
effectue avant le 10 du mois en cours et le scnario alternatif 1b Tous les em-
ploys ont rempli leur activit .
194 Chapitre 6. tude de cas n 2 Analyse et conception
: Utilisateur
Vrification que le jour
du mois courant est > 10
: Secrtaire
getUtilisateursRelance()
checkDateMois()
getUtilisateursRelance()
checkDateMois()
checkAllActiviteComplete()
Relancer
Utilisateur
-nom
-prnom
-identifiant
-mot de passe
-mail
+saisirActivit(charge, code projet, jour, mois, anne)
+getActivits(mois)
+checkActivitMois(mois)
+calculTotalMoisActivit(mois)
+checkDateMois()
+getUtilisateursRelance()
+isActiviteComplete(mois)
+checkAllActivitComplte()
+envoiMailUtilisateurs(listUtilisateurs)
+getMail()
+envoiMail(mail)
Scnario nominal
1 Le manager slectionne une priode (mois, anne).
2 Lapplication propose des tableaux de bord sur la priode et la division du mana-
ger concernant lactivit par projet (nombre de jours/h par projet), le taux dacti-
vit (nombre de jour/h sur un projet / nombre de jour/h total de la priode).
3 Lapplication propose aussi un affichage de graphiques.
Scnarios alternatifs
1a Le manager slectionne une priode errone (date dbut de priode est
suprieure la date de fin de priode ou date de dbut de priode est iden-
tique la date de fin de priode).
Lapplication prsente un message derreur sur la priode slectionne non
valide au manager. Le cas dutilisation reprend au point 1.
2a Aucun employ na rempli son activit et ses frais sur la priode slec-
tionne.
Lapplication affiche un message indiquant quaucun employ na saisi son
activit ou ses frais. Le cas dutilisation se termine en chec.
Description des diagrammes danalyse du cas dutilisation
La suite de lanalyse du cas dutilisation se poursuit par llaboration de llaboration
du diagramme de squence (fig. 6.24), llaboration de linterface utilisateur
(fig. 6.25, fig. 6.26), et llaboration du diagramme de classe (fig. 6.27).
Par simplification, laffichage des graphiques nest pas trait sur le DSE figure 6.24
ni dans le reste de ltude de cas.
6.4 Analyse des cas dutilisation 197
: Manager
getCodeDivision()
loop
Si le projet appartient isProjetMemeDivision(code division)
la mme division
que le manager
opt
opt
getCharge()
Slectionner une priode pour afficher les tableaux de bord pour la division Industrie :
Valider
graphiques
Date
-jour
-mois
-anne
correspond
Utilisateur
-nom 1..*
-prnom
-identifiant
-mot de passe Activit
-mail -charge
+saisirActivit(charge, code projet, jour, mois, anne) ralise +Activit(charge, code projet, jour, mois, anne)
+getActivites(mois) +modifier(charge)
+calculTotalMoisActivit(mois) 1 1..* +getDate()
+getUtilisateursRelance() +getCharge()
+isActiviteComplete(mois) +checkActivitePositive(charge)
+checkDateMois()
+checkAllActiviteComplete()
+envoiMailUtilisateurs(listUtilisateurs) 1..*
+getMail()
+envoiMail(mail)
+getUtilisateur(identifiant)
+getDivision()
se rapporte
1..*
appartient
Projet
1
-code projet
Division -libell
: Utilisateur
: Administrateur
<<create>>
Utilisateur(nom, prnom, profil, mail)
checkNomPrenom()
checkMail()
generateIdentifiantPassword()
envoiMail(mail)
Crer utilisateur
Saisissez les informations relatives au nouvel utilisateur :
Prnom :
Nom :
Mail :
Utilisateur
-nom
-prnom
-identifiant
-mot de passe
-mail
1 -code profil
-libelll
possde
+Profil(libell)
+modifier(libell)
+getCodeProfil()
+getLibell()
Date
6.5 Synthse de lanalyse
-jour
-mois
0..* correspond -anne
1..*
1..*
Division
-code division
-libell
appartient 1
+creer(libell)
1 +modifier(libell) est rattach
+getCodeDivision()
+getLibell()
Supprimer utilisateur
Grer rfrentiel
6.6 CONCEPTION
: Employ
checkActivitePositive(charges)
getUtilisateurActif()
getProjet(code projet)
save()
La navigabilit des associations est donne par le sens de circulation des opra-
tions du diagramme de squence (fig. 6.33). Ainsi, la classe Dialogue Saisir
Activit accde la classe CTRL Saisir Activit par le biais du message saisi-
rActivit. La navigabilit des autres associations est dtermine sur le mme principe.
Une relation dagrgation existe entre la classe CollectionProjet et Projet
de type ensemble/lment , de plus une contrainte ordered indique que les
projets sont tris par code projet.
206 Chapitre 6. tude de cas n 2 Analyse et conception
se rapporte
1..*
Utilisateur Activit
-nom: String
ralise {ordered} -charge: Float
-prnom: String -date: Date
-identifiant: String
1 1..*
-mot de passe: String +Activit(charge: Float, code projet: String, date: Date, id utilisateur:
+save(): void
+getIdentifiant(): String
1
1
1 1
<<Contrleur>>
CTRL Saisir Activit
<<Dialogue>>
Dialogue Saisir
-charges: List
-codes Projet: List
: Employ
consulterActivit(mois)
consulterActivit(mois)
getUtilisateurActif()
getActivites(mois)
checkActiviteMois(mois)
loop getDate()
compareMois(date,mois)
List
Traitement identique
List celui de getActivit(mois), avec
List en plus un cumul des charges
DateUtils
Utilisateur
-nom: String Activit
-prnom: String
-charge: Float
-identifiant: String {ordered}
-date: Date
-mot de passe: String
1 1..* +Activit(charge: Float, code projet: String, date: DateUtils, id utilisateur: String )
+getActivites(mois: String): List
+save(): void
+getIdentifiant(): String
+getDate(): Date
+calculTotalMoisActivit(mois: String): Float
+checkActiviteMois(mois: String): Boolean
1
1
<<Contrleur>>
CTRL Consulter Activit
<<Dialogue>>
Dialogue Consulter Activit
-mois: String
: Secrtaire
FindUtilisateursRelance()
FindUtilisateursRelance() checkDateMois()
getMoisCourant()
getUtilisateursRelance(mois)
checkAllActiviteComplete()
loop
isActiviteComplete(mois)
envoiMailUtilisateurs(listUtilisateurs)
loop
getMail()
send()
: Dialogue Erreur Relancer Activit : Dialogue Relancer Activit : CTRL Relancer Activit : DateUtils : CollectionUtilisateur
: Secrtaire
FindUtilisateursRelance()
FindUtilisateursRelance()
checkDateMois()
messageErreur
creer(messageErreur)
<<create>>
FindUtilisateursRelance()
FindUtilisateursRelance()
checkDateMois()
checkAllActiviteComplete()
messageErreur
creer(messageErreur)
<<create>>
La navigabilit des associations est donne par le sens de circulation des opra-
tions du diagramme de squence (fig. 6.38). Ainsi, la classe CTRL Relancer
Activit accde la classe Dialogue Erreur Relancer Activit par le biais du
message creer. La navigabilit des autres associations est dtermine sur le mme
principe.
6.6 Conception 211
Utilisateur
-nom: String
-prnom: String
-identifiant: String
-mot de passe: String
Mail
-mail: String
-dest: String
+getActivites(mois: String): List
+getIdentifiant(): String -from: String
-body: String
+calculTotalMoisActivit(mois: String): Float
+checkActiviteMois(mois: String): Boolean +Mail(dest: String, from: String, body: String)
0..* +isActiviteComplete(mois: String): Boolean +send(): void
+envoiMailUtilisateurs(listUtilisateurs: List): void
contient +getMail(): String
1
CollectionUtilisateur
1
+checkAllActiviteComplete(): Boolean
+getUtilisateursRelance(mois: String): List
1 1 1
<<Contrleur>>
CTRL Relancer Activit DateUtils
<<Dialogue>>
Dialogue Erreur Relancer Activit
getUtilisateurActif()
getDivision()
getCodeDivision()
Si le projet appartient
la mme division que le isDansPeriode(date, moisDebut, anneeDebut, moisFin, anneeFin)
manager
opt
getCharge()
Float
List
+getIdentifiant(): String
+calculTotalMoisActivit(mois: String): Float
+checkActiviteMois(mois: String): Boolean 1..*
+getUtilisateursRelance(mois: String): List
+isActiviteComplete(mois: String): Boolean
+envoiMailUtilisateurs(listUtilisateurs: List): void
+getMail(): String DateUtils
+getDivision(): Division
+comparerMois(date: Date, mois: String): se rapporte
+checkDateMois():
1..*
+isDansPeriode(date: Date, moisDebut, anneeDebut, moisFin, anneeFin): Boolean
+nbJoursDansPeriode(moisDebut, anneeDebut, moisFin, anneeFin): Integer
appartient
1
1
Projet
Division
-code projet: String
-code division: String 1 1..* -libell: String
-libell: String
est rattach +isProjetMemeDivision(code division: String): Boolean
+getCodeDivision(): String
1
{ordered} 1..*
contient
Consulter tableaux de bord
1
Figure 6.40 Diagramme de squence technique du CU
CollectionProjet
<<Contrleur>
CTRL Consulter TDB
<<Dialogue>
Dialogue Consulter TDB
-moisDebut: String
-anneeDebut: String
-moisFin: String
-anneeFin: String
+consulterTDB(moisDebut: String, anneeDebut: String, moisFin: String, anneeFin: String): List
La navigabilit des associations est donne par le sens de circulation des opra-
tions du diagramme de squence prcdent. Ainsi, la classe Dialogue Consulter
TDB accde la classe CTRL Consulter TDB par le biais du message consulter-
TDB. La navigabilit des autres associations est dtermine sur le mme principe.
Une relation de dpendance est modlise entre la classe Projet et la classe
technique DateUtils . On remarquera que le lien entre un objet Projet et
DateUtils est momentan, il ne dure que le temps dexcution de la mthode
isDansPeriode. Ainsi ce nest pas une association, mais une simple dpendance.
: Administrateur
checkNomPrenom()
checkMail()
<<create>>
Utilisateur(nom,prnom,mail) Mail destin l'utilisateur
nouvellement cr
qui contient son identifiant
+ password
generateIdentifiantPassword()
send()
add(utilisateur)
La navigabilit des associations est donne par le sens de circulation des opra-
tions du diagramme de squence prcdent. Ainsi, la classe Dialogue Crer
Utilisateur accde la classe CTRL Crer Utilisateur par le biais du message
creerUtilisateur. La navigabilit des autres associations est dtermine sur le mme
principe.
Utilisateur
-nom: String
-prnom: String
-identifiant: String
-mot de passe: String
-mail: String
6.6 Conception
Mail
+Utilisateur(nom: String, prnom: String, mail: String)
+getActivites(mois: String): List -dest: String
+getIdentifiant(): String -from: String
+calculTotalMoisActivit(mois: String): Float -body: String
+checkActiviteMois(mois: String): Boolean
+isActiviteComplete(mois: String): Boolean +Mail(dest: String, from: String, body: String)
+envoiMailUtilisateurs(listUtilisateurs: List): void +send(): void
+getMail(): String
+getDivision(): Division
+generateIdentifiantPassword(): Boolean
contient 0..*
1 1
CollectionUtilisateur
1 1
<<Contrleur>>
CTRL Crer Utilisateur
<<Dialogue>>
Dialogue Crer Utilisateur
-nom: String
-prnom: String
-mail: String
-profil: String
<<import>> <<import>>
<<import>> <<import>>
titre de synthse, il est propos dans cette annexe une liste rcapitulative des
concepts dUML 2 prsents dans cet ouvrage.
Ce rcapitulatif est donn par diagramme aprs un rappel des concepts communs.
Il peut aider le lecteur mmoriser les diffrents concepts mis en uvre dans chaque
diagramme.
Concepts communs tous les diagrammes
strotype,
mot-cl,
note,
contrainte.
Concepts du diagramme de classe (DCL)
attribut,
opration,
visibilit,
association,
navigabilit,
classe et classe abstraite,
rle,
multiplicit,
dpendance,
220 UML2 analyse et conception
agrgation et composition
qualification,
gnralisation et spcialisation,
hritage.
Concepts du diagramme dobjet (DOB)
objet,
lien,
valeur dattribut.
Concepts du diagramme de composant (DCP)
composant,
connecteur,
port,
interface requise, interface fournie,
dpendance,
compartiment.
Concepts du diagramme de dploiement (DPL)
nud,
unit de traitement ( device ),
environnement dexcution ( executionEnvironment ),
artefact,
spcification de dploiement.
Concepts du diagramme de paquetage (DPA)
espace de nommage,
dpendance de type import ,
dpendance de type access ,
dpendance de type merge .
Concept du diagramme de structure composite (DSC)
collaboration dinstances,
rle (dans la collaboration).
Diagramme des cas dutilisation (DCU)
acteur,
interaction,
scnario nominal,
scnario alternatif,
pr et post condition,
inclusion, extension, gnralisation de cas dutilisation.
Concept du diagramme tat-transition (DET)
tat,
transition,
vnement,
composition dtat (tat composite),
Annexes 221
Un rcapitulatif des activits et des fiches guides de la dmarche UP7 proposes dans
cet ouvrage est donn dans cette annexe.
Liste des activits de la dmarche
1 Modlisation mtier
2 Exigences fonctionnelles
3 Analyse des cas dutilisation
4 Synthse de lanalyse
5 Conception
6 Implmentation
7 Test
Liste des fiches guides associes aux activits
FG1 laboration du schma de contexte du domaine dtude
FG2 laboration du diagramme dactivit
FG3 laboration du diagramme de classe mtier
FG4 laboration du diagramme des cas dutilisation systme
FG5 laboration des diagrammes de squence systme
FG6 laboration du schma de navigation gnrale
FG7 laboration du diagramme des cas dutilisation
FG8 Description des cas dutilisation
FG9 laboration des diagrammes de squence
FG10 laboration des diagrammes dtat-transition
FG11 laboration des interfaces utilisateur
FG12 laboration des diagrammes de classe
FG13 laboration du diagramme de classe rcapitulatif
FG14 laboration de la matrice de validation
FG15 Ralisation des choix techniques
FG16 laboration des diagrammes de squence technique
FG17 laboration des diagrammes de classe technique
FG18 laboration du diagramme de paquetage
Bibliographie
Index
A de structure composite 11, 58
de temps 12, 109
acteur 62
action 73, 81 des cas dutilisation 11, 61
activit 73, 82, 113, 128 global dinteraction 12, 106
agrgation 3, 27, 28 structurel 11
analyse 116
des cas d'utilisation 125, 134 E
artefact 51, 53, 114 laboration 115
association 3, 23 encapsulation 3
attribut 19, 22 environnement 122
tat 2, 72
B-C composite 75
bote historique 77
blanche 48 exigences fonctionnelles 125, 131
noire 47 expression des besoins 116
cas dutilisation 62
classe 2, 18 F
abstraite 33 fiche guide 128
classe-association 27 flot
collaboration 58 de contrle 81
compartiment 48
composant 46
de donnes 86
composition 28 fragment dinteraction 93
conception 117, 126, 142, 146
connecteur G
dassemblage 47 gnralisation 4, 32
dinterfaces 47 gestion
construction 116 dun projet 122
contrainte 10, 26 de l'environnement 122
temporelle 92 de la configuration et des changements
122
D des exigences 121
dpendance 30
dinterfaces 47 H-I
entre paquetages 56 hritage 32
dploiement 121 implmentation 117
diagramme inception 115
dactivit 11, 80 incrmental 112
dtat-transition 11, 72, 73 instance 18
dobjet 11 interaction 63
de classe 11, 17 interface 31, 47
de communication 12, 104 itratif 112
de comportement 11 itration 116
de composant 11, 46
de dploiement 11, 50 J-L
de paquetage 11, 54 jalon 119
de squence 11, 90 ligne de vie 91
226 UML2 analyse et conception
M de jonction 76
polymorphisme 4
message 91, 104
port 49
mta-modle 8
post condition 67
modlisation mtier 121, 124, 128
modularit 6 pr condition 67
multiplicit 24 priv 22
processus 112, 119
N profil 9
protg 22
navigabilit 25 public 22
nud 50, 53
de bifurcation 82 Q-R
de fusion-test 85 qualification 30
de jonction 83 qualit 118
de test-dcision 84 relation
note 10 dextension 65
dinclusion 64
O
de gnralisation 65
objet 2, 17, 21, 72, 105 rutilisabilit 6
OCL 10 risques 113
oprateur rle 24, 58, 104, 113
alt 94 RUP 117
assertion 100
break 97 S
consider 98 scnario
critical 98 alternatif 67
ignore 98 nominal 67
loop 94 spcialisation 4
negative 100 spcification de dploiement 51
opt 94 strotype 9, 36
par 96 synthse de l'analyse 125, 140
ref 100
srict 97 T-U
weak 97 tests 117
opration 20, 22 transistion 116
transition 72, 80, 81
P UML 7
paquetage 22, 54 UP 8, 111
partition 87 UP7 123
persistance 5 V-W
phase 114
pin 86 valeur marque 9
point visibilit 22
de choix 76 workflow 114, 119
INFOPRO L'ESSENTIEL
TYPE DOUVRAGE
SE FORMER
RETOURS
D'EXPRIENCE
APPLICATIONS
MTIERS
Joseph Gabay
TUDES, DVELOPPEMENT,
David Gabay INTGRATION
EXPLOITATION
ET ADMINISTRATION
UML 2 RSEAUX
& TLCOMS
ANALYSE ET CONCEPTION
Mise en uvre guide avec tudes de cas