Vous êtes sur la page 1sur 133

Introduction au langage de modlisation UML

Denis Conan, Chantal Taconet, Christian Bac

CSC 4002 Octobre 2013


Revision : 1021

Introduction au langage de modlisation UML

Sommaire

1 2 3 4 5 6 7 8 9

Objectifs de ce cours de modlisation oriente objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Gnralits sur la modlisation orient objet et sur UML. . . . . . . . . . . . . . . . . . . . . . . . . . .4 Analyse, vues cas dutilisation et processus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Analyse et conception, aspects statiques de la vue logique . . . . . . . . . . . . . . . . . . . . . . . . 35 Analyse et conception, aspects dynamiques de la vue logique . . . . . . . . . . . . . . . . . . . . . 63 Conception, aspects langage et technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Conception, vues dveloppement et physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

2/133

Introduction au langage de modlisation UML

1 Objectifs de ce cours de modlisation oriente objet

Introduire la modlisation base de graphiques des systmes informatiques Introduire la modlisation oriente objet Introduire la notation UML Dirents types de diagrammes avec leurs notations Rles complmentaires des types de diagrammes Cohrence entre diagrammes de mme type ou de types dirents Prsenter des lments mthodologiques dutilisation de ces types de diagrammes dans un processus de dveloppement Prsentation dans le cours dune premire tude de cas Mise en pratique lors des bureaux dtude avec une autre tude de cas valuation de lacquisition lors dun examen sur table avec une troisime tude de cas

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

3/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9

Principes de la modlisation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Rles du modle du systme informatique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Pourquoi et comment modliser en orient objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Unied Modelling Language (UML) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Cinq faons de voir un systme informatique : les 4+1 vues de Kruchten . . . . . . . . 11 Phases de la modlisation, cycle en V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Rle de lexpression des besoins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Rle de lanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Rle de la conception. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

4/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

2.1 Principes de la modlisation

Objectif principal de la modlisation = matriser la complexit Modliser = abstraire la ralit pour mieux comprendre le systme raliser / ralis Le modle doit tre reli au monde rel Par exemple : lexistant avant les travaux, le ralis, le restant raliser Un modle peut tre exprim avec dirents niveaux dabstraction / ranement Par analogie : rpartition lectrique de limmeuble, de la cage descalier, de lappartement, de la pice Une seule vue du systme nest pas susante Les intervenants multiples du projet informatique possdent des proccupations multiples Par analogie : plan de masse, vues de face et de ct, schma lectrique, plan de plomberie, plan de calculs de construction

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

5/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

2.2 Rles du modle du systme informatique

Le 1. 2. 3.

modle permet de : Spcier le systme raliser/ralis Valider le modle vis--vis des clients Fournir un guide pour la construction du systme Organiser les structures de donnes et le comportement du systme 4. Documenter le systme et les dcisions prises

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

6/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

2.3 Pourquoi et comment modliser en orient objet


Relier le modle au monde rel par la notion dobjet Orient objet = abstraire et dcomposer le systme informatique en objets Le monde rel est constitu dobjets physiques ou immatriels Tracer les objets virtuels de modlisation depuis les objets du monde rel Relier les objets (rels) du problme et les objets (virtuels) de la solution Favoriser les abstractions naturelles du monde rel utilisables en modlisation Objets vus comme des botes noires : seules les proprits visibles de lextrieur intressent Objets possdant un nom, qualiables, classables, polymorphes, d-/composables, interagissants avec dautres objets, etc. Objectifs de la modlisation oriente objet Meilleure indpendance du modle par rapport aux fonctions demandes Meilleure capacit dadaptation et dvolution du modle lorsque des fonctionnalits sont modies ou ajoutes

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

7/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

2.4 Unied Modelling Language (UML)


OMT2
James Rumbaugh

UML 0.8
OOSPLA95

Booch93
Grady Booch

UML 0.9
WWW Juin 96

UML 1.0
Propos un standard OMG fin 1997

UML 1.1
Standard OMG ADTF fin 1997

OOSE
Ivar Jacobson

Partenaires divers

Task force

UML 1.2

UML 1.3
1998

UML 1.4
2001

UML 1.5
2003

UML 2.0
2005

UML 2.3
2010

UML 2.4.1
2013

Systmes dinformations des entreprises Banques et services nanciers Tlcommunications Transports Dfense et arospatiale Calculs scientiques Applications rparties en rseau, services Web Internet
8/133

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

2 Gnralits sur la modlisation orient objet et sur UML

2.4 Unied Modelling Language (UML)

2.4.1 UML, un langage


UML nest pas une mthode UML est un langage de modlisation oriente objet UML a t adopt par toutes les mthodes orientes objet UML est dans le domaine public ; cest un standard UML est un langage pour : Visualiser Chaque symbole graphique possde une smantique Spcier De manire prcise et complte, sans ambigut Construire Une partie du code des classes peut tre gnr automatiquement Documenter Les dirents diagrammes, notes, contraintes, exigences sont conservs dans un document

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

9/133

2 Gnralits sur la modlisation orient objet et sur UML

2.4 Unied Modelling Language (UML)

2.4.2 Les 10 principaux diagrammes UML

Principaux diagrammes tudis

Cas dutilisation Activit

Classes

Machine tats Objets

Communications

Paquetages

Squence

Composants

Dploiement

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

10/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

2.5 Cinq faons de voir un systme informatique : les 4+1 vues de Kruchten

Aspect dynamique : interactions (squences, communications), machines tats Aspect statique : classes, objets et paquetages Aspect statique: paquetages, et fichiers

Vue logique

Vue dveloppement Vue cas dutilisation

Vue processus

Vue physique

Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits Aspect rpartition: dploiement, noeuds, modules

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

11/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

2.6 Phases de la modlisation, cycle en V

Cahier des charges Saccorder sur ce qui doit tre fait dans le systme

Produit Le systme estil conforme au cahier des charges ?

Expression des besoins

Recette

Comprendre les besoins, les dcrire dans le systme

Analyse

Tests de validation

Le systme estil conforme lanalyse ?

Saccorder sur la manire dont le systme doit tre construit

Conception

Tests dintgration

Les diffrentes parties du logiciel fonctionnentelles correctement ensemble ?

Codage du rsultat de la conception

Implantation Tests unitaires

Pour un objet, chaque opration fonctionnetelle correctement ?

Code excutable

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

12/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

2.7 Rle de lexpression des besoins

Permettre une meilleure comprhension du systme Comprendre et structurer les besoins du client Clarier, ltrer et organiser les besoins, ne pas chercher lexhaustivit Une fois identis et structurs, ces besoins : Dnissent le contour du systme modliser Prcisent le but atteindre Permettent didentier les fonctionnalits principales du systme

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

13/133

2 Gnralits sur la modlisation orient objet et sur UML

2.7 Rle de lexpression des besoins

2.7.1 Exemple de cahier des charges : Studs


Studs : Application daide la planication de runions et la prise de dcision. Lobjectif est de permettre dexprimer des prfrences parmi plusieurs choix. Les choix sont de deux types : (1) des plages horaires (dates avec heures de dbut et de n) et (2) des votes concernant une liste de choix. Lorganisatrice, cre un scrutin, renseigne les plages horaires possibles (type 1) et ajoute les participants la runion. Les participants peuvent exprimer dans un bulletin leurs prfrences en indiquant pour chaque plage horaire sils votent pour (ils sont disponibles et annoncent leur intention de participer) ou contre . Lorganisatrice rcupre les rsultats du scrutin la n du vote et annonce la plage horaire choisie. Lorganisatrice participe au scrutin quelle gre. La procdure est similaire pour le type 2, c.--d. pour les scrutins concernant des propositions (chanes de caractres quelconques) choisir.

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

14/133

2 Gnralits sur la modlisation orient objet et sur UML

2.7 Rle de lexpression des besoins

2.7.2 Rgles de gestion et contraintes de lapplication Studs

Toutes les personnes peuvent tre organisatrices. Lorganisatrice est de facto une participante au scrutin. Seule lorganisatrice est autorise grer un scrutin. Seuls les participants enregistrs peuvent participer au scrutin et consulter les rsultats. Pour que les participants puissent voter, il faut que le scrutin soit ouvert (dateDuJour dateDebutScrutin). La dure douverture du scrutin est limite. Lorganisatrice doit indiquer la date de destruction automatique du scrutin. Toutes ces dates permettent de grer de manire automatique le cycle de vie dun scrutin. Les transitions du cycle de vie peuvent aussi tre eectues la demande de lorganisatrice.

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

15/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

2.8 Rle de lanalyse

Le but de lanalyse est de traduire dans un langage qui se rapproche doucement de celui des informaticiens les modles exprims dans lexpression des besoins Cependant, pour rester comprhensible par les clients ou utilisateurs, elle ne prend en considration que des entits du domaine (mtier) Elle sert dinterface, avec lexpression des besoins, aux dialogues avec les clients et les utilisateurs Lanalyse doit servir de support pour la conception, limplantation et la maintenance Le modle de lanalyse dcrit le problme (ce que doit faire le systme et comment il le fait tel que vu dun point de vue mtier) sans spcier la solution technique (avec les canevas logiciels)

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

16/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

2.9 Rle de la conception

Le but de la conception est de xer les choix techniques et de prparer limplantation Le modle de la conception dcrit la solution (comment le problme est rsolu) La conception doit servir de support pour limplantation et la maintenance Le modle de la conception nest pas destin tre comprhensible par les utilisateurs mais par les dveloppeurs

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

17/133

Introduction au langage de modlisation UML

2 Gnralits sur la modlisation orient objet et sur UML

QCM

1. Le code source dune application est-il un modle de lapplication ?

2. UML est-il un processus de dveloppement ?

3. Un client demandant une informatisation est-il cens comprendre les diagrammes UML ?

4. Un dveloppeur / programmeur est-il cens comprendre les diagrammes UML ?

5. La phase dexpression des besoins est-elle tudie dans ce module ?

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

18/133

Introduction au langage de modlisation UML

3 Analyse, vues cas dutilisation et processus

3.1 Modle de lanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.2 Diagrammes de cas dutilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3 Diagrammes dactivit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

19/133

Introduction au langage de modlisation UML

3 Analyse, vues cas dutilisation et processus

3.1 Modle de lanalyse


Vision de lextrieur du systme, le problme : Vue cas dutilisation = ce que fait le systme, les fonctionnalits Vue processus = ce que fait le systme, les rgles de gestion
Aspect dynamique : interactions (squences, communications), machine tats Aspect statique : classes, objets et paquetages Aspect statique: paquetages, et fichiers

Vue logique

Vue dveloppement

Diagramme de cas dutilisation Diagramme dactivits Vue processus

Vue cas dutilisation


Vue physique

Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits Aspect rpartition: dploiement, noeuds, modules

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

20/133

Introduction au langage de modlisation UML

3 Analyse, vues cas dutilisation et processus

3.2 Diagrammes de cas dutilisation

3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7

Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Acteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Relation de gnralisation spcialisation entre acteurs. . . . . . . . . . . . . . . . . . . . . . . . .24 Cas dutilisation, lien de communication et systme . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Autres relations entre cas dutilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Exemple de diagramme de cas dutilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 lments de mthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

21/133

3 Analyse, vues cas dutilisation et processus

3.2 Diagrammes de cas dutilisation

3.2.1 Introduction

Les fonctionnalits sont modlises par des cas dutilisation Un diagramme de cas dutilisation dnit : Le systme Les acteurs Les cas dutilisation (fonctionnalits) Les liens entre acteurs et cas dutilisation Quel acteur accde quel cas dutilisation ? Un modle de cas dutilisation se dnit par : Des diagrammes de cas dutilisation Une description textuelle des scnarios dutilisation

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

22/133

3 Analyse, vues cas dutilisation et processus

3.2 Diagrammes de cas dutilisation

3.2.2 Acteur
Un acteur reprsente une personne, un priphrique ou un autre systme qui joue un rle (interagit) avec le systme Lorganisatrice, cre un scrutin, renseigne les plages horaires possibles et ajoute les participants la runion. Les participants peuvent exprimer leurs prfrences en indiquant pour chaque plage horaire sils votent pour (ils sont disponibles et annoncent leur intention de participer) ou contre.

<< acteur >> organisatrice organisatrice


Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 23/133

3 Analyse, vues cas dutilisation et processus

3.2 Diagrammes de cas dutilisation

3.2.3 Relation de gnralisation spcialisation entre acteurs


La gnralisation spcialisation est aussi appele hritage Lorganisatrice participe au scrutin quelle gre. Une organisatrice est une participante
lacteur le plus gnral

participante

le lien de gnralisation

lacteur le plus spcialis

organisatrice

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

24/133

3 Analyse, vues cas dutilisation et processus

3.2 Diagrammes de cas dutilisation

3.2.4 Cas dutilisation, lien de communication et systme


Un cas dutilisation est un moyen de reprsenter les direntes possibilits dun systme Il correspond une suite dinteractions entre un acteur et le systme Il dnit une fonctionnalit utilisable par un acteur

Voter participante

cas dutilisation

lien de communication

Ajouter un participant

Ouvrir un scrutin
limite du systme

organisatrice

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

25/133

3 Analyse, vues cas dutilisation et processus

3.2 Diagrammes de cas dutilisation

3.2.5 Autres relations entre cas dutilisation


include = rutilisation complte sans changement Gnralisation spcialisation ou hritage = spcialisation de certaines actions du cas dutilisation dorigine extenda = ajout de fonctionnalit facultative

relation dinclusion

relation dhritage

Authentification M1 Voter
<<include>>

Vrifier droits
<<include>>

<<extend>>

Crer un scrutin
relation dextension

Enregistrement tentatives

a. Smantique trs controverse, donc vitez dutiliser extend


Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 26/133

3 Analyse, vues cas dutilisation et processus

3.2 Diagrammes de cas dutilisation

3.2.6 Exemple de diagramme de cas dutilisation


Voter Consulter les rsultats dun scrutin Se retirer dun scrutin Crer un scrutin participant Ajouter un choix Supprimer un choix Ajouter un participant Retirer un participant Ouvrir un scrutin Fermer un scrutin organisateur Supprimer un scrutin

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

27/133

3 Analyse, vues cas dutilisation et processus

3.2 Diagrammes de cas dutilisation

3.2.7 lments de mthodologie

Identier les acteurs qui utilisent, grent et excutent des fonctionnalits spciques Organiser les acteurs par relation de gnralisation spcialisation si cest pertinent Pour chaque acteur, rechercher les cas dutilisation du systme Si besoin, organiser ces interactions par gnralisation spcialisation et par inclusion, mais viter la relation dextension

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

28/133

Introduction au langage de modlisation UML

3 Analyse, vues cas dutilisation et processus

3.3 Diagrammes dactivit

3.3.1 3.3.2 3.3.3 3.3.4

Scnarios dun cas dutilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Actions et choix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Concurrence. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32 Autres notations du diagramme dactivit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

29/133

3 Analyse, vues cas dutilisation et processus

3.3 Diagrammes dactivit

3.3.1 Scnarios dun cas dutilisation

La description dun cas dutilisation se fait par des scnarios qui dnissent la suite logique des actions qui constituent ce cas Il est possible de dnir des scnarios simples ou des scnarios plus dtaills faisant intervenir les variantes, les cas derreurs, etc. La description du scnario prcise ce que fait lacteur et ce que fait le systme En plus de descriptions textuelles, le scnario peut tre reprsent en utilisant un diagramme dactivit Le diagramme dactivit permet de : Prsenter lalgorithme , cest--dire les tapes de la fonctionnalit Visualiser laspect temporel des interactions Connatre le sens des interactions (acteur vers systme ou inverse) Distinguer le cas nominal des variantes (p.ex. avec traitement des erreurs)

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

30/133

3 Analyse, vues cas dutilisation et processus

3.3 Diagrammes dactivit

3.3.2 Actions et choix


noeud initial

arte

garde

slection type scrutin


dcision [scrutin type plages horaires] [scrutin type prfrences]

entrer listes plages horaires

entrer liste prfrences

fusion

validation cration du scrutin


noeud terminal

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

31/133

3 Analyse, vues cas dutilisation et processus

3.3 Diagrammes dactivit

3.3.3 Concurrence

recherche scrutin

fork

calcul rsultat scrutin

calcul liste adresses courriels

join

envoi rsultat scrutin

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

32/133

3 Analyse, vues cas dutilisation et processus

3.3 Diagrammes dactivit

3.3.4 Autres notations du diagramme dactivit

attente X secondes

date / heure de dmarrage

appel autre activit

informations transmises

Signal X reu par le systme

Signal Y mis par le systme

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

33/133

Introduction au langage de modlisation UML

3 Analyse, vues cas dutilisation et processus

QCM

1. Dans un diagramme de cas dutilisation, est-il pertinent dajouter des cas dutilisation ne faisant pas partie du systme ? 2. Quelles entits peuvent tre dessines dans un diagramme de cas dutilisation ? (a) systme (b) opration (c) acteur (d) fusion (e) gnralisation spcialisation (f) action 3. Dans une gnralisation spcialisation entre acteurs, lacteur spcialis a-t-il accs toutes les fonctionnalits de lacteur gnralis ?

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

34/133

Introduction au langage de modlisation UML

4 Analyse et conception, aspects statiques de la vue logique

4.1 4.2 4.3 4.4

Diagrammes communs lanalyse et la conception . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Diagramme dobjets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Concepts avancs du diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

35/133

Introduction au langage de modlisation UML

4 Analyse et conception, aspects statiques de la vue logique

4.1 Diagrammes communs lanalyse et la conception


Vue logique Aspects statiques = structure du problme et de la solution Diagrammes de classes et dobjets Aspects dynamiques = comportement des lments de la structure Diagrammes de squence, de communications et de machine tats
Diagrammes dinteractions (squences et communications) Diagramme de machine tats
Aspect dynamique
Aspect statique: paquetages, et fichiers

Diagramme de classes Diagramme dobjets


Aspect statique

Vue logique
Vue cas dutilisation Vue processus

Vue physique

Vue dveloppement

Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits Aspect rpartition: dploiement, noeuds, modules

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

36/133

Introduction au langage de modlisation UML

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes


4.2.1 Modliser la structure logique du systme dans un diagramme de classes . . . . . . 38 4.2.2 Classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.3 Instanciation : cration dun objet dune classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.2.4 Attributs et oprations de classe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41 4.2.5 Attribut driv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.6 Association entre classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.2.7 Nom de rle et multiplicit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.2.8 Gnralisation spcialisation ou hritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 4.2.9 Gnralisation spcialisation : vision ensembliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 4.2.10 Gnralisation spcialisation : vision encapsulation. . . . . . . . . . . . . . . . . . . . . . . . . . .47 4.2.11 Gnralisation et rednition doprations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.2.12 Polymorphisme et liaison dynamique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49 4.2.13 Agrgation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.2.14 Exemple de diagramme de classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 4.2.15 lments de mthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

37/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.1 Modliser la structure logique du systme dans un diagramme de classes


Diagramme au cur de lanalyse et de la conception orientes objet Abstraction Abstraire = ignorer / cacher des caractristiques non signicatives Ne garder que les caractristiques dune classe importantes pour lintervenant Analyste versus architecte ou concepteur Encapsulation comme mcanisme dabstraction Cacher des dtails en les rendant privs (non visibles) Par exemple, en analyse, montrer le quoi qui est public (visible) Puis, en conception, dtailler en ajoutant les lments pour le comment = Protge lanalyse des changements eectus lors de la conception dans la partie prive en ne remettant pas en cause ce qui est expos publiquement au niveau mtier Par exemple, lanalyse spcie que tel lment est un ensemble La conception prcise que cest une liste doublement chane
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 38/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.2 Classe
Classe = famille dobjets ayant les mmes caractristiques et le mme comportement Attributs = caractristiques (donnes membres, informations, proprits) Oprations = comportement (mthodes, fonctions, procdures, messages, services)

Nom de la classe

Attributs dinstance de la classe

Personne
nom : String prnom : String nbParticipations : Integer = 0 nbOrganisations : Integer = 0 Constructeur(String n, String p) voter(Bulletin b) consulterResultat(Scrutin s) seRetirerDUnScrutin(Scrutin s)

Personne
nom : String prnom : String nbParticipations : Integer nbOrganisations : Integer

Personne
voter(Bulletin) consulterResultat(Scrutin) seRetirerDUnScrutin(Scrutin)

Oprations dinstance de la classe

Personne

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

39/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.3 Instanciation : cration dun objet dune classe


Instanciation = cration dun objet partir dune classe Objet = instance de classe

Nom de la classe

Identifiant de lobjet

Personne
nom : String prnom : String nbParticipations : Integer = 0 nbOrganisations : Integer =0 Constructeur(String n,String p) voter(Bulletin b) consulterResultat(Scrutin s) seRetirerDUnScrutin(Scrutin s)

j:Personne
nom = "Dupont" prnom = "Julien" nbParticipations = 7 nbOrganisations = 3

Type de lattribut

Valeur de lattribut

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

40/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.4 Attributs et oprations de classe


Le nombre total de participations est une caractristique des personnes (classe), donc applicable Julien Dupont (objet) Lopration getNbTotalParticipations() utilise la valeur de lattribut nbTotalParticipations connue par la classe Cette opration peut tre applique directement la classe Personne et bien sr aussi aux objets / instances de Personne
Attribut dinstance

Personne
nom : String prnom : String nbParticipations : Integer nbOrganisation : Integer nbTotalParticipations : Integer Constructeur(String n, String p) voter(Bulletin) consulterResultat() seRetirerDUnScrutin() getNbTotalParticipations()

j:Personne
nom = Dupont prnom = Julien nbParticipations = 7 nbOrganisation = 3 nbTotalParticipations = 12 nom = Martin prnom = Marie nbParticipations = 5 nbOrganisation = 1

Attribut de classe

Opration dinstance

Opration de classe

m:Personne

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

41/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.5 Attribut driv

Attribut driv = attribut dpendant dautres attributs

Personne
nom adresse dateNaissance /ge

{Invariant : ge = (dateCourante dateNaissance) % anne}

Attribut driv

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

42/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.6 Association entre classes

Association (binaire) = relation entre (deux) classes Le sens de lecture est facultatif lorsquil ny a pas dambigut

Association

Nom de lassociation organise

Sens de lecture de lassociation

Personne

Scrutin

:organise m:Personne listeBDE:Scrutin

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

43/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.7 Nom de rle et multiplicit


Nom de rle = indication sur la participation de la classe lassociation Multiplicit = contrainte sur le nombre dobjets associs
Rle

organisateur

Personne

organise Multiplicits

Scrutin

1 (par dfaut) 1 3 0..1 1 (explicite) 3 0 ou 1 0 ou plusieurs 1 ou plusieurs intervalle

*
1..* 6..28

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

44/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.8 Gnralisation spcialisation ou hritage


Factorisation de caractristiques (attributs et oprations)
Personne
nom numroScu

Avocat
nombreAffaires adresseCabinet

Vendeur
anciennet nomDuStand

Enseignant
nombreCours specialit

Permanent
numroBureau
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

Vacataire
nombreVacations
45/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.9 Gnralisation spcialisation : vision ensembliste

Vendeur Avocat

Enseignant Permanent Vacataire

Personne

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

46/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.10 Gnralisation spcialisation : vision encapsulation

Avocat Vacataire Enseignant Personne Vendeur

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

47/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.11 Gnralisation et rednition doprations


MoyenTransport
dsignation vitesseLimite age prixHT obtenirVitesse() changerPrix() obtenirge() calculerAmortissement()

Camion
nombreEssieux capacit charge estPlein()

Voiture
nombrePorte couleur

Tramway
nombrePassagers niveauBruit calculerAmortissement()

Redfinition : amortissement incluant les voies ferres

VoitureEssence
nombreBougies

VoitureDiesel
typeInjecteur

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

48/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.12 Polymorphisme et liaison dynamique


Polymorphisme : Un objet dune classe enfant peut prendre plusieurs formes Lobjet peut tre utilis partout o un objet de la classe parente est attendu Exprimant ainsi que la classe enfant est une spcialisation de la classe parente Liaison dynamique ou tardive : Soient une classe P et o() une opration de P Soient e un objet dune classe E , enfant de la classe P et o() lopration rednie dans E Soit r une rfrence sur un objet de type P Le polymorphisme autorise aecter r la valeur e : r e Si lopration o() est appele sur la rfrence r : r.o() et sil y a liaison dynamique (ce qui est toujours le cas en Java p.ex.) Cest lopration rednie dans la classe enfant qui est appele soit lopration o() rednie dans E
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 49/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.13 Agrgation
Agrgation = une association exprimant un couplage fort li une relation de subordination Elle est asymtrique du type ensemble / lment ou contenant / contenu Rgles permettant de choisir une agrgation : Est-ce une partie de ? Les oprations appliques lensemble sont-elles appliques llment ? Les changements dtats sont-ils lis ? Attention : Un lment agrg peut tre li dautres classes La suppression de lensemble nentrane pas celle de llment

Polygone

3..*

Point

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

50/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.14 Exemple de diagramme de classes


Personne

*
organise

Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin /nbChoix

nbTotalParticipations nbTotalOrganisations nbParticipations nbOrganisations prenom nom

concerne

ScrutinPlagesHoraires
nbTotal

ScrutinPrfrences
nbTotal

concerne

* * *
Bulletin
pourOuContre

*
Prfrence
intitulPrfrence texteCommentairePrf

PlageHoraire
date heureDbut heureFin

*
Studs

concerne

Choix

/nbBulletinsPour /nbBulletinsContre

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

51/133

4 Analyse et conception, aspects statiques de la vue logique

4.2 Diagramme de classes

4.2.15 lments de mthodologie


Analysez le texte pour rechercher les noms qui sont des classes mtier et les verbes qui les relient qui sont des associations Construisez un premier diagramme de classes partir de ces noms Enrichissez ce diagramme avec les associations laide des verbes obtenus Anez le diagramme en liminant les associations redondantes, en simpliant le schma ds lors quil respecte les spcications de lnonc Ne cherchez les gnralisations et spcialisations qu la n, cest--dire lorsque les classes sont dj bien tablies Ne cherhez les agrgations qu la n Terminez cette premire version du diagramme de classes en ajoutant les multiplicits Dans une seconde itration seulement, ajoutez les attributs et les oprations Pensez vrier que tous les concepts mtier sont prsents Pensez vrier que vous pouvez raliser les cas dutilisation par parcours du graphe de classes
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 52/133

Introduction au langage de modlisation UML

4 Analyse et conception, aspects statiques de la vue logique

4.3 Diagramme dobjets

Illustration des liens entre objets dans un scnario / une conguration donne

:organise :Personne v1:ScrutinPlagesHoraires

:org

ani s

e
v2:ScrutinPlagesHoraires

:Bulletin

v3:ScrutinPrfrences

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

53/133

Introduction au langage de modlisation UML

4 Analyse et conception, aspects statiques de la vue logique

QCM
1. Quelles entits peuvent tre dessines dans un diagramme de classes ? (a) opration (b) acteur (c) gnralisation spcialisation (d) action (e) association 2. Une classe est-elle une instance dobjet ? 3. Dans un diagramme de classes, tous les attributs dune classe doivent-ils tre spcis ? 4. Sans multiplicit spcie explicitement, est-il suppos par dfaut * ? 5. La gnralisation spcialisation est-elle reprsente par une relation avec un triangle blanc une extrmit ? 6. Soit E une classe enfant de la classe parente P, tout objet de classe E peut-il tre utilis l o un objet de type P est attendu ?
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 54/133

Introduction au langage de modlisation UML

4 Analyse et conception, aspects statiques de la vue logique

4.4 Concepts avancs du diagramme de classes

4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7

Navigabilit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Classe dassociation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Composition : agrgation forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Classe abstraite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Classe paramtre / gnrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Exemple de diagramme de classes avanc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

55/133

4 Analyse et conception, aspects statiques de la vue logique

4.4 Concepts avancs du diagramme de classes

4.4.1 Navigabilit

Par dfaut, une association est bidirectionnelle Il est possible de rduire la porte en la rendant unidirectionnelle En gnral, ce choix se fait dans la phase de conception

Navigabilit

Personne organise

Scrutin

Personne organise

Scrutin

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

56/133

4 Analyse et conception, aspects statiques de la vue logique

4.4 Concepts avancs du diagramme de classes

4.4.2 Classe dassociation

crivain

Paragraphe

Note
contenu date

e:crivain n:Note

p:Paragraphe

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

57/133

4 Analyse et conception, aspects statiques de la vue logique

4.4 Concepts avancs du diagramme de classes

4.4.3 Composition : agrgation forte

La composition est une agrgation forte qui lie les cycles de vie entre le compos (ensemble) et les composants (lments) Le choix entre composition et agrgation peut tre pris lors de la phase de conception

Voiture

Roue Carrosserie Moteur


2..5

Porte Habitacle

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

58/133

4 Analyse et conception, aspects statiques de la vue logique

4.4 Concepts avancs du diagramme de classes

4.4.4 Classe abstraite


Un Mdia peut tre transport, dupliqu, ach. Le transport et la duplication sont indpendants du type de Mdia (copie de chiers). Par contre, tout Mdia peut tre ach et ce nest pas la mme chose pour le Livre, la Vido, le Graphique ou le Texte. Un Mdia ne peut pas dnir comment il sache tant quil ne sait pas ce quil est. Il nexiste pas dinstance de la classe Mdia. Un Mdia nexiste quen tant que Livre, Texte, Graphique ou Vido.
<< abstract >> Mdia
auteur titre dateCration transporter() dupliquer() afficher()

Nom de la classe en italique ou utilisation du strotype <<abstract>>

Livre

Texte
longueur

Graphique
largeur hauteur afficher()

Vido
dure afficher()

afficher()

afficher()

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

59/133

4 Analyse et conception, aspects statiques de la vue logique

4.4 Concepts avancs du diagramme de classes

4.4.5 Interface
Une interface nest pas une classe, cest une liste doprations Une interface, comme une classe abstraite, ne peut pas servir crer un objet Une interface exprime un savoir-faire, un contrat respecter par les classes qui ralisent cette interface
<<interface>> Dplaable
saPlace() avancer() reculer() monter() descendre()

Polygone
sommets saPlace() avancer() reculer() monter() descendre()

Personne
nom numScu saPlace() avancer() reculer() monter() descendre()

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

60/133

4 Analyse et conception, aspects statiques de la vue logique

4.4 Concepts avancs du diagramme de classes

4.4.6 Classe paramtre / gnrique


Classe paramtre / gnrique = paramtre par des types Attributs gnriques = typs avec le type en paramtre Oprations gnriques = arguments et / ou type de retour gnriques

Paramtre de type

ListeDeChoses
lment : E taille : Integer premierlment : E dernierlment : E ajouter(E) estPrsent(E) retirer(E) Attribut gnrique

Opration gnrique

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

61/133

4 Analyse et conception, aspects statiques de la vue logique

4.4 Concepts avancs du diagramme de classes

4.4.7 Exemple de diagramme de classes avanc


Personne

*
organise

Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin nbChoix

nbTotalParticipations nbTotalOrganisations nbParticipations nbOrganisations prenom nom

ScrutinPlagesHoraires
nbTotal

ScrutinPrfrences
nbTotal

concerne

concerne

* * *
Bulletin
pourOuContre

*
Prfrence
intitulPrfrence texteCommentairePrf

PlageHoraire
date heureDbut heureFin

*
Studs

concerne

Choix

/nbBulletinsPour /nbBulletinsContre

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

62/133

Introduction au langage de modlisation UML

5 Analyse et conception, aspects dynamiques de la vue logique

5.1 5.2 5.3 5.4 5.5

Rappel : diagrammes communs lanalyse et la conception . . . . . . . . . . . . . . . . . . . 64 Modlisation des aspects dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Diagramme de squence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Diagramme de communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Diagramme de machine tats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

63/133

Introduction au langage de modlisation UML

5 Analyse et conception, aspects dynamiques de la vue logique

5.1 Rappel : diagrammes communs lanalyse et la conception


Vue logique Aspects statiques = structure du problme et de la solution Diagrammes de classes et dobjets Aspects dynamiques = comportement des lments de la structure Diagrammes de squence, de communications et de machine tats
Diagrammes dinteractions (squences et communications) Diagramme de machine tats
Aspect dynamique
Aspect statique: paquetages, et fichiers

Diagramme de classes Diagramme dobjets


Aspect statique

Vue logique
Vue cas dutilisation Vue processus

Vue physique

Vue dveloppement

Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits Aspect rpartition: dploiement, noeuds, modules

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

64/133

Introduction au langage de modlisation UML

5 Analyse et conception, aspects dynamiques de la vue logique

5.2 Modlisation des aspects dynamiques


Points de dpart : Modles de la vue cas dutilisation + diagrammes de classes Objectif : modliser les algorithmes des cas dutilisation
Voter Consulter les rsultats dun scrutin Se retirer dun scrutin Crer un scrutin participant Ajouter un choix Supprimer un choix Ajouter un participant Retirer un participant Ouvrir un scrutin Fermer un scrutin organisateur Supprimer un scrutin

Studs
voter(...) : ... consulterRsultatsScrutin(...) : ... seRetirerScrutin(...) : ... crerScrutin(...) : ... ajoutChoixAScrutin(...) : ... suprimerChoixAScruting(...) : ... ajouterPersonneScruting(...) : ... retirerPersonneAScrutin(...) : ... ouvrirScrutin(...) : ... fermerScrutin(...) : ... supprimerScrutin(...) : ... retirerPersonneAScrutin(...) : ...

Personne

*
organise

Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin ScrutinPlagesHoraires nbChoix nbTotal

nbTotalParticipations nbTotalOrganisations nbParticipations nbOrganisations prenom nom

ScrutinPrfrences
nbTotal

concerne

concerne

* * *
Bulletin
pourOuContre

*
Prfrence
intitulPrfrence texteCommentairePrf

PlageHoraire
date heureDbut heureFin

Modles dynamiques
diagrammes de squence diagrammes de communications diagrammes de machines tats

*
Studs

concerne

Choix

/nbBulletinsPour /nbBulletinsContre

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

65/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.2 Modlisation des aspects dynamiques

5.2.1 Algorithme : orientations procdurale et objet

Orientation procdurale
int get_bulletin(personne *p) {

Orientation objet

Personne

*
cration, lecture, criture, suppression cration, lecture, criture, suppression cration, lecture, criture, suppression

*
organise

Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin ScrutinPlagesHoraires nbChoix nbTotal

struct personne {

...
} struct scrutin {

nbTotalParticipations nbTotalOrganisations nbParticipations nbOrganisations prenom nom

ScrutinPrfrences
nbTotal

concerne

concerne

...
} struct bulletin {

* * *
Bulletin
pourOuContre

*
Prfrence
intitulPrfrence texteCommentairePrf

...
}

PlageHoraire
date heureDbut heureFin

}
Studs

concerne

Choix

/nbBulletinsPour /nbBulletinsContre

getBulletin(Personne p) : boolen

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

66/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.2 Modlisation des aspects dynamiques

5.2.2 Modle dynamique de lanalyse et de la conception


Le modle dynamique montre le comportement du systme et lvolution des objets dans le temps Le modle dynamique identie les dirents vnements venant du monde externe et montre lenchanement dans le systme que provoquent ces vnements Objectifs du modle dynamique : Trouver les relations temporelles et vnementielles entre les objets Montrer les interactions entre les objets Dnir les tats des objets qui dterminent des ractions direntes face un vnement Les dirents diagrammes du modle dynamique de lanalyse et de la conception sont : Diagramme de squence : ordre des interactions entre objets Diagramme de communications : rpartition des interactions sur les liens entre objets Diagramme de machine tats : comportement des objets selon leurs tats
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 67/133

Introduction au langage de modlisation UML

5 Analyse et conception, aspects dynamiques de la vue logique

5.3 Diagramme de squence

5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6 5.3.7

Modliser lordre des interactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Participant, temps et message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Exemple de diagramme de squence Ouvrir un scrutin . . . . . . . . . . . . . . . . . . . . 71 Syntaxe et types de messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 Cration et suppression dobjets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Fragments de squence ref et opt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Fragment de squence loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

68/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.3 Diagramme de squence

5.3.1 Modliser lordre des interactions

Le diagramme de squence capture laspect temporel des changes entre participantsa Un diagramme de squence spcie le comportement dun cas dutilisation ou dune partie de celui-ci

a. Au sens UML du terme.


Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 69/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.3 Diagramme de squence

5.3.2 Participant, temps et message


Participants : acteur ou objet, voire classe

o1:C1
message opration()

o2:C2

Message / vnement
opration2()

Barre dactivation

Appel au mme objet

Ligne de vie

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

70/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.3 Diagramme de squence

5.3.3 Exemple de diagramme de squence Ouvrir un scrutin

:Studs
ouvrirScrutin(intitul)

Scrutin

s:Scrutin

s=chercher(intitul):Scrutin

avancerDateOuverture()

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

71/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.3 Diagramme de squence

5.3.4 Syntaxe et types de messages


Syntaxe complte attribut = nomMessage(arguments) : type_retour attribut peut tre un attribut de lobjet appelant ou une variable locale nom_message est une opration de lobjet appel Synchrone : lexpditeur est bloqu pendant le traitement Le retour dappel est optionnel (implicite) Asynchrone : lexpditeur continue son excution pendant le traitement du message
:Client
appelSynchrone()

:Serveur
appelAsynchrone() appelAsynchrone() appelAsynchrone() appelSynchrone2()

:AutreServeur

synchrone retour dappel asynchrone

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

72/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.3 Diagramme de squence

5.3.5 Cration et suppression dobjets

:Studs
creationScrutin(p) crationScrutin()

p:Personne

<< create(p) >>

s:Scrutin

<<new>>

c:Classe
create(arguments)

<< create() >>

<<delete>>

c:Classe
<< destroy() >>

c:Classe

<< create() >>

<<transient>>

c:Classe

<< destroy() >>

<< destroy() >>

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

73/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.3 Diagramme de squence

5.3.6 Fragments de squence ref et opt


ref : sous-squence dtaille dans un autre diagramme de squence opt : sous-squence optionnelle excute si condition de garde est vraie

:Studs
voter(p,s,c,poc) ref

p:Personne

s:Scrutin

c:Choix

Type du fragment
opt <<create(p,s, c,poc)>>

PeutVoter
[peutVoter = true]

b:Bulletin
voter(b)

Condition dentre

Contours du fragment

voter(b) voter(b,poc)

poc pour ou contre


Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 74/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.3 Diagramme de squence

5.3.7 Fragment de squence loop


loop : boucle un nombre maximum de fois tant que la condition est vraie loop(valeur initiale, maximum, condition)
:Studs p:Personne

pv = peutVoter(s) : boolean cb = getBulletins() : Collection de Bulletin av = setTo(false) loop(1,cb.size(),av)

:Bulletin
av = aDejaVote(s) : boolean sb = getScrutin() av = (s == sb) pv = not av

pv peut voter , av a vot


Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 75/133

Introduction au langage de modlisation UML

5 Analyse et conception, aspects dynamiques de la vue logique

QCM

1. Quelles entits peuvent tre dessines dans un diagramme de squence ? (a) fragment (b) instance (c) message (d) condition (e) opration 2. Un objet se distingue-t-il dune classe parce quil est soulign ? 3. Pendant un message synchrone, lexpditeur est-il bloqu en attente dune rponse ? 4. En rponse un message synchrone, lappel renvoie-t-il un seul retour dappel ? 5. Un fragment de squence est-il une partie optionnelle dune squence ? 6. Un objet se distingue-t-il dune classe parce quil est nomm ?
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 76/133

Introduction au langage de modlisation UML

5 Analyse et conception, aspects dynamiques de la vue logique

5.4 Diagramme de communications

5.4.1 5.4.2 5.4.3 5.4.4 5.4.5 5.4.6 5.4.7 5.4.8

Modliser les liens dinteractions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Participant, lien dinteraction, message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Message conditionn, messages en squence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 Messages embots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Itration de messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Collection et recherche dans une collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Messages concurrents * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 Choix entre squence et communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

77/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.4 Diagramme de communications

5.4.1 Modliser les liens dinteractions

Le diagramme de communications montre la structure spatiale des interactions entre participants Lattention est mise sur les liens dinteractions, qui ne sont quimplicites dans le diagramme de squence

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

78/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.4 Diagramme de communications

5.4.2 Participant, lien dinteraction, message

consulter(nom, prnom,intitulScrutin) 1:p=getParticipant(nom,prnom) : Personne

Personne

:Studs

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

79/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.4 Diagramme de communications

5.4.3 Message conditionn, messages en squence

consulter(nom, prnom,intitulScrutin) 1:p=getParticipant(nom,prnom) : Personne

Personne
2:s=vrifierParticipationScrutin(intitulScrutin):Scrutin [p!=null]

:Studs
3:cb=getBulletins(): Collection(Bulletin) [p!=null]

p:Personne

s:Scrutin

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

80/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.4 Diagramme de communications

5.4.4 Messages embots

consulter(nom, prnom,intitulScrutin) 1:p=getParticipant(nom,prnom) : Personne

Personne
2:s=vrifierParticipationScrutin(intitulScrutin):Scrutin [p!=null] 2.1:s=getScrutin(intitulScrutin)

:Studs
3:cb=getBulletins(): Collection(Bulletin) [s!=null]

Scrutin

p:Personne

s:Scrutin

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

81/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.4 Diagramme de communications

5.4.5 Itration de messages

consulter(nom, prnom,intitulScrutin) 1:p=getParticipant(nom,prnom) : Personne

Personne
2:s=vrifierParticipationScrutin(intitulScrutin):Scrutin [p!=null] 2.1:s=getScrutin(intitulScrutin)

:Studs
3:cb=getBulletins(): Collection(Bulletin) [s!=null]

Scrutin

p:Personne

s:Scrutin
4:*[i=1..cb.size()]afficherInfosBulletin()

4.i.1:afficherInfosParticipant(b) [b.personne == p]

b:Bulletin

litration i, manipulation de linstance b

4.i.2:afficherInfosChoix(b) [b.personne=p]

:Choix

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

82/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.4 Diagramme de communications

5.4.6 Collection et recherche dans une collection

op1() 1:p=getParticipant(nom,prnom) : Personne

Personne
2:*[!trouv]trouv=correspondre(intitul):boolen

:Studs

:Scrutin

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

83/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.4 Diagramme de communications

5.4.7 Messages concurrents *

op1() 1:op2()

Personne
2.a:op3() 2.a.1:op31()

:Studs
2.b:op4()

Scrutin

p:Personne

s:Scrutin

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

84/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.4 Diagramme de communications

5.4.8 Choix entre squence et communications


Les plus du diagramme de squence : Montrer lordre des interactions : le premier objectif du diagramme Montrer les messages asynchrones : dirents types de messages Montrer les parties optionnelles, les itrations : concept de fragments Les plus du diagramme de communications : Montrer les liens entre participants : le premier objectif du diagramme Lien visuel direct avec le graphe des classes du diagramme de classes Montrer les participants : lun des objectifs du diagramme Un peu plus facile construire et adapter : numrotation plutt que squencement Les deux sont quivalents pour : Montrer la signature des messages / oprations Montrer le paralllisme Diagramme de squence : concept de fragment de squence Diagramme de communications : numrotation des messages
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 85/133

Introduction au langage de modlisation UML

5 Analyse et conception, aspects dynamiques de la vue logique

QCM

1. Quelles entits peuvent tre dessines dans un diagramme de communications ? (a) fragment (b) message (c) condition (d) ligne de vie (e) lien dinteraction (f) transition 2. Est-ce que plusieurs messages peuvent transiter sur un mme lien dinteraction ? 3. Un diagramme de squence et un diagramme de communications peuvent-ils contenir des classes ?

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

86/133

Introduction au langage de modlisation UML

5 Analyse et conception, aspects dynamiques de la vue logique

5.5 Diagramme de machine tats

5.5.1 5.5.2 5.5.3 5.5.4 5.5.5 5.5.6 5.5.7 5.5.8

Modliser ltat des objets dune classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Types dtats, vnement et transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 vnement, condition et action dune transition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Transition implicite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Exemple de diagramme de machine tats de la classe Scrutin . . . . . . . . . . . . . . . 92 Actions lies un tat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 lments de mthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 tat composite * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

87/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.5 Diagramme de machine tats

5.5.1 Modliser ltat des objets dune classe

Certaines classes sont plus complexes et inuent de manire plus importante sur le comportement gnral du systme Il est important de dcrire les vnements provoquant les changements dtats des objets de ces classes Les changements dtats sont dcrits dans des machines tats Une machine tats dcrit les tats des objets dune classe Une machine tats est spcie par classe

Exemple de question de ltude de cas Studs : peut-on (dj, encore) voter ?

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

88/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.5 Diagramme de machine tats

5.5.2 Types dtats, vnement et transition


Ltat dun objet est li aux valeurs de ses attributs et des interactions avec les autres objets Il sagit de ne conserver que les tats signicatifs La rponse dun objet un vnement dpend de ltat de lobjet Un objet passe dans un tat donn par lvnement qui modie ses attributs, et quitte cet tat par un autre vnement qui les modie nouveau
Transition vnement

tat initial Rouge tat


vnement3 vnement4

tat final

vnement1 vnement2

Orange

Vert

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

89/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.5 Diagramme de machine tats

5.5.3 vnement, condition et action dune transition

Syntaxe complte vnement[condition]/action La transition est dclenche par un vnement La transition est eectivement franchie si la condition (sur ltat de lobjet) est valide Le franchissement dclenche lexcution de laction de la transition Cette action est considre comme immdiate et atomique Si plusieurs transitions sont franchissables, alors la transition eectivement franchie est choisie alatoirement

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

90/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.5 Diagramme de machine tats

5.5.4 Transition implicite

Transition implicite

EnConstruction
entre : constructeur()

NonCapture

des

tr

ion uct

de

ar la p

tie

EnDestruction
entre : destructeur()

destruction de la partie

Capture

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

capture par un un joueur adverse

91/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.5 Diagramme de machine tats

5.5.5 Exemple de diagramme de machine tats de la classe Scrutin

EnConstruction
entre : constructeur()

EnAttenteOuverture

[dateDuJour >= dateDebut]/annoncerOuverture() ouverture du scrutin par lorganisateur/ avancerDateOuverture()

ScrutinOuvert

clture du scrutin par lorganisateur/ avancerDateFermeture()

[dateDuJour > dateLimite]

EnDestruction
entre : destructeur()

[dateDuJour > dateLimiteExistence] suppression du scrutin par lorganisateur/ avancerDateLimiteExistence()

ScrutinFerm

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

92/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.5 Diagramme de machine tats

5.5.6 Actions lies un tat

Actions excutes lentre et la sortie dun tat Action excute pendant toute la dure de prsence dans ltat Action interne dclenche par un vnement

vnement[condition]/action

Transtion rflexive

tat n
entry: action en entre de ltat do: activit pendant ltat vnement1[condition1]: action1 vnement2[condition2]: action2 ... exit: action en sortie dtat

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

93/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.5 Diagramme de machine tats

5.5.7 lments de mthodologie

Seuls les tats quelque peu stables sont pertinents Les attributs constants (possdant toujours la mme valeur une fois que lobjet est construit) ninterviennent pas dans la recherche des tats Les attributs qui changent de valeur aident souvent dduire les tats possibles Et particulirement les attributs boolens Il est souvent intressant dinsrer de manire systmatique un tat de cration de lobjet (initialisation des attributs) et un tat de destruction Une attention particulire est porter sur les vnements et les actions

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

94/133

5 Analyse et conception, aspects dynamiques de la vue logique

5.5 Diagramme de machine tats

5.5.8 tat composite *

Rgions

Soustat

tat composite 1 Soustat 1

vnement 1

Soustat 3

vnement 2

Soustat 2

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

95/133

Introduction au langage de modlisation UML

5 Analyse et conception, aspects dynamiques de la vue logique

QCM

1. Quelles entits peuvent tre dessines dans un diagramme de machine tats ? (a) fragment (b) message (c) condition (d) objet (e) tat initial (f) transition

2. Une transition rexive peut-elle provoquer la squence dactions exit , action de la transition , entry , et do ?

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

96/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique


6.1 Rappel des phases du cycle de dveloppement en V . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 6.2 Conception des classes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .99 6.3 Rappel du diagramme de classes de ltude de cas Studs . . . . . . . . . . . . . . . . . . . . . . 100 6.4 Traduction des associations en attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.5 Traduction des agrgations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 6.6 Encapsulation : visibilit / accessibilit des attributs et des oprations . . . . . . . . . . 104 6.7 Traduction des attributs drivs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 6.8 Qualication de certaines associations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.9 Traduction des diagrammes dinteraction en algorithmes. . . . . . . . . . . . . . . . . . . . . . .110 6.10 Traduction des diagrammes de machine tats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 6.11 Traduction des relations de gnralisation spcialisation . . . . . . . . . . . . . . . . . . . . . . 113 6.12 Traduction de la classe Faade du systme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114 6.13 Traduction des classes dassociation * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 6.14 Mthodologie : une che par classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

97/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.1 Rappel des phases du cycle de dveloppement en V

Cahier des charges Saccorder sur ce qui doit tre fait dans le systme

Produit Le systme estil conforme au cahier des charges ?

Expression des besoins

Recette

Comprendre les besoins, les dcrire dans le systme

Analyse

Tests de validation

Le systme estil conforme lanalyse ?

Saccorder sur la manire dont le systme doit tre construit

Conception

Tests dintgration

Les diffrentes parties du logiciel fonctionnentelles correctement ensemble ?

Codage du rsultat de la conception

Implantation Tests unitaires

Pour un objet, chaque opration fonctionnetelle correctement ?

Code excutable

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

98/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.2 Conception des classes

Collecte et dfinition des attributs Collecte et dfinition des oprations Dcisions de conception

Modle structurel Diagrammes de classes de lanalyse

Diagrammes de classes de la conception + 1 fiche par classe

Modle dynamique Diagrammes de machine tats Diagrammes de communications Diagrammes de squence

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

99/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.3 Rappel du diagramme de classes de ltude de cas Studs


Personne

*
organise

Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin nbChoix

nbTotalParticipations nbTotalOrganisations nbParticipations nbOrganisations prenom nom

ScrutinPlagesHoraires
nbTotal

ScrutinPrfrences
nbTotal

concerne

concerne

* * *
Bulletin
pourOuContre

*
Prfrence
intitulPrfrence texteCommentairePrf

PlageHoraire
date heureDbut heureFin

*
Studs

concerne

Choix

/nbBulletinsPour /nbBulletinsContre

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

100/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.4 Traduction des associations en attributs

Attribut du type rfrence sur un objet de la classe lautre extrmit de lassociation Rfrence note @ Autant dattributs que de classes auxquelles elle est relie Association binaire = 1 attribut Association n-aire = n 1 attributs Association unidirectionnelle = pas dattribut du ct de la che Nom de lattribut = nom du rle ou forme nominale du nom de lassociation Traduction des multiplicits 1 = @Classe = Collection @Classe 0..N = Tableau[N] Classe Multiplicit avec tri = Collection ordonne @Classe

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

101/133

6 Conception, aspects langage et technique

6.4 Traduction des associations en attributs

6.4.1 Notation UML


Personne
nbTotalParticipations nbTotalOrganisations nbParticipations nbOrganisations prnom nom organise

* *

Scrutin
intitulScrutin texteCommentaireScrutin dateCration dateDbut dateLimite dateLimiteExistence ouvertureAvance fermetureAvance destructionAvance nbTotalScrutin nbChoix

concerne

*
Bulletin
pourOuContre

Traduction des associations de la classe Scrutin : organisateur : @Personne bulletins : Collection ordonne @Bulletin Pas de rfrence vers un objet Studs cause de la navigabilit

Studs

Concept de rfrence : partir dun objet Scrutin, il est possible daller vers un objet Personne et vers une collection dobjets Bulletin
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 102/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.5 Traduction des agrgations

Agrgation = association, avec les mmes rgles de traduction en attribut

Voiture

Roue Carrosserie Moteur


2..5

Porte Habitacle

attributs ajouts : roues : Tableau[4] de @Roue carosserie : @Carosserie moteur : @ Moteur

attributs ajouts : portes : Collection de @Porte habitacle : @Habitacle

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

103/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.6 Encapsulation : visibilit / accessibilit des attributs et des oprations

Doit-on voir / accder tous les attributs ou toutes les mthodes dun objet ? Non La classe dnit ce qui est visible / accessible Cest le principe de lencapsulation Un objet complexe ne peut tre utilis quau travers de ce qui est accessible Analogie : Il nest possible dutiliser une voiture qu travers son volant, son frein, son acclrateur, etc. Laccs au carburateur est impossible sauf par les mthodes qui le font de manire cohrente (mthode acclrer de lacclrateur )

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

104/133

6 Conception, aspects langage et technique

6.6 Encapsulation : visibilit / accessibilit des attributs et des oprations

6.6.1 Encapsulation avec le concept de Visibilit

Les attributs sont en gnral inaccessibles (secrets). Ils sont alors qualis de : private : notation UML Lecture ou modication uniquement possibles au travers des oprations (p.ex. les accesseurs : getAdresse(), setAdresse()) Les oprations sont en gnral accessibles par toutes les classes. Elles sont alors qualies de : public : notation UML + Certains attributs doivent tre accessibles par les classes enfants et inaccessibles aux autres classes. Ils sont alors qualis de : protected : notation UML # Certaines oprations peuvent cependant tre prives (factorisation interne de traitements) et certains attributs peuvent tre publics (mme si cela est non souhaitable selon le principe dencapsulation)

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

105/133

6 Conception, aspects langage et technique

6.6 Encapsulation : visibilit / accessibilit des attributs et des oprations

6.6.2 Notation UML


Scrutin
intitulScrutin : String texteCommentaireScrutin : String dateCration : Date dateDbutVote : Date dateLimiteVote : Date dateLimiteExistence : Date ouvertureAvance : boolen fermetureAvance : boolen destructionAvance : boolen # nbTotalScrutin : integer organisateur : @Personne bulletins : Collection ordonne @Bulletin + ajouterBulletin(Bulletin) : void + nAPasDejaVote(Participant) : boolean + getBulletins() : Collection @Bulletin + avancerDateOuverture(Date) : void + avancerDateFermeture(Date) : void + avancerDateLimiteExistence(Date) : void # afficherScrutin() : String + getScrutin(String) : Scrutin

Attribut priv

Attribut protg

Opration publique

Opration protge

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

106/133

6 Conception, aspects langage et technique

6.6 Encapsulation : visibilit / accessibilit des attributs et des oprations

6.6.3 Cas particulier des attributs/oprations protgs

Attribut/opration protg/e = Accessible par les classes enfants Inaccessible par les autres classes Par exemple, opration acherScrutin() de la classe Scrutin La classe ScrutinPlagesHoraires peut utiliser lopration de la classe Scrutin dans lalgorithme de son opration acherScrutin() : String afficherScrutin() { ... appela de lopration afficherScrutin() de classe parente ... }

a. Nous tudions dans quelques diapositives comment faire cet appel.


Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 107/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.7 Traduction des attributs drivs


Attribut driv = opration ou attribut selon quil est ou non recalcul chaque fois que sa valeur est lue (p.ex. dans un accesseur) Par exemple, deux possibilits pour lattribut nbBulletinsPour de la classe Choix 1. Dnition dun attribut dans la classe Choix Dans lopration voter(), incrmentation si le vote est pour Lorsque demand, fourniture de la valeur de lattribut Mais, attention la suppression dun bulletin ! 2. Dnition dune opration getNbBulletinsPour() Lopration getNbBulletinsPour parcourt tous les bulletins pour le calcul

Bulletin
pourOuContre

concerne

Choix

/nbBulletinsPour /nbBulletinsContre

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

108/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.8 Qualication de certaines associations

numroCompte et nom sont des attributs des classes CompteBancaire et Fichier, respectivement numroCompte et nom sont les clefs de leur classe respective Le choix de lassociation qualie peut tre laiss la phase de conception

Banque

numroCompte

gre CompteBancaire

gre Rpertoire
nom

Fichier

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

109/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.9 Traduction des diagrammes dinteraction en algorithmes


:Studs
opt <<create(p,s, c,poc)>>

p:Personne
[peut_voter = true]

s:Scrutin

c:Choix

b:Bulletin
voter(b) voter(b) voter(b)

Impact sur la classe Bulletin Attributs personne : @Personne scrutin : @Scrutin choix : @Choix pourOuContre : boolean

constructeur(@Personne p, @Scrutin s, @Choix c, boolean poc) { personne = p scrutin = s choix = c pourOuContre = poc p.voter(b); s.voter(b); c.voter(b) }
110/133

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.10 Traduction des diagrammes de machine tats


EnConstruction
entre : constructeur() [dateDuJour >= dateDbut] ouverture du scrutin par lorganisateur/ avancerDateOuverture()

ScrutinOuvert

clture du scrutin par lorganisateur/ avancerDateFermeture()

[dateDuJour > dateLimite]

EnDestruction
entre : dtruire

[dateDuJour > dateLimiteExistence] suppression du scrutin par lorganisateur/ avancerDateLimiteExistence()

ScrutinFerm

Attributs utiliss dans la machine tats dateDbut : date dateLimite : date dateLimiteExistence : date ouvert : boolean = false ouvertureAvance : boolean = false fermetureAvance : boolean = false destructionAvance : boolean = false

Valeur des attributs dans les dirents tats EnConstruction : valeurs par dfaut ScrutinOuvert : ouvert = true ScrutinFerm : ouvert = false et (dateJour > dateLimite ou fermetureA = true) EnDestruction : ouvert = false et (dateJour > dateLE ou destructionA = true)

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

111/133

6 Conception, aspects langage et technique

6.10 Traduction des diagrammes de machine tats

6.10.1 Quelques oprations de la classe Scrutin


constructeur(...) { ... vrification dateDbut < dateLimite < dateLimiteExistence } avancerDateOuverture() { ouvert = true ouvertureAvance = true } avancerDateFermeture() { ouvert = false fermetureAvance = true } avancerDateLimiteExistence() { destructionAvance = true } vrifierAuQuotidien() { si ((dateJour >= dateDbut) et (ouvertureAvance == false)) alors ouvert = true si ((dateJour > dateLimite) et (fermetureAvance == false)) alors ouvert = false si ((dateJour > dateLimiteExistence) et (destructionAvance == false)) alors en destruction }

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

112/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.11 Traduction des relations de gnralisation spcialisation


Dans les classes enfants, possibilit dappel au constructeur de la classe parente (si public ou protg) Par exemple, dans la classe enfant ScrutinPlageHoraire :
constructeur(...) { super(...) // appel au constructeur de la classe parente Scrutin nbTotal = 0 }

Lappel au constructeur de la classe parente doit tre la premire instruction Dans les classes enfants, possibilit dappel des oprations de la classe parente (si publique ou protge) Par exemple, dans la classe enfant ScrutinPlageHoraire :

afficherScrutin() { // opration redfinie dans la classe enfant super.afficherScrutin() // appel lopration de classe parente Scrutin afficher lcran la valeur de lattribut nbTotal }

Rappel : toutes les oprations protges de la classe parente sont accessibles dans les classes enfants
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 113/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.12 Traduction de la classe Faade du systme


Un constructeur et un destructeur (cf. traduction des agrgation et composition) Une opration publique par cas dutilisation

Studs

+ constructeur(...) + destructeur(...) + voter(...) + consulterRsultatScrutin(...) + seRetirerScrutin(...) + crerScrutin(...) + ajouterUnChoix(...) + supprimerUnChoix(...) + ajouterUnParticipant(...) + retirerUnParticipant(...) + ouvrirUnScrutin(...) + fermerUnScrutin(...) + supprimerUnScrutin(...)

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

114/133

6 Conception, aspects langage et technique

6.12 Traduction de la classe Faade du systme

6.12.1 Traduction des compositions *

Voiture

Roue Carrosserie Moteur


2..5

Porte Habitacle

Contrle du cycle de vie des lments : // possiblement constructeur() { cration objets Roue cration objet Carroserie cration objet Moteur } // obligatoirement destructeur() { destruction objets Roue destruction objet Carosserie destruction objet Moteur }

Contrle du cycle de vie des lments : // possiblement constructeur() { cration objets Porte cration objet Habitacle } desrtucteur() { // obligatoirement destruction objets Porte destruction objet Habitacle }

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

115/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.13 Traduction des classes dassociation *

Note
contenu date

crivain

Paragraphe

Traduction des multiplicits : 11 devient 11 et 11 ** devient 1* et *1 1* devient 1* et 11 *1 devient 11 et *1

crivain Note

Paragraphe

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

116/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

6.14 Mthodologie : une che par classe


Collecter dans une che par classe Tous les attributs Toutes les oprations Sources : cahier des charges, et diagrammes de classes, de machine tats, de communications et de squence Homognisation des noms : mme terme pour le mme concept mtier La conception est une prparation de la phase dimplantation Traduction des associations Attribut dassociation = rfrence Traduction des diagrammes dinteraction et de machine tats Dnition des algorithmes des oprations Traduction des gnralisations spcialisations Fixation de laccessibilit des attributs et des oprations Proprit dencapsulation

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

117/133

Introduction au langage de modlisation UML

6 Conception, aspects langage et technique

QCM
1. Pour traduire une association binaire, faut-il regarder le sens de lecture de lassociation ? 2. Une multiplicit 0..1 se traduit-elle par un attribut rfrence sur la classe lautre extrmit de lassociation binaire ? 3. La notation pour un attribut priv est-elle ? 4. tant donn une classe A contenant lattribut a et une classe B contenant la mthode b, si a est priv et b est publique, b peut-elle utiliser a ? 5. Un attribut driv peut-il tre traduit par un attribut ? 6. Un message dun diagramme de squence est-il la plupart du temps traduit en une opration prive ? 7. Le mot clef super permet-il dappeler une opration de la classe parente ?
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 118/133

Introduction au langage de modlisation UML

7 Conception, vues dveloppement et physique

7.1 7.2 7.3 7.4 7.5

Diagrammes de la vue dveloppement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 Diagramme de composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 Diagramme de paquetages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Diagramme de la vue physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Diagramme de dploiement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

119/133

Introduction au langage de modlisation UML

7 Conception, vues dveloppement et physique

7.1 Diagrammes de la vue dveloppement


Composant = partie de logiciel rutilisable et remplaable Paquetage = espace de nommage dlments de modlisation
Aspect dynamique : interactions (squences, communications), machines tats Aspect statique : classes, objets et paquetages

Diagramme de composants Diagramme de paquetages

Vue logique

Vue dveloppement
Vue cas dutilisation

Vue processus

Vue physique

Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits Aspect rpartition: dploiement noeuds, modules

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

120/133

Introduction au langage de modlisation UML

7 Conception, vues dveloppement et physique

7.2 Diagramme de composants

7.2.1 Composant, interfaces oertes et requises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 7.2.2 Composite, port, connecteurs de dlgation et dassemblage . . . . . . . . . . . . . . . . . 123

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

121/133

7 Conception, vues dveloppement et physique

7.2 Diagramme de composants

7.2.1 Composant, interfaces oertes et requises

<<component>>

<<component>>

<<component>>

Component2

Component1

Component3

Interfaces fournies / offertes

Interfaces requises

<<interface>> Interface1

<<component>>

<<interface>> Interface2

Component2

Relation de ralisation

Dpendance

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

122/133

7 Conception, vues dveloppement et physique

7.2 Diagramme de composants

7.2.2 Composite, port, connecteurs de dlgation et dassemblage

Ports

<<component>>

Composite1
<<component>> <<component>>

Primitif1

Composite2

Connecteurs de dlgation

Connecteurs dassemblage

Connecteurs de dlgation

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

123/133

Introduction au langage de modlisation UML

7 Conception, vues dveloppement et physique

7.3 Diagramme de paquetages

7.3.1 Paquetage, espace de nommage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 7.3.2 Relation entre paquetages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

124/133

7 Conception, vues dveloppement et physique

7.3 Diagramme de paquetages

7.3.1 Paquetage, espace de nommage

paquetage1

paquetage1::Classe1 Classe2
(paquetage1)

Classe6

Classe3
(from paquetage1)

Classe4

Classe5

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

125/133

7 Conception, vues dveloppement et physique

7.3 Diagramme de paquetages

7.3.2 Relation entre paquetages

Imbrication de paquetages = imbrication despaces de nommage Dpendance entre paquetages

paquetage1 paquetage2

paquetage4 paquetage3

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

126/133

Introduction au langage de modlisation UML

7 Conception, vues dveloppement et physique

7.4 Diagramme de la vue physique

Placement des logiciels sur les matriels

Aspect dynamique : interactions (squences, communications), machines tats Aspect statique : classes, objets et paquetages Aspect statique: paquetages, et fichiers

Vue logique

Vue dveloppement Vue cas dutilisation

Vue processus

Vue physique

Aspect fonctionnel: cas dutilisation, acteurs, liens de communication Aspect paralllisme: fils dexcution, processus, tches, activits

Diagramme de dploiement

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

127/133

Introduction au langage de modlisation UML

7 Conception, vues dveloppement et physique

7.5 Diagramme de dploiement

7.5.1 Nud et liaison de communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 7.5.2 Artefact et composant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 7.5.3 Dpendance entre artefacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

128/133

7 Conception, vues dveloppement et physique

7.5 Diagramme de dploiement

7.5.1 Nud et liaison de communication


Ce modle dnit le diagramme de larchitecture matrielle du systme Il reprsente les direntes machines et les logiciels Il montre les liens de communication entre ces direntes entits
Noeuds Lien de communication

<<device>>

<<liaison TCP/IP>>

<<device>>

processeur distributeur
<<liaison USB>> <<device>>

processeur ordinateur central distributeur de billets

<<liaison parallle>> <<liaison USB>>

<<liaison TCP/IP>>

<<device>>

<<device>>

<<device>>

imprimante

lecteur de carte

processeur banque

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

129/133

7 Conception, vues dveloppement et physique

7.5 Diagramme de dploiement

7.5.2 Artefact et composant

<<device>>

<<liaison TCP/IP>>

Serveur Stockage
<<deploy>> <<deploy>> <<component>>

<<execution environment>>

Serveur dapplication

StudsComponent
<<artefact>>

<<liaison HTTP>>

StudsBD

<<manifest>> <<device>> <<artefact>>

Studs Artefacts

TerminalUtilisateur Server StudsGUI

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

130/133

7 Conception, vues dveloppement et physique

7.5 Diagramme de dploiement

7.5.3 Dpendance entre artefacts

Dpendance entre artefacts Instance de nud

<<device>>

serveurVote1:ServeurVote
<<artefact>>

StudsGUI

Studs

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

131/133

Introduction au langage de modlisation UML

8 Conclusion

Modle pour apprhender la ralisation dun systme informatique Diagrammes UML qui permettent daider la rexion, la discussion (clients, architectes, dveloppeurs, etc.) Pas de solution unique mais un ensemble de solutions plus ou moins acceptables suivant les contraintes du client, et les logiciels et matriels disponibles Une solution acceptable est obtenue par itrations successives

Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002

132/133

Introduction au langage de modlisation UML

9 Bibliographie
Livres G. Booch, J. Rumbaugh, I. Jacobson, The Unied Modeling Language User Guide , 2nd edition, Addison-Wesley, 2005 B. Charroux, A. Osmani, Y. Thierry-Mieg, UML 2, Pratique de la modlisation , 2 dition, Pearson Education, 2008 J. Gabay, D. Gabay, UML 2 : analyse et conception , Dunod, 2008 P. Roques UML 2 par la pratique , 6 dition, Eyrolles, 2008 R. Miles et K. Hamilton, Learning UML 2.0 : A pragmatic Introduction to UML , OReilly, 2006 Object Management Group, OMG Unied Modeling Language, Infrastructure, Version 2.4.1 , OMG Document Number formal/2011-08-05, August 2011 Object Management Group, OMG Unied Modeling Language, Superstructure, Version 2.4.1 , OMG Document Number formal/2011-08-06, August 2011 D. Pilone, UML 2.0 Pocket Reference , OReilly, 2006 S.W. Ambler, The Elements of UML 2.0 Style , Cambridge University Press, 2005 URL : OMG UML at http://www.omg.org/spec/UML/
Tlcom SudParis D. Conan, C. Taconet, C. Bac Octobre 2013 CSC 4002 133/133