Académique Documents
Professionnel Documents
Culture Documents
Objectifs de ce cours
! Prsentation
gnrale de UML
diagrammes
UML en un transparent
! !
Plan du cours
! ! ! ! ! ! ! ! ! ! !
! !
Dfini par lOMG (Object Management Group) Dfinit un mta-modle et des types de diagrammes
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtats Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
1- Introduction UML
Plan du cours
! ! ! ! ! ! ! ! ! ! !
Un foisonnement de mthodes
! !
Fin 80 / dbut 90
orientation de plus en plus marque vers lobjet
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
Bilan
de nombreuses mthodes (>50) ayant des avantages et des inconvnients des concepts assez proches, des notations diffrentes
1- Introduction UML
1- Introduction UML
Evolutions dUML
!
1994
tentative de normalisation de lOMG, sans effet Rumbaugh (OMT) rejoint Booch (OOD) chez Rational Software
objectif : crer une mthode en commun (mthode unifie)
1997-2003
adoption par les entreprises UML 1.1 UML1.5 : modifications/amliorations
1995
prsentation de la version 0.8 de la mthode arrive de Jacobson (OOSE) chez Rational
2005
UML 2.0 quelques nouveaux diagrammes changements importants au niveau du mtamodle, pour permettre dutiliser UML pour la programmation
1996
implication de lOMG (sous pression des industriels pour favoriser linteroprabilit des modles) langage unifi UML 0.9 (Unified Modeling Language),
1997
UML 1.0 sort chez Rational UML 1.1 adopt par lOMG comme standard officiel
1- Introduction UML
1- Introduction UML
Objectifs dUML
! ! ! ! ! ! !
Objectif
visualiser / spcifier / construire / documenter les artefacts de la conception dune application
! !
La norme elle-mme
mta-modle et familles de diagrammes
Utilisation
pas de mthode prconise pas de spcification technologique
Montrer les limites dun systme et ses fonctions principales (pour les utilisateurs) laide des cas dutilisation et des acteurs Illustrer les ralisations de CU laide de diagrammes dinteraction Modliser la structure statique dun systme laide de diagrammes de classes, associations, contraintes Modliser la dynamique, le comportement des objets laide de diagrammes de machines dtats Rvler limplantation physique de larchitecture avec des diagrammes de composants et de dploiement Possibilit dtendre les fonctionnalits du langage avec des strotypes Un langage utilisable par lhomme et la machine : permettre la gnration automatique de code, et la rtro-ingnierie
10
1- Introduction UML
1- Introduction UML
(Larman 2005)
Exemples de diagrammes
Joueur -nom :string lance inclut joue JeuDeDs 2 2 D -valeur:int
Modle
abstraction dun systme compose dun ensemble dlments de modle ce qui est construit par et ce qui est peru au travers des diagrammes (par le concepteur, le lecteur) conforme au mta-modle UML
Vue
projection dun modle suivant une perspective qui omet les lments non pertinents pour cette perspective. Elle se manifeste dans des diagrammes ex. : vue statique, vue fonctionnelle
d1:D
d2:D
Diagramme prsentation graphique dlments de visualisation reprsentant des lments de modle (graphe) ex. : diagramme de classes, de squences
11
Modle
val2=getValeur() :
12
1- Introduction UML
1- Introduction UML
(Fowler/Mellor)
Interactions
Diagrammes de vue densemble des interactions
Esquisse
conception / communication incompltude
Structure
Diagrammes de squences
Systme
Comportement
Diagrammes de machines dtats
Plan
exhaustivit outils bidirectionnels
Focus sur le mta-modle
!
Structure
Programmation
model Driven Architecture / UML excutable implantation automatique raliste ?
Diagrammes dactivits
Dynamique
Diagrammes de structure composite
13
14
1- Introduction UML
Conception et UML
!
1- Introduction UML
Grandes caractristiques
itratives (vs cascade)
analyse et conception tout au long du projet, pas seulement au dbut
donc
essayer de comprendre le point de vue de lauteur pour chaque publication / site sur UML
! !
UML nest pas une mthode mais des principes de conception oriente objet sont sousjacents
aux diagrammes aux faons de les prsenter
donc
difficile de prsenter uniquement les diagrammes on parlera aussi de mthode, de bonnes pratiques
15
16
1- Introduction UML
1- Introduction UML
UML et la rgle
!
descriptives
comment les gens font, usages, modes : conventions dans lutilisation peuvent tre en contradiction avec la norme (surtout pour UML2) !
Rgles
utiliser le sous-ensemble dUML qui vous convient droit de supprimer nimporte quel lment dun diagramme droit dutiliser nimporte quel lment dun diagramme dans un autre
ce qui compte pour les auteurs dUML, cest le mta-modle, pas les diagrammes
UML et le web
beaucoup de sites web parlent dUML on trouve du bon et du moins bon 17
18
Plan du cours
! ! ! ! ! ! ! ! ! ! !
Mots-cl
!
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
Objectif
regrouper en familles des lments similaires dun modle pour ne pas multiplier les symboles diffrents dans les diagrammes
Ornements textuels
associs des lments du modle certains mots-cl sont prdfinis par UML
Notation
mot-cl ex. abstract
19
20
Valeurs tiquetes
! Objectif
Strotypes
!
tendre le mta-modle
dfinir des profils de valeurs tiquetes pour des lments de modlisation plus formels que les mots-cl
(nom,valeur)
Notation : strotype
ex. gestion avec des valeurs tiquetes associes si ncessaire
: nom=valeur
! !
21
22
Contraintes
!
Commentaires
!
Commentaire
annotation quelconque associe un lment du modle pas de smantique pour le modle
Commentaire
Notation : {contrainte}
contenu formel ou informel ct des lments concerns ex. {frozen}, {jamais dtruit !}, {x - y < 10}
Notation : note
rectangle avec coin repli, lien pointill avec llment de visualisation concern cercle en bout de ligne : plus prcis
! !
23
24
Dpendance
!
Diagrammes
!
Diagrammes
lments de dessin dont on dispose
formes nuds et relation de graphe formes conteneurs texte
Notation
flche pointille de llment source vers llment cible, ventuellement strotype
Principe
la smantique dUML impose de conserver
graphe contenant / contenu proximit
IHM
Mtier
libert pour le reste (positions) n'importe quelle information peut tre supprime dans un diagramme
pas de dduction due l'absence d'un lment
25
26
Exemple gnral
Auteur
Strotype
Plan du cours
! ! !
crire
Contrainte
! !
{ordered}
gestion auteur=YP version=2.0
! ! ! !
persistant Oeuvre
Ne signifie pas quil ny a pas dattributs
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
27
28
Classes
!
Diagrammes fondamentaux
les plus connus, les plus utiliss
Reprsentation
rectangle trois compartiments
nom attributs oprations
Autre classe
29
30
Un exemple
Association
les instances des classes sont lies possibilit de communication entre objets relation forte : composition
Gnralisation/spcialisation
les instances de la sous-classe sont des instances de la super-classe (niveau conceptuel) hritage (niveau implmentation)
Dpendance
la modification dune classe peut avoir des consquences sur une autre
Ralisation
une classe ralise une interface
31
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
32
Petit exercice
! Dessiner
des besoins
33
34
Attributs
Visibilit nom : type [multiplicit ] = valeur_initiale {proprits}
Facultatif Facultatif Facultatif ex. mais impratif pour couleurs : Saturation [3] limplmentation points : Points [2..*] Facultatif ex. {frozen} mise jour interdite {obligatoire} valuation oblig. public + priv protg # package ~
Attributs : exemple
Vecteur Tlvision - on/off : Bouton - couleur : enum {gris, noir} - marque : chaine - tltexte : boolen = vrai - chaines [5*] : canal {ordered} - enceintes[2..6] : haut-parleur - type : typeTV {frozen} - volume : parallpipde = (600,650,500) - x : rel - y : rel + /longueur - couleur [3] : rel -crateur = "yp" {frozen} rel valeur_x() rel valeur_y() longueur() : rel
Remarques
/nom : attribut driv (calcul) soulign : attribut statique (de classe) {frozen} : disparu de UML2 ; utiliser quand-mme
35
Oprations de classes
visibilit nom (liste de paramtres) : type-retour {proprits}
argument ::= direction nom : type = valeur-dfaut
public + priv protg # package ~
asbtract query
Oprations : exemple
visuel Fentre constructor +Fentre(p1:Point, p2:Point) +surface() : Rel {query} update #couleur(in newcolor : color = J) method public int surface() { return } precondition p1 != p2
in | out | inout
Remarques
notation : opration abstraite / opration statique oprations = comportement dune classe, trouves en examinant les diagrammes dinteraction mthode = implmentation dune opration dont elle spcifie lalgorithme ou la procdure associe pr et post-conditions, description du contenu : commentaires + OCL
Renvoie | x2 x1 | * | y2 y1 |
Associations
Classe 1 x..y rle 1 nom association ! x..y rle 2 Classe 2
Nom : forme verbale, sens de lecture avec flche Rles : forme nominale, identification extrmit association Multiplicit : 1, 0..1, 0..*, 1..*, n..m Mots-cls : set, ordered set (uniques) ; bag, list (doublons)
* Entreprise " actionnaire 1..* * employeur employ " travaille pour * Personne
+forme : zone = [100,100] #visibilit : boolen = faux +forme_dfaut : rectangle -xptr : Xwindow +afficher() +masquer() +crer -attachXWindow(xwin : Xwindow)
Services
Industrielle
Fentre
Les associations ont une dure de vie, sont indpendantes les unes des autres, sont hrites, comme les attributs M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
40
Associations : exemple
Association rflexive " travaille pour Socit nom 0..* employeur 1..* Personne 0..1 employ nom {ordered, set} * emploie ! employs patron dirige #
Associations : remarques
!
Multiplicit
nombre dinstances dune classe en relation avec une instance dune autre classe pour chaque association
deux dcisions prendre : deux extrmits
Directionnalit
bidirectionnalit par dfaut, evt explicite restriction de la navigation une direction
41
Associations et contraintes
Fentre {ordered} 2..* situ sur ! 0..* est de type !
{Vhicule.charge < Typevhicule.chargeMax}
Proprits
caractristiques structurelles des classes
! !
visible sur !
2..* Segment
Concept unique regroupant attributs et associations monodirectionnelles : quivalence des reprsentations Pour choisir attribut (texte) pour les types de donnes
objets dont lidentit nest pas importante
Personne {XOR}
Compte
(Fowler, 2004)
A pour
titulaire
Date
+dateDeRception
Commande 1 *
lignes {ordered}
Boolen
Historique
vnement
LigneDeCommande M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
44
Agrgation et composition
! !
1..*
0..*
!
Composition
non partage des lments composants, cration et destruction des composants avec le composite
Composite Elment 45
Remarques importantes
dans le doute, toujours utiliser une association (moins contrainte) pour certains auteurs importants, oublier lagrgation
agrgation = placebo denu de sens
0..*
Classes dassociation
Pour ajouter attributs et oprations des associations ! Quelques indices pour lutilisation
!
Associations qualifies
! !
un attribut est li une association la dure de vie des instances de la CA dpend de lassociation association N..N entre deux classes + informations lies lassociation
Personne 2..* Ralise Assiste ! ! Participation attention * Runion
Equivalent UML des dictionnaires Slection dun sous-ensemble des objets qui participent lassociation laide dune cl.
cet attribut est proprit de lassociation
Commande 1
Contient !
1..*
LigneDeCommande
Commande
produit
Contient !
1 1
LigneDeCommande
Personne
Runion
47
Association n-aire
! !
Gnralisation spcialisation
B
A C B
A C
Groupe de liens entre au moins trois instances Instance de lassociation = n-uplet des attributs des instances impliques
Responsabilit libell taux_horaire Dpartement forfait_prestation (nb_heures)
base calcul rattachement
Deux interprtations
niveau conceptuel
organisation : un concept est plus gnral quun autre
implmentation
hritage des attributs et mthodes
Exemple SSII
*
source
Spcialisation
relation inverse de la gnralisation
50
(Larman, 2005)
Hirarchie de classes
Facture date adresse montant_frcs imprimer() expdier() destination {complete} pour 1 1..n Association commune montre au niveau le plus haut Livraison
Discriminant
!
Facture_export devise_paiement montant_devise convertir(devise) Facture_France taux_TVA montant_ttc calcul_ttc() Autres contraintes {incomplete}, {disjoint}, {overlapping}
52
Gnralisation multiple
! ! !
Autorise en UML Attention aux conflits : il faut les rsoudre Possibilit dutiliser aussi dlgations ou interfaces
Vhicule
{overlapping}
Vhicule terrestre Vhicule aquatique
Commande -lignes:List[*]
AbstractList
+get():void
{disjoint}
Automobile Vhicule amphibie Bateau
ArrayList
+get():void +add():void
54
UML2
-lignes:List[*] List
ArrayList ArrayList->Collection
Collection
bind <T_Case,Nbl_8,Nbc_8>
Commande
UML1
-lignes:List[*] List
ArrayList
Collection
56
Classes structures
!
Classes actives
!
Commande
client:personne
priorit
0..1 priorit:NiveauEtat
Traitement de texte
: Traitement de texte
lment:Billet[1..*]
Imprimante
: Imprimante
(UML1 : en gras)
57
Liens et visibilit
! !
Possibilit denvoyer un message dun objet lautre Lien durable / visibilit attribut ou globale
permet lenvoi de message entre objets se matrialise par une association navigable entre classes
op1(c:C)
1: op2()
:A
:B
parameter
B +op2() C
59
60
Relations de dpendance
!
Diagrammes dobjets
!
3 grands types
abstraction : diffrents niveaux dabstraction
ex. refine, trace, derive
utilisation
ex. use, create, call, parameter
Conseil
utiliser une dpendance pour tout ce qui nest pas spcifi
Classe A refine passage concept / implmentation permit Cellule permission dutilisation create utilisation Case Classe A1
quand une structure complexe est trop difficile comprendre avec un diagramme de classe
ex. : rcursivit, associations multiples, etc.
Personne Etienne:Personne employ patron Jean-Luc:Personne patron Denis:Personne
Dictionnaire Tableau
patron
62
Objets
Nom objet Rex Nom objet : classe Rex : Chien : classe : Chien
Nom="rex"
util
util Date
Contenu diagramme
Package
!
util
Date
Contenu list
Multi-objet (UML1)
modliser un jeu
comme un objet unique avec des oprations sur le jeu comme jeu dobjets individuels avec leurs oprations
les nommer
un package dfinit un espace de nom deux lments ne peuvent avoir le mme nom dans un package
utile pour les collections dans les diagrammes de communication (voir plus loin)
!
Un package
contient des lments
y compris dautres packages : hirarchie de packages
UML2
: Meute
Multi-objet UML1
64
Clientle
Diagramme de packages
possde Voitures * Voiture -marque:String -modle :String -immatriculation :String 0..1 4 Roue
Clientle
Voitures
Fournisseur
Notation Rose
65
66
Packages et nommage
!
Strotypes de dpendance
import : les lments passent dans lespace de nommage
ex. classe Date depuis le package qui importe
67
68
rutilisation commune
les classes doivent tre rutilises ensemble
! !
Indpendance par rapport aux autres packages Un package danalyse contient gnralement moins de 10 classes
69
70
Packages : divers
!
Plan
! ! ! ! ! ! ! ! ! ! !
Package vu de lextrieur
classe publique grant le comportement externe (cf. pattern Faade) interfaces
! ! !
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
72
4- Cas dutilisation
Cas dutilisation
!
4- Cas dutilisation
Association
Retirer argent << actor >> SI Banque Client Consulter compte
Pour cela
dterminer les rles qui interagissent avec lui
acteurs
Acteurs humains
CU
73
74
4- Cas dutilisation
4- Cas dutilisation
Utilisation
!
sont les acteurs et les cas dutilisation dun systme dinformation pour lUFR informatique ?
Passer du flou du cahier des charges des fonctionnalits exprimes dans le langage du domaine
dialogue entre concepteurs et utilisateurs
Pour lexpression complte des besoins, tout au long dun processus de conception de systme dinformation Attention
ce ne sont pas les diagrammes de CU qui sont importants, mais les descriptions textuelles des scnarios
75
76
4- Cas dutilisation
Acteur
!
4- Cas dutilisation
<<Acteur>> Imprimante
client
Cas dutilisation
!
Ensemble de squences daction ralises par le systme, produisant un rsultat observable pour un acteur particulier
ex. identification, retrait de liquide
Un CU
dfinit un ensemble de scnarios dexcution incluant les cas derreurs est dfinit par une famille de scnarios impliquant le mme acteur (dclencheur) avec le mme objectif
Client : personne qui se connecte au distributeur bancaire laide de sa carte. Peut avoir ou non un compte dans la banque qui possde le distributeur.
acteurs principaux (fonctions principales du systme) acteurs secondaires (administration / maintenance) matriel externe autres systmes 77
Un CU recense les informations changes et les tapes dans la manire dutiliser le systme, les diffrentes points dextension et cas derreur
78
4- Cas dutilisation
scnario 1
Scnarios
!
4- Cas dutilisation
scnario 2 scnario 3
CU
Documentation dun CU
!
Fiche textuelle
champs de description : nom, prconditions lisible et informelle
franais simple, phrases descriptives pas trop long (personne ne lit 10 pages)
! !
Tous les scnarios dun CU sont issus du mme acteur et ont le mme objectif Description du CU
ensemble de scnarios couvrant le CU documents avec flot dvnements
dtaille ce qui se passe entre utilisateur et le systme quand le CU est excut
flot nominal des vnements (80 %) flots dvnements alternatifs flots dexceptions (terminaison incorrecte)
dcrivant
un scnario nominal
suite dtapes avec objectifs de lacteur bien identifis et mens bien
des points dextension et tapes dextensions des points dchec des liens vers dautres scnarios sil y a trop dtapes
79
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
80
4- Cas dutilisation
(Cockburn)
4- Cas dutilisation
Description dun CU
! ! ! ! ! ! ! ! !
Surface de la mer
Poisson
Nom Contexte dutilisation Porte Niveau Acteur principal Intervenants et intrts Prconditions Garanties minimales Garanties en cas de succs
! ! ! ! !
Extensions
tapes dextension
82
4- Cas dutilisation
4- Cas dutilisation
CU : Retirer de largent Porte : systme DAB Niveau : objectif utilisateur Acteur principal : Client Intervenants et intrts : Banque, Client Prconditions : compte approvisionn Garanties minimales : rien ne se passe Garanties en cas de succs : de largent est retir, le compte est dbit de la mme somme
Scnario nominal :
1. 2. 3. 4. 5. 6. 7. Le Client introduit sa carte dans le lecteur. Le DAB dcrypte lidentifiant de la banque, le numro de compte et le code secret de la carte, valide de la banque et le numro de compte auprs du systme principal. Le client saisit son code secret. Le DAB valide par rapport au code secret crypt lu sur la carte. Le client slectionne retrait, et un montant multiple de 10 ! (min 20 !) Le DAB soumet au principal systme de la banque le compte client et le montant demand, et reoit en retour une confirmation et le nouveau solde du compte Le DAB dlivre la carte, largent et un reu montrant le nouveau solde Le DAB consigne la transaction
4- Cas dutilisation
4- Cas dutilisation
Relations entre CU
Virement Virement par Minitel Client distant Identification !
extend montant > 80 ! include
Client local
Extensions :
*a. Panne gnrale. *a1. Le DAB annule la transaction, signale lannulation, et rend la carte. 2a. Carte vole. Inclusion autre scnario 2a1. Le DAB confisque la carte vole 4a. Plus de billets de 10 ! 4a1. Le DAB arrondit la somme demande un multiple de 20 !. 4a2. Le Client valide la nouvelle somme demande. 5a. Solde insuffisant. 5a1. Le DAB signale que la somme demande est trop leve et rend la carte.
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
include
la ralisation dun CU ncessite la ralisation dun autre, sans condition, un point dextension (le seul important)
extend
entre deux instances de CU : le comportement de CU1 peut tre complt par le comportement de CU2 (option avec condition et point dextension) conseil : ne pas utiliser, ou seulement si on ne peut troucher CU1
! !
generalize
hritage. (conseil : ne pas utiliser)
Bref
le diagramme de CU est une bonne table des matires, pas plus
85
86
4- Cas dutilisation
Complter les CU
! Avec
4- Cas dutilisation
Quelques conseils
! Pas
plus de 20 CU ! Pas de dfinition fonctionnelle en utilisant les relations de CU ! Retour sur les CU dans un cours ddi, un TD ddi
87
88
5- Diagrammes dinteraction
Plan du cours
! ! ! ! ! ! ! ! ! ! !
Collaborations et interactions
! !
Collaboration
ensemble de rles jous par des classes, contexte dinteraction
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
Interaction
communication entre instances des lments dune collaboration ensemble partiellement ordonn de messages plusieurs interactions possibles pour une mme collaboration
:Cabine
ouvrir()
:Porte
89
90
5- Diagrammes dinteraction
5- Diagrammes dinteraction
Diagrammes de squences
!
Diagrammes de communication
(UML1 : diagrammes de collaboration)
!
Interactions entre lments dans une squence temporelle aspect chronologique ne rendant pas compte explicitement du contexte permet de bien montrer qui fait quoi dans une interaction Description de scnarios typiques et des exceptions
barre dactivation
Elment 1
m1
Elment 2
cration
: Ascenseur
1: monter()
m2 message trouv
ligne de vie message retour
: Chane HiFi
create
Elment 3
2.1: lecture() 2.1.1: dmarrer()
: Cabine
1.2: fermer()
m3
destruction
2.1.2: afficherTitre()
1.1: allumer()
: Porte
: Lecteur CD
: Voyant
91
92
5- Diagrammes dinteraction
5- Diagrammes dinteraction
Utilisation
!
un diagramme de communication impliquant le passage de la balle entre deux tortues dquipes diffrentes.
Etudier/spcifier le comportement
du systme dans sa globalit au sein dun cas dutilisation
se concentrer sur les vnements du systme considr comme bote noire
diagramme de squence systme (exemple plus loin)
Illustrer/tudier un fonctionnement
diagramme qui traverse les couches : de lIHM aux donnes rtro-ingnierie
93
94
5- Diagrammes dinteraction
5- Diagrammes dinteraction
Messages
!
rsultat argument
(UML1) B
message
Un message dclenche
une opration, lmission dun signal la cration/destruction dun objet
Ascenseur
Cabine
tage_courant : =tage?()
Objet 2
autres : plat, drobant (rception si attente), minut (message actif pendant Dt)
Garde : lves
A
[X > Y] : message
96
5- Diagrammes dinteraction
5- Diagrammes dinteraction
Gestion de collections
!
Dossier
: Fichier
1: cration()
{nouveau}
unfichier : Fichier
Elment
cluster:Cluster :serveur[*]
* unServeur
client
serveurs 1 2: traiter(requete)
98
5- Diagrammes dinteraction
5- Diagrammes dinteraction
Raffinements DS/UML2
! Diverses
possibilits de participants
interfaces : spcifier quelle interface participe linteraction classes : pour appeler une mthode de classe
! Reprsentation
polymorphisme /
classe abstraite
quitter
99
5- Diagrammes dinteraction
Exemple
5- Diagrammes dinteraction
Cadre dinteraction
!
op
loop
fragment rpter tant que la condition de garde est vrai notion de bote daction avec itrateur
opt
fragment optionnel excut si la garde est vraie
i++
par
fragments qui sexcutent en parallle
region
region critique dans laquelle un seul thread doit sexcuter
ref
passage un autre diagramme de squence
Attention
ne pas reprsenter des algorithmes : trop compliqu
5- Diagrammes dinteraction
alt
5- Diagrammes dinteraction
loop
5- Diagrammes dinteraction
Plan du cours
! ! ! ! ! ! ! ! ! ! !
! !
Liens
! associations
Messages
! oprations
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
106
6- Diagrammes dactivit
Diagrammes dactivit
!
6- Diagrammes dactivit
Exemple
Recevoir commande
nud initial
dbranchement
Diagramme dactivit
prsenter les activits squentielles dun processus activit = suite dactions
Action
travail raliser nud du graphe
Ouvrir la porte
i := i + 1
garde
Prparer Commande Envoyer Facture
Transition
contrainte denchanement relation du graphe
Dossier.Ouvrir(Fichier)
[Commande urgente] [else]
dcision
Livraison express
Livraison normale
Recevoir Paiment
Raffinements
dbranchements / jointures dcisions / fusions entre / terminaison ressources utilises (objets)
fusion
Clturer Paiement
jonction : synchronisation
terminaison M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
107
Final_State_1
108
6- Diagrammes dactivit
6- Diagrammes dactivit
! !
La logique procdurale
algorithmes complexes, parallles organisation squentielle globale des activits de plusieurs objets
vs. diag. machines dtats : un objet
109
110
6- Diagrammes dactivit
6- Diagrammes dactivit
Excution
Service client
Service financier
Diagrammes avancs
!
Recevoir commande
Facture
! !
Utilisation dobjets
en entre ou sortie daction
Livrer commande
Envoyer facture
Recevoir paiement
Signal2 reu
Clturer Paiement
111
Livraison express
6- Diagrammes dactivit
6- Diagrammes dactivit
Connecteurs
cf. objets paramtres entre/sortie actions
Rgions dexpansion
actions qui se passent pour plusieurs lments de mme type (itratif ou concurrent)
Choisir sujet
Liste de sujets concurrent
Ecrire article
terminaison de flot
! Partitions
113
/ couloirs dactivit
6- Diagrammes dactivit
:Commercial
:Service juridique
:Ingnieur
Plan du cours
! ! ! !
Elaboration devis
:Devis [Elabor]
Ngociation devis
!
[Accord]
!
:Devis [Ngoci ]
! ! ! !
[Dsaccord]
Analyse chec
Production contrat
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
:Contrat
:PDD
:pdd M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1 M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
116
Exemple
tat 2
Rorientation
Seconde do/Travail
Premire do/Travail
Terminale do/Travail
Redoublement
Redoublement
passage dun tat un autre sur vnement + condition respecte, action excuter Saisie mot de passe ! Dans un tat
entry / ne plus afficher entres clavier exit / rafficher les entres clavier on aide / afficher laide do / grer saisies de lutilisateur
117
118
Utilisation
!
Larman
navigation dans un site web, IHM
enchanement de pages/fentres
119
120
tat initial
Syntaxe gnrale
vnement(paramtres) [garde] / activit tat 2
Fentre
fermer
Souris
Click(position curseur)[sur bouton] / send fentre.fermer()
tat 1 entry / activit en entre exit / activit en sortie evt-ext / activit interne do/ activit continue !
ferme
ouvrir
ouverte
attente
Transition
tout est facultatif mais absence dvnement rare vnements
rsultants de messages entre objets internes : when(maximum atteint) temporels : after(3 jours)
tat final
ferme
ouverte
tat
activits internes (ordinaires) : instantanes
autotransition sur vnement extrieur, instantan deux activits spciales : sur entre et sortie
en cours de fermeture
122
http://uml.free.fr/cours/p20.html
Autre exemple
Transition interne
couple vnement / activit sans effet sur ltat courant permet de ne pas rinitialiser A ltat en revenant ltat de dpart se note en haut du super tat A E1 A B
E2
B B1 B
E2
B2
B A
E1 E2
B1
C
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
B2
123
124
Exemple super-tat
pice / incrmenter somme
tats concurrents
! !
Pour dcomposer des tats complexes Exercice : trouver le diagramme dtat plat quivalent
S E1
E3
Y
E1
A
E4 [dans ltat Z]
Z
T
E2
B
U
125
126
Implmentation
! !
Plan du cours
! ! ! ! ! ! ! ! ! ! !
Tables dtats
reprsentation tabulaire du diagramme
tat source, cible, vnement, garde, procdure excuter
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
127
128
8- Diag. Composants/dploiement
8- Diag. Composants/dploiement
(Fowler 04)
Diagrammes de composants
!
Diagramme de composants
Caisse Serveur ventes
Objectif
reprsenter lorganisation et les dpendances entre composants logiciels description des composants et de leurs relations dans le systme en construction
Composant
partie physique et remplaable dun systme qui se conforme et fournit la ralisation dinterfaces doit tre compris comme un lment qu'on peut acheter, associer d'autres composants (cf. HiFi) division en composants
dcision technique et commerciale (Fowler)
Processeur de transactions
Driver comptabilit
File de messages
Remarque
UML1 : composant = n'importe quel lment, y compris fichiers. UML2 : utiliser les artefacts pour reprsenter des structures physiques (jar, dll)
Structure composite,
129
8- Diag. Composants/dploiement
8- Diag. Composants/dploiement
Diagramme de dploiement
!
Diagramme de dploiement
i t r l i t
Disposition physique des diffrents matriels qui entrent dans la composition dun systme, ainsi que disposition des programmes excutables sur ces matriels.
visualiser la distribution des composants dans lentreprise units = nuds quipements = matriel environnement d'excution = logiciel un noeud contient des artefact : classes, ...
herculesClient.exe
HTTP/internet
HTTP/LAN
Terminal X
{scuris} <<TCP/IP>>
JAVA RMI/LAN
I /
JDBC
PC M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1 M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
Plan du cours
! ! ! ! ! ! ! ! ! ! !
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
! Trop
133
134
Diagramme de timing
!
Interactions avec focus sur les changements dtats dobjets et les contraintes temporelles associes
ligne de vie horizontale
!
Pompe
Changement dtat
affichage
Plaque chauffante
Connecteur de dlgation
:Gnrateur[1]
API de commande TV
Objet
rglage
flot dimages
(Fowler 04)
136
(Fowler 04)
135
Diagrammes de collaborations
! !
Plan du cours
! ! ! ! ! ! ! ! ! ! !
Non officiels dans UML2, se rapprochent des diagrammes de structure composite Permettent de prsenter les lments impliqus dans une collaboration, et le rle quils y jouent
fixer les lments et les rles pour les diagrammes dinteraction
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
138
Remarque
diagrammes de classes avec messages
diagramme de classe avec rsum des messages entre classes
139
140
Cartes CRC
Classe
! ! !
Responsabilite1
Coll1,2
conditions consquences
Une carte
nom de classe tableau deux colonnes
responsabilit de la classe : quelque chose dun objet doit faire collaborateurs : classes avec lesquelles il faut collaborer pour assurer la responsabilit
X O O 150 oui
X N O 100 oui
O O N 70 oui
O N N 50
N O N 80
N N N 60
Jeu
dterminer des classes de dpart avec responsabilits videntes jouer les scnarios, ajouter les responsabilits, crer de nouvelles classes, etc.
141
Plan du cours
! ! ! ! ! ! ! ! ! ! !
Mta-modle
! !
Introduction UML Gnralits sur la notation Diagrammes de classes, objets, packages (Diagrammes de) cas dutilisation Diagrammes dinteraction Diagrammes dactivit Diagrammes de machines dtat Diagrammes de composants et de dploiement Autres diagrammes UML Autres diagrammes non UML Autres points lis UML
Essentiellement
diagrammes de classes avec contraintes et description de la signification dynamique des lments
143
144
Structure
PackagesMetaModele
ls
Classes
Interactions
Cas d'utilisation
Structures composites
ments auxiliaires
Composants
Extrait du mta-modle
!
Comportements communs
Machines d'tats
Activits Dploiements
Actions
Exemple avec quelques classes de haut-niveau (genre classeur, en revenant sur les diagrammes qui les utilisent).
Structure
Profils
Classes
Dploiements
Composants
145
OMG UML2 Superstructure, Figure 30 Lyon 1 M1 MIAGE -Daprs SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard
146
(Larman, 2005)
Modle
classes
attributs, associations oprations spcialisation
metaclass Element
stereotype Authorship
packages interactions
squences de messages entre objets
dfinition
authorship Case
utilisation
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
147
148
enseignement Eleve
annee : Date
Traduction en relationnel
eleve
annee : date
#travailler(h int)
0..* #eleves
assiste
1
cours
cours
-titre : string -module : string
package enseignement ; public class Eleve { private Date annee ; private Court coursSuivi[] ; public Eleve() ; public Date getAnnee() { return annee ; } public void setAnnee(Date uneAnnee) { annee = uneAnnee ; } }
public associerCoursSuivi(unCours : Cours) { /* ecrire ici */ } public nbCoursSuivi { return coursSuivi.length ; } protected travailler(h : int) { /* ecrire ici */ } /* etc. */
CREATE TABLE eleve ( eleve_id NUMBER (5) , annee DATE, PRIMARY KEY (eleve_id) ); CREATE TABLE cours ( eleve_id NUMBER (5) REFERENCES eleve(eleve_id) , cours_id NUMBER (5) , titre CHAR (128) , module CHAR(48) , PRIMARY KEY (cours_id) );
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
Ingnierie UML
!
Outils UML
! !
Pro-ingnierie
gnrer le code partir du modle outils : paramtrage (hritage, associations)
Rtro-ingnierie
gnrer le modle partir de limplantation seuls les outils automatiques peuvent le faire
Outils UML
gestion des diagrammes et du modle
Vrification de cohrence
gnration de code
squelettes de classes / contenus des mthodes (peu)
rtro-ingnierie
diagrammes de classes diagrammes de squences (peu)
UML Implantation
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1
151
152
XMI
! ! ! !
Daprs http://www-128.ibm.com/developerworks/rational/library/3100.html
Modles et code
Code seulement Visualisation de code Roundtrip engineering Centr sur le modle Modle seulement
XML Metadata Interchange Pour changer des modles UML entre outils Utilisation dune syntaxe XML
eXtensible Markup Language
Modle
Modle
Modle
Modle
Remarque
gnration de documentation HTML
transformation XSL
diagrammes
transformation en SVG (Standard vector Graphics)
Code
Code
Code
Code et modle coexistent
Code
Le modle est le code Il y a juste concevoir
153
154
MDA
!
UML comme langage de programmation passer dun dveloppement centr sur le code un dveloppement centr sur les modles MDD (Model Driven Development)
terme plus gnral, non OMG !
PIM
PSM
Code
Rgles et outils de transformation
156
MDA : conclusion
!
Contrainte
!
Pour certains
lavenir de linformatique des outils existent des leaders utilisent et tentent de promouvoir
Acceptation
possibilit de programmer mieux et plus vite (moins cher) rapport apprentissage / gain
dans les entreprises dans les coles
A suivre
157
158
OCL : exemples
context nom_lment [inv|pre|post] : expression de la contrainte
context Pile inv : self.nb_elements >= 0 -- nb_element = attribut de Pile context Personne inv -- intgrit de lobjet personne / attributs no_secu et sexe if sexe = "F" then no_secu.commence_par() = 2 else no_secu.commence_par() = 1 endif
Standardis par lOMG Permet dexprimer des contraintes de faon formelle Expression
dinvariants au sein dun classe ou dun type : bon fonctionnement des instances contraintes au sein dune opration : bon fonctionnement de lopration pr- et post- conditions doprations : avant et aprs lexcution
cf.programmation par contrats (Meyer)
Personne
no_secu sexe
Classe Personne
+eleves n 1
Utilisation
gnration de code MDA
159
nb_eleves ajouter(eleve)
160
Proprits dUML
unification de concepts de modlisation puissance dexpression
nombreux formalismes (issus de mthodes existantes)
compromis formalisation / niveau dabstraction / indpendance aux langages / smantique fixe / extensibilit
!
Langage universel
pour de multiples domaines pour diverses activits de la conception dans diffrents modes
esquisse, plan, programme