Vous êtes sur la page 1sur 124

Unified Modeling Language

Jean-Marc Jzquel
IRISA/CNRS et

Yves Le Traon IRISA/Ifsic

13/02/2013 14:38

PLAN

Introduction la modlisation selon UML


historique, intrts de la modlisation cycles de vie

Les 9 vues dun modle UML


Use Cases, diagrammes de classes, modles dynamiques, packages...

Processus de dveloppement avec UML


Expression des besoins (tude de cas tlcom : serveur
SMDS)

Analyse (Technique de dcouverte des classes...) Conception (Systmique, notion de Design Patterns) Ralisation et Validation
13/02/2013 14:38

Gnalogie de UML
UML
(Rumbaugh, Booch, Jacobson) FUSION
(HP-Labs) CLASSERELATION (P. Desfray) CRC (R. Wirf-Brooks)

Use-Case (I.Jacobson)
OOA (P. Coad) JSD (M. Jackson) OOA - OODLE (Schlaer & Mellor)

OMT
(J. Rumbaugh et al.)

OOA-OOD
(G.Booch)

Data-Flow SADT/SA-SD (De Marco)

Diagrammes Etat-Transition (HAREL)

Entite-Relation Merise (Chen)


3

13/02/2013 14:38

De OMT UML

1990 : Object-oriented Modeling Technique

(Rumbaugh

et al., G.E.)

Succs de la mthode du aux qualits de la notation : Concise, assez prcise, simple utiliser et outiller Rien de fondamentalement nouveau Inspire entit-relation pour la modlisation des objets Notation de Harel pour la dynamique des objets De Marco/Yourdon flots de donnes & transformations

1995 : Version prliminaire de UML extensions et amliorations, publications JOOP, ... inspires par les auteurs eux-mmes et par Booch 1997 : UML version 1.0
Intgration de la mthode OOSE de Jacobson (use-cases), et des remarques de grandes socits informatiques Standardise lOMG. 2Q99 =>Version 1.4

13/02/2013 14:38

La conscration des mthodes fondes sur la modlisation

Lapproche par modlisation facilite


Communication (et sa prcision)
avec donneur dordre entre diffrentes phases de dveloppement et de maintenance

Capacit de vrification
Cohrence Compltude

Continuit entre les diffrentes phases du cycle de vie


cf. Jackson et JSD N.B.: continuit <> isomorphique ou plongement/projection

13/02/2013 14:38

Un peu de Mthodologie...

Une mthode de dveloppement de logiciels, cest :


Une notation
La syntaxe --- graphique dans le cas de UML

Un mta-modle
La smantique --- paramtrable dans UML (strotypes)

Un processus
Dtails dpendants du domaine dactivit : Informatique de gestion Systmes ractifs temps-rels Shrink-wrap software (PC)

13/02/2013 14:38

Activits du dveloppement de logiciels


Valider le logiciel
Assembler les composants Dvelopper un des composants Dfinir comment il sera dvelopp Dfinir ce qui sera dvelopp

Lorganisation de ces activits et leur enchanement dfinit le cycle de dveloppement du logiciel


7

13/02/2013 14:38

Processus classique

Cycle de vie normalis AFNOR


Analyse
Expression du besoin Analyse dtaille

Validation
Validation Mise en uvre

Conception
Etude technique pralable Conception prliminaire Conception dtaille

Intgration
Intgration Tests d'Intgration

Ralisation
Codage Mise au point Tests unitaires
8

Variante US : Cycle en cascade


13/02/2013 14:38

Problmes avec le processus classique...

Ce que demande lutilisateur

Ce que lanalyste a spcifi

Ce que prvoit le concepteur

Ce que le programmeur a crit

Ce que la mise au point a fait

Ce que lutilisateur na 9 pas su exprimer

Problmes du processus classique

Organisation industrielle hrite du XIXme sicle


rassurant pour les managers hirarchie malsaine dans les rles antinomie : Coplien s organizational pattern
Architects Also Implement

cycle management <> cycle dveloppement linarit implicite


temps d approbation des documents => effet tampon cot de la (non-) modification d un document final irraliste pour un projet innovant, donc risques

13/02/2013 14:38

10

Cycle de vie en spirale


Analyse dtaille

Conception V1 Ralisation

Analyse prliminaire (de risque) V2 Validation Intgration

Synergie avec approche par objets


13/02/2013 14:38

11

Cycle de vie en spirale

Bien adapt au dveloppements innovants


les progrs sont tangibles : c est du logiciel qui tourne et pas seulement des kilos de documents possibilit de s arrter temps , i.e. avant que l irralisabilit du projet ait cre un gouffre financier

Moins simple manager


difficile grer en situation contractuelle mal contrl => on retombe dans le hacking

Production des incrments asservie sur 2 parmi 3 :


priode (e.g. release toutes les 2 semaines) fonctionnalits (releases dcoups suivant use-cases) niveau de qualit (problme de la mesure)

13/02/2013 14:38

12

Vision gnrique dun cycle UML


INCEPTION
Cas d'utilisation Modle des objets du domaine Interfaces Maquettes

VALIDATION
Validation technique Validation par les utilisateurs

UML
Modle utilisateur Modle statique Modle dynamique Modle dimplantation

ELABORATION
Architecture Modles des objets et scnarios Rgles de transformation (Design patterns)

CONSTRUCTION
Modle dtaill des objets Scnarios dtaills Algorithmes Codage - Mise au point Intgration

13/02/2013 14:38

13

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

14

Temprature des diagrammes UML


Temprature

Diagramme de cas dutilisations Diagramme de classes

Diagramme de paquetages
Diagramme de squences Diagramme de collaborations Diagramme dtats-transitions Diagramme dactivits Diagramme dimplantation
Besoins Conception V&V Analyse Ralisation

13/02/2013 14:38

15

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

16

Expression des besoins et OOAD


Sujet longtemps nglig (e.g. OMT) Question de l'expression des besoins pourtant fondamentale
Et souvent pas si facile (cible mouvante)
cf. syndrome de la balanoire

Object-Oriented Software Engineering (Ivar Jacobson et al.)


Principal apport : la technique des acteurs et des cas d'utilisation Cette technique est intgre a UML

13/02/2013 14:38

17

Quatre objectifs

Se comprendre

Reprsenter le systme
Exprimer le service rendu Dcrire la manire dont le systme est peru

13/02/2013 14:38

18

Les moyens

Les
Les

acteurs UML
use-cases UML dun dictionnaire du domaine

Utilisation

13/02/2013 14:38

19

Intrt du dictionnaire

Outil de dialogue Informel, volutif, simple a raliser Etablir et figer la terminologie


Permet de figer la terminologie du domaine d'application. Constitue le point d'entre et le rfrentiel initial de l'application ou du systme.

13/02/2013 14:38

20

Exemple de dictionnaire
Dictionnaire d'un simulateur de vol
Notion
Pilotage

Dfinition
Action de piloter un avion en enchanant des manoeuvres lmentaires Organe d'interaction entre le pilote et l'avion ou entre l'avion et le pilote Instrument qui permet d'agir sur la quantit de carburant injecte dans le moteur

Traduit en ... Nom informatique


Package Pilotage

Instrument

Classe abstraite Classe

Instrument

Manette des gaz

Manette_gaz

Action
Mettre les gaz fond
13/02/2013 14:38

Dfinition
Action qui permet dinjecter le maximum de carburant pour atteindre la vitesse maximale

Traduit en ... Nom informatique


Opration Mettre_a_fond

21

Acteurs

Entit externe au systme et amene interagir avec lui. Un acteur joue un rle vis-a-vis du systme Un acteur est une classe Un acteur peut reprsenter un tre humain, un autre systme, ... L'identification des acteurs permet de dlimiter le systme

13/02/2013 14:38

22

Acteurs : notations

CLIENT

Systme de vente par correspondance (VPC)

Actor EXPEDITEUR

Actor SUPERVISEUR

13/02/2013 14:38

23

Les cas d'utilisation (use-cases)

Un cas d'utilisation est une manire particulire d'utiliser le systme


squence d'interactions entre le systme et un ou plusieurs acteurs Ils sexpriment par des diagrammes de squences

La compilation des cas d'utilisation dcrit de manire informelle le service rendu par le systme
fournissent une expression "fonctionnelle" du besoin peuvent piloter la progression d un cycle en spirale

Les cas d'utilisation sont nommes en utilisant la terminologie dcrite dans le dictionnaire
24

13/02/2013 14:38

Cas d'utilisation : exemple et notation


VPC
Consulter Commander EXPEDITEUR

CLIENT

Traiter commande

MAJ catalogue

SUPERVISEUR

Etablir crdit

13/02/2013 14:38

25

Relations sur les use-cases

Communication
Lien entre le use case et lacteur. De type association

Utilisation (uses)
Utilisation dautres use-cases pour en prciser la dfinition Extension (extends) : utilisation optionnelle (attention au sens des flches. Inclusion ( includes ) : utilisation systmatique

Hritage ( Generalization
26

13/02/2013 14:38

Relations sur les use-cases : notation


Commander includes Lire donnes client includes Commander chantillon extends Consulter Catalogue includes Slectionner produit Organiser paiement

13/02/2013 14:38

27

Exprimer le service rendu

Besoins fondamentaux : manires d'utiliser le systme


Reprsentation globale par cas d'utilisation taille du systme, seulement de 3 10 Use Cases

Besoins oprationnels : interactions avec le systme


Reprsentation dtaille par raffinement des cas d'utilisation Dbut de dcomposition fonctionnelle : ne pas aller trop loin

13/02/2013 14:38

28

Besoins fondamentaux et oprationnels

Besoin fondamental :
Conduire une voiture
{fondamental}

Besoins oprationnels
Ouvrir la porte Mettre le contact Acclrer Tourner le volant ...

conduire une voiture


{fondamental}

conduire une voiture includes


{oprationnel}

includes
includes
{oprationnel}

ouvrir la porte
{oprationnel}

tourner le volant includes


{oprationnel}

mettre le contact
acclrer

13/02/2013 14:38

29

Utiles pour ltablissement de scnarios

Modlisation dexemples issus des use-cases


Objet1 Objet2 Objet3

Domaine de lapplication
besoin1

service1() service3() service1() service2() service3() service4() service5() service5() service6() service1() service6() service2()

service1 service3

besoin2

service4 service3 service2

Utilisateur 1

scnario du use case besoin 2

besoin3

Utilisateur 2
besoin4

service5

13/02/2013 14:38

30

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

31

Notations UML pour classes et objets

Reprsentation dune classe


Reprsentation simplifie

Compte
solde: Somme plancher: Somme

Compte

crditer (Somme) dbiter (Somme)

Nom de la classe

Reprsentation des objets


CL805699 : Compte

Compartiment des Attributs Compartiment des Oprations Nom de lobjet

13/02/2013 14:38

32

Constituants dune classe


Concept reprsent (nom) Classes hrites (concepts prciss) Relations avec autres classes Attributs (classe, nom, visibilit) Oprations (paramtres) Contraintes, invariants Gnricit (classes paramtres) Strotypes

13/02/2013 14:38

33

Reprsentation des attributs

Caractrisation des attributs


Compte
solde: Somme plancher: Somme

ATTRIBUTS

crditer (Somme) dbiter (Somme)

Type de l'attribut

Nom de l'attribut

13/02/2013 14:38

34

Attributs drivs

Attributs dont la valeur peut tre dduite d autres lments du modle


e.g. ge si l on connat la date de naissance notation : /age

En termes d analyse, indique seulement une contrainte entre valeurs et non une indication de ce qui doit tre calcul et ce qui doit tre mmoris

13/02/2013 14:38

35

Reprsentation des oprations

Vues graphiques
Compte
solde: Somme plancher: Somme crditer (montant: Somme) dbiter (montant: Somme)

Nom de lopration
Nom de paramtre Classe du paramtre

13/02/2013 14:38

36

Reprsentation des invariants

Des contraintes peuvent tre ajoutes aux lments du modle UML


notation entre { }

Invariants = Proprits vraies pour l'ensemble des instances de la classe


dans un tat stable, chaque instance doit vrifier les invariants de sa classe Compte exprims l aide d OCL {solde>=plancher}
Object Constraint Language

e.g. {solde >= plancher}

solde: Somme plancher: Somme crditer (Somme) dbiter (Somme)


37

13/02/2013 14:38

Reprsentation des pr/post conditions

Prconditions
{precondition expression boolenne OCL} Abrg en: {pre: expression boolenne OCL}

Postconditions
{postcondition expression boolenne OCL} Abrg en: {post: expression boolenne OCL} Operateur valeur prcdente (idem old Eiffel):
expression OCL @pre

13/02/2013 14:38

38

Etre abstrait et prcis avec UML


Compte
{solde>=plancher}

solde: Somme plancher: Somme

crditer (montant : Somme)


{pre: montant > 0} {post: solde = solde @pre + montant}

dbiter (s: Somme)


{pre: montant > 0 and montant<=solde-plancher} {post: solde = solde @pre - montant}

Analyse prcise ou analyse par contrat


13/02/2013 14:38

39

Relation entre classes

Deux points de vue :


Une relation met en correspondance des lments densembles Une relation permet la description d'un concept laide dautres concepts

Une contrainte :
Une relation est un lien stable entre deux objets

13/02/2013 14:38

40

Relation entre classes

Notation
Personne propritaire
1

possession

proprit
*

Voiture

Vue ensembliste = Graphe de la relation


Personne Voiture

Possession Une association met en correspondance des lments densembles


13/02/2013 14:38

41

Reprsentation des relations

Relation, direction, rle, cardinalit


direction de relation Nom de relation
transporte

Rle

Voiture

passager Personne *

moyen_de_transport Rle

Cardinalit prcise

13/02/2013 14:38

42

Cardinalit d'une relation

1 * 0,1

Classe Classe Classe Classe Classe

Exactement une

Plusieurs (0 n)
Optionnelle (0 ou 1) Cardinalit spcifie Intervalle

1,2,4 1-10

13/02/2013 14:38

43

Cas particuliers de relations

Relations rflexives

encadre chef

1 sous-fifre
1..*

Personne

Une relation rflexive lie des objets de mme classe

13/02/2013 14:38

44

Composition et Agrgation

Cas particuliers de relations :


Notion de tout et parties
1 transporte

Voiture

passager Personne

moyen_de_transport

1
roulement >
4,6

Composition

Roue

Agrgation

structure > 1

Chassis

13/02/2013 14:38

45

Autre vues de la composition/agrgation

Diffrentes formes suggrant linclusion

Voiture roulement[4-6]: Roue structure: Chassis

Voiture roulement 4-6 structure 1 Roue Chassis

13/02/2013 14:38

46

Relations n-aires

Relations entre plus de 2 classes ( viter si possible)


*
Enseignant Destinataire 1..* Enseignement 1..* Enseigne MATIERE

PROFESSEUR

CLASSE

PROFESSEUR

0..*

1..*

Enseignement
1..* 1..*

1..*

MATIERE 1 Enseigne

Enseignant

Destinataire
13/02/2013 14:38

CLASSE
47

Relations attribues

L'attribut porte sur le lien

candidat preuve
Etudiant Note

n..k objet_preuve

Matire

13/02/2013 14:38

48

Qualifieurs de relations

Un qualifieur est un attribut spcial qui permet, dans le cas d'une relation 1-vers-plusieurs ou plusieurs-vers-plusieurs, de rduire la cardinalit. Il peut tre vu comme une cl qui permet de distinguer de faon unique un objet parmi plusieurs.
Rpertoire 0..* 0..* Fichier
Nom du fichier

Rpertoire Nom du fichier

Fichier

Relation non qualifie

Relation qualifie Un rpertoire + un nom de fichier identifient de faon unique un fichier


49

13/02/2013 14:38

Reprsentation de la gnralisation (hritage)

Hritage simple et multiple


Hritage simple Hritage multiple

AEROPLANE

AEROPLANE

VEHICULE_DE_TRANSPORT

AVION

AVION

13/02/2013 14:38

50

Interfaces et lollipop

interface

MOBILE

MOBILE

Raffinement
AVION

AVION

13/02/2013 14:38

51

Hritage des relations

Les relations sont hrites par les sous classes :


VEHICULE motorisation 1..2 MOTEUR

VOITURE

CAMION lien logique 1..* * FICHIER

REPERTOIRE

DRIVER

FICHIER_TEXTE

FICHIER_BINAIRE

13/02/2013 14:38

52

Reprsentation de classes abstraites

Classes sans instances immdiates


Forme {abstract}

Carre

Cercle

Une instance de Forme est obligatoirement une instance de la classe Carre ou de la classe Cercle

13/02/2013 14:38

53

Reprsentation des oprations abstraites

Opration sans corps dune classe abstraite


Forme {abstract}
calculer_surface () {abstract}

Carre
calculer_surface()

Cercle
calculer_surface()

13/02/2013 14:38

54

Visibilit

Diffrentes visibilits des membres d'une classe

public = + Interface protg = #

usager

hritier

priv = implmenteur

corps
13/02/2013 14:38

55

Visibilit

Reprsentation

Classe
+a1 : T1 -a2 : T2 #m1 (p1,P2,p3) +m2 (p1,P2,p3)

Pas de sens en analyse...


56

13/02/2013 14:38

Classes paramtres (Gnricit)


Classe gnrique
T , Entier : Integer Tableau element : T taille : Entier paramtres gnriques

<<bind>> <Point, 3> Tableau

Classe effective

paramtres effectifs

13/02/2013 14:38

57

Les relations en tant que classes

Pratique dans certains cas


Relations ternaires. La relation a des oprations appeles : classe de liaison
utilisateur
*

autorisation sur
autorisation priorit privilges session de dmarrage
*

station de travail

home directory rpertoire

13/02/2013 14:38

58

Les strotypes

Nouveaux lments de modlisation instanciant


Des classes du mta modle UML (pour les strotypes de base UML) Des extensions de classes du mta modle UML (pour les strotypes dfinis par lutilisateur)

Peuvent tre attachs aux lments de modlisations et aux diagrammes :


Classes, objets, oprations, attributs, gnralisations, relations, acteurs, uses-cases, vnements, diagrammes de collaboration ...
59

13/02/2013 14:38

Notations pour les strotypes


strotype

persistent CLIENT

persistent CLIENT nom : string adresse : string

nom : string adresse : string

CLIENT nom : string adresse : string CLIENT

13/02/2013 14:38

60

Les notes

Complments de modlisation
Attachs un lment du modle ou libre dans un diagramme Exprims sous forme textuelle Elles peuvent tre types par des strotypes
modle ralis par John Doe employ chef 0..1 {PERSONNE.employeur = PERSONNE.chef.employeur} PERSONNE * employeur 0..1 ENTREPRISE

13/02/2013 14:38

61

Conseils pratiques

Rflchir au problme avant de commencer


Soigner le nommage, insister sur le nommage des relations et des rles

Faire simple!
Things must be as simple as possible, but no simpler. A. Einstein viter toute complication nuisible
utiliser les qualifieurs viter les relations ternaires, quaternaires (trop complexe) se dgager de limplmentation : raisonner objets, classes, messages, relations, attributs, oprations

ne pas sinquiter si les possibilits de la notation ne sont pas toutes exploites


13/02/2013 14:38

62

Conseils pratiques (suite)

Approche incrmentale
Itrer Confronter ses modles aux autres Savoir s'arrter avant datteindre la perfection...
prise en compte qualit (niveau de prcision), cots, dlais... asservissement au processus de dveloppement

Faire simple (encore)


Un bon modle nest pas un modle o lon ne peut plus rien ajouter, mais un modle o on ne peut plus rien enlever. (daprs A. de St-Exupry)

13/02/2013 14:38

63

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

64

Notion de package

lment structurant les classes


Modularisation l'chelle suprieure Un package partitionne l'application :
Il rfrence ou se compose des classes de lapplication Il rfrence ou se compose dautres packages

Un package rglemente la visibilit des classes et des packages quil rfrence ou le compose Les packages sont lis entre eux par des liens d'utilisation, de composition et de gnralisation Un package est la reprsentation informatique du contexte de dfinition dune classe
13/02/2013 14:38

65

Reprsentation dun package

Vue graphique externe


P1

Vue graphique externe et interne


P1 C1 P2 P3

C2

13/02/2013 14:38

66

Partitionnement dune application

Dfinition de vues partielles d'une application

SYNTHSE EN PACKAGES

ENSEMBLE DES CLASSES DE L'APPLICATION

N.B.: une classe appartient un et un seul package


67

13/02/2013 14:38

Visibilit dans un package

Rglementation de la visibilit des classes


Classes de visibilit publique :
classes utilisables par des classes dautres packages

Classes de visibilit prive :


classes utilisables seulement au sein dun package

Reprsentation graphique
Classe

{public }

{private }

Package::Classe

CLASSE D'INTERFACE

CLASSE DE CORPS

CLASSE EXTERNE

13/02/2013 14:38

68

Utilisation entre packages

Dfinition
Il y a utilisation entre packages si des classes du package utilisateur accdent des classes du package utilis Pour quune classe dun package p1 puisse utiliser une classe dun package p2, il doit y avoir au pralable une dclaration explicite de lutilisation du package p2 par le package p1

Reprsentation graphique
P1 P2

Vue externe du package P1


13/02/2013 14:38

69

Utilisation entre packages

Exemple (vue externe du package livraisons)

LIVRAISONS LIVREURS

VEHICULES COLIS

13/02/2013 14:38

70

Hritage entre packages

Exemples
JeuPlateau

JeuDame

JeuEchec

Windowing System

Motif

MicrosoftWindows

13/02/2013 14:38

71

Utilit des packages

Rponses au besoin
Contexte de dfinition d'une classe Unit de structuration Unit d'encapsulation Unit d'intgration Unit de rutilisation Unit de configuration Unit de production

13/02/2013 14:38

72

Structuration par packages (vs) dcomposition hirarchique

Pour les grands systmes, il est ncessaire de disposer dune unit de structuration :

un niveau suprieur, Plus souple que :


La Le

composition de classe rfrenage de packages

=> domaines de structuration : Packages dcomposables en packages


73

13/02/2013 14:38

Exemple : Package entreprise

Exemple de composition

ENTREPRISE

COMPTABILIT

COMMERCIAL

LIVRAISON

13/02/2013 14:38

74

Exemple : Package entreprise

Ensemble des packages terminaux de lapplication


Livraisons Facturation Livreurs Clientles Bilan Commerciaux Tenue Comptes Vhicules

Colis Personnel

13/02/2013 14:38

75

Exemple : Package entreprise

Composition des packages en sous-packages


ENTREPRISE

COMPTABILIT

LIVRAISONS

Facturation

Bilan

Livraisons

Vhicules

Tenue Comptes

Personnel

Colis

Livreurs

COMMERCIAL

Clientles

Commerciaux

13/02/2013 14:38

76

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

77

Aspects dynamiques du systme

Jusquici, systme dcrit statiquement:


Dcrivent les messages (mthodes ou oprations) que les instances des classes peuvent recevoir mais ne dcrivent pas lmission de ces messages Ne montrent pas le lien entre ces changes de messages et les processus gnraux que lapplication doit raliser

Il faut maintenant dcrire comment le systme volue dans le temps

13/02/2013 14:38

78

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

79

Diagrammes de squences (scnarios)

Drivs des scnarios de OMT :


Montrent des exemples de coopration entre objets dans la ralisation de processus de lapplication Illustrent la dynamique denchanement des traitements travers les messages changs entre objets le temps est reprsent comme une dimension explicite
en gnral de haut en bas

Les lments constitutifs dun scnario sont :


Un ensemble dobjets (et/ou dacteurs) Un message initiateur du scnario La chronologie des messages changs subsquemment Les contraintes de temps (aspects temps rel)

13/02/2013 14:38

80

Syntaxe graphique

Objets et messages
Objets = Instances de classes Nom Objet1:NomClasse1

Nom Objet:NomClasse

nom message (paramtres)

Temps

Message nom message mis par Nom Objet vers Nom Objet1

13/02/2013 14:38

81

Ligne de vie et activation

La ligne de vie reprsente lexistence de lobjet un instant particulier


Commence avec la cration de lobjet Se termine avec la destruction de lobjet

Lactivation est la priode durant laquelle lobjet excute une action lui-mme ou via une autre procdure

13/02/2013 14:38

82

Notation
Objet existant avant et aprs lactivation du scnario objet2:Classe2

Client
op ( ) objet1:Classe1 m1 ( ) m2 ( ) objet3:Classe3 m3 ( ) Objet cr dans le scnario

Activit de lobjet

Ligne de vie
83

13/02/2013 14:38

Messages

Communication entre objets


Des paramtres Un retour

Cas particuliers
Les messages entranant la construction dun objet La rcursion Les destructions dobjets

13/02/2013 14:38

84

Notations
objet2:Classe2

Cration dobjet
op ( ) objet1:Classe1 m1 ( par )

Envoi de message avec paramtre

m2 ( )

Rcursion

Retour dopration

Destruction dobjet
85

13/02/2013 14:38

Aspects asynchrones et temps rel

Lecture du scnario et chronologie


Un scnario se lit de haut en bas dans le sens chronologique dchange des messages. Des contraintes temporelles peuvent tre ajoutes au scnario
Nom Objet1: :Nom classe2

Nom Objet1:

:Nom classe2

a {b-a< 5 sec.}

demande

demande

rponse

d {d-d< 1 sec.}

13/02/2013 14:38

86

Reprsentation de conditionnelles
objet2:Classe2 op ( ) Branchement conditionnel

objet1:Classe1

[x<0] m1 ( x ) [x>0] m2 ( x )

Branchement conditionnel

13/02/2013 14:38

87

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

88

Diagrammes de collaboration

Les scnarios et diagrammes de collaboration:


Montrent des exemples de coopration des objets dans la ralisation de processus de lapplication

Les scnarios :
Illustrent la dynamique denchanement des traitements dune application en introduisant la dimension temporelle

Les diagrammes de collaboration


Dimension temporelle reprsente par numros de squence : dfinition dun ordre partiel sur les oprations Reprsentation des objets et de leurs relations Utilisent les attributs et oprations
89

13/02/2013 14:38

Utilisation des diagrammes de collaboration

Ils peuvent tre attachs :


Une classe Une opration Un use-case

Ils sappliquent
En spcification En conception (illustration de design patterns)

13/02/2013 14:38

90

Elments constitutifs

Un contexte contenant les lments mis en jeu durant lopration :


Un acteur Un ensemble dobjets, dattributs et de paramtres Des relations entre ces objets

Des interactions
Des messages Un message initiateur du diagramme provenant dun
Acteur de lapplication, Objet de lapplication.

Les numros de squence des messages changs entre les objets de cet ensemble suite au message initiateur
13/02/2013 14:38

91

Reprsentation dune collaboration (niveau instance)


Pierre Marie

pre

mre
1: cashRequest($25)

2: cashReceived($25)

Fred

13/02/2013 14:38

92

Equivalent au diagramme de squence:


Fred Marie

cashRequest($25)

cashReceived($25)

13/02/2013 14:38

93

Syntaxe graphique

Les messages
Oprations Rception dvnements

Le squencement
Les squences conscutives Les squences imbriques

squence imbrique
origine:Point
4 1.1: position ( )

message initiateur
afficher ( )

:Carr

:Segment
1 *(i=1..4):afficher ( ) 1.2: position ( )

numro de squence boucle

destination:Point

opration
13/02/2013 14:38

94

Questions auxquelles rpondent les collaborations

Quel est lobjectif ?


Quels sont les objets ?

Quelles sont leurs responsabilits ?


Comment sont-ils interconnects ? Comment interragissent-ils ?
95

13/02/2013 14:38

Collaboration : Niveau Spcification Dfinition du ClassifierRole


A ClassifierRole is a named slot for an object participating in a Collaboration. Object behavior is represented by its participation in the overall behavior of the Collaboration. Object identity is preserved through this constraint: "In an instance of a collaboration, each ClassifierRole maps onto at most one object."
13/02/2013 14:38

96

Collaboration de Niveau Spcification


un exemple simple

/ Pre
pre

/ Mre
mre

1: cashRequest($25)

2: cashReceived($25)

/ Enfant

13/02/2013 14:38

97

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

98

Les diagrammes dtats

Attachs une classe


Gnralisation des scnarios Description systmatique des ractions d'un objet aux changements de son environnement

Dcrivent les squences dtats dun objet ou dune opration :


En rponse aux stimulis reus En utilisant ses propres actions (transitions dclenches)

Rseau dtats et de transitions


Automates tendus Essentiellement Diagrammes de Harel (idem OMT)

13/02/2013 14:38

99

Syntaxe graphique: diagramme dtats


condition de garde vnement reu Evt1 [cond] / m() ^Evt2 action vnement mis

E1
tat

E2

transition

Syntaxe :
EvnementReu (param : type, ...) [condition de garde] / Action ^EvnementsEmis

13/02/2013 14:38

100

Notion dvnements

Stimulis auxquels ragissent les objets


Occurrence dclenchant une transition dtat

Abstraction d'une information instantane change entre des objets et des acteurs
Un vnement est instantan Un vnement correspond une communication unidirectionnelle Un objet peut ragir certains vnements lorsqu'il est dans certains tats. Un vnement appartient une classe d'vnements (classe strotype signal).
101

13/02/2013 14:38

Les vnements

Les vnements sont considrs comme des objets


signal IO_EVENT time

signal USER_INPUT device

signal NETWORK_EVENT

signal MOUSE_EV location

signal KEYBD_EV
character

...

...

...

13/02/2013 14:38

102

Typologie dvnements

Ralisation dune condition arbitraire


transcrit par une condition de garde sur la transition

Rception dun signal issu dun autre objet


transcrit en un vnement dclenchant sur la transition

Rception dun appel dopration par un objet


transcrit comme un vnement dclenchant sur la transition

Priode de temps coule


transcrit comme une expression du temps sur la transition

13/02/2013 14:38

103

Notion d action

Action : opration instantane (conceptuellement) et atomique (ne peut tre interrompue) Dclenche par un vnement
Traitement associ la transition Ou l entre dans un tat ou la sortie de cet tat
action
User_input / mise_sous_tension Veille dlai_mise_en_veille / passage_en_mode_veille Allum

action
13/02/2013 14:38

104

Notion dtats

Etat : situation stable dun objet parmi un ensemble de situations pr-dfinies


conditionne la rponse de lobjet des vnements
programmation ractive / temps rel

Intervalle entre 2 vnements, il a une dure

Peut avoir des variables internes


attributs de la classe supportant ce diagramme dtats

13/02/2013 14:38

105

Structuration en sous-tats

Problme d'un diagramme d'tats plats


Pouvoir d'expression rduit, inutilisable pour de grands problmes Explosion combinatoire des transitions.

Structuration l aide de super/sous tats (+ hirarchies d vnements)


reprsents par imbrication graphique

13/02/2013 14:38

106

Notion d activit dans un tat

Activit : opration se droulant continuement tant qu on est dans l tat associ


do/ action

Une activit peut tre interrompue par un vnement.


Tlphone N invalide

Invalide
do / passer message

Tlphone raccroch

activit

13/02/2013 14:38

107

Exemple de diagramme d'tats

un tlphone :
Actif
dcroche combin 15 sec

Timeout do/ timeout tone 15 sec

Compose numro (n)

Tonalit Compose numro (n) do/ joue tonalit


Invalide do/ dit message
Appel raccroche

En composition
Dernier numro

Compose numro (n) [n.isInvalid]

Repos

Occup do/ tonalit occupe

occup connect Occup Libre

Etablissement

Appelant raccroche/ dconnexion

Dialogue

Rponse de lappel/ autorise parole

Sonnerie do/ sonne

13/02/2013 14:38

108

mission dvnements

Automate dtats dune tlcommande double :


TV + MAGNETOSCOPE
Contrle distant
MAGNETOSCOPE contrle TV TV contrle MAGNETO

bouton marche ^signal ON/OFF

signal ON/OFF Tlvision Arrt Marche

13/02/2013 14:38

109

Diagrammes d'tats concurrents

Utilisation de sous-tats concurrents pour ne pas avoir expliciter le produit cartsien d automates
si 2 ou plus aspects de l tat d un objet sont indpendants Activits parallles

Sous-tats concurrents spars par pointills


swim lanes

13/02/2013 14:38

110

Exemple de concurrence
Prparation d'un avion

Maintenance Remplissage prparation Chargement nourriture


Rservoir plein

Plein Avion prt

Approvisionnement
Compartiment plein

Nourriture charge
vrification OK

Equipage absent

Equipage
Monte

Vrification avion

13/02/2013 14:38

111

Etat-transition (rsum)

Format :
vnement (arguments) [conditions] / action ^vnements provoqus

Dclenchement :
par un vnement (peut tre nul).
Peut avoir des arguments.

Conditionn par des expressions boolennes sur l'objet courant, l'vnement, ou d'autre objets.

Tir de la transition :
Excute certaines actions instantanment. Provoque d'autres vnements ; globaux ou vers des objets cibles.

13/02/2013 14:38

112

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

113

Les diagrammes dactivit

Traitements effectus par une opration


Description dun flot de contrle procdural
Rseau dactions et de transitions : automate dgnr La transition seffectue lorsque lopration est termine

Pas de dclenchement par vnement asynchrone


Sinon utilisation diagrammes dtats classiques

Attachs
une classe, une opration, ou un use-case (workflow)

13/02/2013 14:38

114

Etat-action et dcision

Etat-action = raccourci pour un tat o il y a :


une action interne au moins une transition sortante
production dun vnement implicite : action accomplie

Pas de production/raction des vnements explicites

Modlisation dune tape dans l'excution dun algorithme


Notation :
obtenir un gobelet

Dcision = branchement sur plusieurs transitions


Notation :
[cot>=50] [cot<50]

13/02/2013 14:38

115

Exemple de diagramme dactivit


opration PrparerBoisson de la classe Personne
[pas de caf] dterminer boisson [demande caf] [pas de soda]

[demande soda]

mettre le caf dans le filtre

ajouter de leau dans le rservoir

obtenir un gobelet

obtenir une canette de soda

mettre le filtre dans la machine

infuser verser caf boire

13/02/2013 14:38

116

Strotypes optionnels

Emission de signal

Allumer cafetire

Rception de signal

Voyant steint

On obtient une syntaxe graphique proche de SDL


langage de description de spcifications
populaire dans le monde tlcom

13/02/2013 14:38

117

Liens modles statiques/dynamiques

Le modle dynamique dfinit des squences de transformation pour les objets


Diagramme d'tat gnralisant pour chaque classe ayant un comportement ractif aux vnements les scnarios et collaborations de leurs instances
Les variables d'tat sont des attributs de l'objet courant Les conditions de dclenchement et les paramtres des actions exploitent les variables d'tat et les objets accessibles

Diagrammes dactivits associs aux oprations/transitions/mthodes

Les modles dynamiques d'une classe sont transmis par hritage aux sous-classes
118

13/02/2013 14:38

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

119

Diagrammes dimplantation

Diagrammes de composants
Dpendances entre composants logiciels
code source binaires, DLL excutables

Diagrammes de dploiement
Configuration des composants Localisation sur les noeuds dun rseau physique

13/02/2013 14:38

120

Exemples de composants
Synonymes Dictionnaire

Vrificateur

Interfaces
Planner

Composants
GUI

13/02/2013 14:38

121

Exemple de dploiement
MachineServeur

Dictionnaire

MachineClient1

Noeuds

GUI

MachineClient2 Planner
122

13/02/2013 14:38

Modlisation UML

Modlisation selon 4 points de vue principaux :


Vision utilisateur du systme
Cas dutilisation

Aspects statiques du systme


Description des donnes et de leurs relations Structuration en paquetages

Aspects dynamiques du systme (comportemental)


Diagramme de squences (scnarios) Diagramme de collaborations (entre objets) Diagramme dtats-transitions (Harel) Diagramme dactivits

Vision implantation
Diagramme de composants et de dploiement
13/02/2013 14:38

123

Processus de dveloppement avec UML

13/02/2013 14:38

124

Vous aimerez peut-être aussi