Escolar Documentos
Profissional Documentos
Cultura Documentos
Gnie Logiciel
Complments sur UML
Intervenant : Anil CASSAM CHENAI
Date : 02/02/2012
Objectifs du complment
Ce complment sera approfondi en parallle de plusieurs
TD/Cours.
Rappels sur UML dans un cadre de gestion de projet, plutt que
dans une simple vision de modle
Apporter des complments la gestion de projet, plus adapt un
projet de dveloppement logiciel.
On utilise ici un outils de modlisation UML gratuit et opensource (ici StarUML) pour illustrer le cours, mais on pourra en
utiliser dautres plus rcents.
On introduira aussi les architecture MDA qui permettent de la
gnration de code bas sur des modles et qui est de plus en plus
dactualit
Documents de rfrence
[1] UML Superstructure Specification V2 OMG (object
management group)
[2] Cours UML de Rational Software (IBM)
[3] Livre de Craig Larman : Applying UML and Patterns : an
introduction to Object-Oriented Analysis
concept
A la fin dun chapitre ralisation dun exercice plus global
mettant en jeux diffrents concepts et leurs articulations
Historique
Anne 70 et 80 : guerre des mthodologies
Annes 90 : unification des trois principales
Phase de ralisation/pilotage
Phase de terminaison
dadministration :
Afin de dgrossir le projet en sous lments
Les bons outils sont alors :
Les diagrammes de cas dutilisation de haut niveau
Planification
et
laboration
1. Dfinition de lbauche du
plan
2. Cration du rapport
prliminaire dinvestigation
5. Implmentation dun
prototype
8. Dfinition de lbauche de
larchitecture systmique
9. Raffinement du plan
Dveloppement
Cycle 1
Synchronisation
des objets
3. Raffinement du modle
conceptuel
4. Raffinement du glossaire
Analyse
7. Dfinition Diagrammes de
classe
Conception
3. Raffinement de larchitecture
du systme
6. Dfinition du schma de la
base de donnes
Dveloppement
Cycle 2
...
Implmentation
Test
Exigences/Conception/Implmentation
Durant tout le projet, il faut sparer les exigences de la
conception et de limplmentation
Exigences
Primtre du problme
Ce qui est exig
Contexte de lApplication
Hypothses
Besoins de performances
Conception
Approche gnrale
Algorithmes
Structures de donnes
Architecture
Optimisation
Planification des
ressources
Implmentation
Plates-formes
Spcifications matrielles
Bibliothques logicielles
Standard dinterface
danalyse prdfinie
Dfinition du sous-systme
Un Sous-systme est :
Ensemble de classes, doprations, dvnements et de contraintes
Tous relis
Avec des interfaces bien dfinies et prfrablement restreintes vers
lextrieur
Pas de trace des sous-systmes dans UML 2 sauf via un
stroptype. <<subsystem>>
Donc Sous-Systme=Package avec icne particulire permettant
de mieux identifier leur dlimitation a utiliser le strotype
subsystem
Un service est un ensemble de fonctionnalits apparentes qui
servent les mmes buts. On peut utiliser des sous-systmes pour
implmenter des services
Organisation
Nous allons :
Apprendre a crer et manipuler les diffrents objets
Les tudier dans le cadres des vues que sont les diagrammes.
Exemple de tutorial
Modle dtat
Dcrit les aspects temporels dun objet
Modle dinteraction
Dcrit la faon dont les objets collaborent pour obtenir des
rsultats
Mcanismes dextension
UML 2.0 contient des mcanismes dextension
Strotypes : chane qui compltent linformation sur un
reste de lanalyse
Exemple
Nous allons raliser un modle pour un systme
Receptionniste
Occuper chambre
Librer chambre
Femme de chambre
Client
Nettoyer chambre
Grer rclamations
Manager
rception
Il prend le nom, la date, la dure sur sjour et le nombre de
personne
Il propose un type de chambre disponible et son prix
Si le client accepte, il bloque la ou les chambres et le matriel
complmentaire (lit bb)
Deuxime exemple
Occuper chambre :
Le client se rend la rception.
Il demande avoir les cls de sa chambre.
Le rceptionniste vrifie :
que la chambre a bien t rserve
que le nombre de personnes correspond bien
que les quipements supplmentaires (lit bb) sont bien disponibles
client avec son numro de chambre et lui indique le chemin vers celle-ci
Le client se rend sa chambre et vrifie :
qu'il peut bien y accder
que la chambre lui convient bien. Dans le cas contraire il passe en phase
rclamation
Acteurs et systme
Un acteur nest pas une partie du systme. Il correspond un
rle.
System
Un acteur
acteur.
Un acteur peut tre un humain,une machine ou un autre systme.
Le systme peut tre un systme informatique mais aussi un
systme plus vaste (exemple lentreprise) dans quel cas certains
acteurs disparaissent dans le systme.
Usage de gnralisations
Permet de clarifier les dpendances entres rles et packages
Nouveau Client
Client enregistr
dutilisation
On a vu <<extends>> pour la spcialisation
On a <<include>> pour lutilisation
<<include>>
Librer chambre
Rgler chambre
Points dextension
Un point dextension est une location dans un cas
Rserver chambre
extension points
Prsence d'enfant(s)
extension points
Avec enfant(s)
<<extend>>
<<extend>>
Reserver bungalow
Diagrammes de classes
Permettent de modliser
Les classes
Leurs relations
Leurs attributs et oprations
Les contraintes
Ils correspondent une statique du modles
concepts du problme
Ensuite dans un deuxime temps reprise sous forme de
diagrammes de conception (Design)
Classes et objets
Les diagramme de classes permettent de manipuler des classes ou
Object1 : MaClasse
a = 17
Deux instances avec des valeurs diffrentes.
Les valeurs sont ajoute via un AttributeLink
Object2 : MaClasse
a = 38
Une classe
Hritage
Les diagrammes de classes permettent de dfinir facilement
Chambre simple
Chambre double
Hotel
-personnel: Personnel[0..*]
#NombreMaxLits: int
+Adresse: String
Personnel
La fonction prend une date d'entre, une date de sortie
+PrendreVacances(debut: DateTime, fin: DateTime): int
Les associations
Plutt que dutiliser un tableau, on met des associations
entre objets
Avec des noms de rles aux extrmits
Et une cardinalit
Hotel
#NombreMaxLits: int = 40
+Adresse: String
+employeur
0..1
+employes
0..*
Personnel
+PrendreVacances(debut: DateTime, fin: DateTime): int
Exercices
Exercice 1 :Crer un diagramme de classe
Mettre un attribut a:string dans cette classe
Crer deux instances de cette classe
Leur ajouter deux AttributeLink afin que la premire instance
Exercices
Exercice 2
Crer un diagramme de classe sous StarUML
Un ajouter une classe MaClasse au diagramme
Ajouter un objet au mme diagramme Objet1 instanciant
MaClasse
Exercice 3
Crer une classe btiment qui contient un champ numro de
btiment. Modifier les visibilits et types dattribut.
Crer un objet chambre.
Crer une association entre le btiments et des chambres
Multiplicit
Permet de prciser le nombre dlments contribuant une
relation
On peut avoir deux faons les reprsenter
Au niveau dun attribut
Au niveau dune extrmit dassociation
Contraintes (1)
On a trois faons de noter les
Attaches un attribut
A cot dune ligne pointille
Contraintes (2)
<uniqueness-designator>] } ]
<multiplicity-range> ::= [ <lower> .. ] <upper>
<lower> ::= <integer> | <value-specification>
<upper> ::= * | <value-specification>
<order-designator> ::= ordered | unordered
<uniqueness-designator> ::= unique | nonunique
Exercices
Crer une contrainte de chaque type list plus haut sous
StarUML
Une contrainte attache un attribut (utiliser lditeur de
collection Ctrl+F5)
Une contrainte rattache deux relations
Une contrainte signale par une simple note
Quel est lavantage dune contrainte attache un attribut
Agrgation et composition
Une association peut tre une agrgation quand les objets
Les qualificateurs
On peut prciser et rduire la cardinalit dune
Siege
+rangee
1
+Numero: int
primaire du Mappage OR
Dmo : ajout dun qualificateur une relation
Structure composites
Les diagrammes de classes peuvent dtailler la structure
composant ou classe
Les Ports
Les Ports dcrive des sous lments de classes accessibles
depuis lextrieur
Interfaces (1)
Les interfaces et leurs arborescences peuvent tre obtenues
linterface)
tre une ralisation dune interface (implmenter linterface)
Interfaces (2)
Deux notations mappes
La notation cercl
Ou lusage du strotype <<interface>> sur une classe
Interfaces (2)
Ralisation
Dpendance
Autre notation possible :
Exercice
Dans un diagramme de classes de StarUML
Crer une classe et deux interfaces
Crer une ralisation de la classe par rapport la premire
interface
Crer une dpendance de la classe par rapport la deuxime
interface
Dans quel cas de notation sommes nous ?
Diagrammes dactivit
Inoccupe
En nettoyage
Occupe
transitions
Un vnement de type signal : SignalEvent (par exemple le
Occupe
tats.
Les diagrammes dtats dun sous-tats peuvent tre
rfrencs dans le diagramme principal via :
SubmachineState1
Exercices
1) Reproduire le diagramme de changements dtats pour
une chambre
2) Crer un diagramme dtat pour un membre du
personnel, en considrant le cas dune personne non encore
embauche.
Solution
1 : ReserverChambre()
2 : OccuperChambre()
3 : TraiterUneReclamation()
4 : FaireUneRemise()
5 : PrendreVacances()
Message synchrone
Messages asynchrones
pointills.
: Hotel
: Cuisinier
UnRepas : Repas
1 : UnRepas := CommanderRepas()
<<create>>
3
2 : UnRepas := CommanderRepas()
Les boucles
La logique conditionnelle
Break
Fonctionnement parallle
communication
Les diagrammes de collaboration se focalisent en priorit sur
la relations entre objets (via les liens). Les stimulis sont alors
secondaires
On dessine ainsi diffrentes instances dobjets et on les relie
par des liens sur lesquels on pourra mettre un ou plusieurs
stimulis
StarUML
Apparition des liens (entre objets)
Les liens peuvent tre rcursifs
Un lien doit tre pos sur le
Diagramme.
On peut ensuite lui affecter un ou
plusieurs stimuli(s)
Pas de notion de fragments et d
oprandes dinteractions
lobjet cible.
Il peuvent tre adapts pour :
Passer des paramtres qui sont des instances dobjets prsent
dans le diagramme
Retourne des valeurs nommes, utilisables elles aussi dans
dautres stimulis
tre rptes un certain nombre de fois
Sappliquer sous certaines conditions
Object2
2
1.1
Object5
Object3
1.2
Object4
arrondis
Elles sont relies entre elles par des transitions qui
en tches
Une ou plusieurs tches dentres (courtes)
Une ou plusieurs tches interne
synchronisation
Etat Initial : Unique
Activity1
Etat final : On peut en avoir plusieurs
dans le mme diagramme
Activity2
Zone de synchronisation
Zone de synchronisation
de type fork
de type join
Droulement parallle
des deux chemins
dclencheurs (triggers)
Des signaux
Un appel de fonction
Un vnement de
type timer
Un vnement de
modification
Callback
Grer la commande
Demander le paiement
Revoir le paiment
Envoyer le colis
Envoi du signal