Professional Documents
Culture Documents
2011-2012
Chapitre I : Prambule
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
UML
2011-2012
1 / 197
Objectifs et prrequis
Prrequis
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
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)
UML
2011-2012
4 / 197
Rfrences
Rfrences
Webographie
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
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
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
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
UML
2011-2012
7 / 197
Quest-ce quUML ?
Dnition et contenu
Exemple
Un extrait du mtamodle dUML
UML
2011-2012
8 / 197
Quest-ce quUML ?
Dnition et contenu
UML
2011-2012
9 / 197
Quest-ce quUML ?
Dnition et contenu
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, . . .
UML
2011-2012
10 / 197
Chapitre II : Introduction
Quest-ce quUML ?
Diagrammes
Diagrammes UML
UML
2011-2012
11 / 197
Quest-ce quUML ?
Diagrammes
Quest-ce quUML ?
Diagrammes
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)
UML
2011-2012
13 / 197
Quest-ce quUML ?
Diagrammes
UML
2011-2012
14 / 197
Chapitre II : Introduction
Quest-ce quUML ?
Autres standards
Chapitre II : Introduction
Quest-ce quUML ? Modes dutilisation Historique Mise en uvre dUML Notions transversales
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
UML
2011-2012
16 / 197
Modes dutilisation
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
UML
2011-2012
17 / 197
Modes dutilisation
Reprsentation exhaustive de la conception Sert de rfrence pour les programmeurs Ncessite des outils volus
UML
2011-2012
18 / 197
Modes dutilisation
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)
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
UML
2011-2012
20 / 197
Historique
Avant UML
Quelques mthodes
Historique
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
UML
2011-2012
22 / 197
Historique
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
Cycles de dveloppement
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
UML
2011-2012
24 / 197
Cycles de dveloppement
Principales activits
Modlisation mtier Gestion des exigences Analyse et conception Implmentation Tests Dploiement Gestion des congurations Gestion de projet
UML
2011-2012
25 / 197
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
UML
2011-2012
26 / 197
Cycles de dveloppement
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
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
UML
2011-2012
28 / 197
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
UML
2011-2012
29 / 197
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
UML
2011-2012
30 / 197
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
UML
2011-2012
31 / 197
Processus uni
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
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
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
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
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
UML
2011-2012
36 / 197
Notions transversales
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
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
UML
2011-2012
38 / 197
10
11
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, . . . )
UML
2011-2012
39 / 197
Gnralits
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
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
UML
2011-2012
41 / 197
Gnralits
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
UML
2011-2012
42 / 197
Gnralits Besoins fonctionnels Cas dutilisation Diagramme de cas dutilisation Diagramme de squence systme Autres besoins
10
11
10
Besoins fonctionnels Cas dutilisation Diagramme de cas dutilisation Diagramme de squence systme
Besoins fonctionnels
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
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
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
UML
2011-2012
45 / 197
Besoins fonctionnels
Cas dutilisation
Besoins fonctionnels
Cas dutilisation
UML
2011-2012
47 / 197
Besoins fonctionnels
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.
UML
2011-2012
48 / 197
10
Besoins fonctionnels Cas dutilisation Diagramme de cas dutilisation Diagramme de squence systme
Besoins fonctionnels
UML
2011-2012
49 / 197
Besoins fonctionnels
Extrait dun diagramme de cas dutilisation pour ltude de cas stages Stphane Lopes (UVSQ/ISTY) UML 2011-2012 50 / 197
Besoins fonctionnels
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
UML
2011-2012
51 / 197
Besoins fonctionnels
UML
2011-2012
52 / 197
Besoins fonctionnels
UML
2011-2012
53 / 197
Besoins fonctionnels
UML
2011-2012
54 / 197
Besoins fonctionnels
UML
2011-2012
55 / 197
Besoins fonctionnels
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
UML
2011-2012
56 / 197
Besoins fonctionnels
UML
2011-2012
57 / 197
Besoins fonctionnels
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.
UML
2011-2012
58 / 197
10
Besoins fonctionnels Cas dutilisation Diagramme de cas dutilisation Diagramme de squence systme
Besoins fonctionnels
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
UML
2011-2012
59 / 197
Besoins fonctionnels
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
UML
2011-2012
60 / 197
Besoins fonctionnels
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
UML
2011-2012
61 / 197
Besoins fonctionnels
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, . . .
UML
2011-2012
62 / 197
Besoins fonctionnels
Exemple de DSS
UML
2011-2012
63 / 197
Besoins fonctionnels
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
UML
2011-2012
64 / 197
10
11
Autres besoins
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
UML
2011-2012
65 / 197
Autres besoins
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
UML
2011-2012
66 / 197
12
13
14
12
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
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)
UML
2011-2012
68 / 197
Gnralits
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
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.
UML
2011-2012
70 / 197
Gnralits
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
UML
2011-2012
71 / 197
12
Gnralits Diagramme de classes Introduction Classe Relations entre classes Diagramme dactivits
13
14
13
Diagramme de classes
Introduction
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
UML
2011-2012
72 / 197
13
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
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})
UML
2011-2012
74 / 197
Diagramme de classes
Classe
Exemple de classe
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)
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
13
Diagramme de 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
Exemple dassociation
UML
2011-2012
79 / 197
Diagramme de 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
UML
2011-2012
80 / 197
Diagramme de classes
Reprsentation des associations n-aires Stphane Lopes (UVSQ/ISTY) UML 2011-2012 81 / 197
Diagramme de 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 *
UML
2011-2012
82 / 197
Diagramme de classes
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
UML
2011-2012
83 / 197
Diagramme de classes
Agrgation et composition
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
UML
2011-2012
84 / 197
Diagramme de classes
12
Gnralits Diagramme de classes Diagramme dactivits Introduction Flot de contrle Flot de donnes Structuration des activits Interruption dactivits
13
14
14
Diagramme dactivits Introduction Flot de contrle Flot de donnes Structuration des activits Interruption dactivits
Diagramme dactivits
Introduction
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
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)
UML
2011-2012
87 / 197
Diagramme dactivits
Introduction
UML
2011-2012
88 / 197
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
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
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
UML
2011-2012
91 / 197
Diagramme dactivits
Flot 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
UML
2011-2012
92 / 197
Diagramme dactivits
Flot de contrle
UML
2011-2012
93 / 197
Diagramme dactivits
Flot de contrle
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
UML
2011-2012
94 / 197
Diagramme dactivits
Flot de contrle
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
UML
2011-2012
95 / 197
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
UML
2011-2012
96 / 197
Diagramme dactivits
Flot de donnes
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
UML
2011-2012
98 / 197
14
Diagramme dactivits Introduction Flot de contrle Flot de donnes Structuration des activits Interruption dactivits
Diagramme dactivits
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
UML
2011-2012
99 / 197
Diagramme dactivits
Exemple de partitions
UML
2011-2012
100 / 197
Diagramme dactivits
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
UML
2011-2012
101 / 197
Diagramme dactivits
UML
2011-2012
102 / 197
Diagramme dactivits
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 )
UML
2011-2012
103 / 197
Diagramme dactivits
UML
2011-2012
104 / 197
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)
UML
2011-2012
105 / 197
Diagramme dactivits
Interruption dactivits
Exemple de signaux
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
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
UML
2011-2012
108 / 197
15
16
15
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
UML
2011-2012
109 / 197
Gnralits
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, . . . )
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
UML
2011-2012
111 / 197
15
16
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
UML
2011-2012
112 / 197
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
UML
2011-2012
113 / 197
Exemple
Un diagramme de packages pour une architecture en couche
source : Layered application model diagram Stphane Lopes (UVSQ/ISTY) UML 2011-2012 114 / 197
Exemple
Trois faons de reprsenter limbrication
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
UML
2011-2012
116 / 197
Gnralits
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
UML
2011-2012
117 / 197
Gnralits
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
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
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
UML
2011-2012
119 / 197
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
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
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
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
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
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 )
UML
2011-2012
123 / 197
Spcication dexcution
Une barre de spcication dexcution marque lexcution dun traitement Elle est visualise par un rectangle sur une ligne de vie
UML
2011-2012
124 / 197
Exemple
Diagramme de squence
UML
2011-2012
125 / 197
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
UML
2011-2012
126 / 197
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
UML
2011-2012
127 / 197
Exemple
Les principaux cadres
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
UML
2011-2012
129 / 197
Exemple
Utilisation dinteraction
Interaction Use.
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
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
UML
2011-2012
131 / 197
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
UML
2011-2012
132 / 197
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
Ce diagramme reprsente le ot de contrle entre les interactions Cest un diagramme dinteraction mais il est galement proche du diagramme dactivit
UML
2011-2012
134 / 197
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 de temps
Le diagramme de temps met laccent sur la reprsentation des interactions dans le temps
UML
2011-2012
136 / 197
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
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
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
UML
2011-2012
139 / 197
Diagramme de classes
Exemple
Un diagramme de classes
UML
2011-2012
140 / 197
Diagramme de classes
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
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)
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
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
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
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)
UML
2011-2012
146 / 197
Exemple
Un diagramme de machine tats
UML
2011-2012
147 / 197
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
UML
2011-2012
148 / 197
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)
UML
2011-2012
149 / 197
Exemple
Un diagramme de machine tats
source : Behavioral state machine example - Bank ATM. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 150 / 197
22
23
24
22
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)
UML
2011-2012
151 / 197
22
23
24
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
Exemple
Un diagramme de composants
UML
2011-2012
153 / 197
22
23
24
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
UML
2011-2012
154 / 197
Exemple
Un diagramme de dploiement
source : An example of deployment diagram for web application. Stphane Lopes (UVSQ/ISTY) UML 2011-2012 155 / 197
25
26
27
25
26
27
Gnralits
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.
UML
2011-2012
157 / 197
25
26
27
Contraintes OCL
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.
UML
2011-2012
158 / 197
Contraintes OCL
Invariant
Un invariant exprime une condition toujours vrie pour un lment La syntaxe est inv: <prdicat>
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
UML
2011-2012
160 / 197
Contraintes OCL
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
UML
2011-2012
161 / 197
Contraintes OCL
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>
UML
2011-2012
162 / 197
Contraintes OCL
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()
UML
2011-2012
163 / 197
25
26
27
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(), . . .
UML
2011-2012
164 / 197
Type dni
Tout type dni dans un modle UML est utilisable avec OCL Pour les numrations, la syntaxe est <TypeEnumr>::<constante>
UML
2011-2012
165 / 197
Collection
OCL supporte les types de collection suivants Set ensemble au sens mathmatique Ordered Set ensemble ordonn Bag collection non ordonne Sequence collection ordonne
UML
2011-2012
166 / 197
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
UML
2011-2012
167 / 197
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
UML
2011-2012
168 / 197
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>)
UML
2011-2012
169 / 197
28
29
30
31
28
29
30
31
Introduction
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
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
UML
2011-2012
171 / 197
Introduction
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
UML
2011-2012
172 / 197
28
Introduction Mtaformalisme Introduction MOF EMF Mtaformalisme et UML Ingnierie dirige par les modles
29
30
31
29
Mtaformalisme
Introduction
Dnition
Un mtaformalisme est un modle dun mtamodle, i.e. un mtamtamodle Il dnit donc les concepts de base dun mtamodle
UML
2011-2012
173 / 197
29
Mtaformalisme
MOF
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
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
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
M0 M1 M2 M3
UML
2011-2012
177 / 197
29
Mtaformalisme
EMF
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
UML
2011-2012
178 / 197
28
Introduction Mtaformalisme Mtaformalisme et UML Mtamodle dUML et du MOF tendre UML Ingnierie dirige par les modles
29
30
31
30
Mtaformalisme et UML
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
UML
2011-2012
179 / 197
Mtaformalisme et UML
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
UML
2011-2012
180 / 197
Mtaformalisme et UML
Exemple
UML 2 Infrastructure
UML
2011-2012
181 / 197
Mtaformalisme et UML
Exemple
Le package Core
UML
2011-2012
182 / 197
Mtaformalisme et UML
Exemple
Diagramme de classes dni dans Core::Basic
UML
2011-2012
183 / 197
Mtaformalisme et UML
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, . . . )
UML
2011-2012
184 / 197
Mtaformalisme et UML
Exemple
Packages de UML 2 Infrastructure fusionn dans Classes::Kernel
UML
2011-2012
185 / 197
Mtaformalisme et UML
Exemple
Diagramme de classes dans Classes::Kernel
UML
2011-2012
186 / 197
Mtaformalisme et UML
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
UML
2011-2012
187 / 197
30
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
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)
UML
2011-2012
190 / 197
Mtaformalisme et UML
tendre UML
Exemple
Un prol UML pour EJB 3
UML
2011-2012
191 / 197
Mtaformalisme et UML
tendre UML
SysML System Modeling Language pour lingnierie de systme CWM Common Warehouse Metamodel pour lchange de mtadonnes BI UTP UML testing prole pour les tests
UML
2011-2012
192 / 197
28
29
30
31
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.
sur trois modles le modle des exigences le modle danalyse et de conception le modle de code
UML 2011-2012 193 / 197
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
UML
2011-2012
194 / 197
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, . . . )
UML
2011-2012
195 / 197
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.
UML
2011-2012
196 / 197
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
UML
2011-2012
197 / 197