IRIT UTM 1
La base de contrle Robot Zone explorer
Modlisation objetModlisation objetLe langage UMLLe langage UML
IRIT-UTM 2
La complexit des logiciels
Les systmes peuvent tre dcomposs selon Ce quils font (approche fonctionnelle)Ce quils sont (approche objet)
Lapproche objet gre plus efficacement la complexitModles bass sur le monde rel
stabilit, ..Structure indpendante des fonctions
volutivit, ..Approche modulaire
maintenance, rutilisabilit, ..
IRIT-UTM 3
Historique des langages Objets
Langages de programmation orients objets Simula (1967) Smalltalk (1970) C plus Classes(1980) C++ (1985) Eiffel (1988) Java (1995)
SGBD orients objetsUtilisation des bds avec un langage OO
Gense des mthodes danalyse Implmentation
Conception (solution informatique) Analyse (comprendre et modliser le problme)
IRIT-UTM 4
Les mthodes d'analyse
Mthodes orientes comportementOn sintresse la dynamique du systme
(rseaux de Ptri, ..)Mthodes fonctionnellesSinspirent de larchitecture des ordinateursOn sintresse aux fonctions du systme (SADT, ..)
Mthodes orientes donnesOn ne sintresse pas aux traitements (Merise, ..)
Mthodes orientes objetsOn ne spare pas les donnes et les traitements
(Booch, OMT,RUP)
IRIT-UTM 5
Rfrences
Books: The Unified software development process, I. Jacobson, G. Booch, J.
Rambaugh, ed. Addison-Wesley, 1999 Design Patterns: Elements of reusable Object Oriented Software, E.
Gamma, R. Helm, R. Johnson, J. Vlissides, ed. Addison-Wesley, 1994 Modlisation objet avec UML, PA. Muller, N. Gaertner, ed. Eyrolles
Liens: http://www.OMG.org : les normes UML, OCL, MDA, http://uml.free.fr : UML en franais
Dautres cours sur le web: http:// www-igm .univ-mlv .fr/~dr/DESS/Elaboration/siframes.htm http://www.iutc3.unicaen.fr/~moranb/cours/acsi/ menucoo.htm http://www.cnam-versailles.fr/ress_uv_pres/prog_oo/Ressources
%pedagogiques/NotationUML-0399.ppt
IRIT-UTM 6
Plan de prsentation
Les concepts dUMLUML
Introduction au langage UML Vue structurelle (Diagramme de classes / Diagramme
dobjets) Vue fonctionnelle (Diagramme des cas dutilisation /
Diagramme de collaboration / Diagramme de squence)
Vue dynamique (Diagramme dtats-transitions / Diagramme dactivit)
UML avanc Les composantsOCL: ajout de contraintes sur les modles UMLMta-modlisation et profils
IRIT-UTM 7
IntroductionIntroduction
IRIT-UTM 8
UML dans ce bazarre
UML = Unified Modeling Language Langage unifi pour la modlisation objet
Langage de modlisation des applications construites laide dobjets, indpendant de la mthode utilise Langage de modlisation: notationsMthode: utilisation du langage de modlisation
(recueil des besoins, analyse, conception, mise en uvre, validation)
Objet: reprsentation du problme base sur des entits (concrtes ou abstraites) du monde rel
IRIT-UTM 9
Gense d'UML
utilisation dun standard de modlisation universel au dpart, plus de 150 mthodes !! unification progressive de plusieurs mthodes, de remarques des
utilisateurs, des partenaires 1989 : cration de lOMG (Object Management group) ; groupe cr
linitiative de grandes socits informatiques amricaines afin de normaliser les systmes objets ; 1re ralisation de lOMG : CORBA (communication entre applications objets dans un systme distribu htrogne)
BoochUnified MethodUnified Method
0.8
etc...
OOSE(Jacobson et al.)
UML 0.9UML 0.9
1996
etc.ROOMCatalysis
OMGOMG
UML 1.1UML 1.1Nov. 1997Nov. 1997
UML 1.3UML 1.3
UML 1.4UML 1.4
UML 2.0UML 2.0
Juin 1999Juin 1999
20032003
HOOD
OMT (Rumbaugh et al.)
1995
RationalRational
ROOM
Classe-Relation
Fusion
OOSE
Booch
OMT
Fin 1990
IRIT-UTM 10
L'unification
Des mthodes La guerre des mthodes ne fait plus avancer la
technologie des objetsRecherche dun langage commun unique
utilisable par toutes les mthodes adapt toutes les phases du dveloppement compatible avec toutes les techniques de ralisation
Sur plusieurs domaines dapplicationsScientifique IndustrielGestionMultimdia
IRIT-UTM 11
Porte
Reste au niveau dun langagene propose pas un processus de dveloppementNi ordonnancement des tches, Ni rpartition des responsabilits, Ni rgles de mise en uvre
Certains ouvrages et AGL bass sur UML ajoutent cet aspect fondamental en mthodologieLe MDALe MDA est une sorte de guide structur qui fait actuellement rfrence en IDM (OMG) Il se rvle tre un jeu de standards pour la modlisation
IRIT-UTM 12
Porte
Reste au niveau dun langagene propose pas un processus de dveloppementNi ordonnancement des tches, Ni rpartition des responsabilits, Ni rgles de mise en uvre
Certains ouvrages et AGL bass sur UML ajoutent cet aspect fondamental en mthodologieEn rsum:UML est une notation, pas une mthodeUML est un langage de modlisation objet UML convient pour toutes les mthodes objetUML est dans le domaine publicUML est la notation standard pour documenter les
modles objets
IRIT-UTM 13
Les objets -rappels
Les objets du monde rel nous entourent, ils naissent, vivent et meurentLes objets informatiques dfinissent une reprsentation simplifie des entits du monde rel
Les objets reprsentent des entits Concrtes : avec une masseAbstraites : concept
IRIT-UTM 14
Les objets -rappels
Une abstraction est un rsum, un condensMise en avant des caractristiques essentiellesDissimulation des dtailsUne abstraction se dfinit par rapport un point de vueExemples dabstractions
une carte routire un nombre complexe un tlviseur une transaction bancaire une porte logique une pile un tudiant
IRIT-UTM 15
Les objets -rappels
Objet = tat + Comportement + IdentitCommunication entre objets (echange de message /appel de mthode)
IRIT-UTM 16
Les objets -rappels -tat
Ltat dun objet :Regroupe les valeurs instantanes de tous les
attributs dun objetEvolue au cours du tempsAun instant donn est la consquence de ses
comportements passsExemplesPour un signal lectrique : lamplitude, la
pulsation, la phase, Pour une voiture : la marque, la puissance, la
couleur, le nombre de places assises, Pour un tudiant : le nom, le prnom, la date de
naissance, l'adresse,
IRIT-UTM 17
Les objets -rappels -comportement
Le comportementDcrit les actions et les ractions dun objetRegroupe toutes les comptences dun objetRepreprsente sous la forme doprations
(mthodes)Un objet peut faire appel aux comptences dun autre objetLtat et le comportement sont lis Le comportement dpend de ltat Ltat est modifi par le comportement
IRIT-UTM 18
Les objets -rappels -identit
Tout objet possde une identit qui lui est propre et qui le caractriseLidentit permet de distinguer tout objet de faon non ambigu, indpendamment de ltatLes langages objets utilisent gnralement des pointeurs pour raliser un identifiant. Un attribut identifiant nest pas ncessaire
IRIT-UTM 19
Les objets -rappels -communication entre objets
Application = socit d'objets collaborantLes objets travaillent en synergie afin de raliser les fonctions de lapplicationLe comportement global dune application repose donc sur la communication entre les objets qui la composentLes objets Ne vivent pas en ermites Les objets interagissent les uns avec les autres Les objets communiquent en changeant des
messages
IRIT-UTM 20
Les objets -rappels -communication entre objetsCatgories de messagesConstructeurs: crent des objetsDestructeurs: dtruisent des objetsAccesseurs: renvoient tout ou partie de ltat Modifieurs: changent tout ou partie de ltat Itrateurs: traversent une collection dobjets
IRIT-UTM 21
Les objets -rappels -les classes
La classe Est une description abstraite dun ensemble
dobjetsPeut tre vue comme la factorisation des lments
communs un ensemble dobjetsDcrit le domaine de dfinition dun ensemble
dobjetsDescription des classesSpare en deux parties
la spcification dune classe qui dcrit le domaine de dfinition et les proprits des instances de cette classe (type de donne)
la ralisation qui dcrit comment la spcification est ralise
IRIT-UTM 22
Les objets -rappels
Les objets naissent, vivent et meurentLes objets interagissent entre euxLes objets sont regroups dans des classes qui les dcrivent de manire abstraiteLa classe intgre les concepts de type et de module
IRIT-UTM 23
Les 9 diagrammes
Vue structurelleDiagramme de classes Diagramme objetDiagramme de composantsDiagrammes de dploiement
Vue comportementaleDiagramme des cas dutilisationDiagramme tats-transition Diagramme dactivitsDiagramme de collaboration Diagramme de squence
IRIT-UTM 24
Les 9 diagrammes
IRIT-UTM 25
Vue Structurelle Vue Structurelle Diagramme de classesDiagramme de classes
IRIT-UTM 26
Diagramme de classes
Structure statique dun systmeClasses (ensembles dobjets)Relations entre classes (ensembles de liens entre
objets)Oprations / mthodesOpration : service qui peut tre demand
nimporte quel objet de la classeMthode : implmentation dune oprationChaque opration non abstraite dune classe doit
avoir une mthode qui fournit un algorithme excutable comme corps (cet algorithme est donn dans un langage de programmation ou dans du texte structur).
IRIT-UTM 27
Niveau de dtail d'analyse
Spcification : plusieurs niveaux de dtailsNiveau de dtail danalyse
pas de prcision sur la mise en uvre indpendant du logiciel plusieurs niveaux de prcision au fil des itrations
danalyse simplifi
uniquement le nom de la classe intermdiaire
nom de la classe nom des attributs, ou des oprations
complet nom de la classe noms des attributs noms des mthodes
NomClasse
NomClasse
attribut1attribut2attribut3
Opration1Opration2
NomClasse
attribut1attribut2attribut3
IRIT-UTM 28
Niveau de dtail de conception
Niveau de dtail de conception Identification de linterface des classes :
type des objets, comportement externe, faon interne de les mettre en uvre
indpendant du logiciel attributs:
type valeurs par dfaut degr de visibilit Caractristique
oprations: Signature degr de visibilit caractristique
NomClasse
- Attribut1 : type1# Attribut2 : type2 = valeur2# /Attribut3 : type3
+ Opration1 (arg1, arg2,) : type4# Opration2 () : void
IRIT-UTM 29
Notations des attributs et oprations
Attribut : =
Opration (listeParamtres)
Paramtre
: =
Nom de classe
Attributs
Oprations( )
IRIT-UTM 30
Visibilit
Visibilit = degr de protection + : publique (accessible toutes les classes) # : protg (accessibles uniquement aux sous-classes) - : priv (inaccessible tout objet hors de la classe) Pas de visibilit par dfaut
NomClasse
+ Opration publique# Opration protge- Opration prive
+ Attribut publique# Attribut protg- Attribut priv
IRIT-UTM 31
Type
Attribut Type de base (entier, boolen, caractre, tableau)
integer, double, char, string, boolean, currency, date, time, void
Au niveau analyse, pas dattribut instance dun classe (on utilise une association)
Au niveau conception, on dcide quelles associations peuvent tre reprsentes par des attributs
Opration Type quelconque (de base ou classe)
T
IRIT-UTM 32
Valeur par dfaut des attributs
Affecte lattribut la cration des instances de la classeEn analyse, on se contente souvent dindiquer le nom des attributs
Voiture
+ Dmarrer ()+ Rouler ()+ Freiner ()
- Marque : string- Modle : string- Turbo : boolean = false
IRIT-UTM 33
Attributs et opration drivs
Notation : /nomAttributProprit redondante, drive dautres proprits dj allouesEn conception, un attribut driv peut donner lieu une opration qui encapsulera le calcul effectu
Commande
-Numro-PrixHT-TVA/PrixTTC
Commande
-Numro-PrixHT-TVA/PrixTTC
+CalculerPrixTTC ()
IRIT-UTM 34
Les relations entre classes -l'association
Lassociation exprime une connexion smantique entre classesLa plupart des associations sont binaires : connectent 2 classesNotation :
Classe1 Classe2
Universit tudiant
IRIT-UTM 35
Les relations entre classes -l'association n-aire
Reprsentation au niveau de lassociationReprsentation au moyen dune classe+ contrainte qui exprime que les multiples
branches de lassociation sinstancient simultanment en un mme lien
Enseignant tudiant
Salle
Cours Dbut Fin
Enseignant tudiant
Salle
>Cours Dbut
Fin
IRIT-UTM 36
Les relations entre classes -nommage des roles
Le rle dcrit comment une classe voit une autre classe travers une associationUne association a par essence 2 rles, selon le sens dans lequel on la regardeUsage : forme nominale
Socit PersonneEmploy
Employeur
Classe1 Classe2Rle2
Rle1
Socit PersonneEmploy
DirecteurPersonne
Parent
Enfant
IRIT-UTM 37
Les relations entre classes -multiplici
Chaque rle porte une indication de multiplicit : nombre dobjets de la classe considre pouvant tre lis un objet de lautre classeInformation porte par le rle
Classe1 Classe2m2
Rle2
Rle1
m1
Valeur : Signification :1 Un et un seul0..1 Zro ou unM .. N De M N (entiers naturels)* De zro plusieurs0 .. * De zro plusieurs1 .. * D'un plusieurs
IRIT-UTM 38
Les relations entre classes -lecture d'une association
Un employeur emploi plusieurs personnes
Socit Personne*
SesEmploysSonEmployeur
1
Un employ est employ par un seul employeur
IRIT-UTM 39
Les relations entre classes -les contraintes
Les contraintes Les associations alternatives
Contrainte {xor} : ou exclusif Lorsquune seule des associations ne peut tre
instancie
Exemple:
OCL: Object Constraint Language
compte
Personne physique
Personne morale
a pour titulaire
a pour titulaire
{xor}
IRIT-UTM 40
Les relations entre classes -les restrictions
Une restriction (ou qualification) consiste slectionner un sous-ensemble dobjets parmi lensemble des objets qui participent une association
Exemple: Classe A Classe B Cl
chiquier Case
Ligne Colonne
*
chiquier Case
*
case
case
1chquier
1chquier
IRIT-UTM 41
Les relations entre classes -classe associative
Ensemble dattributs qualifiant la relation
Reprsentation simplifie
tudiant Matire
Moyenne
Sestudiants
*
*SesMatires
tudiant Matire Moyenne
IRIT-UTM 42
Les relations entre classes -l'agrgationConnexions bidirectionnelles dissymtriques Une des extrmits est prdominante par rapport lautre Ne concerne quun seul rle
Reprsentation des relations de type Tout et parties Compos et composants Matre et esclaves
Deux type dagrgation Agrgation partage (par rfrence) notion de co-proprit
la cration (resp. la destruction) des composants est indpendante de la cration (resp. la destruction) du composite
un objet peut faire partie de plusieurs composites la fois Composition (par valeur)
cas particulier de lagrgation : attributs contenus physiquement par lagrgat
la cration (resp. la destruction) du composite entrane la cration (resp. la destruction) des composants
un objet ne fait partie que dun seul composite la fois
IRIT-UTM 43
Les relations entre classes -l'agrgation
Agrgation
Composition
Immeuble 0..*
Immeuble Personne CoPropritaire
1..*
Moteur
1 Voiture
Cylindre Carburateur * 1
Voiture Moteur
IRIT-UTM 44
Navigabilit d'une association
Qualit dune association qui permet le passage dune classe vers une autrePar dfaut, on peut naviguer dans les 2 sensOn peut cependant limiter la navigabilit:
Exemple:Une instance dutilisateur peut accder des
instances de Mot de passe, mais pas linverse
Classe 1 Classe 2
Utilisateur Mot de passedtenteur *1 clef
IRIT-UTM 45
Mthode -1ers attributs
Attributs dcrivant l'objetAttributs de classesAttributs drivs
PRODUIT
- Nom : string- Description : string- Poids : float- PrixHT : float- TauxTaxe : float = 19,6- /PrixTTC : float- TauxFrancs : float = 6,5559- /PrixTTCFrancs : float
IRIT-UTM 46
Mthode -1ers mthodes
Constructeur (s)Accesseurs (1 pour chaque attribut)Calcul des attributs drivs
PRODUIT
- Nom : string- Description : string- Poids : float- PrixHT : float- TauxTaxe : float = 19,6- /PrixTTC : float- TauxFrancs : float = 6,5559- /PrixTTCFrancs : float
+ PRODUIT (nom : string, description : string, poids : float, prixHT : float) : PRODUIT
+ GetNom () : string+ GetDescription () : string+ GetPoids () : float+ GetPrixHT () : float+ GetTauxTaxe () : float+ GetPrixTTC () : float+ GetTauxFrancs () : float+ GetPrixTTCFrancs () : float+ GetSesPaniers () : ensemble(PANIER)
+ CalculerPrixTTC () : void+ CalculerPrixTTCFrancs () : void
IRIT-UTM 47
Mthode -autres mthodes
ModifieursPublicsPrivs
Autres mthodes
PRODUIT
- Nom : string- Description : string- Poids : float- PrixHT : float- TauxTaxe : float = 19,6- /PrixTTC : float- TauxFrancs : float = 6,5559- /PrixTTCFrancs : float
+ PRODUIT (nom : string, description : string, poids : float, prixHT : float) : PRODUIT+ GetNom () : string+ GetDescription () : string+ GetPoids () : float+ GetPrixHT () : float+ GetTauxTaxe () : float+ GetPrixTTC () : float+ GetTauxFrancs () : float+ GetPrixTTCFrancs () : float+ GetSesPaniers () : ensemble(PANIER)+ CalculerPrixTTC () : void+ CalculerPrixTTCFrancs () : void
+ SetPrixHT (prixHT : float) : void- SetTauxTaxe (taux : float) : void
IRIT-UTM 48
Mthode -associations et rles
PRODUIT
- Nom : string- Description : string- Poids : float- PrixHT : float- TauxTaxe : float = 19,6- /PrixTTC : float- TauxFrancs : float = 6,5559- /PrixTTCFrancs : float
+ PRODUIT (nom : string, description : string, poids : float, prixHT : float) : PRODUIT
+ GetNom () : string+ GetDescription () : string+ GetPoids () : float+ GetPrixHT () : float+ GetTauxTaxe () : float+ GetPrixTTC () : float+ GetTauxFrancs () : float+ GetPrixTTCFrancs () : float
+ CalculerPrixTTC () : void+ CalculerPrixTTCFrancs () : void
+ SetPrixHT (prixHT : float) : void
PANIER
- /PrixTTC : float- /Poids : float- /PrixTTCFrancs : float
+ PANIER (unProduit : PRODUIT) : PANIER
+ GetPrixTTC () : float+ GetPoids () : float+ GetPrixTTCFrancs () : float+ GetSesProduits () : ensemble(Produit)
+ CalculerPrixTTC () : void+ CalculerPoids () : void+ CalculerPrixTTCFrancs () : void
+ AjouterAuPanier (unProduit : PRODUIT) : void+ SupprimerDuPanier (unProduit : PRODUIT) : void
*SesProduits
IRIT-UTM 49
Mthode -version simple
AttributsExplicite: nom Implicite:
visibilit prive type, valeur par dfaut
MthodesExplicite: mthodes spcifiques Implicite:
constructeur accesseurs "GetToto" (1 par attribut et rle) modifieurs privs "SetToto" calcul des attributs drivs
PRODUIT
NomDescriptionPoidsPrixHTTauxTaxe/PrixTTCTauxFrancs/PrixTTCFrancs
+ SetPrixHT (prixHT : float) : void
IRIT-UTM 50
Diagramme de classes -exercice
Ralisez le digramme de classe pour:Une voiture
quatre roues, des pneus un moteur, un coffre, des passagers.
IRIT-UTM 51
Hirarchie de classes
Grer la complexit Arborescences de classes dabstraction croissante
Gnralisation: Super-classesSpcialisation: Sous-classes
Sous-classe
Super-classe Classe plus gnrale
Classe plus spcialise
IRIT-UTM 52
Gnralisation
Factoriser les lments communs attributs, oprations et contraintes
Vhicule
Vhicule terrestre Vhicule arien
Voiture Camion Avion Hlicoptre
Abstraction plus gnrales
IRIT-UTM 53
Spcialisation
Extension cohrente d'un ensemble de classes
Transmission
Continue Discrte
Variateur Drailleur Bote de vitesses
Extension par spcialisation
IRIT-UTM 54
Proprits de la gnralisation
Signifie toujours : est un ou est une sorte de (is-a)
Animal
Carnivore Herbivore
Lion Mouton Lapin
IRIT-UTM 55
Proprits de la gnralisation
Non-rflexive, non-symtrique, transitive
A
Impossible !!!
Impossible !!!
A
CB
A
B
C
IRIT-UTM 56
Gnralisation multiple
Animal
Bipde Quadrupde Herbivore Carnivore A plumes A poils A cailles
StationNourriture
Protection
Lapin
Attention certains langages ne le supporte pas
IRIT-UTM 57
L'hritage
Technique la plus utilise pour raliser la gnralisationConstruire une classe partir dune ou plusieurs autres classes, en partageant des attributs, des oprations et parfois des contraintes, au sein d'une hirarchie de classes
CompteBancaire-crdit : int-dbit : int+dposer(argent :int)+retirer(argent :int)+donner-solde():int
Comptepargne-taux :int+calculerIntrts():int
Gnralisation Spcialisation
IRIT-UTM 58
Classe et opration abstraites
Classe qui ne peut avoir aucune instance directeOn crit son nom en italique
Opration incomplte qui a besoin de sa classe fille pour fournir une implmentationOn crit son nom en italique.
Forme
-Nom : string
+Calc-surface()+Get-nom()
IRIT-UTM 59
Polymorphisme
Rectangle
-Longueur : real-Largeur : real
+Calc-surface()
Cercle
-Rayon : real
+Calc-surface()
Oprationpolymorphe
Forme
-Nom : string
+Calc-surface()+Get-nom()
IRIT-UTM 60
Interfaces
Contient des dclarations de caractristiquesAttributsOprations
Dfinition dun contrat pour toutes les classes qui limplantent
NomInterface
atrributoperation
IRIT-UTM 61
Ralisation
Alarm
+volume:int+activate()+desactivate()
SimpleAlarm+volume:int+activate()+desactivate()
Alarm+volume:int+activate()+desactivate()+volumeModify(volume:int)
IRIT-UTM 62
Vue Structurelle Vue Structurelle Diagramme d'objetsDiagramme d'objets
IRIT-UTM 63
Diagramme d'objets
Ils modlisent les instances dlments qui apparaissent sur les diagrammes de classeIls montrent un ensemble d objets et leurs relations un moment donn Instances nommes
Instances anonymes
Instances avec valeurs dattributs
bouton3:Rectangle
Longueur : real=13.5Nom : string=bouton-poussoir
Largeur : real=3.2
:Cercle
bouton1:Rectangle bouton2:
IRIT-UTM 64
Diagramme d'objets- association/lien
Une association est une abstraction des liens qui existent entre les objets instances des classes associesLes associations se reprsentent de la mme manire que les liens
Toulouse: Universit
Pierre: tudiant
Jean-Jacques: tudiant
Bordeaux: Universit
Laurence: tudiant
Un lien
Un lien
Un lien
Une associationUniversit tudiant
IRIT-UTM 65
Diagramme d'objets- exemple
Martin:Enseignant
Dupont:EnseignantGnie-Logiciel:Matire
Systme:MatireDuval:Enseignant
MatireEnseignantenseigne
* 1..*
Rseaux:Matire
IRIT-UTM 66
Vue Fonctionnelle Vue Fonctionnelle Diagramme des cas Diagramme des cas
d'utilisationd'utilisation
IRIT-UTM 67
Diagramme des cas d'utilisation
Expression du comportement du systme selon le point de vue de lutilisateurInteraction entre le systme informatique dvelopper et un utilisateur (ou acteur) interagissant avec le systmeDescription dune squence d'actions ralises par le systme et qui produit un rsultat observable pour un acteur
IRIT-UTM 68
Diagramme des cas d'utilisation
Constitue un moyen pour dterminer les buts et ltendue dun systmeUtilis par les utilisateurs finaux pour exprimer leur attentes et leur besoins Permet dimpliquer les utilisateurs ds les
premires phases du dveloppementSupport de communication entre les quipes et avec les clientsDcoupage du systme global en grandes tches qui pourront tre rparties entre les quipes de dveloppementPermet de concevoir les Interfaces homme-Machine, ....Constitue une base pour les tests fonctionnels
IRIT-UTM 69
Notation UML
Systme
acteur Acas d'utilisation X
acteur Bcas d'utilisation Y
cas d'utilisation Z
IRIT-UTM 70
Exemple: le jeu monopoly
Monopoly
joueur jouer un coup
banquierdistribuer l'argent
IRIT-UTM 71
Exemple: le jeu monopoly
Exemple : Diagramme de cas dutilisation prliminaire pour le jeu Monopoly
Monopoly
Joueur
Banquier
Faire un dplacement
Acheter une proprit
Payer le loyer
Repartir les billets
Aller en Prison
Hypothquer une proprit
IRIT-UTM 72
Les acteurs
Un acteur est une entit (personne ou un systme) qui interagit avec un systme (ou avec un autre systme), en changeant de linformation en entre et/ou en sortieReprsente un ensemble de rles que les utilisateurs peuvent jouer quand ils interagissent avec les cas dutilisationOn trouve les acteurs en observant les utilisateurs directs du systme, ceux qui sont responsable de sa maintenance, ainsi que les autres systmes qui interagissent avec le systmeOn doit raisonner en terme dutilisation au lieu de communication
IRIT-UTM 73
Les acteurs et les rles
On ne doit pas raisonner en terme dentit physique, mais en terme de rle que lentit physique joueUn acteur reprsente un rle jou par un utilisateur qui interagit avec le systmeLa mme personne physique peut jouer le rle de plusieurs acteurs (joueur, banquier) Plusieurs personnes peuvent galement jouer le mme rle, et donc agir comme le mme acteur (tous les joueurs)
Nom durle
IRIT-UTM 74
Les acteurs et les rles -exemple
On ne doit pas raisonner en terme dentit physique, mais en terme de rle que lentit physique joueUn acteur reprsente un rle jou par un utilisateur qui interagit avec le systmeLa mme personne physique peut jouer le rle de plusieurs acteurs (joueur, banquier) Plusieurs personnes peuvent galement jouer le mme rle, et donc agir comme le mme acteur (tous les joueurs)
Nom durle
IRIT-UTM 75
Les acteurs et les rles -exemple
Exemple : Identifier les acteurs partir des rgles du jeu de
socit Monopoly
joueur banquier
IRIT-UTM 76
Les cas d'utilisation
Les cas d'utilisationReprsentent le dialogue entre lacteur et le
systme de manire abstraiteEnsemble de scnarios au sein dune description
uniqueCas dutilisation vs. scnarioCas dutilisation: reprsente un cas en gnral, une
reprsentation gnrale et synthtique dun ensemble de scnarios similaires exemple: un joueur joue un coup
Scnario: cas dutilisation spcifique exemple: le joueur Pierre joue : il obtient 7 avec les
ds, se dplace rue de Belville et achte la proprit
IRIT-UTM 77
Conception d'un DCU
Questions se poser pour dterminer les acteursQuels sont les rles possibles?
Questions se poser pour dterminer les cas d'utilisationQuelles sont les tches de lacteur?Quelles informations lacteur doit-il crer,
sauvegarder, modifier, dtruire ou simplement lire ou ...?
Lacteur devra-t-il informer le systme des changements externes?
Le systme devra-t-il informer lacteur de conditions internes au systme?
....
IRIT-UTM 78
DCU -notation UML
Chaque cas dutilisation doit avoir un nom qui permet de le distinguer des autres. Ce nom modlise une actionUn cas dutilisation est reprsent par une ellipse et son nom
Nom
IRIT-UTM 79
DCU -notation UML
Exemple : Identifier les cas dutilisation principaux partir des rgles du jeu de socit Monopoly (voir http://fr.wikipedia.org/wiki/Monopoly)
IRIT-UTM 80
DCU -notation UML
Exemple : Identifier les cas dutilisation principaux partir des rgles du jeu de socit Monopoly
Payer le loyer
Rpartir les billets
Acheter une proprit
Faire un dplacement
Hypothquer une proprit
Aller en Prison
Faire faillite
IRIT-UTM 81
DCU -notation UML
Relations entre les composantsEntre les acteurs et les cas dutilisations
AssociationsEntre les acteurs ou entre les cas
dutilisation Gnralisation
Entre les cas dutilisation Inclusion Extension
include
extend
IRIT-UTM 82
Description plus fine- Relation d'inclusion include
Inclusion (): permet de spcifier un comportement additionnel qui est inclut dans le comportement dun cas dutilisation de base
includeAcheter une proprit Faire un dplacement
Le cas dutilisation de base pointe vers le cas dutilisation inclutCas dutilisation de base Cas dutilisation inclus
IRIT-UTM 83
Description plus fine- Relation d'inclusion include
Inclusion (): permet de spcifier un comportement additionnel qui est inclut dans le comportement dun cas dutilisation de base
Monopoly
Joueur Jouer un coup
BanquierDistribuer l'argent
Toucher de l'argent
IRIT-UTM 84
Description plus fine- Relation d'extension
Extension (): permet de spcifier un comportement additionnel qui peut incrmenter le comportement dun cas dutilisation de base (partie facultative ou cas dexception)
extend Payer le loyerHypothquer une proprit
Le cas dutilisation qui augmente le comportement pointe vers le cas dutilisation de baseCas dutilisation
extension
IRIT-UTM 85
Description plus fine- Relation d'extension
Extension (): permet de spcifier un comportement additionnel qui peut incrmenter le comportement dun cas dutilisation de base (partie facultative ou cas dexception)
Monopoly
Joueur Jouer un coup
BanquierDistribuer l'argent
Fin de partie
IRIT-UTM 86
Description plus fine- Spcification
Pour chacun des cas d'utilisation on fournira une spcification sous la forme Dun texte (pas de norme tablie)D'un diagramme (de squence ou de collaboration)
Spcification sous forme textuelle - plusieurs tapesRdige par lutilisateurProposition technique
Chaque tape de spcification peut donner lieu une version du diagramme de classes, de plus en plus dtaille
IRIT-UTM 87
Spcification sous forme textuelle -exemple
Systme: nom du systmeActeur primaire: nom de lacteur qui initie le casObjectif: nom du cas (description synthtique)Prcondition: pour la ralisation du cas
Scnarios:1 1re tape2 2me tape
Exception:1a cas particulier a de la 1re tape1b cas particulier b de la 1re tape2a cas particulier de la deuxime tape
IRIT-UTM 88
Exemple gestion d'un CBM
La CBM (Computer Books by Mail) est une socit de distribution d'ouvrages d'informatique qui agit comme intermdiaire entre les libraires et les diteursElle prend des commandes en provenance des libraires, s'approvisionne ( prix rduit) auprs des diteurs concerns et livre ses clients rception des ouvragesIl n'y a donc pas de stockageSeules les commandes des clients solvables sont prises en compte
IRIT-UTM 89
Diagramme des cas d'utilisation -itration 1
enregistrer un nouveau livre
enregistrer un nouveau client
employ
enregistrer une commande
CBM
IRIT-UTM 90
Diagramme des cas d'utilisation -itration 2
enregistrer un nouveau livre
enregistrer un nouveau client
Employ passer une commandeurgente
enregistrer une commande
CBM
IRIT-UTM 91
Diagramme des cas d'utilisation -final
enregistrer un nouveau livre
enregistrer un nouveau client
Employ passer une commandeurgente
enregistrer une commande
CBM
IRIT-UTM 92
Spcification textuelle du cas Enregistrer une commande
1. Version: Rdaction par lutilisateurSystme: CBMActeur primaire: lemploy de la cooprativeObjectif: enregistrer une commande de livresPrcondition: le libraire existe
Scnarios:1 - lemploy vrifie la solvabilit du libraire2 - lemploy vrifie lexistence du livre3 - lemploy prcise la quantit
Exception:1a - le libraire nest pas solvable (lemploy est inform)2a - le livre nexiste pas (lemploy est inform)
IRIT-UTM 93
Spcification textuelle du cas Enregistrer une commande
2. Version: Proposition techniqueSystme: CBMActeur primaire: lemploy de la cooprativeObjectif: enregistrer une commande de livresPrcondition: le libraire existe
Scnarios:1 - lemploy vrifie la solvabilit du libraire* une instance de commande est cre2 - lemploy vrifie lexistence du livre* un lien entre l'instance de commande et une instance de livre est cr3 - lemploy prcise la quantit* la quantit est ajoute (classe associative)
l
Exception:1a - le libraire nest pas solvable* un message est affich2a - le livre nexiste pas* un message est affich
IRIT-UTM 94
Diagramme des cas d'utilisation -exercice
Raliser le diagramme des cas d'utilisation raffin, en donnant une spcification textuelle d'un cas, et le diagramme de classes pour le systme de gestion et de consultation d'une base de donnes suivant: Trois types d'utilisateurs sont possibles:
les utilisateurs qui pourront juste consulter la base, les responsables chargs des ajouts, supressions et
modification des donnes de la base, L'administrateur qui pourra modifier la structure de la base
IRIT-UTM 95
Vue Fonctionnelle Vue Fonctionnelle Diagramme de collaboration et Diagramme de collaboration et
de squencede squence
IRIT-UTM 96
Objectifs
Description de scnarios particuliersReprsente le fonctionnement du systme du point de vue du concepteurMise en valeur des passages de messages (flots de donnes ou de contrles, vnements) entre acteur et objet, ou entre objets, de manire chronologiqueOn reprsente le fonctionnement au niveau des instances
IRIT-UTM 97
Exemple d'introduction- diagramme de squence pour illustrer une collaboration
notaire : Notaire
sd venteImmobilire
contratVente : Transaction propritaire : Personne acqureur : Personne
tablir
signer
signer
IRIT-UTM 98
Diagramme de squence
Comme les diagrammes de collaboration, comporte:Des objets dans une situation donne (instances) Les messages changs entre les objets
A la diffrence des diagrammes de collaboration L'accent est mis sur la communication, au
dtriment de la structure spatialeChaque objet est reprsent par une barre verticale Le temps s'coule de haut en bas, de sorte que la
numrotation des messages est optionnelle
IRIT-UTM 99
Diagramme de squence
unA:ClasseA
unA:ClasseA
unA:ClasseA
Ligne de vie dun objet
Excution dune occurrence
Destruction de linstance
unA:ClasseA Cration dun instance
Frame: compartimenter le diagramme de squence
IRIT-UTM 100
Notations
unA:ClasseA
objet du diagramme de classes
ligne de vie (dure de linteraction)activation
unB:ClasseB
message
meth2 ()
retourtypenom d'une instance
toto:Acteur1
meth1()
acteur nom de la classenom de l'instance
booleanSonTruc
IRIT-UTM 101
Notations -messages synchrone/asynchrone
appl erreur alarme
message asynchrone : metteur non bloqu, continue ses traitements
inconnu
alarme
message synchrone :metteur bloqu, attend retour
IRIT-UTM 102
Notations -cration/destruction
unA : ClasseA
: ClasseB
CrationArrive sur la classePas de nom d'instance au dbutrenvoie tj l'instance cre
ClasseB ()
Suppression
toto:Acteur
meth1 ()
unB
IRIT-UTM 103
Notations -message rflexif
unA : ClasseA
meth2 ()
toto:Acteur
meth1 ()
Un objet peut senvoyer un message lui-mme
Exemple: appel dune mthode prive!
IRIT-UTM 104
Notations -message rflexif
unA : ClasseA
meth2 ()
toto:Acteur
meth1 ()
Un objet peut senvoyer un message lui-mme
Exemple: appel dune mthode prive!
IRIT-UTM 105
Notations -contraintes sur les lignes de vie
sd piloter avion
: Avion
dmarrerMoteur()
: Pilote
dcoller()
assertvrifierEssence(){AvionEssence > 0}
Oprateur dassertion qui rend indispensable lenvoi du message vrifierEssence()
contrainte
IRIT-UTM 106
Notations -alternative 1
: A : B : C
[non cond] meth2 ()
[cond] meth1 ()
meth3 ()
alternative
condition
On peut aussi faire deux diagrammes de squences correspondant aux deux scnarios meilleure lisibilit
IRIT-UTM 107
Notations -alternative 1
sd retrait argent
: DistributeurchoixTypeRetrait(EurosOuDollars)
: Client
alt
afficherEcranEnFranais
Oprateur dinteraction
Sparateur doprandes
[EurosOuDollars = = Euros]
[else]
afficherEcranEnAnglais
Conditiondu choix
IRIT-UTM 108
Notations -alternative 2
: A : B : C
[cond] meth1 ()
Deux diagrammes de squences correspondant aux deux scnarios
[non cond] meth2 ()
meth3 ()
Cas cond:
Cas non cond:
IRIT-UTM 109
Notations -rptition
: A : B : C
meth2 ()
*[cond] meth1 ()
envoie du mme message n fois au mme objet
envoie du mme message 1 fois plusieurs objets
Pour telles et telles instances
IRIT-UTM 110
Notations -rptition
sd dmarrer train
: Train : Conducteur
Loop (1,n)
porte[i] : PortefermerPortes()
fermer()
IRIT-UTM 111
Notations -paralllisme
: A
sd
: B
a
b
par
Oprandes qui se droulent en parallle
IRIT-UTM 112
Diagramme de squence -exemple
Quand pouvons nous lutiliser?Dans le diagramme de cas dutilisation
dcrire un scnario dun cas dutilisation: dcrire les interactions entre le systme et son environnement
Dans lanalyse dtaille du systme dcrire les interactions interne du systme: les
interactions entre les classes
Exemple d'un four lctrique Le four peut tre mise en marche Il peut tre arrter Le systme rgule la temprature du four
IRIT-UTM 113
Diagramme de squence -exemple
IRIT-UTM 114
Diagramme de squence -exemple
dmarrer()
initialiser()
temperatureInfo(temp)
IRIT-UTM 115
Exemple de la CBM -diagramme de classes
COMMANDEnumro
datecommande (libr)
ajouterLivre (livre)
LIBRAIRIEnom
adressesolvabilit
isSolvable ()
LIVREISBNtitre
EDITEURnom
adressegetLivre (titre) : LIVRE
sonLivre
saLibrairie1
sesLivres*
LIGNE DE COMMANDEquantit
putQuantit (qt)CBM
sesLibrairies*
sesCommandes*
* sesEditeurs
sesLdC*
1
IRIT-UTM 116
Exemple de la CBM
Communiquer les dtails de toutes les commandes d'une librairie donne"Mthode getDtailCommandes() de la classe LIBRAIRIE
IRIT-UTM 117
Un DSE : getDetailsCommandes V1
Dupond:Responsable SonLivre:LIVRE
getDtailCommandes()
{date +{titre,quantit}}
getDtailCommande()
date +{titre,quantit}
getDtailLigne()
{titre,quantit}
getTitre()
titre
getDate()
date
getLivre()
sonLivre
getSesLignes()
sesLdC
getQuantit()
getSesCommandes()
quantit
version 1 : dlgation (propagation des messages)
SesCommandes:COMMANDE SesLdC:LIGNEDECOMMANDELIBRAIRIE
Pour chaque commande
Pour chaque ligne de com.
sesCommandes
IRIT-UTM 118
Exemple de la CBM -diagramme de classes dlagation
COMMANDEnumro
datecommande (libr)
ajouterLivre (livre)getDetailCommande()
LIVREISBNtitre
EDITEURnom
adressegetLivre (titre) : LIVRE
sonLivre
saLibrairie1
sesLivres*
LIGNE DE COMMANDEquantit
putQuantit (qt)getDtailLigne()
LIBRAIRIEnom
adressesolvabilit
isSolvable ()getDetailComm
andes()
CBM
sesLibrairies*
sesCommandes*
* sesEditeurs
sesLdC*
1
sesCommandes*
IRIT-UTM 119
Un DSE : getDetailsCommandes V2
Dupond:Responsable
getSesLignes()
getQuantit()
quantit
getLivre()
sonLivre
getTitre()
titre
getDate()
date
getDtailCommandes()getSesCommandes()
version 2 : supervision (un objet envoie tous les messages)
Pour chaque commande
Pour chaque ldc de chaque com.
SonLivre:LIVRESesCommandes:COMMANDE SesLdC:LIGNEDECOMMANDELIBRAIRIE
sesLdC
{date +{titre,quantit}}
Page 1Page 2Page 3Page 4Page 5Page 6Page 7Page 8Page 9Page 10Page 11Page 12Page 13Page 14Page 15Page 16Page 17Page 18Page 19Page 20Page 21Page 22Page 23Page 24Page 25Page 26Page 27Page 28Page 29Page 30Page 31Page 32Page 33Page 34Page 35Page 36Page 37Page 38Page 39Page 40Page 41Page 42Page 43Page 44Page 45Page 46Page 47Page 48Page 49Page 50Page 51Page 52Page 53Page 54Page 55Page 56Page 57Page 58Page 59Page 60Page 61Page 62Page 63Page 64Page 65Page 66Page 67Page 68Page 69Page 70Page 71Page 72Page 73Page 74Page 75Page 76Page 77Page 78Page 79Page 80Page 81Page 82Page 83Page 84Page 85Page 86Page 87Page 88Page 89Page 90Page 91Page 92Page 93Page 94Page 95Page 96Page 97Page 98Page 99Page 100Page 101Page 102Page 103Page 104Page 105Page 106Page 107Page 108Page 109Page 110Page 111Page 112Page 113Page 114Page 115Page 116Page 117Page 118Page 119
ADIL ANWAR: ADIL [email protected]:
Top Related