Analyse, Spcification
et Modlisation
avec UML
Bertrand LE GAL
Filire RSI 2me anne
ENSEIRB 2006/07
Plan du cours
I. Retour sur le flot de conception logiciel
II. Introduction UML
III. Le diagramme des cas dutilisation
IV. Les diagrammes de classes
V. Implmentation des modles
VI. Les diagrammes de squence et de collaboration
VII. Les diagrammes dtats-transitions
VIII. Les diagrammes de dploiement
VII. Conclusion
2
Retour sur le ot de
Conception
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Les causes courantes des checs de projets
Mauvaise comprhension des besoins des utilisateurs
finaux.
Incapacit grer les modifications des exigences des
clients au cours du dveloppement.
Les modules composant le projet ne fonctionnent pas
ensemble (mauvaises interfaces)
Code source du logiciel difficile maintenir ou faire
voluer
Logiciel de mauvaise qualit (beaucoup danomalies de
conception / excution)
4
Lidal pour la gestion dun projet !
1. Bien comprendre les besoins, les demandes et les exigences
des utilisateurs finaux.
2. Bonne communication avec le client pour valider certains
choix et vrification de ltape (1).
3. Tester et valider chaque phase de la conception pour ne pas
dcouvrir des problmes plus tard.
4. Traiter au plus tt les problmes.
5. Matriser la complexit et augmenter la rutilisation.
6. Dfinir une architecture robuste.
7. Faciliter le travail en quipe.
5
Les 7 bonnes pratiques
1. Dveloppement itratif,
2. Dveloppement base de composants
centr sur larchitecture,
3. Pilotage du dveloppement par les risques,
4. Gestion des exigences,
5. Matrise des modifications,
6. Evaluation continue de la qualit,
7. Modlisation visuelles.
6
1 - Le dveloppement itratif
Cette mthode est base
sur de petites tapes
(lmentaires).
A
D
Chaque tape produit des
retours et des adaptations
si ncessaire.
E
F
Autres dnominations
Dveloppement en spiral
Dveloppement volutif
C
7
2. Dveloppement bas sur les composants
Validation de larchitecture
logicielle lors des premires
itrations :
Dveloppement bas sur des
IP du commerce,
Rutilisation prfre au
redveloppement,
Tester larchitecture au plus
tt mme si elle nest pas
fonctionnellement complte.
3. Pilotage par les risques
Analyser les risques potentiels au plus tt (dbut de la
conception) :
Les regrouper et les hirarchiser,
Travailler en priorit sur les risques critiques,
Cela concerne les risques techniques, ainsi que :
Les risques lis aux clients,
Les risques lis au domaine applicatif,
Les risques lis lorganisation du projet,
Smantique
Un risque est un vnement redout dont l'occurrence est plus ou moins
prvisible et qui aura des rpercussions sur le projet.
Un problme est un risque qui sest rvl.
9
4. Les exigences du client
Smantique
Une exigence est une condition laquelle le systme doit
satisfaire ou une capacit dont il doit faire preuve.
Les exigences peuvent tre :
Fonctionnelles
Elles dcrivent ce que le systme doit savoir faire,
Non fonctionnelles
Qualit des services,
Temps de rponse, temps de traitement,
Scurit au fonctionnement,
IHM adapte aux utilisateurs.
10
5. Les demandes de changement
Smantique
Une demande de changement est une requte visant modifier
un artefact ou un processus.
Il faut dans ce cas indiquer dans la documentation, la
nature du changement, sa cause et ses impacts sur la
solution propose.
Il existe 2 types de changements
La demande dvolution
Nouvelle caractristique du systme ou modifications dune existante
Le rapport danomalie
11
6. Evaluation constante de la qualit
Il a t prouv que lidentification des erreurs de
conception au plus tt permet de gagner de largent
(ou den perdre moins)
Ratio 10 100 !
Les problmes de qualit sont souvent les causes
principales des dpassements de dlais,
Les phases de test, de vrification et de correction
consomment environ 70% du temps total dun projet !
60% des problmes existent dj dj lors de la
conception de lapplication.
12
Pourquoi utiliser la modlisation visuelle ?
On doit pouvoir mmoriser nos penses et les
communiquer en utilisant des langages visuels et
schmatiques.
Rseaux de Ptri,
Grafcet
UML, etc.
Avantages de ces approches
Les langages visuels sont naturels et faciles comprendre
(non relatifs un langage de communication).
On estime que 50% du cerveau est impliqu dans le processus
visuel.
13
Introduction UML
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
UML est un langage standard conu pour permettre
aux concepteurs dlaborer les plans des logiciels
quils doivent dvelopper.
On se sert du langage UML pour:
Visualiser,
Spcifier,
Construire,
Documenter,
Communiquer (travailler plusieurs),
15
UML est un langage
Ce langage possde un vocabulaire et des rgles qui
permettent de combiner les mots afin de communiquer.
La modlisation permet de comprendre le systme,
Tous les modles sont lis les uns avec les autres afin
de reprsenter le systme et les interactions entre les
blocs lmentaires.
Le vocabulaire et les rgles dcriture rgissent la
manire de construire et de lire les modles correctement
mis en forme.
Aucune dcision dimplmentation.
16
UML, un langage pour visualiser
Pour certains dveloppeurs, il y existe un lien direct entre
une ide et son code dimplmentation.
Utilisation dun modle de reprsentation mental.
Problme dans le partage de ces modles avec dautres
personnes,
Risques dincomprhension, dincertitudes...
Chaque organisation et/ou personne possde son propre langage
(difficult dintgration)
UML permet de rsoudre les problmatiques du partage de
linformation de manire visuelle.
17
UML, un langage pour visualiser
UML est bien plus quun assemblage de symboles
graphiques !
Chaque symbole graphique possde sa smantique propre
(signification universelle).
Un modle peut tre crit par un concepteur et compris pas un
autre sans ambigut...
Une automatisation par outil peut ainsi tre mise en place pour
traiter certaines informations.
UML est un mta-langage de modlisation permettant
dunifier les modles utiliss dans les mthodes de
dveloppement (raffinement).
18
UML, un langage pour spcier
Dans le cadre dUML, spcifier signifie construire
sans ambigut,
UML offre la possibilit de spcifier le
comportement de lapplication de manire formelle,
Rflexion sur des modles formels,
Approche indpendante du langage objet
d'implmentation (C++, Java, etc.).
UML nest pas une mthode mais une notation qui
laisse la libert de conception.
19
UML, un langage pour documenter
Lors du dveloppement dun produit, on ralise des
choix :
Architecture dimplmentation,
Besoins identifis,
Code source du projet,
Planning de dveloppement,
Les plans et les jeux de test, etc.
UML permet de raliser la dfinition et la
documentation de ces taches.
20
Les domaines dutilisation de UML
UML est employ dans lensemble des secteurs du
dveloppement informatique :
Systmes dinformation,
Tlcommunication, dfense,
Transport, aronautique, arospatial,
Domaines scientifiques,
Mais pas seulement : on peut modliser des
comportement mcaniques, humain, etc.
Structure dun systme de sant / judiciaire, etc.
21
Les briques de base dUML
Dans le langage UML, il existe 3 types de briques
de base :
1. Les lments
Ce sont les abstractions essentielles au modle.
2. Les relations
Les relations expriment les liens existants entre les diffrents
lments.
3. Les diagrammes
Les diagrammes comprennent des ensembles dlments dignes
d'intrt.
22
Il existe 4 types dlments dans UML
Ce sont les lments de base qui vont permettre la
dfinition par la suite des modles.
1. Les lments structurels,
2. Les lments comportementaux,
3. Les lments de regroupement,
4. Les lments dannotation.
23
Les lments structurels
Les lments structurels sont les lments les plus
statiques dUML, il en existe 7 types distincts :
1. Les classes,
2. Les interfaces,
3. Les collaborations,
4. Les cas dutilisation,
5. Les classes actives,
6. Les composants,
7. Les noeuds.
24
Les lments comportementaux
Les lments comportementaux reprsentent les
parties dynamiques des modles,
Ils permettent de dfinir le comportement du
modle dans le temps et lespace,
Il en existe 2 types fondamentaux :
1. Les interactions,
2. Les automates tats finis.
25
Les lments de regroupement
Les lments de regroupement reprsentent les
parties organisationnelles des modles UML,
Ce sont les boites dans lesquelles un modle peut
tre dcompos,
Il existe un seul type dlment de regroupement :
le package
26
Les lments dannotation
Les modles dannotation reprsentent les parties
explicatives des modles UML.
Ce sont les commentaires qui vont tre ajouts aux
modles afin :
Dexpliquer un choix,
Dcrire le fonctionnement,
Faire une remarque,
Dtailler une hypothse
Spcifier une contrainte dimplmentation
27
Les relations dans UML
Afin dexprimer les liens interconnectant les
diffrents lments des modles, 4 relations de base
ont t dfinies :
1. La dpendance,
2. La gnralisation
3. Lassociation,
4. La ralisation,
28
Les diagrammes en UML
Un systme est un ensemble de sous-systmes organiss
pour atteindre un objectif et dcrit laide de modles.
Un sous-systme est un regroupement dlments , dont
certains spcifient le comportement propos par les autres
lments contenus.
Un modle est une abstraction complte et cohrente dun
systme permettant den faciliter la comprhension.
- Modlisation des parties structurelles (statique)
- Modlisation du comportement (dynamique)
29
Voiture
Roues
Carosserie
Moteur
... ... ... ... ...
Pompe
Radiateur
Bloc Moteur
... ... ... ... ...
30
Les diagrammes avec UML
Un diagramme est une reprsentation visuelle de
lensemble des lments qui constituent le systme.
Ils servent visualiser un systme sous diffrents angles
(utilisateur, administrateur par ex.)
Dans les systmes complexes, un diagramme ne
fourni quune vue partielle du systme.
Lensemble des diagrammes abouts permet dobtenir
une vue globale du systme concevoir.
Chaque diagramme va permettre de modliser ou
spcifier une vue (spcificit) du systme concevoir.
31
Les diagrammes dans UML : 9 types
Les diagrammes statiques
1.
2.
3.
4.
Diagramme de classes,
Diagramme dobjets,
Diagramme de composants,
Diagramme de dploiement,
Les diagrammes dynamiques
5. Diagramme de cas dutilisation,
6.
7.
8.
9.
Diagramme de squences,
Diagramme de collaboration,
Diagramme dtats-transitions,
Diagramme dactivits.
32
Les diagrammes structurels
Les diagrammes de classes
Ils reprsentent lensemble des classes, des interfaces et
des collaborations ainsi que leurs relations.
Les diagrammes les plus utiliss dans une approche de
dveloppement objets.
Les diagrammes dobjets
Ils reprsentent un ensemble dobjets (instances de
classes) avec leurs relations,
Similaire aux diagrammes de classes, mais avec des
dtails rels et des prototypes.
33
Les diagrammes structurels
Les diagrammes de composants
Ils sont apparents aux diagrammes de classes.
Un composant correspond gnralement une ou
plusieurs classe, interfaces ou collaboration.
Les diagrammes de dploiements
Ils sont apparents aux diagrammes de composants.
Un noeud englobe gnralement un ou plusieurs
composants.
34
Les diagrammes comportementaux
Les diagrammes de cas dutilisation
Organisent les comportements du systme.
Reprsentation des acteurs et de leurs relations avec
lapplication.
Les diagrammes de squences
Centrs sur lordre chronologique des messages.
Il modlisent chronologiquement les messages changs par
les objets du systme (sous-systme).
Ce sont les 2 modles les plus employs (modlisation
dynamique)
35
Les diagrammes comportementaux
Les diagrammes de collaboration
Centrs sur lorganisation structurelle des objets qui communiquent
(envoie & rception des messages).
Mise en vidence des liens existants entre les objets.
Les diagrammes tats-transitions
Centr sur le changement dtat du systme en fonction des
vnements.
Modlisation sous forme dun automate tats-finis (tat, action,
transition).
Les diagrammes dactivits
Centrs sur le flot de contrle dune activit sur une autre.
36
Diagramme de cas
dutilisation
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Introduction aux cas dutilisation
Les cas dutilisation servent modliser le comportement
dynamique dun systme (sous systme).
Les comportements diffrents dun systme sont
reprsent sous forme de cas dutilisation,
On ne se proccupe pas de limplmentation du systme, juste
des services quil doit rendre aux utilisateurs,
Donnes directement extraites du cahier des charges,
Un cas dutilisation dcrit un ensemble de squences dans
lequel chaque squence reprsente les interactions entre
l'extrieur du systme (acteurs) et le systme lui mme.
38
Introduction
Lexpression des cas dutilisation permet de savoir
quels sont les services que doit implmenter le
systme et qui il doit les rendre !
Les cas dutilisation se composent :
Dacteurs externes au systme (personnes, capteurs,
autres applications ... ),
Du systme en lui mme et des services quil doit rendre,
Des relations qui relient les acteurs aux services qui leurs
sont rendus,
39
Cas dutilisation, les acteurs
Un acteur est une personne ou une chose
qui va rentrer en interaction avec le
systme concevoir !
Dtecteur
de fum
Enseignant
Secrtaire
Systme de
gestion des
badges
Etudiant
Administrateur
40
Cas dutilisation, relations entre acteurs
Secretaire
Fontionnaire
Enseignant
Matre de
confrences
acteurs
gnralisation
(hritage)
Chercheur
nom
Une secrtaire est une fonctionnaire, tout comme les enseignants et les
chercheurs. Un matre de confrence est un fonctionnaire qui fait un travail
denseignant et de chercheur la fois.
41
Cas dutilisation, les actions
Ensemble
du systme
Systme tudier
nom de
l'action
Enregistrer
la
commande
Envoyer la
commande
Un cas dutilisation saisit le
comportement attendu du
systme sans que lon prcise
comment cela est ralis.
Identifier
l'utilisateur
Grer les
commandes
Collaboration
Ralisation
La collaboration permet de raffiner
la vue implmentation du systme
en factorisant les points
communs.
42
Cas dutilisation, Relations entre actions
Passer
commande
urgente
<extensions>
(fixer priorit)
relation d'extension
Passer
commande
<utilisations>
Relation d'inclusion
Valider
l'utilisateur
<utilisations>
Suivre la
commande
La relation dinclusion est faite pour
viter la rptition des actions en
factorisant les services rendus. Cela
revient dlguer une partie des actions.
La relation dextension permet
de modifier lgrement le
comportement de base.
Vrifier le
mot de
passe
Scanner
rtinien
gnralisation
La relation de gnralisation
modlise un hritage du
comportement de base afin
de laffiner.
43
An de dessiner un cas dutilisation...
Identifier lensemble des acteurs possibles qui vont
interagir avec lapplication,
Identifier tous les acteurs,
Les factoriser sous forme de groupes,
Prendre en considration les besoins de tous les
utilisateurs
Le regrouper les besoins communs laide des relations
dinclusion, de gnralisation et dextension,
44
Exemple pdagogique : lENSEIRB
LENSEIRB dsire automatiser le processus d'inscription
des tudiants, en voici le cahier des charges :
Le responsable des filires tablit au dbut de chaque semestre le
programme des cours
Chaque tudiant doit slectionner 4 cours obligatoires et 2 cours
optionnels par semestre.
Lorsquun tudiant sinscrit, le systme de facturation est averti et
gnre immdiatement la facture.
Les enseignants utilisent ces informations pour consulter leur
service.
Les tudiants peuvent consulter leur emploi du temps en fonction
des cours quils ont choisis.
45
Exemple, Identication des acteurs
4 acteurs existent dans
notre cahier des charges :
1. Ltudiant,
2. Lenseignant,
3. Le systme de facturation,
4. Le directeur des lires,
Ce sont les seules personnes
qui interagissent avec le
systme (selon le cahier des
charges).
Enseignant
Etudiant
Service de
facturation
Directeur
46
Exemple, Identication des fonctions
Un cas dutilisation est un motif de comportement
intrinsque au systme
Chaque cas dutilisation est une squence de transactions
connectes, effectues par un dialogue entre un acteur et le systme.
Identification des besoins propres au acteurs
Chef de service - maintenir le programme des tudes.
Enseignant - demander un tableau de service.
Etudiant - tablir un emploi du temps.
Systme de facturation - recevoir les informations de facturation du
systme dinscription.
47
Les cas dutilisations, solution
Systme
Etablir un
emploi du
temps
Etudiant
S'inscrire
Enseignant
Demander
un tableau
de service
Grer les
filire
Directeur
Service de
facturation
48
Bien identier les cas dutilisation
Un cas dutilisation
Ensemble dactions produisant un rsultat observable pour un
acteur particulier,
Chaque cas dutilisation candidat,
Vrifier quil fournit une valeur ajoute
Vrifier lexistence dun vnement externe le produisant,
Dcrire le cas dutilisation succinctement,
Attention au niveau de granularit
Ne pas descendre trop bas,
Limiter le nombre de niveau (<20)
49
Documenter les cas dutilisation
Pour chaque cas dutilisation, il faut :
Exprimer ce que fourni lutilisateur au systme et ce quil
reoit en retour aprs excution,
Il faut aussi penser dtailler les hypothses ralises (pr-
requis et les post-conditions)
Lexpression des transactions entre le systme et
l'utilisateur sera dtaill par dautres modles :
Diagrammes de squences,
Diagrammes dactivit, etc.
50
Scnario dun cas dutilisation
Demande dun tableau de service (enseignant)
1. Lenseignant se prsente devant un terminal,
2. Le systme affiche un message d'accueil,
Description
simplifie
3. Lenseignant demande un relev dheures,
4. Le systme lui demande de s'authentifier,
5. Lenseignant s'authentifie (login et mot de passe),
6. Le systme affiche les informations lcran,
7. Lenseignant prcise quil a termin sa consultation et quil
dsire se dconnecter,
8. Le systme effectue la requte et retourne lcran daccueil.
51
Scnario dun cas dutilisation
Demande dun tableau de service (enseignant)
Pr-conditions
Lenseignant doit tre inscrit luniversit
Lenseignant doit connatre ses identifiants
Post-condition
(si lopration sest bien droule)
Lenseignant a pris connaissance des heures de
cours quil a donn
52
Diagrammes de classes
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Les diagrammes de classes
Le contenu dun diagramme de classes
Des classes,
Des interfaces,
Des collaborations,
Des relations (dpendances, associations, gnralisation),
Le diagramme de classes peut tre dfini diffrents
niveaux dabstraction
Point de vue conceptuel,
Point de vue des spcifications
Point de vue implmentation
54
Dnition dune classe
Une classe est la description lmentaire dun ensemble
dobjets qui partagent des attributs et des mthodes communs.
La dfinition des attributs et des mthodes nest pas
obligatoire :
Les attributs et les mthodes sont trop nombreux pour tre
reprsents dans la majorit des cas...
On indique alors les responsabilits de la classe sous forme de
texte (ce quelle doit implmenter comme service).
On peut ds la dfinition dune classe prciser les droits
daccs aux mthodes et aux attributs (+, -, #)
55
Exemple de modlisation dune classe
Nom de la
classe
Attributs
Vecteur
taille : int;
nb_lments : int = 0
tableau : int*
Vecteur()
add(donne : int)
remove(position : int)
get(position : int) : int
set(position, valeur : int)
..................
Mthodes
56
Introduction aux relations
Les roues, le moteur, les portes, la carrosserie font
partie du vocabulaire de construction dune voiture
mais ils nexistent pas de manire indpendantes.
En UML, la manire dont les lments sont
interconnects entre eux (logiquement ou
structurellement) est modlis sous forme de
relation.
57
Les relations : la dpendance
La dpendance tablit une relation dutilisation entre 2
entits dun mme diagramme.
La plus part du temps il sagit dune dpendance
dutilisation,
Argument dune mthode par exemple,
On parle alors de relation dutilisation,
Cela permet didentifier implications possibles des
modifications apporter dans une entit
Changement du comportement dune des classe par exemple.
58
Les relations : la dpendance
Voiture
taille : int;
type : string
acclrer()
freiner(position : int)
dmarrer(c : Clef)
Dpendance
La classe Voiture dpend
pour son utilisation de la
classe Clef
Clef
59
Les relations : la gnralisation
La gnralisation modlise la notion dhritage qui existe
dans les langages objets
La gnralisation correspond la notion est une sorte de,
Modlisation des relations parents / enfants,
Cela implique que les entits issues dune gnralisation
sont utilisables partout ou leur classe mre peut l'tre (mais
pas linverse)
Gnralisation (classe, classe) ou (classe, interface),
Cette relation est modlise par une flche pointant sur la
classe mre,
60
Les relations : la gnralisation
Forme
origine
move()
resize()
show()
Rectangle
coin : Point
Carr
Cercle
coin : Point
Polygone
point : List
show()
Les entits (classes) Rectangle, Cercle et
Polygone sont des classe filles qui
hritent de la classe mre Forme. De la
mme manire, lentit Carr hrite de
lentit Rectangle.
61
Les relations : lassociation
Les relations d'association permettent de modliser un
lien structurel entre 2 lments du modle.
Si le lien joint 2 classes alors cela signifie quil existe une
relation de navigabilit entre ces 2 classes,
4 dcorations permettent de spcifier plus finement le
lien entre les objets :
Le nom : dcrire la nature de la relation entre les objets,
La direction : lever l'ambigut sur le nom,
Les rles : indiquer le rle spcifique de chacune des classes
dans lassociation,
La cardinalit : spcifie le nombre dlments affects.
62
Les relations : lassociation
Association
Personne
Entreprise
Nom
Personne
Direction
Travaille pour
Entreprise
Travaille pour
Personne
Employ
Entreprise
Employeur
Roles
63
Les relations : lagrgation
Dans lassociation, les entits se trouvent au mme
niveau hirarchique.
Dans l'agrgation, il existe une relation hirarchique
entre les entits,
Lagrgation rpond la question se compose de et
modlise une notion de possession,
Notion de tout et de parties,
Se note comme une association avec un losange du cot
du tout.
64
Les relations : lagrgation
Tout
Voiture
4
Agrgation
1
Partie
Roue
65
Conclusion sur les relations
Les relations doivent tre spcifies pour toutes les classes
qui interagissent entre elles,
Les relations sont des liens statiques entre les diffrentes
entits (classes),
Les relations apparaissent quasi-exclusivement dans les diagrammes
de classes,
Il existe 2 autres types de relations utiliss dans la
modlisation dynamique :
Les liens : flux permettant le transfert de messages entre objets.
Les transitions : utiliss dans la modlisation des machines
tats finis.
66
Spcication des commentaires (Notes)
Lors des phases de modlisation et de spcification,
il est ncessaire de documenter ses modles :
Contraintes matrielles,
Contraintes de performance,
Choix techniques raliss,
Rfrences dautres documents,
Explications techniques, etc.
Dans le langage UML, il existe une smantique
pour les commentaires.
67
Modlisation des commentaires
Voiture
Ne pas oublier
d'intgrer la roue
de secours.
Roue
Regarder le fichier
[Link] pour
l'implmentation de la
rparation de la roue
aprs crevaison.
68
Diagramme de classes, exemple
Nous allons maintenant essayer de modliser une
entreprise laide dun diagramme de classes :
Une entreprise est compose de plusieurs services, dans
ces services officie un certain nombre de personnes.
Dans les locaux de lentreprise se trouvent des bureaux
utiliss par les employs, chaque bureau porte un numro
et possde un numro de tlphone.
Les employs sont reconnus laide de leur nom et de
leur numro personnel. Chaque employ possde un
statut dans lentreprise.
69
Diagramme de classes, exemple
Entreprise
gnralisation
(est compos de)
1
*
Name
1
chaine : string
getName():string
setName(string)
*
*
Service
nom : Name
show()
Personnel
effectif : int
getNombre() : int
Bureau
adresse : string
telephone : int
show()
Agrgation
(emploie)
1...*
Personne
nom : Name
ID : int
titre : string
email: string
ObtenirPhoto()
ObtenirEMail()
Sige
1...*
gnralisation
(contient)
70
Diagramme de classes, exemple 2
Nous allons nous attacher modliser une
universit :
Luniversit est compose dtudiants qui suivent des
cours dans les filires de leur choix.
Ces cours sont dispenss par des enseignants qui peuvent
tre responsable des filires.
Les cours sont dispenss dans au moins une filire et
peuvent tre mutualits avec dautres.
A partir de l, raliser le diagrammes de classes
modlisant luniversit.
71
Correction de lexemple 2
Universit
Filire
tudiants
Cours
Enseignant
Voici les 5 entits de base qui constituent
luniversit que nous devons modliser
72
Correction de lexemple 2
possde
1
agrgation
(responsable)
0...1
1...*
Universit
Filire
affecter
est membre
1...*
1...*
1...*
tudiants
Cours
1...*
1...*
0...1
Enseignant
assiste
prodigue
73
Correction de lexemple 2
Universit
nom : string
adresse : string
telephone : int
ajouterEtudiant()
supprEtudiant()
listeEtudiants()
ajouterFilire()
supprFilire()
listeFilires()
possde
Universit
1...* nom : string
AjouterEnseignant()
supprEnseignant()
listeEnseignant()
1
agrgation
(responsable)
affecter
est membre
1...*
Cours
nom : string
1 identifiant : int
assiste
1...*
0...1
1...*
1...*
Etudiant
nom : string
identifiant : int
0...1
1...*
Enseignant
nom : string
1 prnom : string
lireNom() 0...1
prodigue
74
Exemple de travail itratif sur le modle
Permanent
numroBureau
spcialit
nombreCours
nom
numroScu
Vacataire
nombreVacation
nombreCours
spcialit
nom
numroScu
75
Exemple de travail itratif sur le modle
Enseignant
spcialit
nombreCours
nom
numroScu
Permanent
numroBureau
Vacataire
nombreVacation
76
Exemple de travail itratif sur le modle
Boulanger
nombreClient
adresseMagasin
nom
numroScu
Vendeur
anciennet
nomStand
nom
numroScu
Enseignant
spcialit
nombreCours
nom
numroScu
Permanent
numroBureau
Vacataire
nombreVacation
77
Exemple de travail itratif sur le modle
Personne
nom
numroScu
Boulanger
nombreClient
adresseMagasin
Vendeur
anciennet
nomStand
Enseignant
spcialit
nombreCours
Permanent
numroBureau
Vacataire
nombreVacation
78
Diagramme de classes
Implmentation des modles
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Et aprs les modles, que faiton ?
Les diagrammes permettent de spcifier de manire
claire, les classes et les relations existantes entre elles.
Gnration de code source partir du modle,
Les modles ne sont pas spcifiques un langage (choix
la gnration => 1 modle plusieurs implmentations
possibles suivant les contraintes)
A partir de tout diagramme UML, il est possible de
remonter vers le cahier des charges
Les lments du modle ont une smantique propre et
unique
80
Et aprs les modles que faiton ?
Une fois que lon a ralis lensemble des
diagrammes de classe, on va traduire les modles
dans un langage objet :
Indpendance du modle vis--vis du langage utilis pour
l'implmentation.
Nous utiliserons ici du C++
Chaque type dentit et de relation possde une
implmentation particulire,
Pas d'ambigut possible.
81
Transformation du modle au code source
Catalogue
class Catalogue{
// ... ... ...
};
Personne
class Personne {
// ... ... ...
};
82
Implmentation de la gnralisation
Catalogue
namespace Catalogue
{
// ... ... ...
};
83
Implmentation de la ralisation
Catalogue
nom : Name
dateCration : Date
Personne
nom : string
prnom : string
dateNaissance : string
ageMajorit: string : int = 18;
class Catalogue {
private:
string nom;
DateTime dateCreation;
// ... ... ...
}
class Personne {
private:
string nom;
string prnom;
protected:
DateTime dateNaissance;
private:
static int ageMajorite = 18;
}
84
Implmentation de la dpendance
Personne
- nom : string
- prnom : string
# dateNaissance : string
- ageMajorit: string : int = 18;
+ calculDurePret() : int
+ setAgeMajorit( int )
+ getAge(): int
class Personne {
private:
string nom;
string prnom;
static int ageMajorite = 18;
protected:
DateTime dateNaissance;
public:
int CalculerDureePret();
static void SetAgeMajorite(int
aMaj) {
// ... ... ...
}
public int GetAge() {
// ... ... ...
}
}
85
Implmentation de la composition (agrgation)
Personne
- nom : string
- prnom : string
- age : int
Adhrent
- ID : int
class Personne {
// ... ... ...
}
class Adhrent : Personne {
private int iD;
}
86
Implmentation dune association
<<Interface>>
Empruntable
<<Interface>>
Imprimable
Emprunter()
Retourner()
Imprimer()
Livre
titre : string
auteur : string
isbn : ISBN
Emprunter()
Retourner()
Imprimer()
class Livre : public Imprimable :
public Empruntable {
private:
string titre;
string auteur;
ISBN isbn;
public:
void Imprimer(){
// ... ... ...
}
void Emprunter(){
// ... ... ...
}
void Retourner(){
// ... ... ...
}
}
87
ClasseA
ClasseB
1
ClasseA
ClasseB
ClasseA
* {order}
ClasseB
public class A1 {
private:
ClasseB leB;
// ... ... ...
}
public class A2 {
private:
ClasseB[] lesB;
// ... ... ...
}
public class A3 {
private:
ArrayList lesB;
// ... ... ...
lesB = = new ArrayList();
}
88
Homme
0...1
mari
poux
0...1
Femme
class Homme {
private:
Femme pouse;
// ... ... ...
}
class Femme {
private:
Homme mari;
// ... ... ...
}
89
Personne
0...*
employ
0...*
employeur
Socit
Emploi
titre : string
salaire : double
class Emploi {
private:
string titre;
double salaire;
Personne employ;
Socit employeur ;
// ... ... ...
}
90
Les diagrammes de squence
et de collaboration
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Les diagrammes de squence
Mise en vidence de laspect temporel des
traitement (ordre chronologique de ralisation),
Mise en vidence des objets et des messages
changs par les entits interagissant avec et/ou
dans le systme,
La modlisation est base sur laffichage des objets
participant la squence et lordre des messages
et des actions associes.
92
Dnition de la smantique du diagramme
Les diagrammes de squence permettent de modliser
les interactions entre les objets :
Communications synchrones (flches pleines),
Communications asynchrones (flches pointills),
Les donnes transmises entre les objets (annotation des
flches),
Ils permettent aussi de connatre pour chaque objet :
Ses dates de cration et de destruction,
Sa dure de vie, si la cration est externe au diagramme (ligne
verticale en pointills).
93
Exemple de lascenseur
Objets
anonymes
Usager
Assenceur
Porte
Appel extrieur
(n tage)
Dplacement
Message
Demande ouverture
des portes
Stimulis
Portes ouvertes
94
Objets / Entits
Client
E-Mail
Serveur
SMTP
Cration
Socket
setServeur(name)
volution
du temps
ConnexionOK
Send(email)
DataSendOK
Connexion
ConnexionOK
SendData(data)
Close()
Destroy
Lignes de vie
95
Priodes
d'activit
Le diagramme de collaboration
Mise en vidence de lorganisation des objets qui
vont collaborer pour effectuer une interaction.
On reprsente les objets qui vont intervenir (les sommets),
On modlise les liens qui vont modliser les
communications entre les objets (les arcs),
On annote les liens laide des informations qui vont tre
changes entre les entits,
Visualisation claire du flot de contrle dans le
contexte de l'organisation structurelle.
96
Le diagramme de collaboration
2 niveaux de reprsentation (dabstraction)
Le niveau spcification
Dfinition des classes et de leurs rles,
Le niveau instance
Dfinition des objets et des messages changs,
97
Modlisation dun graphe de rle
/Locataire :
Personne
Objet
+ Habitant
+ Habitation
/Maison :
Logement
+ Loueur
/Propritaire :
Personne
+ Adresse
:Lieu
98
Le diagramme de collaboration
La modlisation temporelle est en partie masque,
Utilisation de la numrotation des squences pour
ordonner les traitements raliss,
Contrairement au diagramme de squence, certaines
informations ne sont pas reprsentes :
On ne modlise pas le ligne de vie des objets,
On ne modlise pas les temps dactivit des objets,
Par contre on modlise explicitement les liens qui
existent entre les diffrents objets.
99
Squence
Client E-Mail
Objet
1. Cration
2. setServeur(name)
4. SendMail(email)
6. Destruction
3. ConnexionOK
5. DataSendOK
2.1. Connexion
4.1. SendData
5. Close
Socket
Serveur
2.2. ConnexionOK
Message
Lien
100
Utilisation de ces diagrammes
Ces diagrammes sont utiliss pour modliser les
comportements dynamiques dun systme,
Modliser le fonctionnement dun sous systme,
Possibilit de joindre ces diagrammes aux cas
dutilisation afin de spcifier un scnario.
Il est possible de rajouter des contraintes sur les
diagrammes :
Contraintes temporelles (dure d'excution),
Formaliser le flot de contrle : ajouter des pr/post-
conditions.
101
Equivalence entre les diagrammes
Z
X
A
B
1.1 - A
1.2 - C
C
1.1.1 - B
Y
102
Diagrammes dtatstransitions
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
La recherche des tats
Ltat dun objet est li aux
valeurs de ses attributs et de
ses interactions avec les
autres objets,
Il est ncessaire de conserver
les tats signicatifs,
La rponse dun vnement
un stimuli dpend :
Du stimuli reu par lobjet,
De ltat dans lequel se trouve
Livre
estPrt
estRserv
Livre
libre
Livre
pret
Livre
rserv
lobjet.
104
Rgles lies au diagramme dtats
Chaque transition (passage dun tat un autre) est
provoqu par un vnement,
Une transition na pas de dure (utilisation possible
dtats de temporisation),
La dure dun tat est lintervalle qui scoule entre
l'vnement dentre et celui de dpart.
105
Diagramme dtats dun livre
Achat
Etat final
Destruction
(poubelle)
Etat initial
Livre
libre
Evnements
(condition)
Emprunt
Restitution
Livre
pret
Rservation
Libration
Emprunt
Livre
rserv
Etats
106
Smantique lie la reprsentation
Etat n-1
Nom de l'tat
entrer / actions a raliser en rentrant dans l'tat
faire / activits faire durant l'tat
... ... ... ... ... ... ... ... ... ... ... ... ... ...
sortir / / actions a raliser en sortant de l'tat
Etat n+1
107
Et la conception dans tout
cela ...
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Et la conception du systme ...
La phase de conception a pour objectif de chercher comment est
implment le systme,
Lanalyse vise quant elle identifier ce qui doit tre fait (et
non comment).
Lapproche est hirarchique sattachant dabord au grandes
parties du systme et leurs interactions, puis raffinement
progressif,
Prise en compte des contraintes exprimes la conception
(langage, BDD, temps dexec, processeurs, priphriques, etc.).
Cest une tape ou on va faire intervenir des spcialistes de
chaque discipline en fonction des technologies mises en oeuvre.
109
Diagrammes de dploiement
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Le diagramme de dploiement
Ce modle dfinit le diagramme de larchitecture
matrielle du systme ou de lapplication,
Il reprsente les diffrentes ressources matrielles
disposition : processeurs et priphriques et la
rpartition de lapplication sur le systme
htrogne,
Il prcise aussi les liens de communication existants
entre ces diffrentes ressources.
111
Le diagramme de dploiement
Systme
d'acquisition
Bluetooth
Processeur
distributeur
Ecran
USB
Imprimante
Rseau 100Mo
Supercalculateur
Rseau 1Go
FireWire
Systme
d'acquisition
Serveur de
donnes
112
Conclusion
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Conclusions sur UML
Langage permettant d'apprhender la ralisation dun
systme informatique complexe
Diagrammes qui permettent daider la rflexion, de
permettre la discussion sur des bases normalises et
formalises (clients, dveloppeurs)
Pas de solution unique mais un ensemble de solutions plus
ou moins acceptables
Contraintes clients (performances et fonctionnalits),
Architectures logicielles et matrielles disposition,
Des itrations successives du flot permettent daboutir une
solution.
114
Bibliographie
Modlisation avec UML, Robert Ogor, ENST
Bretagne, Mai 2003.
UML : Unified Modeling Language, Mireille
Blay-Fornarino, ESSI, Sophia Antipolis
UML, Martin Fowler, Collection Le tout en
poche, CampusPress
Le Guide de lutilisateur UML, Grady Booch and
al., Edition Eyrolles.
115