You are on page 1of 261

UML

Le langage de modlisation uni

Stphane Lopes stephane.lopes@prism.uvsq.fr

2011-2012

Chapitre I : Prambule

Objectifs et prrequis Plan Rfrences

Objectifs et prrequis

Objectifs du cours

Prsenter la notation UML Suivre une progression proche dun processus de dveloppement Prsenter le langage OCL Aborder la mta-modlisation

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

1 / 197

Objectifs et prrequis

Prrequis

Connaissance des concepts objets

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

2 / 197

Plan

Plan gnral

Introduction Exprimer les besoins Modliser le domaine Spcier larchitecture de lapplication Conception OO Architecture de dploiement Langage OCL Mtamodlisation

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

3 / 197

Rfrences

Rfrences
Bibliographie

UML 2 et les design patterns, Craig Larman, Pearson, 2005 (UVSQ : 005.12 LAR) UML 2.0, Martin Fowler, CampusPress, 2004 (UVSQ : 005.12 FOW) UML 2 - de lapprentissage la pratique, Laurent Audibert, Ellipses, 2009 (UVSQ : 005.12 AUD) UML 2 par la pratique , Pascal Roques, Eyrolles, 2009 (UVSQ : 005.12 ROQ) MDA en action, Xavier Blanc, Eyrolles, 2005 (UVSQ : 005.12 BLA)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

4 / 197

Rfrences

Rfrences
Webographie

Ressources sur UML sur le site de lOMG


UML Infrastructure 2.4.1 (aot 2011) UML Superstructure 2.4.1 (aot 2011)

UML sur Wikipedia (fr, en) Le site UML en franais Cours UML 2 de Laurent Audibert sur Developpez.com Introduction to the Diagrams of UML 2.0, Scott W. Ambler, Agile Modeling Site UML-Diagrams Best Practices for Applying UML

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

5 / 197

Chapitre II : Introduction

Quest-ce quUML ? Modes dutilisation Historique Mise en uvre dUML Notions transversales

Chapitre II : Introduction

Quest-ce quUML ? Dnition et contenu Diagrammes Autres standards Modes dutilisation Historique Mise en uvre dUML Notions transversales

Chapitre II : Introduction

Quest-ce quUML ? Dnition et contenu Diagrammes Autres standards

Quest-ce quUML ?

Dnition et contenu

UML

Denition
UML (Unied Modeling Language) est un ensemble de notations graphiques sappuyant sur un mtamodle et permettant de spcier, visualiser et documenter des systmes logiciels orients-objet. UML est un standard contrl par lOMG (Object Management Group) UML est le fruit de lunication de plusieurs langages graphiques de modlisation objet

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

6 / 197

Quest-ce quUML ?

Dnition et contenu

Contenu

UML dnit une notation et un mtamodle La notation est la reprsentation graphique des modles Elle reprsente la syntaxe du langage de modlisation Le mtamodle apporte des lments complmentaires pour prciser la signication des notations, i.e. leur smantique Le mtamodle dUML est reprsent par des diagrammes de classes et des descriptions textuelles

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

7 / 197

Quest-ce quUML ?

Dnition et contenu

Exemple
Un extrait du mtamodle dUML

source : Sample UML Metamodel (eclipse)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

8 / 197

Quest-ce quUML ?

Dnition et contenu

Ce que nest pas UML

UML nest pas lA/COO


connatre UML nimplique pas de savoir analyser et concevoir un systme OO

UML nest pas une mthode


la prcication UML ne donne pas dindice sur la faon dutiliser les diagrammes

UML nest pas une approche formelle


les lments du langage ne sont pas dnis formellement

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

9 / 197

Quest-ce quUML ?

Dnition et contenu

UML ne sut pas

Tous les diagrammes UML ne sont pas utiles dans chaque application Il existe dautres documents utiles pour la description dune application
glossaires, enchanement des crans, . . .

Il ne faut pas confondre un modle et le diagramme le reprsentant


on reprsente gnralement un cas dutilisation par un document textuel

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

10 / 197

Chapitre II : Introduction

Quest-ce quUML ? Dnition et contenu Diagrammes Autres standards

Quest-ce quUML ?

Diagrammes

Diagrammes UML

UML dnit deux grandes familles de diagrammes


les diagrammes de structure spcient les aspects statiques dun systme les diagrammes de comportement sintressent aux aspects dynamiques dans cette catgorie, les diagrammes dinteraction dcrivent les changes entre objets

UML 2.4.1 (aot 2011) dnit 14 diagrammes

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

11 / 197

Quest-ce quUML ?

Diagrammes

Liste des diagrammes I


Activits processus mtier ou logique dune partie du systme Cas dutilisation relations entre les acteurs et les cas dutilisation Classes lments statiques du modle et leurs relations Communication intractions entre instances (organisation structurelle) Composants composants, interfaces et relations entre les lments du systme Dploiement architecture dexcution du systme Etats-transitions tats et changements dtat dun objet Objets instantan de la structure des objets Paquetages organisation des lments de modlisation Prol extension dUML Squence intractions entre instances (ordre des messages dans le temps)
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 12 / 197

Quest-ce quUML ?

Diagrammes

Liste des diagrammes II

Structure composite structure interne dun classeur avec ses points dintraction Temps changements dtats dun classeur dans le temps Vue densemble des interactions t de contrle dun systme ( grande chelle)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

13 / 197

Quest-ce quUML ?

Diagrammes

Structuration des diagrammes

source : UML diagrams overview (Wikipedia)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

14 / 197

Chapitre II : Introduction

Quest-ce quUML ? Dnition et contenu Diagrammes Autres standards

Quest-ce quUML ?

Autres standards

UML et les autres standards


BPMN Business Process Modeling Notation est une notation pour reprsenter lorchestration des processus mtier dune organisation EMF Eclipse Modeling Framework est une framework de modlisation de la fondation Eclipse proche de MDA MDA Model Driven Architecture est une approche du dveloppement logiciel sappuyant sur les modles et leurs transformations MOF Meta-Object Facility est un mtamtamodle propos par lOMG SYSML Systems Modeling Language est un prol UMl pour la description de systmes XMI XML Metadata Interchange permet lchange de modles MOF
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 15 / 197

Chapitre II : Introduction

Quest-ce quUML ? Modes dutilisation Historique Mise en uvre dUML Notions transversales

Modes dutilisation

Dirents modes dutilisation

UML peut tre utilis en pro-ingnierie ou en rtro-ingnierie selon trois modes : Esquisse support de discussion Plan spcication pour lquipe de programmeurs Spcication excutable spcication de la totalit du systme

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

16 / 197

Modes dutilisation

UML en mode esquisse

Les diagrammes servent de base la discussion Uniquement les aspects les plus importants Utilise un sous-ensemble de la syntaxe La syntaxe est parfois approximative Fait la main ou avec des outils simples

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

17 / 197

Modes dutilisation

UML en mode plan

Reprsentation exhaustive de la conception Sert de rfrence pour les programmeurs Ncessite des outils volus

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

18 / 197

Modes dutilisation

UML pour des spcications excutables

Permet dautomatiser la tche de programmation UML est alors vu comme un langage de programmation Ncessite des outils sophistiqus Approche MDA (Model Driven Architecture) et MDE (Model Driven Engineering)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

19 / 197

Chapitre II : Introduction

Quest-ce quUML ? Modes dutilisation Historique Mise en uvre dUML Notions transversales

Historique

Avant UML

Dbut des annes 90 Coexistence de plusieurs mthodes dA/COO Des concepts similaires sont reprsents par des notations varies

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

20 / 197

Historique

Avant UML
Quelques mthodes

OOAD, Grady Booch


Object-oriented analysis and design (OOAD), Grady Booch, Addison-Wesley, 1994

OOA/OOD, Peter Coad et Edward Yourdon


Object-Oriented Analysis, Peter Coad, Edward Yourdon, Yourdon Press, 1991 Object-Oriented Design, Peter Coad, Edward Yourdon, Yourdon Press, 1991

OOSE, Ivar Jacobson pour Objectory


Object-Oriented Software Engineering : A Use Case Driven Approach, Ivar Jacobson, Magnus Christerson, Patrik Jonsson, Gunnar Overgaard, Addison-Wesley, 1992

OMT, Jim Rumbaugh


Object-Oriented Modeling and Design, James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William Lorensen, Prentice Hall, 1991
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 21 / 197

Historique

Les prmisses dUML

En 1994, Rumbaugh rejoint Booch chez Rational En 1995, version 0.8 de la mthode unie , rachat dObjectory par Rational, Jacobson se joint lquipe En 1996, lOMG simplique dans le dveloppement de la mthode En 1997, Rational publie la version 1.0 dUML et la soumet lOMG

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

22 / 197

Historique

Historique des mthodes dA/COO

source : History of object-oriented methods and notations (Wikipedia) Stphane Lopes (UVSQ/ISTY) UML 2011-2012 23 / 197

Chapitre II : Introduction

Quest-ce quUML ? Modes dutilisation Historique Mise en uvre dUML Cycles de dveloppement Processus uni UML et processus uni Notions transversales

Chapitre II : Introduction

Mise en uvre dUML Cycles de dveloppement Processus uni UML et processus uni

Mise en uvre dUML

Cycles de dveloppement

Cycle de vie dune application

La gestion du cycle de vie dune application (Application lifecycle management ou ALM) est un processus continu de suivi dune application LALM regroupe la gestion de processus mtier et les processus de dveloppement logiciel Organise les activits de dveloppement tout au long de la vie dune application

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

24 / 197

Mise en uvre dUML

Cycles de dveloppement

Principales activits

Modlisation mtier Gestion des exigences Analyse et conception Implmentation Tests Dploiement Gestion des congurations Gestion de projet

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

25 / 197

Mise en uvre dUML

Cycles de dveloppement

Cycle linaire

Les activits sont enchanes avec peu de possibilits de retour en arrire Chaque activit est cense tre termine avant quune autre ne dmarre Cycle en cascade (annes 1970)
les livrables dune phase servent de point de dpart pour la suivante

Cycle en V (annes 1980)


chaque phase correspond une phase de validation

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

26 / 197

Mise en uvre dUML

Cycles de dveloppement

Cycle itratif et incrmental


Le processus global est un ensemble ditrations Chaque itration conduit une version excutable de lapplication qui peut tre teste Une itration peut introduire de nouveaux besoins Cycle en spirale
1 itration : dnir les objectifs, identier les risques, dvelopper et tester, plannier litration suivante

Processus uni
mthode pilote par les cas dutilisation, centre sur larchitecture, itrative et incrmentale

Mthode agile
Manifesto for Agile Software Development valeurs fondamentales : les individus et leurs interactions, des logiciels oprationnels, la collaboration avec les clients, ladaptation au changement quelques mthodes : Scrum, eXtreme Programming
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 27 / 197

Chapitre II : Introduction

Mise en uvre dUML Cycles de dveloppement Processus uni UML et processus uni

Mise en uvre dUML

Processus uni

Introduction

UP (Unied Process) est n de la fusion des travaux de Booch, Rumbaugh et Jacobson Lr processus uni fournit un cadre gnral quil faut instancier Le Rational UP en est la version commerciale la plus rpandue Dautres dclinaisons existent : Agile UP, Open UP

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

28 / 197

Mise en uvre dUML

Processus uni

Caractristiques

Pilot par les cas dutilisation la ralisation du logiciel sappuie sur les besoins fonctionnels Centr sur larchitecture les choix darchitecture sont cruciaux pour la russite du projet itratif et incrmental la priorit est donne aux cas dutilisation les plus risqus

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

29 / 197

Mise en uvre dUML

Processus uni

Phases

Inception (initialisation) dnition des objectifs et plannication laboration stabilisation de larchitecture, identication et limination des risques majeures Construction conception et ralisation des cas dutilisation Transition nalisation et livraison

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

30 / 197

Mise en uvre dUML

Processus uni

Disciplines

Une discipline est un ensemble dactivit qui produisent des artefacts Disciplines dingnierie (workows du processus)
Modlisation mtier Gestion des exigences Analyse et conception Implmentation Tests Dploiement

Disciplines de support (workows de soutien)


Gestion de la conguration et des changements Gestion de projet Environnement

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

31 / 197

Mise en uvre dUML

Processus uni

Phases, disciplines et itrations

source : Rational Unied Process Stphane Lopes (UVSQ/ISTY) UML 2011-2012 32 / 197

Chapitre II : Introduction

Mise en uvre dUML Cycles de dveloppement Processus uni UML et processus uni

Mise en uvre dUML

UML et processus uni

Mise en uvre dUML dans UP

Les disciplines dUP produisent des artefacts Certains de ces artefacts peuvent tre reprsents partiellement ou compltement par des diagrammes UML Un diagramme peut tre commenc durant une itration et complt par la suite Les artefacts et donc les diagrammes utiliss dpendent de la variante dUP choisie

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

33 / 197

Chapitre II : Introduction

Quest-ce quUML ? Modes dutilisation Historique Mise en uvre dUML Notions transversales

Notions transversales

Espace de noms

Un espace de noms (namespace) est un conteneur pour des lments nomms Un espace de noms peut tre contenu dans un autre espace de noms Un lment nomm peut tre rfrenc par son nom quali (namespace-name::element-name) Un espace de noms ne possde pas de reprsentation graphique

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

34 / 197

Notions transversales

Classeur
Un classeur (classier) permet de dcrire un ensemble dinstances possdant des caractristiques communes (proprits ou oprations) Un classeur est un espace de nom Il est possible de dnir des relations de gnralisation entre classeurs Un classeur est reprsent graphiquement par un rectangle contenant le nom du classeur et dventuels compartiments Le type de classeur peut apparatre entre guillemets avant son nom
Classe -attribut +operation() CasUtilisation <<use case>> CasUtilisation

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

35 / 197

Notions transversales

Paquetage
Un paquetage (package) est un espace de nom regroupant des lments Les paquetages peuvent tre imbriqus Il est reprsent comme une pochette onglet Le nom du paquetage apparat sur la pochette ou dans longlet
Application

Util

IHM

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

36 / 197

Notions transversales

Mot-cl, strotype et tagged value

Un mot-cl (keyword) est dnit dans le mtamodle UML et apparat entre guillemets ou entre accolades Un strotype (stereotype) fait partie des mcanismes dextension dUML Il prcise comment une mtaclasse existante est tendue par un prol Il est appliqu un lment de modle en le faisant apparatre entre guillemets devant le nom de llment Il peut possder des proprits Ces proprits apparaissent comme des couples (attribut, valeur) (tagged value) au niveau de linstance du strotype

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

37 / 197

Notions transversales

Note

Un commentaire (note) est un lment reprsentant une annotation textuelle Une note peut tre attache plusieurs lments Une note est reprsente par un rectangle corn et relie aux lments annots par une ligne pointille
Classe

Note sur la classe.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

38 / 197

Chapitre III : Exprimer les besoins

Gnralits Besoins fonctionnels Autres besoins

10

11

Chapitre III : Exprimer les besoins

Gnralits Besoins fonctionnels Autres besoins

10

11

Gnralits

Dnition

Les besoins sont les conditions quun projet doit satisfaire Dans une approche itrative, les besoins voluent durant le projet La collecte des besoins est une tche cruciale faisant appel direntes techniques (rdaction des cas dutilisation avec le client, ateliers dexpressions des besoins, . . . )

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

39 / 197

Gnralits

Classication des besoins


Lexemple du modle FURPS+

Functionality Fonctionnalit, capacits et scurit Usability Facteurs humains, aide et documentation Reliability Fiabilit, frquence des pannes, rcupration Performance Temps de rponse, disponibilit Supportability Adaptabilit, internationalisation, facilit de maintenance Implmentation Langages et outils, matriel Interface Interactions avec des systmes externes Exploitation Gestion du systme dans lenvironnement de production Conditionnement Aspects juridiques Licences

Intrt
Ces classications ont pour objectif dviter de ngliger un aspect du systme.
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 40 / 197

Gnralits

Expressions des besoins dans UP


Les artefacts

Modle de cas dutilisation dcrit les besoins fonctionnels Spcications supplmentaires exprime les besoins non fonctionnels Glossaire reprsente le dictionnaire de donnes Vision donne un aperu de haut niveau du projet Rgles mtier dcrivent les rgles du domaine non spciques une application

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

41 / 197

Gnralits

Analyse des besoins et UP


Phases dinception et dlaboration

La phase dinception nest pas la phase de dnition des besoins Cest une courte phase initiale qui permet de dterminer lopportunit du projet Elle comprend lanalyse
dune petite partie des besoins fonctionnelles, des besoins non fonctionnels critiques.

Les besoins sont ensuite enrichis durant la phase dlaboration voire de construction

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

42 / 197

Chapitre III : Exprimer les besoins

Gnralits Besoins fonctionnels Cas dutilisation Diagramme de cas dutilisation Diagramme de squence systme Autres besoins

10

11

Chapitre III : Exprimer les besoins

10

Besoins fonctionnels Cas dutilisation Diagramme de cas dutilisation Diagramme de squence systme

Besoins fonctionnels

Cas dutilisation

Quest quun cas dutilisation ?

Un cas dutilisation est une description textuelle de la faon dont des acteurs vont utiliser le systme pour atteindre un but Les cas dutilisation ne sont pas des diagrammes mais bien des textes

Remarque
Les cas dutilisation ne sont pas orients objet

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

43 / 197

Besoins fonctionnels

Cas dutilisation

Concepts
Sujet systme en cours dtude Acteur entit qui possde un comportement (personne ou systme) principal possde des buts quil atteint en utilisant le systme auxiliaire fournit un service au systme hors-champs est concern mais nest pas principal ou auxiliaire Scnario squence dactions et dinteractions entre un ou plusieurs acteurs et le systme. On parle aussi dinstance de cas dutilisation. Cas dutilisation collection de scnarios dcrivant la faon dont un ou plusieurs acteurs va utiliser le systme pour atteindre un but

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

44 / 197

Besoins fonctionnels

Cas dutilisation

Niveaux de dtails

abrg rsum succinct du scnario de base en un paragraphe informel un paragraphe par scnario dtaill les tapes et les variantes sont dtailles

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

45 / 197

Besoins fonctionnels

Cas dutilisation

Sections dun cas dutilisation I


Nom Nom du cas dutilisation (commence par un verbe). Primtre Le systme en cours de conception (cas dutilisation systme). Un cas dutilisation peut aussi dcrire les interactions au sein dun domaine (cas dutilisation mtier). Niveau But utilisateur ou sous-fonction (factorise les tapes communes plusieurs cas dutilisation). Acteur principal Atteint son but grce au systme. Parties prenantes et intrts Qui est concern par ce cas dutilisation ? Ce que a leur apporte. Prconditions Conditions initiales remplir pour que le cas dutilisation se droule. Garanties en cas de succs Ce qui est ralis (postconditions).
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 46 / 197

Besoins fonctionnels

Cas dutilisation

Sections dun cas dutilisation II


Scnario principal Scnario de succs ( happy path ) sans conditions ni branchements. Extensions Scnarios alternatifs de succs ou dchec. Ce sont des branches qui partent du scnario principal. Spcications particulires Besoins non fonctionnels directement lis au cas dutilisation. Liste de variantes des donnes et des technologies Mthdes dE/S et formats de donnes. Frquence doccurence Importance du cas dutilisation. Divers Questions ouvertes.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

47 / 197

Besoins fonctionnels

Cas dutilisation

Recommandation pour la rdaction de cas dutilisation

Utiliser le style essentiel : se concentrer sur lintention de lacteur et non sur lIHM. Rdiger avec concision. Rdiger des cas dutilisation en bote noire : ne pas dcrire le fonctionnement interne du systme (le comment) mais les responsabilits (le quoi). Doit tre centr sur les acteurs et leurs buts : les rsultats doivent avoir de la valeur pour les acteurs.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

48 / 197

Chapitre III : Exprimer les besoins

10

Besoins fonctionnels Cas dutilisation Diagramme de cas dutilisation Diagramme de squence systme

Besoins fonctionnels

Diagramme de cas dutilisation

Diagramme de cas dutilisation

Le diagramme de cas dutilisation dUML permet de reprsenter :


les noms de cas dutilisation, les acteurs, les relations entre acteur et cas dutilisation.

Il fait partie des diagrammes de comportement dUML

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

49 / 197

Besoins fonctionnels

Diagramme de cas dutilisation

Exemple de diagramme de cas dutilisation

Extrait dun diagramme de cas dutilisation pour ltude de cas stages Stphane Lopes (UVSQ/ISTY) UML 2011-2012 50 / 197

Besoins fonctionnels

Diagramme de cas dutilisation

Notations du diagramme de cas dutilisation

Un cas dutilisation est reprsent par une ellipse contenant le nom du cas dutilisation ou comme un classeur marqu par le strotype use case Un rectangle contenant les cas dutilisation et le nom du sujet modlis marque les limites du systme Les acteurs se trouvent lextrieur de ces limites Un acteur est reprsent par un symbole spcique ou par un classeur marqu par le strotype actor Des relations dassociation relient acteurs et cas dutilisation

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

51 / 197

Besoins fonctionnels

Diagramme de cas dutilisation

Relations entre cas dutilisation


Un cas dutilisation A inclut un cas B si le comportement dcrit par le cas A inclut le comportement du cas B Lorsque A est sollicit, B lest obligatoirement aussi Cette relation est reprsente par une dpendance (che pointille) de A vers B marque par le strotype include Un cas dutilisation A tend un cas B si le cas A peut tre appel au cours de lexcution de B Cette relation est reprsente par une dpendance de A vers B marque par le strotype extend Un cas dutilisation A est une gnralisation dun cas B si B est un cas particulier de A Cette relation est reprsente comme un lien dhritage entre B et A

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

52 / 197

Besoins fonctionnels

Diagramme de cas dutilisation

Exemple de relation dinclusion

Extrait dun diagramme de cas dutilisation pour ltude de cas stages

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

53 / 197

Besoins fonctionnels

Diagramme de cas dutilisation

Exemple de relation dextension

Extrait dun diagramme de cas dutilisation pour ltude de cas stages

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

54 / 197

Besoins fonctionnels

Diagramme de cas dutilisation

Exemple de gnralisation entre cas dutilisation

Extrait dun diagramme de cas dutilisation pour ltude de cas stages

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

55 / 197

Besoins fonctionnels

Diagramme de cas dutilisation

Relations entre acteurs

Un acteur A est une gnralisation dun acteur B si A peut se substituer B Cette relation est reprsente comme un lien dhritage entre B et A Tous les cas dutilisation accessibles A le sont aussi B

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

56 / 197

Besoins fonctionnels

Diagramme de cas dutilisation

Exemple de gnralisation entre acteurs

Extrait dun diagramme de cas dutilisation pour ltude de cas stages

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

57 / 197

Besoins fonctionnels

Diagramme de cas dutilisation

Recommandations propos du diagramme de cas dutilisation

Ne pas consacrer trop deorts aux diagrammes mais plutt aux descriptions textuelles Ce diagramme sert de table des matires graphique pour les cas dutilisation du systme et permet de visualiser les limites du systme Les relations dinclusion, dextension, . . . sont utiliser avec parcimonie : elles rendent le diagramme plus complexe et il est prfrable de se focaliser sur le texte.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

58 / 197

Chapitre III : Exprimer les besoins

10

Besoins fonctionnels Cas dutilisation Diagramme de cas dutilisation Diagramme de squence systme

Besoins fonctionnels

Diagramme de squence systme

Diagramme de squence systme

Un diagramme de squence systme (DSS) est un artefact illustrant les entres/sorties du systme Il fait parti du modle de cas dutilisation Le diagramme de squence dUML est bien adapt la reprsentation de cet artefact

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

59 / 197

Besoins fonctionnels

Diagramme de squence systme

Intrt des DSS

Un DSS explicite un scnario de cas dutilisation Il reprsente les vnements gnrs par les acteurs et leur ordre vis vis de systme Les systmes sont considrs comme des boites noires Un DSS est cr pour chaque scnario complexe dun cas dutilisation

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

60 / 197

Besoins fonctionnels

Diagramme de squence systme

Introduction au diagramme de squence UML

Un diagramme de squence fait parti des diagrammes dinteraction dUML Lobjectif des diagrammes dinteraction est de mettre en vidence le rle des participants ainsi que les messages changs Un diagramme de squence permet de reprsenter lordre des changes de messages entre des instances Dans un DSS, les instances reprsentent le systme et les acteurs Lors de la conception, les instances sont les objets logiciels de lapplication

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

61 / 197

Besoins fonctionnels

Diagramme de squence systme

Principaux concepts

Participant lment impliqu dans linteraction Ligne de vie reprsente un participant de linteraction Message description dune interaction vnement envoie/rception dun message, signal, . . .

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

62 / 197

Besoins fonctionnels

Diagramme de squence systme

Exemple de DSS

Diagramme de squence Tutorer un stage

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

63 / 197

Besoins fonctionnels

Diagramme de squence systme

Notation

Une ligne de vie est reprsente par un rectangle accroch une ligne verticale pointille Le rectangle contient le nom du participant et/ou son type (spar par : ) Un message est reprsent par une che en trait plein dirige vers la cible
pointe ouverte : message asynchrone pointe pleine : message synchrone

Un message synchrone peut tre suivi dune rponse (che en pointille) Un rectangle sur une ligne de vie marque lexcution dun traitement

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

64 / 197

Chapitre III : Exprimer les besoins

Gnralits Besoins fonctionnels Autres besoins

10

11

Autres besoins

Besoins non fonctionnels

Les besoins fonctionnels ne couvrent quune partie des besoins dune application Les besoins restant sont nomms besoins non fonctionnels La classication FURPS en montre dirents types (performance, . . . ) Ces besoins ne sont pas dcrits par le modle de cas dutilisation mais par dautres documents

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

65 / 197

Autres besoins

Expressions des besoins non fonctionnels dans UP


Les artefacts

Spcications supplmentaires capturent les autres besoins comme le packaging, les licences, . . . Glossaire reprsente le dictionnaire de donnes Vision communique les ides importantes du projet Rgles mtier dcrivent les rgles du domaine non spciques une application

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

66 / 197

Chapitre IV : Modliser le domaine

12

Gnralits Diagramme de classes Diagramme dactivits

13

14

Chapitre IV : Modliser le domaine

12

Gnralits Diagramme de classes Diagramme dactivits

13

14

Gnralits

Modlisation mtier

La modlisation mtier est une discipline de UP Elle rend compte de la structure et la dynamique de lorganisation o doit tre dploy un systme Le modle objet mtier (Business Objet Model ou BOM) est un artefact de cette discipline Il reprsente la fois les aspects statiques (modle du domaine) et dynamiques (modle des processus mtier) dun domaine

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

67 / 197

Gnralits

Modle du domaine

Le modle du domaine est un modle statique trs important en A/COO Il permet de visualiser les concepts mtier (classes conceptuelles) et leurs relations Il servira de source dinspiration pour un certain nombre dobjets logiciels Cet artefact UP peut re constitu dun ensemble de diagrammes de classes UML (sans opration)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

68 / 197

Gnralits

Ce que nest pas le modle du domaine

Il ne reprsente pas des objets logiciels Ce nest pas un ensemble de diagrammes dcrivant les classes logicielles Ce nest pas une reprsentation de la couche domaine dune architecture logicielle Ce nest pas un modle de donnes

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

69 / 197

Gnralits

Classe conceptuelle

Une classe conceptuelle est une entit du domaine tudi Elle comporte :
un nom qui identie le concept, une intension qui la dnit en terme de proprits, une extension qui prcise lensemble des instances de ce concept.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

70 / 197

Gnralits

Modle des processus mtier

Le modle des processus mtier (Business Process Model ou BPM) est un modle dynamique Il permet de visualiser lenchanement des activits dans un domaine donn Cet artefact UP peut tre constitu dun ensemble de diagrammes dactivits UML

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

71 / 197

Chapitre IV : Modliser le domaine

12

Gnralits Diagramme de classes Introduction Classe Relations entre classes Diagramme dactivits

13

14

Chapitre IV : Modliser le domaine

13

Diagramme de classes Introduction Classe Relations entre classes

Diagramme de classes

Introduction

Diagramme de classes UML

Un diagramme de classe dcrit les types des objets qui composent un systme et les dirents types de relations statiques qui les relient Dans le contexte de la modlisation mtier, ce diagramme sert de dictionnaire de donnes visuel

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

72 / 197

Chapitre IV : Modliser le domaine

13

Diagramme de classes Introduction Classe Relations entre classes

Diagramme de classes

Classe

Classe

Une classe est un classeur dcrivant un type dobjets Une classe possde des proprits et des oprations globalement nommes caractristiques Dans le modle du domaine, seules les proprits sont utilises

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

73 / 197

Diagramme de classes

Classe

Notation

Une classe est reprsente comme un rectangle comportant plusieurs compartiments Le premier compartiment montre le nom de la classe, le second ses proprits et le troisime les oprations Seul le compartiment du nom est obligatoire et dautres compartiments peuvent tre ajouts (responsabilits, exceptions) Le nom de la classe dbute par une majucule et peut tre quali par des espaces de noms La classe peut tre associe des mots-cls entre accolades aprs son nom ({abstract})

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

74 / 197

Diagramme de classes

Classe

Exemple de classe

Une classe de lapplication SIGS

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

75 / 197

Diagramme de classes

Classe

Proprit

Les proprits dcrivent les caractristiques structurelles dune classe Elles peuvent apparatre sur le diagramme sous la forme dattribut ou de terminaison dassociation (cf. section suivante)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

76 / 197

Diagramme de classes

Classe

Attribut
Un attribut apparat dans un compartiment dune classe sous la forme dune chane de caractres :
visibilit / nom : type multiplicit = valeurParDfaut {mots-cl}

Seul le nom est obligatoire La visibilit contrle laccs lattribut : public (+), protected (#), package (), private (-) Le caractre / prcise que lattribut est calcul La multiplicit prcise le nombre dinstances de lattribut Il est possible dindiquer une borne infrieure et une borne suprieure pour la multiplicit (* pour illimit) ([0..1], [1], [1..*], . . . ) Les mots-cl modient les caractristiques de lattribut ({readOnly}, ...) Un attribut de classe est reprsent en soulignant lattribut
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 77 / 197

Chapitre IV : Modliser le domaine

13

Diagramme de classes Introduction Classe Relations entre classes

Diagramme de classes

Relations entre classes

Association
Une association est un lien structurel entre deux (association binaire) ou plusieurs (association n-aire) classes Ce lien est visualis comme un trait continu reliant les classes Une che pointe sur la classe cible (type de la proprit) et exprime la navigabilit de lassociation La plupart des informations dun attribut peuvent tre utilises sur une terminaison dassociation (extrmit) Le nom et la multiplicit de la proprit apparassent prs de la che du ct cible Lassociation peut tre bidirectionnelle (che des deux cts) et reprsente une paire de proprits lies Une association peut aussi tre nomme avec un groupe verbal et le sens de lecture peut tre indiqu
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 78 / 197

Diagramme de classes

Relations entre classes

Exemple dassociation

Reprsentation des associations

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

79 / 197

Diagramme de classes

Relations entre classes

Association ou attribut

Les attributs sont en gnral utiliss pour des proprits simples (chane, date, boolen, . . . ) Les associations relient plutt des classes du domaine

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

80 / 197

Diagramme de classes

Relations entre classes

Association n-aire et classe dassociation

Reprsentation des associations n-aires Stphane Lopes (UVSQ/ISTY) UML 2011-2012 81 / 197

Diagramme de classes

Relations entre classes

Interprtation de la multiplicit

La multiplicit dune terminaison dassociation indique le nombre dobjets pouvant occuper la position de la terminaison Pour une association binaire, la multiplicit contraint le nombre dobjets de la classe cible, associ un objet de la classe source Pour une association n-aire, la multiplicit dune terminaison contraint le nombre dobjets de la classe lie cette terminaison, associ un n-1-uplet dinstances des autres participants La spcication de multiplicit (en particulier minimale) pour une association n-aire peut imposer des contraintes complexes percevoir se limiter une multiplicit minimale de 0 et maximale de 1 ou *

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

82 / 197

Diagramme de classes

Relations entre classes

Multiplicit et cardinalit dentit/association

Pour une association binaire, la notation de la multiplicit est inverse par rapport la notation de la cardinalit dentit/association Pour une association n-aire, les smantiques des deux notions sont direntes

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

83 / 197

Diagramme de classes

Relations entre classes

Agrgation et composition

Lagrgation et la composition reprsente une relation tout/partie Dans lagrgation,


le cycle de vie de lagrgat et des parties nest pas li, la navigabilit et la multiplicit ne sont pas contraintes.

Dans la composition,
le cycle de vie de lagrgat et des parties est li, la multiplicit ct agrgat est dau plus 1.

Graphiquement, lagrgation se reprsente par un losange vide et la composition par un losange plein du ct de lagrgat

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

84 / 197

Diagramme de classes

Relations entre classes

Exemple dagrgation et de composition

Reprsentation de lagrgation et de la composition Stphane Lopes (UVSQ/ISTY) UML 2011-2012 85 / 197

Chapitre IV : Modliser le domaine

12

Gnralits Diagramme de classes Diagramme dactivits Introduction Flot de contrle Flot de donnes Structuration des activits Interruption dactivits

13

14

Chapitre IV : Modliser le domaine

14

Diagramme dactivits Introduction Flot de contrle Flot de donnes Structuration des activits Interruption dactivits

Diagramme dactivits

Introduction

Diagramme dactivits UML

Un diagramme dactivit UML visualise un modle de traitements, i.e. lenchanement des activits dun processus Il permet de reprsenter la squence et le paralllisme Il peut tre utiliser pour modliser des processus mtier, des workows, des ots de donnes ou des algorithmes complexes

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

86 / 197

Diagramme dactivits

Introduction

Principaux concepts

Action traitement lmentaire Activit squence organise dactions Transition spcie lenchanement des traitements (ot de contrle)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

87 / 197

Diagramme dactivits

Introduction

Exemple de diagramme dactivits

Un diagramme dactivits pour lapplication SIGS

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

88 / 197

Chapitre IV : Modliser le domaine

14

Diagramme dactivits Introduction Flot de contrle Flot de donnes Structuration des activits Interruption dactivits

Diagramme dactivits

Flot de contrle

Activit et action

Une action est un traitement lmentaire (call operation, create, . . . ) Une action est reprsente par un nud action Une activit est un ensemble organis dactions et/ou de sous-activits Le ot dexcution est modlis par des nuds relis par des transitions Une activit est un comportement

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

89 / 197

Diagramme dactivits

Flot de contrle

Nud et transition

Un nud dactivit reprsente graphiquement les phases dune activits Il en existe trois types :
un nud action visualise une action, un nud objet visualise les changes de donnes, un nud de contrle modlise le ot dexcution.

Une transition reprsente le passage dune action une autre Elle est dclenche ds que laction source se termine, provoque le dbut de laction suivante et est instantane

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

90 / 197

Diagramme dactivits

Flot de contrle

Nuds de contrle

Les nuds de contrle modie le ot dexcution dune activit Il en existe plusieurs types : initial dbut dune activit n dactivit n dune activit n de ot n dun ot dexcution sans terminer lactivit dcision choix entre plusieurs ots fusion regroupement de plusieurs ots bifurcation dbut dactivits en parallle union synchronisation de plusieurs ots

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

91 / 197

Diagramme dactivits

Flot de contrle

Reprsentaton graphique des nuds de contrle

initial cercle plein n dactivit cercle plein entour dun cercle vide n de ot cercle barr dun X dcision/fusion losange vide bifurcation/union barre pleine

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

92 / 197

Diagramme dactivits

Flot de contrle

Exemple de diagramme dactivits

Un diagramme dactivits pour lapplication SIGS

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

93 / 197

Diagramme dactivits

Flot de contrle

Nud de dcision et de fusion

Un nud de dcision marque un choix entre plusieurs ots de sortie Chaque ot de sortie est conditionn par une garde (prdicat) Cette garde est value pour savoir quel ot est franchissable Lensemble des gardes doit normalement former une partition de lensemble des dcisions possibles
si aucune transition nest franchissable, le modle est mal form si plusieurs sont franchissables, le choix est non dterministe

Un nud de fusion regroupe plusieurs ots alternatifs en un seul

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

94 / 197

Diagramme dactivits

Flot de contrle

Nud de bifurcation et dunion

un nud de bifurcation (ou dbranchement) spare un ot en trant en plusieurs ots sortants concurrents un nud dunion (ou jointure) synchronise plusieurs ots en trants concurrents

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

95 / 197

Chapitre IV : Modliser le domaine

14

Diagramme dactivits Introduction Flot de contrle Flot de donnes Structuration des activits Interruption dactivits

Diagramme dactivits

Flot de donnes

Flot dobjets

Le ot dobjet reprsente explicitement les lments changs par les actions Sur le diagramme dactivit, on peut visualiser les paramtres dune action ainsi que les objets changs

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

96 / 197

Diagramme dactivits

Flot de donnes

Exemple de ots de donnes

Un diagramme dactivits pour lapplication SIGS

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

97 / 197

Diagramme dactivits

Flot de donnes

Nud objet
Un nud objet permet de reprsenter le ot dobjets changs entre les actions Il possde un nom, un type, une ventuelle liste dtats et dventuelles contraintes Il peut tre reprsent comme
un paramtre dentre ou de sortie dune action (petit carr sur la bordure dune action), un rectangle sur une transition prcisant lensemble des informations associes un tampon central (central buer) qui accepte plusieurs entres ou sorties dobjets un stockage de donnes (datastore) qui est un tampon central assurant la persistance

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

98 / 197

Chapitre IV : Modliser le domaine

14

Diagramme dactivits Introduction Flot de contrle Flot de donnes Structuration des activits Interruption dactivits

Diagramme dactivits

Structuration des activits

Partition

Une partition (ou couloir ou ligne deau) permet de regrouper les nuds dactivit Le regroupement peut se faire selon divers critres (responsable de laction, . . . ) La partition peut tre bidimensionnelle

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

99 / 197

Diagramme dactivits

Structuration des activits

Exemple de partitions

Un diagramme dactivits pour lapplication SIGS

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

100 / 197

Diagramme dactivits

Structuration des activits

Nud structur

Un nud structur reprsente une portion structure dune activit Graphiquement, cest un rectangle en trait pointill (strotype structured ) Il en existe quatre types :
squentiel (strotype sequence ) conditionnel (strotype conditional ) boucle (strotype loop ) zone dexpansion

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

101 / 197

Diagramme dactivits

Structuration des activits

Exemple de nud structur

Un diagramme dactivits pour lapplication SIGS

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

102 / 197

Diagramme dactivits

Structuration des activits

Zone dexpansion

Une zone dexpansion reprsente une activit sappliquant une collection dobjets La collection est passe en paramtre de la zone dexpansion et une collection est produite en sortie Un strotype prcise le fonctionnement de la zone ( parallel , iterative , stream )

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

103 / 197

Diagramme dactivits

Structuration des activits

Exemple de zone dexpansion

Un diagramme dactivits pour lapplication SIGS

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

104 / 197

Chapitre IV : Modliser le domaine

14

Diagramme dactivits Introduction Flot de contrle Flot de donnes Structuration des activits Interruption dactivits

Diagramme dactivits

Interruption dactivits

Signaux

Des nuds daction spcique permettent de manipuler des signaux Il en existe trois types :
rception dun signal (accept event) envoi dun signal (send signal) attente dun vnement temporel (accept time event)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

105 / 197

Diagramme dactivits

Interruption dactivits

Exemple de signaux

Un diagramme dactivits pour lapplication SIGS

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

106 / 197

Diagramme dactivits

Interruption dactivits

Exceptions

Les exceptions peuvent tre reprsentes sur le diagramme dactivit Une activit pouvant lever un exception lindique laide dun pin de sortie surmont dun petit triangle et prcisant le type de lexception Un gestionnaire dexception est une action possdant un pin dentre du type de lexception et les mmes pins de sortie que lactivit surveille Lactivit surveille est relie au gestionnaire par un trait en zigzag ou surmont dun zigzag

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

107 / 197

Diagramme dactivits

Interruption dactivits

Rgion interruptible

Une rgion interruptible est une zone dlimit dune activit dont le ot peut tre interrompue par un vnement nomm interruption Cette zone est dlimite par un rectangle pointill aux coins arrondis Lorsque linterruption se produit, lexcution se poursuit dans un gestionnaire dinterruption lmission de lvnement et le gestionnaire sont relis par un trait en zigzag

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

108 / 197

Chapitre V : Architecture de lapplication

15

Gnralits Diagramme de packages UML

16

Chapitre V : Architecture de lapplication

15

Gnralits Diagramme de packages UML

16

Gnralits

Dnition

Larchitecture logique dune application donne une vue globale de la conception dun systme Elle prcise les modules dans lequels vont tre cres les classes logicielles Elle nimplique pas de dcision technique (OS, distribution,. . . )
les dcisions techniques font parties de larchitecture de dploiement

En gnral, une application OO est compose de plusieurs couches (interface, mtier, . . . )

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

109 / 197

Gnralits

Principales couches dune architecture logique

Prsentation lments de linterface utilisateur (fentres, rapports, . . . ) Application gestion des interactions avec la couche prsentation, gestion des processus mtier, transformation de donnes Domaine rgles et services du domaine Infrastructure mtier services (ventuellement externe) lis au mtier Services techniques services techniques de haut niveau (persistance, scurit, journalisation, . . . ) Fondation services et bibliothques de bas niveau (I/E, threads, . . . )

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

110 / 197

Gnralits

Architecture dans UP

la spcication de larchitecture appartient au Modle de Conception (discipline Conception) reprsente sous la forme de diagramme de packages UML ou dans le Document dArchitecture Logiciel sappuie sur les Spcications Supplmentaires

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

111 / 197

Chapitre V : Architecture de lapplication

15

Gnralits Diagramme de packages UML

16

Diagramme de packages UML

Introduction

Un diagramme de package permet de rprsenter les couches, sous-systmes ou modules dun logiciel Il montre le regroupement dlment de modlisation (classes, cas dutilisation, autres packages, . . . ) Il visualise galement limbrication de modules

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

112 / 197

Diagramme de packages UML

Notation

Un package est reprsent par une sorte de pochette onglet Le nom du package apparat soit dans longlet, soit directement sur la pochette Le diagramme de package montre galement les dpendances entre package Une dpendance est visualise comme une che pointille (ligne de dpendance) partant du package dpendant vers le package dont il dpend Un package est aussi un espace de nom

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

113 / 197

Diagramme de packages UML

Exemple
Un diagramme de packages pour une architecture en couche

source : Layered application model diagram Stphane Lopes (UVSQ/ISTY) UML 2011-2012 114 / 197

Diagramme de packages UML

Exemple
Trois faons de reprsenter limbrication

source : Package org.hibernate

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

115 / 197

Chapitre VI : Conception OO

17

Gnralits Diagramme dinteraction UML Diagramme de classes Diagramme dobjets Diagramme de machine tats

18

19

20

21

Chapitre VI : Conception OO

17

Gnralits Diagramme dinteraction UML Diagramme de classes Diagramme dobjets Diagramme de machine tats

18

19

20

21

Gnralits

Dnition

La conception OO consiste identier les classes logicielles et leur attribuer des responsabilits Direntes approches concevoir en codant utilise par exemple des outils comme le refactoring (approche TDD) et des diagrammes en mode esquisse tracer des diagrammes et coder UML est un support de discussion et/ou de documentation tracer uniquement les diagrammes approche de type MDE La question est de savoir quels diagrammes apportent une valeur ajoute pour la conception OO

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

116 / 197

Gnralits

Modle objet statique et dynamique

Les modles dynamiques comme les diagrammes dinteraction UML reprsentent la logique comportementale Les modles statiques comme les diagrammes de classes ou dobjets UML visualisent la structure de lapplication Le plus dicile et le plus intressant est la ralisation du modle dynamique (cration dobjets, change de message, . . . ) Il faut pour cela identier les responsabilits des classes logicielles Ces modles sont en gnral raliss en parallle Tous ces modles font partis du Modle de Conception UP

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

117 / 197

Gnralits

Quelques techniques de conception OO

Conception pilot par les responsabilits


rchir la faon daecter des responsabilits aux objets ce quun objet sait et ce quil fait communaut dobjets responsables qui collaborent

Principes GRASP (General Responsibility Assignment Software Principles) Modles de conception GoF Cartes CRC (Classe-Responsabilit-Collaboration) ches cartonnes (une par classe) dtaillant les responsabilits et les collaborations

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

118 / 197

Chapitre VI : Conception OO
17

Gnralits Diagramme dinteraction UML Concepts communs Notation des diagrammes de squence Notation des diagrammes de communication Autres diagrammes dinteraction Diagramme de classes Diagramme dobjets Diagramme de machine tats

18

19

20

21

Diagramme dinteraction UML

Introduction
Un diagramme dinteraction reprsente un modle dynamique Son rle est de visualiser les objets interagissant par lintermdiaire de messages UML en propose quatre types
diagramme diagramme diagramme diagramme de de de de squence communication vue densemble des interactions temps

Remarque
Les diagrammes de squence ont dj t introduits dans la section sur les diagrammes de squence systme

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

119 / 197

Diagramme dinteraction UML

Diagramme de squence ou diagramme de communication ?

Diagramme de squence
+ reprsentation claire de lordonnancement des messages + notation riche - gestion du schma dicile

Diagramme de communication
+ gestion du schma simple - la numrotation rend plus dicile la lecture de lordre des messages - notation plus limite

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

120 / 197

Chapitre VI : Conception OO

18

Diagramme dinteraction UML Concepts communs Notation des diagrammes de squence Notation des diagrammes de communication Autres diagrammes dinteraction

Diagramme dinteraction UML

Concepts communs

Ligne de vie
Une ligne de vie (lifeline) reprsente un participant dans une interaction En gnral, une ligne de vie correspond une instance dune classe Une ligne de vie est reprsente graphiquement par un rectangle dans lequel se trouve le libell de llment Le libell peut prendre direntes formes : Convention instance anonyme de la classe Convention c1 : Convention instance nomme c1 conventions : List<Convention> instance de collection paramtre conventions[i] : Convention instance slectionne dans la collection collections Dans un diagramme de squence, le rectangle est connect une ligne vertical reprsentant le temps (de haut en bas)
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 121 / 197

Diagramme dinteraction UML

Concepts communs

Message

Une interaction entre participants est reprsente par un message Un message UML possde une syntaxe standard retour = message (param : TypeParam) : TypeRetour A part le nom du message, tous les lments sont optionnels

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

122 / 197

Chapitre VI : Conception OO

18

Diagramme dinteraction UML Concepts communs Notation des diagrammes de squence Notation des diagrammes de communication Autres diagrammes dinteraction

Diagramme dinteraction UML

Notation des diagrammes de squence

Message

Un message relie deux lignes de vie Un message est reprsent par une che en trait plein dirige vers la cible
pointe ouverte : message asynchrone pointe pleine : message synchrone

Un message synchrone peut tre suivi dune rponse (che en pointille) Linvocation dune mthode de classe a pour cible un participant instance de mtaclasse (strotyp metaclass )

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

123 / 197

Diagramme dinteraction UML

Notation des diagrammes de squence

Spcication dexcution

Une barre de spcication dexcution marque lexcution dun traitement Elle est visualise par un rectangle sur une ligne de vie

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

124 / 197

Diagramme dinteraction UML

Notation des diagrammes de squence

Exemple
Diagramme de squence

Sequence diagram major elements.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

125 / 197

Diagramme dinteraction UML

Notation des diagrammes de squence

Cration et destruction de participants

Un message de cration est reprsent par une che pointille La ligne de vie de lobjet cr est plac la hauteur du message de cration Un message de destruction est annot par le strotype destroy Le moment de la destruction dun participant et repr par une croix sur sa ligne de vie

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

126 / 197

Diagramme dinteraction UML

Notation des diagrammes de squence

Cadre

Un diagramme de squence peut comporter des cadres Un cadre permet de regrouper ensemble des changes de messages Un cadre comporte un oprateur et ventuellement une garde Les principaux oprateurs sont lalternative (alt), la boucle (loop), le fragment optionnel (opt), le paralllisme (par) et la rgion critique (region) Les cadres peuvent tre imbriqus

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

127 / 197

Diagramme dinteraction UML

Notation des diagrammes de squence

Exemple
Les principaux cadres

Combined fragments. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 128 / 197

Diagramme dinteraction UML

Notation des diagrammes de squence

Utilisation dinteraction

Une utilisation dinteraction est une rfrence une interaction au sein dune autre Les utilisations dinteraction sappuie sur deux cadres
un cadre tiquet sd suivi dun nom et contenant un diagramme classique un cadre tiquet ref contenant le nom de linteraction rfrence

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

129 / 197

Diagramme dinteraction UML

Notation des diagrammes de squence

Exemple
Utilisation dinteraction

Interaction Use.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

130 / 197

Chapitre VI : Conception OO

18

Diagramme dinteraction UML Concepts communs Notation des diagrammes de squence Notation des diagrammes de communication Autres diagrammes dinteraction

Diagramme dinteraction UML

Notation des diagrammes de communication

Lien

Un lien est une connexion entre deux objets Cest une instance dassociation Il est reprsent par une ligne continue entre les lignes de vie Plusieurs messages peuvent circuler sur le mme lien

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

131 / 197

Diagramme dinteraction UML

Notation des diagrammes de communication

Message

Un message est une expression associe une che pointant vers le destinataire Un numro de squence est associ chaque message Chaque numro prcise lordre dans lequel les messages sont changs ainsi que limbrication des appels Un message peut possder une garde

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

132 / 197

Diagramme dinteraction UML

Notation des diagrammes de communication

Exemple
Diagramme de squence

An example of communication diagram for online bookshop. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 133 / 197

Chapitre VI : Conception OO

18

Diagramme dinteraction UML Concepts communs Notation des diagrammes de squence Notation des diagrammes de communication Autres diagrammes dinteraction

Diagramme dinteraction UML

Autres diagrammes dinteraction

Diagramme de vue densemble des interactions

Ce diagramme reprsente le ot de contrle entre les interactions Cest un diagramme dinteraction mais il est galement proche du diagramme dactivit

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

134 / 197

Diagramme dinteraction UML

Autres diagrammes dinteraction

Exemple
Un diagramme de vue densemble des interactions

source : An example of interaction overview diagram for online shopping. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 135 / 197

Diagramme dinteraction UML

Autres diagrammes dinteraction

Diagramme de temps

Le diagramme de temps met laccent sur la reprsentation des interactions dans le temps

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

136 / 197

Diagramme dinteraction UML

Autres diagrammes dinteraction

Exemple
Un diagramme de temps

source : User Experience Website Latency. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 137 / 197

Chapitre VI : Conception OO

17

Gnralits Diagramme dinteraction UML Diagramme de classes Diagramme dobjets Diagramme de machine tats

18

19

20

21

Diagramme de classes

Diagramme de classes de conception

Remarque
Les diagrammes de classes ont dj t introduits dans la section sur la modlisation du domaine. Le Diagramme de Classes de Conception reprsente les classes logicielles dune application

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

138 / 197

Diagramme de classes

Oprations

Le troisime compartiment dune classe contient la signature des oprations supportes par la classe La syntaxe complte est la suivante : visibilit opration (liste de param.) : TypeRetour proprits Les proprits indiquent par exemple les exceptions lances par lopration, lindication dune opration abstraite, . . . Une mthode est limplmentation dune opration

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

139 / 197

Diagramme de classes

Exemple
Un diagramme de classes

source : Classes, interfaces, associations, usage, realization.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

140 / 197

Diagramme de classes

Gnralisation, classes abstraites et polymorphisme

La relation de gnralisation est reprsente par une ligne continue termine par une triangle blanc pointant sur la classe la plus gnrale Ce lien exprime une relation taxonomique entre une classe plus spcique et une classe plus gnrale Dans un diagramme de classes de conception, ce lien est assimil la notion dhritage dun langage de programmation Une classe ou une opration abstraite est annote avec le mot-cl {abstract} ou crite en italique

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

141 / 197

Diagramme de classes

Interface

Une interface est reprsente comme un classeur avec le strotype interface La ralisation dune interface par une classe est visualise par une ligne pointille termine par une triangle blanc pointant vers linterface Il est aussi possible dutiliser une notation abrge (socket)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

142 / 197

Diagramme de classes

Type de donnes
Un type de donnes UML est un classeur dont les instances sont identies uniquement par leurs valeurs (objet-valeur) Un type de donnes est reprsent par un rectangle avec le strotype dataType Un type de dones peut possder des attributs et des oprations Un type primitif est une type de donnes utilis pour reprsenter des valeurs atomiques (entier, ottant, . . . ) Un type primitif est visualis grce au strotype primitive Une numration est un type de donnes dont les valeurs sont dnies dans le modle Une numration apparat avec le strotype enumeration et peut possder un compartiment listant les valeurs

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

143 / 197

Chapitre VI : Conception OO

17

Gnralits Diagramme dinteraction UML Diagramme de classes Diagramme dobjets Diagramme de machine tats

18

19

20

21

Diagramme dobjets

Diagramme dobjets

Un diagramme dobjets montre des objets et les liens qui les relient Cest une instance dun diagramme de classe Il permet de reprsenter le contexte dune interaction, i.e. ltat de lapplication avant ou aprs une interaction Cest un instantan de ltat dun systme un instant donn Les objets sont reprsents par des rectangles contenant le nom de lobjet soulign

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

144 / 197

Diagramme dobjets

Exemple
Un diagramme dobjets

source : Instance specications, value specications, slots, and links. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 145 / 197

Chapitre VI : Conception OO

17

Gnralits Diagramme dinteraction UML Diagramme de classes Diagramme dobjets Diagramme de machine tats

18

19

20

21

Diagramme de machine tats

Diagramme de machine tats

Une machine tats prsente les tats intressants dun objet ainsi que son comportement face des vnements Un tat est visualis par un rectangle aux bords arrondis Une machine tat comporte en gnral un pseudo-tat initial et un tat nal (mme notation que pour le diagramme dactivit)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

146 / 197

Diagramme de machine tats

Exemple
Un diagramme de machine tats

source : High level behavioral state machine for bank ATM.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

147 / 197

Diagramme de machine tats

Transition

Une transition reprsente un changement dtat de llment modlis Elle peut comporter une tiquette (libell [garde]/activit) dont chaque composant est optionnel
libell est le nom de lvnement provoquant le changeent dtat garde conditionne le changement activit est un comportement qui se droule lors du changement

Une transition est reprsente par une che entre deux tats et porte le nom de lvnement qui la provoqu

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

148 / 197

Diagramme de machine tats

Activit interne

Un tat peut ragir des vnements par lintermdiaire dactivits internes Une activit interne est reprsente par une chane de caractres dans un tat (libell [garde]/activit)
la signication est la mme quune tiquette de transition

les vnements entry et exit permettent de dclencher une activit lors de lentre, respectivement la sortie, de ltat Un vnement do prcise que lactivit se droule en continue durant ltat (tat dactivit)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

149 / 197

Diagramme de machine tats

Exemple
Un diagramme de machine tats

source : Behavioral state machine example - Bank ATM. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 150 / 197

Chapitre VII : Architecture de dploiement

22

Gnralits Diagramme de composants UML Diagramme de dploiement UML

23

24

Chapitre VII : Architecture de dploiement

22

Gnralits Diagramme de composants UML Diagramme de dploiement UML

23

24

Gnralits

Architecture physique

Larchitecture de dploiement dune application reprsente son architecture physique Elle montre laectation dartefacts logiciels des machines physiques ansi que les communication entre ces artefacts Un diagramme de dploiement UML a pour rle de reprsenter cette architecture physique Elle appartient la Description de lArchitecture Logicielle de UP Le diagramme de composants quant lui permet de reprsenter grande chelle les lments dun systme Le diagramme de composants est utilis pour le dveloppement orient composants pour les architectures orientes services (SOA)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

151 / 197

Chapitre VII : Architecture de dploiement

22

Gnralits Diagramme de composants UML Diagramme de dploiement UML

23

24

Diagramme de composants UML

Composant
Un composant est une partie modulaire dun systme qui peut tre remplace Il dnit des interfaces fournies et requises En UML, il est possible de modliser les composants avec des classes et des interfaces La modlisation par composants a pour objectifs
de mettre laccent sur les interfaces, dinsister sur laspect modulaire, autonome et remplaable et sur la rutilisabilit.

Un composant est reprsent par un rectangle avec le strotype component ou un symbole spcique Une relation de dpendance est utilise pour montrer quun composant en utilise un autre
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 152 / 197

Diagramme de composants UML

Exemple
Un diagramme de composants

source : An example of component diagram for a retail website.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

153 / 197

Chapitre VII : Architecture de dploiement

22

Gnralits Diagramme de composants UML Diagramme de dploiement UML

23

24

Diagramme de dploiement UML

Introduction

Un diagramme de dploiement montre la rpartition des composants logiciels sur des composants physiques Un nud est une unit susceptible dhberger un logiciel
un quipement est un matriel un environnement dexcution est une plateforme dexcution

Un nud hberge des artefacts reprsentants des produits du dveloppement (excutables, bibliothques, chiers de conguration, ...) Une voie de communication montre les nuds communicant Le type de protocole peut tre prcis comme label de la voie de communication

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

154 / 197

Diagramme de dploiement UML

Exemple
Un diagramme de dploiement

source : An example of deployment diagram for web application. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 155 / 197

Chapitre VIII : Le langage de contraintes OCL

25

Gnralits Contraintes OCL Types et oprateurs OCL

26

27

Chapitre VIII : Le langage de contraintes OCL

25

Gnralits Contraintes OCL Types et oprateurs OCL

26

27

Gnralits

exprimer des contraintes en UML


Un contrainte est une restriction smantique sur un lment de modle qui limite les implmentations possibles dun systme UML permet dexprimer un certains nombres de contraintes structurelles comme les attributs, les types de relations ou la multiplicit de type comme les types des proprits diverses comme la visibilit, les classes abstraites ( abstract ) En complment, il est aussi possible dexprimer dautres contraintes en langage naturel, avec un langage de programmation ou avec un langage formel Un contrainte apparat dans un modle entre accolades et est place soit proximit de llment concern soit dans une note relie OCL (Object Constraint Language) est un langage formel dexpression de contraintes adapt aux modles UML
Stphane Lopes (UVSQ/ISTY) UML 2011-2012 156 / 197

Gnralits

Exemple
Contraintes OCL pour une application bancaire

context Compte inv : solde > 0 context Compte :: dbiter(somme : int) pre : somme > 0 post : solde = solde@pre - somme context Compte inv : banque.clients -> includes (propritaire)
source : Exemple dutilisation du langage de contrainte OCL sur lexemple bancaire.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

157 / 197

Chapitre VIII : Le langage de contraintes OCL

25

Gnralits Contraintes OCL Types et oprateurs OCL

26

27

Contraintes OCL

Contexte dune contrainte

Le contexte dune contrainte est llment de modle concern par cette contrainte Le contexte peut sexprimer de deux faons
en plaant la contrainte proximit de llment entre accolades, en utilisant la syntaxe context <lment> dans un document externe.

On peut utiliser la notation :: pour qualier le nom de llment

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

158 / 197

Contraintes OCL

Invariant

Un invariant exprime une condition toujours vrie pour un lment La syntaxe est inv: <prdicat>

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

159 / 197

Contraintes OCL

Prcondition et postcondition

Une prcondition exprime une condition qui doit tre vrie avant un appel de mthode La syntaxe est pre: <prdicat> Une postcondition exprime une condition qui doit tre vrie aprs un appel de mthode La syntaxe est post: <prdicat> lments particuliers utilisable dans lexpression
result est le rsultat de lopration <attribut>@pre est la valeur de lattribut avant lappel

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

160 / 197

Contraintes OCL

Rsultat dun opration

La contrainte body permet de spcier une expression dcrivant le rsultat dune opration La syntaxe est body: <expression> Le type de lexpression doit correspondre au type de retour de lopration

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

161 / 197

Contraintes OCL

Dnition dattribut et dopration

La contrainte let ...in permet de dnir des attributs pouvant tre utiliss dans lexpression suivant le in La syntaxe est let <attribut> = <expression> in <expression> La contrainte def permet de dnir des attributs ou des mthodes au niveau dun classeur La syntaxe est def <dclaration> = <expression>

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

162 / 197

Contraintes OCL

Initialisation et attribut calcul

La contrainte init dnit la valeur dune proprit La syntaxe est init: <expression> La contrainte derive exprime la valeur dun attribut calcul La syntaxe est derive: <expression>

Exemple
context Personne::marie : Boolean init: false context Personne::age : Integer derive: Date::current().getYear() - dateNaiss.getYear()

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

163 / 197

Chapitre VIII : Le langage de contraintes OCL

25

Gnralits Contraintes OCL Types et oprateurs OCL

26

27

Types et oprateurs OCL

Types et oprateurs prdnis

OCL supporte un ensemble de types et doprations classiques sur ces types Les types prdnis sont Boolean, Integer, Real et String Parmi les oprateurs, on trouve
pour les boolens, and, or, xor, not, implies et if ...then ...else ...endif pour les entiers et les ottants, +, -, . . . pour les chanes, concat(), size(), . . .

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

164 / 197

Types et oprateurs OCL

Type dni

Tout type dni dans un modle UML est utilisable avec OCL Pour les numrations, la syntaxe est <TypeEnumr>::<constante>

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

165 / 197

Types et oprateurs OCL

Collection

OCL supporte les types de collection suivants Set ensemble au sens mathmatique Ordered Set ensemble ordonn Bag collection non ordonne Sequence collection ordonne

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

166 / 197

Types et oprateurs OCL

Accs aux attributs, aux mthodes et navigation

Un attribut ou une opration est accessible par son nom ou en le prxant par self. La navigation sur une relation utilise la notation . prx par le nom du rle

Exemple
solde self.solde self.getSolde() self.propritaire.nom

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

167 / 197

Types et oprateurs OCL

Oprations prdnies

Les oprations suivantes sont applicables tous les objets oclIsTypeOf(<type>) exactement le mme type ? oclIsKindOf(<type>) le mme type ou un driv ? oclInState(<state>) dans ltat donn ? oclIsNew() cr pendant lopration ? oclAsType(<type>) conversion de type allInstances() retourne toutes les instances dun type

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

168 / 197

Types et oprateurs OCL

Manipulation de collections

Loprateur -> permet daccder aux caractristiques dune collection Quelques oprations supportes : size(), includes(<object>), isEmpty() Quelques oprations sur les membres dune collection
<collection>->select(<condition>) ltre la collection <collection>->forall(<condition>) et <collection>->exists(<condition>)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

169 / 197

Chapitre IX : Notions de mtamodlisation

28

Introduction Mtaformalisme Mtaformalisme et UML Ingnierie dirige par les modles

29

30

31

Chapitre IX : Notions de mtamodlisation

28

Introduction Mtaformalisme Mtaformalisme et UML Ingnierie dirige par les modles

29

30

31

Introduction

Quest-ce quun mtamodle ?

Un mtamodle dnit les lments utilisables dans un modle Il prcise la structure que doit avoir un modle le respectant LOMG utilise la notation des diagrammes de classes UML pour exprimer des mtamodles Un mtamodle ne dcrit pas (ou peu) la smantique dun modle Cette dernire est en gnral prcise en langage naturel

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

170 / 197

Introduction

Intrt de la mtamodlisation

Un mtamodle permet de dcrire que quest un modle valide Dnir des traitements (transformation par exemple) au niveau du mtamodle permet de les appliquer un ensemble de modles

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

171 / 197

Introduction

Modles dordre suprieur

On peut imaginer crer des mtamtamodles et des mta. . . mtamodles La question est de savoir o se trouve la limite Le principe consiste faire en sorte quun niveau soit auto-descriptif, i.e. il se dcrit lui-mme La rponse de lOMG est de dnir quatre niveaux

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

172 / 197

Chapitre IX : Notions de mtamodlisation

28

Introduction Mtaformalisme Introduction MOF EMF Mtaformalisme et UML Ingnierie dirige par les modles

29

30

31

Chapitre IX : Notions de mtamodlisation

29

Mtaformalisme Introduction MOF EMF

Mtaformalisme

Introduction

Dnition

Un mtaformalisme est un modle dun mtamodle, i.e. un mtamtamodle Il dnit donc les concepts de base dun mtamodle

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

173 / 197

Chapitre IX : Notions de mtamodlisation

29

Mtaformalisme Introduction MOF EMF

Mtaformalisme

MOF

Meta Object Facility

Le Meta Object Facility (MOF) est le mtaformalisme propos par lOMG Il est auto-descriptif Il dnit les concepts de classe, relation, . . . utiliss dans les mtamodle Cest lunique mtaformalisme de lOMG servant de base tous les mtamodles

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

174 / 197

Mtaformalisme

MOF

Niveaux du MOF

LOMG dnit quatre niveaux de modlisation M0 systme rel M1 modle du systme rel M2 mtamodle M3 mtamtamodle (M3) auto-descriptif

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

175 / 197

Mtaformalisme

MOF

Exemple
Les niveaux du MOF

source : Illustration of the Meta-Object Facility. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 176 / 197

Mtaformalisme

MOF

Modlisation quatre niveaux

M0 M1 M2 M3

OMG instances diag. de classes MM UML MOF

Lang. de prog. excution prog. grammaire EBNF

XML donnes relles donnes en XML schma XML XML

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

177 / 197

Chapitre IX : Notions de mtamodlisation

29

Mtaformalisme Introduction MOF EMF

Mtaformalisme

EMF

Eclipse Modeling Framework

Le projet Eclipse EMF est une variante du MOF pour Eclipse Ce projet fournit une infrastructure de gnration de code en se basant sur des modles A partir de modles exprims avec XMI, il est par exemple possible de gnrer des classes Java Le niveau M3 de EMF est nomm ECore

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

178 / 197

Chapitre IX : Notions de mtamodlisation

28

Introduction Mtaformalisme Mtaformalisme et UML Mtamodle dUML et du MOF tendre UML Ingnierie dirige par les modles

29

30

31

Chapitre IX : Notions de mtamodlisation

30

Mtaformalisme et UML Mtamodle dUML et du MOF tendre UML

Mtaformalisme et UML

Mtamodle dUML et du MOF

UML et le MOF

MOF 2 est le mtaformalisme de lOMG pour la description de mtamodles UML 2 est le mtamodle ddi la modlisation dapplications OO et bas sur le MOF Un sous-ensemble du diagramme de classe UML est utilise pour dnir le MOF La spcication UML 2 Infrastructure regroupe les dnitions communes UML et au MOF La spcication UML 2 Superstructure rutilise certaines parties de UML 2 Infrastructure

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

179 / 197

Mtaformalisme et UML

Mtamodle dUML et du MOF

UML 2 Infrastructure

La spcication UML 2 Infrastructure dnit un ensemble de packages la racine, on trouve les packages InfrastructureLibrary et PrimitiveTypes
InfrastructureLibrary dnit le mtalangage (package Core) et des mchanismes dextensions (package Prole) PrimitiveTypes regroupe des types de bases

Les packages peuvent tre rutiliss grce lopration de merge

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

180 / 197

Mtaformalisme et UML

Mtamodle dUML et du MOF

Exemple
UML 2 Infrastructure

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

181 / 197

Mtaformalisme et UML

Mtamodle dUML et du MOF

Exemple
Le package Core

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

182 / 197

Mtaformalisme et UML

Mtamodle dUML et du MOF

Exemple
Diagramme de classes dni dans Core::Basic

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

183 / 197

Mtaformalisme et UML

Mtamodle dUML et du MOF

UML 2 Superstructure

UML 2 Superstructure dnit les concepts ncessaires lensemble des diagrammes UML Il utilise lopration de merge pour importer des packages de UML 2 Infrastructure Il est dcoup en de nombreux packages (Classes, Components, Deployments, . . . )

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

184 / 197

Mtaformalisme et UML

Mtamodle dUML et du MOF

Exemple
Packages de UML 2 Infrastructure fusionn dans Classes::Kernel

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

185 / 197

Mtaformalisme et UML

Mtamodle dUML et du MOF

Exemple
Diagramme de classes dans Classes::Kernel

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

186 / 197

Mtaformalisme et UML

Mtamodle dUML et du MOF

MOF 2

MOF 2 a t dcompose en deux parties EMOF Essential MOF dcrit des mtamodles sans association CMOF Complete MOF dcrit des mtamodles avec association EMOF intgre le package Core::Basic de UML 2 Infrastructure CMOF intgre le package Core::Construct de UML 2 Infrastructure

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

187 / 197

Chapitre IX : Notions de mtamodlisation

30

Mtaformalisme et UML Mtamodle dUML et du MOF tendre UML

Mtaformalisme et UML

tendre UML

Prol UML

Les concepts gnriques dUML peuvent tre appliqus dans de nombreux domaines (application OO, mtamodle, schma de BD, ...) Le problme est alors de dterminer le sens du modle Un prol UML permet de prciser le sens de ces modles Il permet dadapter dynamiquement (sans changer le mtamodle) UML un domaine particulier Un prol UML dnit un ensemble de strotypes qui seront ensuite utiliss pour prciser la signaication de concepts UML

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

188 / 197

Mtaformalisme et UML

tendre UML

Vue densemble

source : Meta Meta Models, UML and Proles. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 189 / 197

Mtaformalisme et UML

tendre UML

Diagramme de prol

Un diagramme de prol est un diagramme de structure permettant de dnir des strotypes, des mots-cls ou des contraintes Un prol utilise la notation des packages avec le mot-cl profile Il peut uniquement introduire des strotypes, des mots-cls ou des contraintes sur des mtaclasses existantes Un strotype est reprsent comme une classe avec le strotype stereotype Le lien dextension entre un strotype et une mtaclasse est reprsent par une che continue termine par un triangle plein (association extension) Un strotype peut comporter des proprits (mots-cl)

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

190 / 197

Mtaformalisme et UML

tendre UML

Exemple
Un prol UML pour EJB 3

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

191 / 197

Mtaformalisme et UML

tendre UML

Quelques prols existants

SysML System Modeling Language pour lingnierie de systme CWM Common Warehouse Metamodel pour lchange de mtadonnes BI UTP UML testing prole pour les tests

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

192 / 197

Chapitre IX : Notions de mtamodlisation

28

Introduction Mtaformalisme Mtaformalisme et UML Ingnierie dirige par les modles

29

30

31

Ingnierie dirige par les modles

Introduction
Lingnierie dirige par les modles (Model-Driven Engineering ou MDE) est une approche pour le dveloppement logiciel sappuyant sur les modles et leurs transformations Lapproche Model-Driven Architecture (MDA) est la proposition de lOMG dans ce cadre MDA inclut plusieurs standards comme UML, MOF et XMI Les objectifs de MDA sont
laborer des modles perennes, indpendants des dtails techniques, permettre la gnration automatique du code, obtenir un gain de productivit.

MDA repose CIM PIM PSM

sur trois modles le modle des exigences le modle danalyse et de conception le modle de code
UML 2011-2012 193 / 197

Stphane Lopes (UVSQ/ISTY)

Ingnierie dirige par les modles

CIM

Le modle des exigences (Computation Independant Model ou CIM) spcie les exigences du client A partir de ces besoins, un lien de traabilit est maintenu tout au long du processus Ce modle ne comprend pas dinformation sur la ralisation de lapplication ou les traitements

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

194 / 197

Ingnierie dirige par les modles

PIM

Le modle danalyse et de conception (Platform Independant Model ou PIM) Ce modle dcrit les modules et sous-modules composant lapplication Il demeure indpendant de toute plateforme dimplmentation (JavaEE, .NET, PHP, . . . )

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

195 / 197

Ingnierie dirige par les modles

PSM

Le modle de code (Platform Specic Model ou PSM) dcrit limplmentation dune application sur une plateforme technique Il a pour objectif de faciliter la gnration de code Il sappuie sur les prols UML pour les plateformes.

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

196 / 197

Ingnierie dirige par les modles

Transformation de modles

MDA utilise la transformation de modles pour driver le PIM partir du CIM et le PSM partir du PIM Ces transformations sont galement modlises dans MDA

Stphane Lopes (UVSQ/ISTY)

UML

2011-2012

197 / 197

You might also like