Vous êtes sur la page 1sur 27

UML Unified Modeling Language

Objectifs de ce cours
! Prsentation

gnrale de UML

historique principes gnraux


! Prsentation
M1 MIAGE - SIMA - 2006-2007 Yannick Pri UFR Informatique - Universit Claude Bernard Lyon 1

des diffrents types de

diagrammes

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

UML en un transparent
! !

Plan du cours
! ! ! ! ! ! ! ! ! ! !

Unified Modelling Language Unification


de nombreux langages de modlisation graphique OO des annes 1990, de diagrammes et de principes de modlisation succs

! !

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

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

Consquence naturelle, mise en place de mthodes


OOD : Object Oriented Design (Booch, 1991) HOOD : Hierarchical Object Oriented Design (Delatte et al., 1993) OOA : Object Oriented Analysis (Schlaer, Mellor, 1992) OOA/OOD : (Coad, Yourdon, 1991) OMT : Object Modeling Technique (Rumbaugh, 1991) OOSE : Object Oriented Software Engineering (Jacobson, 1992) OOM : Object Oriented Merise (Bouzeghoub, Rochfeld, 1993) Fusion (Coleman et al., 1994)

Bilan
de nombreuses mthodes (>50) ayant des avantages et des inconvnients des concepts assez proches, des notations diffrentes

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

1- Introduction UML

Vers une unification


!

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

1- Introduction UML

Unified Modeling Language


!

1- Introduction UML

Objectifs dUML
! ! ! ! ! ! !

Combinaison de principes succs


modlisation de donnes (E/A), de lactivit, objet, en composants

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

10

1- Introduction UML

Modles, vue et diagrammes 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

diagramme de classe, vue statique

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

:JeuDeDs lancer() : val1=getValeur() : lancer() : Action_2

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() :

diagramme de squences, vue dynamique


M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

12

1- Introduction UML

Panorama des diagrammes


Statique Diagrammes de classes / dobjets Diagrammes de packages Diagrammes de cas dutilisation Fonctionnel

1- Introduction UML

(Fowler/Mellor)

3 modes dutilisation dUML


!

Interactions
Diagrammes de vue densemble des interactions

Esquisse
conception / communication incompltude

Structure

Diagrammes de squences

Focus sur les diagrammes

Diagrammes de composants Implantation Diagrammes de dploiement

Systme
Comportement
Diagrammes de machines dtats

Diagrammes de timing Diagrammes de communication

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

13

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

14

1- Introduction UML

Conception et UML
!

1- Introduction UML

Gnralits sur les mthodes OO


!

Diffrentes faons de voir UML : diffrentes faons de penser


la conception lobjectif et lefficacit d'un processus de gnie logiciel

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

centres sur les cas dutilisation


besoins rels

! !

UML nest pas une mthode mais des principes de conception oriente objet sont sousjacents
aux diagrammes aux faons de les prsenter

centres sur larchitecture


!

Dcoupage dun projet en activits


besoins : comprendre dans quoi sinsre le systme et ce quil doit faire analyse : fonctionnement du systme hau niveau conception : fonctionnement logiciel ralisation : codage tests, dploiement

donc
difficile de prsenter uniquement les diagrammes on parlera aussi de mthode, de bonnes pratiques

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

15

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

16

1- Introduction UML

propos de cette prsentation


! !

1- Introduction UML

UML et la rgle
!

Prsentation de UML 2, quelques points de UML 1


faites attention la syntaxe quand vous rencontrez un diagramme

Deux types de rgles pour lutilisation dUML


normatives
comment il faut faire, comit dexperts : norme

Prsentation = synthse de nombreuses lectures


mixe syntaxe et utilisation synthse personnelle des bonnes pratiques prsentes

descriptives
comment les gens font, usages, modes : conventions dans lutilisation peuvent tre en contradiction avec la norme (surtout pour UML2) !

Prsentation dUML non exhaustive


ce cours contient beaucoup de choses utiles pour plus de prcisions : livres de rfrence pour la description exacte (syntaxe et smantique) : http://www.omg.org/uml

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

libert de dessiner ce que lon veut


surtout en mode esquisse, sur papier ou au tableau

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

18

Plan du cours
! ! ! ! ! ! ! ! ! ! !

2- Gnralits sur la notation

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

19

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

20

2- Gnralits sur la notation

Valeurs tiquetes
! Objectif

2- Gnralits sur la notation

Strotypes
!

tendre le mta-modle
dfinir des profils de valeurs tiquetes pour des lments de modlisation plus formels que les mots-cl

attacher une information arbitraire un lment de modlisation


! Paires

(nom,valeur)

Notation : strotype
ex. gestion avec des valeurs tiquetes associes si ncessaire

associes des lments de diagramme


! Notation

: nom=valeur

! !

ex. : auteur=YP, version=1.3


M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

Certains sont prdfinis par UML Possibilit dassocier une icne


forme visuelle dtermine ex. : pour control

21

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

22

2- Gnralits sur la notation

Contraintes
!

2- Gnralits sur la notation

Commentaires
!

Relation smantique quelconque


concernant un ou plusieurs lments du modle dfinissant des propositions devant tre maintenues Vrai pour garantir la validit du systme modlis

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

! !

Certaines sont prdfinies


ex. xor, ordered

Dautres cres par lutilisateur


langue, pseudo-code, OCL

Il existe des mots-cl prdfinis


ex. besoin , responsabilit
Commentaire

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

23

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

24

2- Gnralits sur la notation

2- Gnralits sur la notation

Dpendance
!

Diagrammes
!

Diagrammes
lments de dessin dont on dispose
formes nuds et relation de graphe formes conteneurs texte

Relation smantique faible


relation dutilisation unidirectionnelle entre deux lments relation smantique non structurelle entre client et fournisseur

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

25

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

26

2- Gnralits sur la notation

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

27

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

28

3- Diag. classes, objets, packages

Diagrammes de classes : prsentation gnrale


! !

3- Diag. classes, objets, packages

Classes
!

Descripteurs de jeux dobjets


structure / comportement / relations / smantique communs
Nom de classe Attribut 1 Attribut 2 Opration 1 Opration 2

Diagrammes fondamentaux
les plus connus, les plus utiliss

Prsentent la vue statique du systme


reprsentation de la structure et des dclarations comportementales classes, relations, contraintes, commentaires

Reprsentation
rectangle trois compartiments
nom attributs oprations

Permettent de modliser plusieurs niveaux


conceptuel (domaine, analyse) implmentation (code)
!

plus ou moins de dtails suivant les besoins

Nom : singulier, majuscule (en gnral)


ex. : Fichier, Client, Compte, Chat

Autre classe

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

29

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

30

3- Diag. classes, objets, packages

3- Diag. classes, objets, packages

Relations entre classes/ liens entre objets


!

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

32

3- Diag. classes, objets, packages

3- Diag. classes, objets, packages

Utilisation des diagrammes de classes


! Expression ! Conception

Petit exercice
! Dessiner

des besoins

modlisation du domaine spcification : gros grain


! Construction

un diagramme de classe du domaine avec les classes suivantes


tudiant enseignant cours salle de classe

implmentation : prcis rtro-ingnierie

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

33

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

34

3- Diag. classes, objets, packages

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 ~

3- Diag. classes, objets, packages

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

35

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

3- Diag. classes, objets, packages

Oprations de classes
visibilit nom (liste de paramtres) : type-retour {proprits}
argument ::= direction nom : type = valeur-dfaut
public + priv protg # package ~
asbtract query

3- Diag. classes, objets, packages

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 |

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

3- Diag. classes, objets, packages

Autres exemples de classes


enumeration Couleur rouge blanc bleu Visuel Fentre forme : zone visibilit : boolen afficher() masquer() Visuel Fentre
{ abstract, auteur = yp, statut = test }

3- Diag. classes, objets, packages

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)

Contrleur dentre -- gre les vnements en entre Responsabilits de la classe

Responsabilits safficher se masquer

Services

Industrielle

Fentre

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

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

3- Diag. classes, objets, packages

Associations : exemple
Association rflexive " travaille pour Socit nom 0..* employeur 1..* Personne 0..1 employ nom {ordered, set} * emploie ! employs patron dirige #

3- Diag. classes, objets, packages

Associations : remarques
!

Tout objet doit tre accessible via un lien


ne peut recevoir de message sinon liens plus ou moins permanents : voir Visibilits

Multiplicit
nombre dinstances dune classe en relation avec une instance dune autre classe pour chaque association
deux dcisions prendre : deux extrmits

Reprsentation dune collection

Directionnalit
bidirectionnalit par dfaut, evt explicite restriction de la navigation une direction

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

41

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

3- Diag. classes, objets, packages

3- Diag. classes, objets, packages

Associations et contraintes
Fentre {ordered} 2..* situ sur ! 0..* est de type !
{Vhicule.charge < Typevhicule.chargeMax}

Proprits
caractristiques structurelles des classes
! !

visible sur !

Ecran association navigable TypeVhicule chargeMax

Point dintersection Vhicule charge

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

association pour insister sur les classes


Commande

ire r titula A pou

Personne {XOR}

Compte

+dateDeRception: Date[0..1] +estPrpaye: Boolen[1] +lignes: LIgneDeCommande[*] {ordered} 0..1 * 1


+estPrpaye

(Fowler, 2004)

A pour

titulaire

Entreprise 1..* {add only, ordered}

Date

+dateDeRception

Commande 1 *
lignes {ordered}

Boolen

Historique

vnement

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

LigneDeCommande M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

44

3- Diag. classes, objets, packages

Agrgation et composition
! !

3- Diag. classes, objets, packages

Composition, agrgation et association


!

Associations asymtriques, fortes Agrgation


non nomme, structure darbre sous-jacente (pas de cycle), rle prpondrant dune extrmit
Agrgat Elment

Quelques questions se poser


asymtrie et lien de subordination entre instances des deux classes (agrgation/composition) ou indpendance des objets (association) ? propagation doprations ou dattributs du tout vers les parties ? (agrgation/composition) cration et destruction des parties avec le tout ? (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..*

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

3- Diag. classes, objets, packages

Classes dassociation
Pour ajouter attributs et oprations des associations ! Quelques indices pour lutilisation
!

3- Diag. classes, objets, packages

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

Participation attention 2..*

Runion

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

47

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

3- Diag. classes, objets, packages

3- Diag. classes, objets, packages

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

Pour une bonne classification conceptuelle


principe de substitution / conformit la dfinition
toutes les proprits de la classe parent doivent tre valables pour les classes enfant

Employ nom heures_travail Prestation (nb_heures)

nom budget dpenser() encaisser()

*
source

A est une sorte de B (mieux que A est un B )


toutes les instances de la sous-classe sont des instances de la super-classe (dfinition ensembliste)

Spcialisation
relation inverse de la gnralisation
50

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

3- Diag. classes, objets, packages

3- Diag. classes, objets, packages

(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

Conseils pour la classification conceptuelle


!

Partitionner une classe en sous-classes


la sous-classe a des attributs et/ou des associations supplmentaires pertinents par rapport la superclasse ou dautres sous-classes, la sous-classe doit tre gre, manipule, on doit agir sur elle ou elle doit ragir diffremment, et cette distinction est pertinente le concept de la sous-classe reprsente une entit anime (humain, animal, robot) qui a un comportement diffrent de celui de la superclasse, et cette distinction est pertinente

Discriminant

!
Facture_export devise_paiement montant_devise convertir(devise) Facture_France taux_TVA montant_ttc calcul_ttc() Autres contraintes {incomplete}, {disjoint}, {overlapping}

Dfinir une super-classe


les sous-classes sont conformes aux principes de substitution et sorte-de toutes les sous-classes ont au moins un mme attribut et/ou une mme association qui peut tre extrait et factoris dans la superclasse

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

52

3- Diag. classes, objets, packages

3- Diag. classes, objets, packages

Gnralisation multiple
! ! !

Interfaces et classes abstraites


<< interface >> Collection +equals():void +add():void Classe asbtraite

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[*]

<< interface >> List

AbstractList

+get():void

+equals():void +add():void +get():void

{disjoint}
Automobile Vhicule amphibie Bateau

Dpendance (requiert l'interface)

Implementation (ralise l'interface)

ArrayList

+get():void +add():void

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

54

3- Diag. classes, objets, packages

Interface et utilisation : notation


Commande

3- Diag. classes, objets, packages

Classes paramtrables (templates)


T, Nbl:Entier, Nbc:Entier Tableau -lments: T[nbc, nbc]
+Elment(ligne,col) : T +Elment(e : T; ligne, col : Entier)

UML2

-lignes:List[*] List

ArrayList ArrayList->Collection

Collection

bind <T_Case,Nbl_8,Nbc_8>
Commande

UML1

-lignes:List[*] List

ArrayList

Echiquier Tableau<T!Rel, Nbl!3, Nbc!3>

Collection

Deux notations de la paramtrisation d'une classe paramtrable


55
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

56

3- Diag. classes, objets, packages

Classes structures
!

3- Diag. classes, objets, packages

Classes actives
!

Description de la structure dimplmentation interne dune classe ajoutBillet Contient


ports : points de connexion avec lenvironnement (evt. interne) parties : fragment structur de la classe connecteurs : connexions de deux parties au sein de la classe

Commande
client:personne

Classe dont les instances sont des objets actifs


possdent leur propre thread dans un environnement multitche

priorit

0..1 priorit:NiveauEtat

Traitement de texte

: Traitement de texte

lment:Billet[1..*]

Imprimante

: Imprimante
(UML1 : en gras)

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

57

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

3- Diag. classes, objets, packages

Diagrammes de classes et code objet


!

3- Diag. classes, objets, packages

Liens et visibilit
! !

A voir en TP et/ou la fin du cours

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

Lien temporaire / visibilit paramtre ou locale


rsulte dune utilisation temporaire dun objet par un autre se matrialise par une dpendance entre classes
ex. passage de paramtre : parameter , variable locale une mthode : local
A

op1(c:C)

1: op2()

:A

:B

parameter
B +op2() C

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

59

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

60

3- Diag. classes, objets, packages

Relations de dpendance
!

3- Diag. classes, objets, packages

Diagrammes dobjets
!

3 grands types
abstraction : diffrents niveaux dabstraction
ex. refine, trace, derive

Pour reprsenter un instantan du systme


les objets et leurs liens objets = spcification dinstances

permission dutilisation (cf. friend en C++)


ex. permit

Quand les utiliser ?


pour montrer un contexte
collaborations sans messages

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

62

3- Diag. classes, objets, packages

3- Diag. classes, objets, packages

Objets
Nom objet Rex Nom objet : classe Rex : Chien : classe : Chien
Nom="rex"

util

util Date
Contenu diagramme

Package
!

util

Date
Contenu list

Mcanisme gnral pour


organiser les lments et les diagrammes du modle (notamment les classes)
partitionner, hirarchiser clarifier

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

: utiliser plutt une classe structure


: Chien
4..*

: Meute

Multi-objet UML1

peut en importer dautres peut possder des interfaces


M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

64

3- Diag. classes, objets, packages

Clientle

3- Diag. classes, objets, packages

Personne -nom :String -adresse:String

Diagramme de packages

Dpendances entre packages


!

possde Voitures * Voiture -marque:String -modle :String -immatriculation :String 0..1 4 Roue

Dcoulent des dpendances entre lments des packages


notamment les classes

Clientle

Voitures

Fournisseur

Notation Rose

Moteur (from Fournisseur)

Les dpendances ne sont pas transitives


modifier Fournisseur noblige pas modifier Clientle

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

65

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

66

3- Diag. classes, objets, packages

3- Diag. classes, objets, packages

Utilisation des diagrammes de packages


!

Packages et nommage
!

Organisation globale du modle


hirarchies de packages contenant diagrammes et lments

Noms pleinement qualifis


quivalent chemin absolu
ex. package java::util, classe java::util::Date

Organisation des classes en packages pour


contrler la structure du systme
comprendre et partager obtenir une application plus volutive et facile maintenir
ne pas se faire dborder par les modifications viser la gnricit et la rutilisabilit des packages

Strotypes de dpendance
import : les lments passent dans lespace de nommage
ex. classe Date depuis le package qui importe

access : sont accessibles


ex. classe java::util::Date depuis le package qui importe

avoir une vue claire des flux de dpendances entre packages


les minimiser
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

67

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

68

3- Diag. classes, objets, packages

3- Diag. classes, objets, packages

Principes du dcoupage en packages


!

Bien grer les dpendances


!

Cohrence interne du package : relations troites entre classes


fermeture commune
les classes changent pour des raisons similaires

Les minimiser pour maintenir un couplage faible


dpendances unidirectionnelles
cf. associations navigables

rutilisation commune
les classes doivent tre rutilises ensemble

pas de cycles de dpendances


ou au moins pas de cycles inter-couches

! !

Indpendance par rapport aux autres packages Un package danalyse contient gnralement moins de 10 classes
69

stabilit des dpendances


plus il y a de dpendances entrantes, plus les interfaces de package doivent tre stables

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

70

3- Diag. classes, objets, packages

Packages : divers
!

Plan
! ! ! ! ! ! ! ! ! ! !

Packages considrs comme


simples regroupements sous-systmes oprationnels
comportement + interfaces

Package vu de lextrieur
classe publique grant le comportement externe (cf. pattern Faade) interfaces

! ! !

Pour un package utilis partout (trs stable)


mot-cl global

Utilit pratique dun package Commun


regrouper les concepts largement partags, ou pars

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

Lien entre packages et couches (niveaux)


une couche est compose de packages
71
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

72

4- Cas dutilisation

Cas dutilisation
!

4- Cas dutilisation

Diagramme de cas dutilisation


Identification << actor >> SI CB

Technique pour capturer les exigences fonctionnelles dun systme


dterminer ses limites dterminer ce quil devra faire
mais pas comment il devra le faire point de vue de lutilisateur

Association
Retirer argent << actor >> SI Banque Client Consulter compte

Pour cela
dterminer les rles qui interagissent avec lui
acteurs

Acteurs humains

Acteurs non humains


Vrifier fonctionnement Maintenance

dterminer les grandes catgories dutilisation


cas dutilisation

CU

dcrire textuellement des interactions


scnarios
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

73

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

74

4- Cas dutilisation

Petit exercice faire en classe


! Quels

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

75

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

76

4- Cas dutilisation

Acteur
!

4- Cas dutilisation

<<Acteur>> Imprimante

client

Cas dutilisation
!

Entit (humain ou machine) situe hors du systme


permettant den dterminer les limites jouant un rle par rapport lui dclenchant un stimulus initial entranant une raction du systme ou au contraire tant sollicit par le systme au cours dun scnario

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

Un acteur est dcrit prcisment en quelques lignes ! 4 grandes catgories


!

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

4- Cas dutilisation

scnario 1

Scnarios
!

4- Cas dutilisation

scnario 2 scnario 3

CU

Documentation dun CU
!

Squence particulire de messages dans le CU pendant une interaction particulire


chemin dans le cas dutilisation

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

serviront de base pour les jeux dessais


M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

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)

Niveaux pour les cas dutilisation


! !

4- Cas dutilisation

Description dun CU
! ! ! ! ! ! ! ! !

Plusieurs niveaux de description


Abrg, informel, dtaill Cerf-volant
objectif stratgique (fonction SI dans organisation, on se rapproche des processus mtier) objectif utilisateur (fonction SI pour utilisateur) objectif informaticien (sous-fonction interne au systme)

Plusieurs niveaux dobjectif

Surface de la mer

Poisson

Plusieurs portes de conception


organisation (bote blanche ou noire) systme (bote blanche ou noire) composant
81

Nom Contexte dutilisation Porte Niveau Acteur principal Intervenants et intrts Prconditions Garanties minimales Garanties en cas de succs

! ! ! ! !

Dclencheur Scnario nominal


tapes

Extensions
tapes dextension

Variantes de technologie ou de donnes Informations connexes

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

82

4- Cas dutilisation

Exemple scnarios pour CU


Client Retirer de largent

4- Cas dutilisation

Exemple scnarios pour CU


Client Retirer de largent

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

4- Cas dutilisation

Exemple scnarios pour CU


Client Retirer de largent

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

Vrification solde compte

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

86

4- Cas dutilisation

Complter les CU
! Avec

4- Cas dutilisation

Quelques conseils
! Pas

tout ce qui permet de mieux expliquer


modle du domaine diagrammes de squence systme, diagramme dactivit, de machines dtats

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

87

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

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

lments dune interaction


participants (UML1 : objets, UML2 : souvent objets) liens (supports de messages) messages (dclenchant des oprations) rles jous par les extrmits de liens

Porte Cabine 1 ouverture +ouvrir() +fermer() +tat() : Etat

:Cabine

ouvrir()

:Porte

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

89

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

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

Diagramme dobjets rendant compte de la dynamique


structure spatiale permet la collaboration dobjets dimension temporelle : ordre des messages
numrotation pointe
1: allumer() 2: lecture(CD) 1.3.1: moteur(marche) 1.3: dplacer(haut) utilisateur

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

91

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

92

5- Diagrammes dinteraction

Petit exercice faire en classe


! Dessiner

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)

de plusieurs objets au sein dun cas dutilisation


ralisations de CU comme des interactions dans une socit dobjets
Conseil : dessiner diagrammes de classes et dinteraction en mme temps

Illustrer/tudier un fonctionnement
diagramme qui traverse les couches : de lIHM aux donnes rtro-ingnierie

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

93

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

94

5- Diagrammes dinteraction

5- Diagrammes dinteraction

Messages
!

Messages dans les DC


Rsultats et arguments A A
rsultat : =message(arguments)

rsultat argument

(UML1) B

Matrialisation dune communication avec transmission dinformation entre


metteur (source) rcepteur (destination)

message

Un message dclenche
une opration, lmission dun signal la cration/destruction dun objet

Ascenseur

Cabine
tage_courant : =tage?()

Deux types principaux


appel de procdure ou flot de contrle embot (retour implicite)
dplacer()

Synchronisation Objet 1 m1, m2 / [condition] : m3 Itrateurs Instituteur


*[i:= 1..n] : Debout()

Objet 2

flot de contrle asynchrone


dmarrer()

autres : plat, drobant (rception si attente), minut (message actif pendant Dt)

Garde : lves

A
[X > Y] : message

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

96

5- Diagrammes dinteraction

Messages dans les diagrammes de squences


Notation rsultat = message(arguments) ! Echange de messages
!

5- Diagrammes dinteraction

Gestion de collections
!

Crer et ajouter (UML1 : multi-objet)


2: ajouter(unFIchier)

Dossier

: Fichier

flches d'appel standard


blocage de lmetteur en attendant la rponse

1: cration()

flche d'appel asynchrone


pas dattente du retour, poursuite de la tche

UML >= 1.4 UML <1.4

{nouveau}

unfichier : Fichier

Retour Message de cration Message de destruction


!

Elment

Rcuprer et utiliser (UML2 : structure composite)


1: unServeur:=trouver(specs)

cluster:Cluster :serveur[*]
* unServeur

Lancement de l'interaction venant de l'extrieur


1er message = message trouv

client

serveurs 1 2: traiter(requete)

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

98

5- Diagrammes dinteraction

5- Diagrammes dinteraction

Raffinements DS/UML2
! Diverses

Equivalence entre diagrammes


Exercice : dessiner le diagramme de communication correspondant
Un client saisir code consultationController vrifier code ihmClient Compte

possibilits de participants

interfaces : spcifier quelle interface participe linteraction classes : pour appeler une mthode de classe
! Reprsentation

polymorphisme /

Enter num compte consulter compte obtenir solde

classe abstraite
quitter

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

99

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

5- Diagrammes dinteraction

Exemple

5- Diagrammes dinteraction

Cadre dinteraction
!

op

Cadre nomm par un oprateur qui entoure un fragment critique du DS


alt
fragment alternatif, conditions dans les gardes

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

5- Diagrammes dinteraction

alt

5- Diagrammes dinteraction

loop

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

5- Diagrammes dinteraction

Dduire structure et responsabilit des diagrammes dinteraction


1: mA1(p) :A 1.1: mB1(p) :B 1.2: mC1(p) :C C 1: mA2() :A 1.1: mD1() :D 1.2: mE1(p) :E A ........ rleE rleC ........ E ........

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

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

Envoyer facture Action 1 arc/flot Action 2

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

108

6- Diagrammes dactivit

6- Diagrammes dactivit

Petit exercice faire en classe


! Modliser

Utilisation pour modliser


!

les activits autour dun enseignement de lUFR informatique.

Les processus mtier de lorganisation


qui fait quoi, o les enchanement d'activit (workflow)

! !

Les flots de donnes


DFD (Data Flow Diagram) en UML

La logique procdurale
algorithmes complexes, parallles organisation squentielle globale des activits de plusieurs objets
vs. diag. machines dtats : un objet

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

109

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

110

6- Diagrammes dactivit

6- Diagrammes dactivit

Excution

Service client

Service financier

Diagrammes avancs
!

Recevoir commande

Actions lies des signaux


dlai envoi / rception

Prparer Facture Prparer Commande

attendre 2 heures Envoyer signal1

Facture

! !

Utilisation dobjets
en entre ou sortie daction

Livrer commande

Envoyer facture

Recevoir paiement

Signal2 reu
Clturer Paiement

Partitions (UML1 : swimlanes, traves)


montrer les responsabilits au sein du mcanisme ou dune organisation

Dcomposition des actions


appeler une sous-activit (un autre diagramme dactivit) dans une action
Livrer commande
Livraison normale [else] Commande Commande [commande urgente ] Commande Commande

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

111

Livraison express

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

6- Diagrammes dactivit

Connecteurs, rgions dexpansion, terminaison de flots


! !

6- Diagrammes dactivit

Modlisation de processus mtier


! Modliser

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

le fonctionnement de lorganisation ! Objets responsables (strotypes)


Case worker
interaction avec lext. de lentreprise

rgion dexpansion concurrente

Connecteurs Rviser article Publier bulletin


Liste darticles

Ecrire article

Internal worker Entity


objet passif

terminaison de flot

! Partitions
113

/ couloirs dactivit

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

6- Diagrammes dactivit

:Commercial

:Service juridique

:Ingnieur

Plan du cours
! ! ! !

Elaboration devis

:Devis [Elabor]

Ngociation devis

!
[Accord]

!
:Devis [Ngoci ]

! ! ! !

[Dsaccord]

Analyse chec

Production contrat

Etablissement plan de devt

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

7- Diag. de machines dtats

Diagrammes de machines dtats


!

7- Diag. de machines dtats

Exemple

Abstraction des comportements possibles pour une classe


automate tats finis dcrivant les chemins possibles dans le cycle de vie dun objet

Etat dun objet


situation nomme dun objet qui rpond certaines conditions (dure/stabilit) tat 1
vnement

tat 2

Rorientation

Seconde do/Travail

Premire do/Travail

Terminale do/Travail

Transition entre tats


rponse de lobjet dans un certain tat loccurrence dun vnement

Redoublement

Redoublement [age > 16 ans]

Redoublement

passage dun tat un autre sur vnement + condition respecte, action excuter Saisie mot de passe ! Dans un tat

activit : continue (sonnerie), tche de fond (pagination), attente, suite dactions

entry / ne plus afficher entres clavier exit / rafficher les entres clavier on aide / afficher laide do / grer saisies de lutilisateur

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

117

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

118

7- Diag. de machines dtats

Petit exercice faire en classe


! Tracer

7- Diag. de machines dtats

Utilisation
!

un diagramme de machines dtats pour un objet TP-Etudiant .

Pour se concentrer sur le fonctionnement dune classe


dcrire / fixer le comportement concret de la vie dune objet
li un ou plusieurs scnarios

Pour les classes complexes


objets ractifs complexes (objets mtier) protocole et squences lgales (sessions) en gnral pas plus de 10% des classes dune application
plus en tlcommunication / moins en informatique de gestion

Larman
navigation dans un site web, IHM
enchanement de pages/fentres

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

119

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

120

7- Diag. de machines dtats

7- Diag. de machines dtats

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

Click(position curseur)[sur icne] / send fentre.ouvrir()

Transition
tout est facultatif mais absence dvnement rare vnements
rsultants de messages entre objets internes : when(maximum atteint) temporels : after(3 jours)

tat final

Porte de garage en cours douverture


Appui bouton / moteur AV

Appui bouton / moteur AV

fin ouverture / stop moteur

activit classique : envoyer un message une cible


send cible.message(arguments) !

ferme

ouverte

tat
activits internes (ordinaires) : instantanes
autotransition sur vnement extrieur, instantan deux activits spciales : sur entre et sortie

fin fermeture / stop moteur

en cours de fermeture

Appui bouton / moteur AR

activits continues : peuvent tre interrompues


M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1 do / activit M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

122

7- Diag. de machines dtats

7- Diag. de machines dtats

http://uml.free.fr/cours/p20.html

Autre exemple

Super-tats / tats composites


! !

Pour factoriser un comportement


transitions dclenches par le mme vnement, conduisant au mme tat

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

124

7- Diag. de machines dtats

Exemple super-tat
pice / incrmenter somme

7- Diag. de machines dtats

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

125

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

126

7- Diag. de machines dtats

Implmentation
! !

Plan du cours
! ! ! ! ! ! ! ! ! ! !

Utilisation de case switch


dconseill

Utilisation du pattern tat


arborescence de classes tats dlgation de la gestion de ltat

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

permet de paramtrer le comportement de la classe


M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

127

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

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,

Port Systme de comptabilit

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

129

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

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, ...

station client :PCStandard browser :webBrowser

station client :PCStandard {OS=Windows}


r i i

serveur :DellPowerEdge 3600 {OS=RedHat6} JoveGL.exe


{vendor = romanSoft} {component = GeneralLedger}
.

herculesClient.exe

HTTP/internet

HTTP/LAN

Container EJB herculesBase.ear herculesAR.ear herculesAP.ear

Relations entre lments : supports de communication

Terminal X

{scuris} <<TCP/IP>>

Serveur Imprimante <<RNIS>>

cluster web server :Apache2.1 {OS=Solaris ! {nbCluster=3}


r r

JAVA RMI/LAN
I /

JDBC

<< artefact >> herculesWeb.exe SGBD Oracle

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
! ! ! ! ! ! ! ! ! ! !

8- Autres diagrammes UML

Vue d'ensemble des interactions


! Mixte

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

diagramme activit / diagrammes de squences


les actions sont remplaces par des diagrammes de squence

! Trop

tt pour juger de lutilisation / utilit effective

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

133

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

134

8- Autres diagrammes UML

8- Autres diagrammes UML

Diagramme de timing
!

Structures composites (classeurs structurs)


! ! !

Interactions avec focus sur les changements dtats dobjets et les contraintes temporelles associes
ligne de vie horizontale

Dcomposer structurellement une classe


parties, connecteurs

Montrer les ralisations / utilisations dinterfaces


ports, interfaces

!
Pompe

Utilis surtout dans les applications temps rel


tat

Adapts pour les composants


IHM commande TV

Plus deau Allum teint

Changement dtat

Tlcommande commandes: Contrleur


1

affichage

Plaque chauffante

Allum teint { < 15 min } { > 10 s }


Contrainte temporelle

Connecteur de dlgation

:Gnrateur[1]
API de commande TV

Objet

rglage

flot dimages

(Fowler 04)
136

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

(Fowler 04)

135

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

8- Autres diagrammes UML

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

En thorie utiliss pour reprsenter des patterns


137

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

138

9- Autres diagrammes non UML

9- Autres diagrammes non UML

Diagrammes de contexte (Roques, 2004)


!

Diagramme de flux d'crans informel


(Fowler, 2004)
! !

Diagramme de contexte statique


diagramme de classe
une classe systme tous les acteurs autour

Un rectangle par cran Des flches pour la navigation


ventuellement un nom signifiant le lien
Accueil Recherche Resultats Changements rcents Une page

Diagramme de contexte dynamique


diagramme de communication qui rsume les messages entre systme et acteurs (pas de numrotation)

Diagramme de contexte statique tendu


diagramme de contexte statique avec
Attributs et oprations de hauut niveau pour le systme et les acteurs non humains

Remarque
diagrammes de classes avec messages
diagramme de classe avec rsum des messages entre classes

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

139

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

140

9- Autres diagrammes non UML

Table de dcision (Fowler)


Pour reprsenter des conditions logiques complexes ! Deux parties
!

9- Autres diagrammes non UML

Cartes CRC
Classe

! ! !

Classes - Responsabilits - Collaborateurs


la base invent pour lenseignement

Responsabilite1

Coll1,2

conditions consquences

Jouer des scnarios avec des cartes


5-6 participants

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

Client privilgi Commande prioritaire International Prix Alerte

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.

Voir par exemple http://www.csc.calpoly.edu/~dbutler/tutorials/winter96/crc_b/ 142

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

141

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

Plan du cours
! ! ! ! ! ! ! ! ! ! !

10- Autres points lis UML

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

Lensemble de UML est dcrit en UML Mta-modle UML


description formelle de tout ce quil est possible de construire et de la smantique associe ncessaire pour les fabricants doutils

Essentiellement
diagrammes de classes avec contraintes et description de la signification dynamique des lments

Remarque : MOF (Meta Objet Facility)


Mta-mta-modle permettant de dcrire UML mais aussi CWM
Common Warehouse Metamodel : structure de BD

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

143

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

144

10- Autres points lis UML

Structure

PackagesMetaModele

10- Autres points lis UML

ls

Classes

Interactions

Cas d'utilisation

Structures composites

ments auxiliaires

Composants

Packages du mta-modle UML

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

Structures composites Elments auxiliaires

Composants

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

145

OMG UML2 Superstructure, Figure 30 Lyon 1 M1 MIAGE -Daprs SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard

146

10- Autres points lis UML

Extension dUML : strotypes


Relation dextension dune mtaclasse du mtamodle

10- Autres points lis UML

(Larman, 2005)

Modle UML / programme OO


!

Modle
classes
attributs, associations oprations spcialisation

metaclass Element

stereotype Authorship

packages interactions
squences de messages entre objets

dfinition
authorship Case

author: String status: String

authorship author = "craig author = "tested"

Possibilit de traduire tout ou partie du modle dans un langage


objet ; Java, C++, C#, etc. relationnel : classes, attributs

utilisation
M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

147

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

148

10- Autres points lis UML

enseignement Eleve
annee : Date

10- Autres points lis UML

Traduction en objet (Java)


Cours 0..* #eleves assiste * coursSuivi
-titre : string -module : string

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

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

10- Autres points lis UML

Ingnierie UML
!

10- Autres points lis UML

Outils UML
! !

Pro-ingnierie
gnrer le code partir du modle outils : paramtrage (hritage, associations)

Outils de dessins amliors


intgrent les diagrammes comme simples formes

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

Ingnierie bidirectionnelle (roundtrip engineering)


synchronisation entre code et modle

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

de plus en plus intgrs / en complments dautres outils


IDE, gestion de projet, du risque, des besoins, de la qualit, des tests, du workflow, etc.

151

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

152

10- Autres points lis UML

XMI
! ! ! !

10- Autres points lis UML

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

Cest quoi Le code est un modle ? le modle

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

153

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

154

10- Autres points lis UML

10- Autres points lis UML

MDA : Model Driven Architecture


!

MDA
!

Architecture pilote par les modles


mis en place et support par l'OMG
http://www.omg.org/mda/

Deux types de modles


PIM (Platform Independant Model)
en UML

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 !

PSM (platform specific model)


pas obligatoirement en UML

Pour permettre, de la faon la plus intgre possible


productivit portabilit interoprabilit maintenance documentation 155

PIM

PSM

Code
Rgles et outils de transformation

Rgles et outils de transformation

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

156

10- Autres points lis UML

MDA : conclusion
!

10- Autres points lis UML

Contrainte
!

Pour certains
lavenir de linformatique des outils existent des leaders utilisent et tentent de promouvoir

Condition ou restriction smantique associe un ou plusieurs lments de modle exprime


en langue dans un langage formel

Dautres sont moins convaincus


entre
a ne marchera jamais je demande voir

Acceptation
possibilit de programmer mieux et plus vite (moins cher) rapport apprentissage / gain
dans les entreprises dans les coles

Assertion qui doit tre vraie


entre des appels doprations (qui changent le systme) des moments prcis par rapport aux appels doprations

A suivre

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

157

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

158

10- Autres points lis UML

OCL Object Constraint Language


! ! !

10- Autres points lis UML

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)

Pile nb_element ajouter(elt)

Personne
no_secu sexe

gardes : sur la modification de ltat dun objet expressions de navigation : chemins


!

context Classe::ajouter(un_eleve : eleve) pre classe_non_surcharge : nb_eleves <= 25 post : eleves"exists(un_eleve)

Classe Personne
+eleves n 1

Utilisation
gnration de code MDA
159

nb_eleves ajouter(eleve)

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

160

10- Autres points lis UML

Conclusions sur UML


!

10- Autres points lis UML

Conclusions sur UML


!

Proprits dUML
unification de concepts de modlisation puissance dexpression
nombreux formalismes (issus de mthodes existantes)

Standard international : adopt un peu partout


les diagrammes sont simples, faciles lire et communiquer beaucoup de variantes locales outils puissants
dessin pro et rtro ingnierie MDA

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

UML nest quun langage


encapsule tout ou partie de la smantique de description ne dit pas comment construire les modles

Il faut utiliser des mthodes


dmarches de conception et dutilisation des diagrammes et des modles

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

M1 MIAGE - SIMA 2006-2007 / Yannick Pri - Universit Claude Bernard Lyon 1

Vous aimerez peut-être aussi