uml présentation

261
UML Le langage de modélisation unifié Stéphane Lopes [email protected] 2011-2012

Upload: talalquider

Post on 30-Nov-2015

21 views

Category:

Documents


0 download

DESCRIPTION

Introduction à UML

TRANSCRIPT

Page 1: UML Présentation

UMLLe langage de modélisation unifié

Stéphane [email protected]

2011-2012

Page 2: UML Présentation

Chapitre I : Préambule

1 Objectifs et prérequis

2 Plan

3 Références

Page 3: UML Présentation

Objectifs et prérequis

Objectifs du cours

Présenter la notation UMLSuivre une progression proche d’un processus de développementPrésenter le langage OCLAborder la méta-modélisation

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 1 / 197

Page 4: UML Présentation

Objectifs et prérequis

Prérequis

Connaissance des concepts objets

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 2 / 197

Page 5: UML Présentation

Plan

Plan général

IntroductionExprimer les besoinsModéliser le domaineSpécifier l’architecture de l’applicationConception OOArchitecture de déploiementLangage OCLMétamodélisation

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 3 / 197

Page 6: UML Présentation

Références

RéférencesBibliographie

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 l’apprentissage à 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)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 4 / 197

Page 7: UML Présentation

Références

RéférencesWebographie

Ressources sur UML sur le site de l’OMGUML Infrastructure 2.4.1 (août 2011)UML Superstructure 2.4.1 (août 2011)

UML sur Wikipedia (fr, en)Le site UML en françaisCours UML 2 de Laurent Audibert sur Developpez.comIntroduction to the Diagrams of UML 2.0, Scott W. Ambler, AgileModelingSite UML-DiagramsBest Practices for Applying UML

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 5 / 197

Page 8: UML Présentation

Chapitre II : Introduction

4 Qu’est-ce qu’UML ?

5 Modes d’utilisation

6 Historique

7 Mise en œuvre d’UML

8 Notions transversales

Page 9: UML Présentation

Chapitre II : Introduction

4 Qu’est-ce qu’UML ?Définition et contenuDiagrammesAutres standards

5 Modes d’utilisation

6 Historique

7 Mise en œuvre d’UML

8 Notions transversales

Page 10: UML Présentation

Chapitre II : Introduction

4 Qu’est-ce qu’UML ?Définition et contenuDiagrammesAutres standards

Page 11: UML Présentation

Qu’est-ce qu’UML ? Définition et contenu

UML

DefinitionUML (Unified Modeling Language) est un ensemble de notationsgraphiques s’appuyant sur un métamodèle et permettant de spécifier,visualiser et documenter des systèmes logiciels orientés-objet.

UML est un standard contrôlé par l’OMG (Object ManagementGroup)UML est le fruit de l’unification de plusieurs langages graphiques demodélisation objet

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 6 / 197

Page 12: UML Présentation

Qu’est-ce qu’UML ? Définition et contenu

Contenu

UML définit une notation et un métamodèleLa notation est la représentation graphique des modèlesElle représente la syntaxe du langage de modélisationLe métamodèle apporte des éléments complémentaires pour préciserla signification des notations, i.e. leur sémantiqueLe métamodèle d’UML est représenté par des diagrammes de classeset des descriptions textuelles

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 7 / 197

Page 13: UML Présentation

Qu’est-ce qu’UML ? Définition et contenu

ExempleUn extrait du métamodèle d’UML

source : Sample UML Metamodel (eclipse)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 8 / 197

Page 14: UML Présentation

Qu’est-ce qu’UML ? Définition et contenu

Ce que n’est pas UML

UML n’est pas l’A/COOconnaître UML n’implique pas de savoir analyser et concevoir unsystème OO

UML n’est pas une méthodela précification UML ne donne pas d’indice sur la façon d’utiliser lesdiagrammes

UML n’est pas une approche formelleles éléments du langage ne sont pas définis formellement

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 9 / 197

Page 15: UML Présentation

Qu’est-ce qu’UML ? Définition et contenu

UML ne suffit pas

Tous les diagrammes UML ne sont pas utiles dans chaque applicationIl existe d’autres documents utiles pour la description d’uneapplication

glossaires, enchaînement des écrans, . . .Il ne faut pas confondre un modèle et le diagramme le représentant

on représente généralement un cas d’utilisation par un documenttextuel

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 10 / 197

Page 16: UML Présentation

Chapitre II : Introduction

4 Qu’est-ce qu’UML ?Définition et contenuDiagrammesAutres standards

Page 17: UML Présentation

Qu’est-ce qu’UML ? Diagrammes

Diagrammes UML

UML définit deux grandes familles de diagrammesles diagrammes de structure spécifient les aspects statiques d’unsystèmeles diagrammes de comportement s’intéressent aux aspects dynamiquesdans cette catégorie, les diagrammes d’interaction décrivent leséchanges entre objets

UML 2.4.1 (août 2011) définit 14 diagrammes

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 11 / 197

Page 18: UML Présentation

Qu’est-ce qu’UML ? Diagrammes

Liste des diagrammes I

Activités processus métier ou logique d’une partie du systèmeCas d’utilisation relations entre les acteurs et les cas d’utilisation

Classes éléments statiques du modèle et leurs relationsCommunication intéractions entre instances (organisation structurelle)Composants composants, interfaces et relations entre les éléments du

systèmeDéploiement architecture d’exécution du systèmeEtats-transitions états et changements d’état d’un objet

Objets instantané de la structure des objetsPaquetages organisation des éléments de modélisation

Profil extension d’UMLSéquence intéractions entre instances (ordre des messages dans le

temps)Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 12 / 197

Page 19: UML Présentation

Qu’est-ce qu’UML ? Diagrammes

Liste des diagrammes II

Structure composite structure interne d’un classeur avec ses pointsd’intéraction

Temps changements d’états d’un classeur dans le tempsVue d’ensemble des interactions flôt de contrôle d’un système (à grande

échelle)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 13 / 197

Page 20: UML Présentation

Qu’est-ce qu’UML ? Diagrammes

Structuration des diagrammes

source : UML diagrams overview (Wikipedia)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 14 / 197

Page 21: UML Présentation

Chapitre II : Introduction

4 Qu’est-ce qu’UML ?Définition et contenuDiagrammesAutres standards

Page 22: UML Présentation

Qu’est-ce qu’UML ? Autres standards

UML et les autres standards

BPMN Business Process Modeling Notation est une notation pourreprésenter l’orchestration des processus métier d’uneorganisation

EMF Eclipse Modeling Framework est une framework demodélisation de la fondation Eclipse proche de MDA

MDA Model Driven Architecture est une approche dudéveloppement logiciel s’appuyant sur les modèles et leurstransformations

MOF Meta-Object Facility est un métamétamodèle proposé parl’OMG

SYSML Systems Modeling Language est un profil UMl pour ladescription de systèmes

XMI XML Metadata Interchange permet l’échange de modèlesMOF

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 15 / 197

Page 23: UML Présentation

Chapitre II : Introduction

4 Qu’est-ce qu’UML ?

5 Modes d’utilisation

6 Historique

7 Mise en œuvre d’UML

8 Notions transversales

Page 24: UML Présentation

Modes d’utilisation

Différents modes d’utilisation

UML peut être utilisé en pro-ingénierie ou en rétro-ingénierie selon troismodes :

Esquisse support de discussionPlan spécification pour l’équipe de programmeurs

Spécification exécutable spécification de la totalité du système

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 16 / 197

Page 25: UML Présentation

Modes d’utilisation

UML en mode esquisse

Les diagrammes servent de base à la discussionUniquement les aspects les plus importantsUtilise un sous-ensemble de la syntaxeLa syntaxe est parfois approximativeFait « à la main » ou avec des outils simples

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 17 / 197

Page 26: UML Présentation

Modes d’utilisation

UML en mode plan

Représentation exhaustive de la conceptionSert de référence pour les programmeursNécessite des outils évolués

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 18 / 197

Page 27: UML Présentation

Modes d’utilisation

UML pour des spécifications exécutables

Permet d’automatiser la tâche de programmationUML est alors vu comme un langage de programmationNécessite des outils sophistiquésApproche MDA (Model Driven Architecture) et MDE (Model DrivenEngineering)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 19 / 197

Page 28: UML Présentation

Chapitre II : Introduction

4 Qu’est-ce qu’UML ?

5 Modes d’utilisation

6 Historique

7 Mise en œuvre d’UML

8 Notions transversales

Page 29: UML Présentation

Historique

Avant UML

Début des années 90Coexistence de plusieurs méthodes d’A/COODes concepts similaires sont représentés par des notations variées

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 20 / 197

Page 30: UML Présentation

Historique

Avant UMLQuelques méthodes

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

OOA/OOD, Peter Coad et Edward YourdonObject-Oriented Analysis, Peter Coad, Edward Yourdon, YourdonPress, 1991Object-Oriented Design, Peter Coad, Edward Yourdon, YourdonPress, 1991

OOSE, Ivar Jacobson pour ObjectoryObject-Oriented Software Engineering : A Use Case Driven Approach,Ivar Jacobson, Magnus Christerson, Patrik Jonsson, GunnarOvergaard, Addison-Wesley, 1992

OMT, Jim RumbaughObject-Oriented Modeling and Design, James Rumbaugh, MichaelBlaha, William Premerlani, Frederick Eddy, William Lorensen,Prentice Hall, 1991

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 21 / 197

Page 31: UML Présentation

Historique

Les prémisses d’UML

En 1994, Rumbaugh rejoint Booch chez RationalEn 1995, version 0.8 de la « méthode unifiée », rachat d’Objectorypar Rational, Jacobson se joint à l’équipeEn 1996, l’OMG s’implique dans le développement de la méthodeEn 1997, Rational publie la version 1.0 d’UML et la soumet à l’OMG

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 22 / 197

Page 32: UML Présentation

Historique

Historique des méthodes d’A/COO

source : History of object-oriented methods and notations (Wikipedia)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 23 / 197

Page 33: UML Présentation

Chapitre II : Introduction

4 Qu’est-ce qu’UML ?

5 Modes d’utilisation

6 Historique

7 Mise en œuvre d’UMLCycles de développementProcessus unifiéUML et processus unifié

8 Notions transversales

Page 34: UML Présentation

Chapitre II : Introduction

7 Mise en œuvre d’UMLCycles de développementProcessus unifiéUML et processus unifié

Page 35: UML Présentation

Mise en œuvre d’UML Cycles de développement

Cycle de vie d’une application

La gestion du cycle de vie d’une application (Application lifecyclemanagement ou ALM) est un processus continu de suivi d’uneapplicationL’ALM regroupe la gestion de processus métier et les processus dedéveloppement logicielOrganise les activités de développement tout au long de la vie d’uneapplication

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 24 / 197

Page 36: UML Présentation

Mise en œuvre d’UML Cycles de développement

Principales activités

Modélisation métierGestion des exigencesAnalyse et conceptionImplémentationTestsDéploiementGestion des configurationsGestion de projet

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 25 / 197

Page 37: UML Présentation

Mise en œuvre d’UML Cycles de développement

Cycle linéaire

Les activités sont enchaînées avec peu de possibilités de retour enarrièreChaque activité est censée être terminée avant qu’une autre nedémarreCycle en cascade (années 1970)

les livrables d’une phase servent de point de départ pour la suivanteCycle en V (années 1980)

à chaque phase correspond une phase de validation

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 26 / 197

Page 38: UML Présentation

Mise en œuvre d’UML Cycles de développement

Cycle itératif et incrémental

Le processus global est un ensemble d’itérationsChaque itération conduit à une version exécutable de l’application quipeut être testéeUne itération peut introduire de nouveaux besoinsCycle en spirale

1 itération : définir les objectifs, identifier les risques, développer ettester, plannifier l’itération suivante

Processus unifiéméthode pilotée par les cas d’utilisation, centrée sur l’architecture,itérative et incrémentale

Méthode agileManifesto for Agile Software Developmentvaleurs fondamentales : les individus et leurs interactions, des logicielsopérationnels, la collaboration avec les clients, l’adaptation auchangementquelques méthodes : Scrum, eXtreme Programming

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 27 / 197

Page 39: UML Présentation

Chapitre II : Introduction

7 Mise en œuvre d’UMLCycles de développementProcessus unifiéUML et processus unifié

Page 40: UML Présentation

Mise en œuvre d’UML Processus unifié

Introduction

UP (Unified Process) est né de la fusion des travaux de Booch,Rumbaugh et JacobsonLr processus unifié fournit un cadre général qu’il faut instancierLe Rational UP en est la version commerciale la plus répandueD’autres déclinaisons existent : Agile UP, Open UP

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 28 / 197

Page 41: UML Présentation

Mise en œuvre d’UML Processus unifié

Caractéristiques

Piloté par les cas d’utilisation la réalisation du logiciel s’appuie sur lesbesoins fonctionnels

Centré sur l’architecture les choix d’architecture sont cruciaux pour laréussite du projet

itératif et incrémental la priorité est donnée aux cas d’utilisation les plusrisqués

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 29 / 197

Page 42: UML Présentation

Mise en œuvre d’UML Processus unifié

Phases

Inception (initialisation) définition des objectifs et plannificationÉlaboration stabilisation de l’architecture, identification et élimination

des risques majeuresConstruction conception et réalisation des cas d’utilisation

Transition finalisation et livraison

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 30 / 197

Page 43: UML Présentation

Mise en œuvre d’UML Processus unifié

Disciplines

Une discipline est un ensemble d’activité qui produisent des artefactsDisciplines d’ingénierie (workflows du processus)

Modélisation métierGestion des exigencesAnalyse et conceptionImplémentationTestsDéploiement

Disciplines de support (workflows de soutien)Gestion de la configuration et des changementsGestion de projetEnvironnement

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 31 / 197

Page 44: UML Présentation

Mise en œuvre d’UML Processus unifié

Phases, disciplines et itérations

source : Rational Unified Process

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 32 / 197

Page 45: UML Présentation

Chapitre II : Introduction

7 Mise en œuvre d’UMLCycles de développementProcessus unifiéUML et processus unifié

Page 46: UML Présentation

Mise en œuvre d’UML UML et processus unifié

Mise en œuvre d’UML dans UP

Les disciplines d’UP produisent des artefactsCertains de ces artefacts peuvent être représentés partiellement oucomplétement par des diagrammes UMLUn diagramme peut être commencé durant une itération et complétépar la suiteLes artefacts et donc les diagrammes utilisés dépendent de la varianted’UP choisie

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 33 / 197

Page 47: UML Présentation

Chapitre II : Introduction

4 Qu’est-ce qu’UML ?

5 Modes d’utilisation

6 Historique

7 Mise en œuvre d’UML

8 Notions transversales

Page 48: UML Présentation

Notions transversales

Espace de noms

Un espace de noms (namespace) est un conteneur pour des élémentsnommésUn espace de noms peut être contenu dans un autre espace de nomsUn élément nommé peut être référencé par son nom qualifié(namespace-name::element-name)Un espace de noms ne possède pas de représentation graphique

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 34 / 197

Page 49: UML Présentation

Notions transversales

Classeur

Un classeur (classifier) permet de décrire un ensemble d’instancespossédant des caractéristiques communes (propriétés ou opérations)Un classeur est un espace de nomIl est possible de définir des relations de généralisation entre classeursUn classeur est représenté graphiquement par un rectangle contenantle nom du classeur et d’éventuels compartimentsLe type de classeur peut apparaître entre guillemets avant son nom

+operation()

Classe

-attributCasUtilisation

<<use case>> CasUtilisation

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 35 / 197

Page 50: UML Présentation

Notions transversales

Paquetage

Un paquetage (package) est un espace de nom regroupant desélémentsLes paquetages peuvent être imbriquésIl est représenté comme une pochette à ongletLe nom du paquetage apparaît sur la pochette ou dans l’onglet

Util IHM

Application

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 36 / 197

Page 51: UML Présentation

Notions transversales

Mot-clé, stéréotype et tagged value

Un mot-clé (keyword) est définit dans le métamodèle UML etapparaît entre guillemets ou entre accoladesUn stéréotype (stereotype) fait partie des mécanismes d’extensiond’UMLIl précise comment une métaclasse existante est étendue par un profilIl est appliqué à un élément de modèle en le faisant apparaître entreguillemets devant le nom de l’élémentIl peut posséder des propriétésCes propriétés apparaissent comme des couples (attribut, valeur)(tagged value) au niveau de l’instance du stéréotype

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 37 / 197

Page 52: UML Présentation

Notions transversales

Note

Un commentaire (note) est un élément représentant une annotationtextuelleUne note peut être attachée à plusieurs élémentsUne note est représentée par un rectangle corné et reliée aux élémentsannotés par une ligne pointillée

ClasseNote sur la classe.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 38 / 197

Page 53: UML Présentation

Chapitre III : Exprimer les besoins

9 Généralités

10 Besoins fonctionnels

11 Autres besoins

Page 54: UML Présentation

Chapitre III : Exprimer les besoins

9 Généralités

10 Besoins fonctionnels

11 Autres besoins

Page 55: UML Présentation

Généralités

Définition

Les besoins sont les conditions qu’un projet doit satisfaireDans une approche itérative, les besoins évoluent durant le projetLa collecte des besoins est une tâche cruciale faisant appel àdifférentes techniques (rédaction des cas d’utilisation avec le client,ateliers d’expressions des besoins, . . . )

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 39 / 197

Page 56: UML Présentation

Généralités

Classification des besoinsL’exemple du modèle FURPS+

Functionality Fonctionnalité, capacités et sécuritéUsability Facteurs humains, aide et documentationReliability Fiabilité, fréquence des pannes, récupération

Performance Temps de réponse, disponibilitéSupportability Adaptabilité, internationalisation, facilité de maintenanceImplémentation Langages et outils, matériel

Interface Interactions avec des systèmes externesExploitation Gestion du système dans l’environnement de productionConditionnementAspects juridiques Licences

IntérêtCes classifications ont pour objectif d’éviter de négliger un aspect dusystème.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 40 / 197

Page 57: UML Présentation

Généralités

Expressions des besoins dans UPLes artefacts

Modèle de cas d’utilisation décrit les besoins fonctionnelsSpécifications supplémentaires exprime les besoins non fonctionnels

Glossaire représente le dictionnaire de donnéesVision donne un aperçu de haut niveau du projet

Règles métier décrivent les règles du domaine non spécifiques à uneapplication

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 41 / 197

Page 58: UML Présentation

Généralités

Analyse des besoins et UPPhases d’inception et d’élaboration

La phase d’inception n’est pas la phase de définition des besoinsC’est une courte phase initiale qui permet de déterminer l’opportunitédu projetElle comprend l’analyse

d’une petite partie des besoins fonctionnelles,des besoins non fonctionnels critiques.

Les besoins sont ensuite enrichis durant la phase d’élaboration voirede construction

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 42 / 197

Page 59: UML Présentation

Chapitre III : Exprimer les besoins

9 Généralités

10 Besoins fonctionnelsCas d’utilisationDiagramme de cas d’utilisationDiagramme de séquence système

11 Autres besoins

Page 60: UML Présentation

Chapitre III : Exprimer les besoins

10 Besoins fonctionnelsCas d’utilisationDiagramme de cas d’utilisationDiagramme de séquence système

Page 61: UML Présentation

Besoins fonctionnels Cas d’utilisation

Qu’est qu’un cas d’utilisation ?

Un cas d’utilisation est une description textuelle de la façon dont desacteurs vont utiliser le système pour atteindre un butLes cas d’utilisation ne sont pas des diagrammes mais bien des textes

RemarqueLes cas d’utilisation ne sont pas orientés objet

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 43 / 197

Page 62: UML Présentation

Besoins fonctionnels Cas d’utilisation

Concepts

Sujet système en cours d’étudeActeur entité qui possède un comportement (personne ou système)

principal possède des buts qu’il atteint en utilisant lesystème

auxiliaire fournit un service au systèmehors-champs est concerné mais n’est pas principal ou

auxiliaireScénario séquence d’actions et d’interactions entre un ou plusieurs

acteurs et le système. On parle aussi d’instance de casd’utilisation.

Cas d’utilisation collection de scénarios décrivant la façon dont un ouplusieurs acteurs va utiliser le système pour atteindre un but

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 44 / 197

Page 63: UML Présentation

Besoins fonctionnels Cas d’utilisation

Niveaux de détails

abrégé résumé succinct du scénario de base en un paragrapheinformel un paragraphe par scénariodétaillé les étapes et les variantes sont détaillées

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 45 / 197

Page 64: UML Présentation

Besoins fonctionnels Cas d’utilisation

Sections d’un cas d’utilisation I

Nom Nom du cas d’utilisation (commence par un verbe).Périmètre Le système en cours de conception (cas d’utilisation

système). Un cas d’utilisation peut aussi décrire lesinteractions au sein d’un domaine (cas d’utilisation métier).

Niveau But utilisateur ou sous-fonction (factorise les étapescommunes à plusieurs cas d’utilisation).

Acteur principal Atteint son but grâce au système.Parties prenantes et intérêts Qui est concerné par ce cas d’utilisation ? Ce

que ça leur apporte.Préconditions Conditions initiales à remplir pour que le cas d’utilisation se

déroule.Garanties en cas de succès Ce qui est réalisé (postconditions).

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 46 / 197

Page 65: UML Présentation

Besoins fonctionnels Cas d’utilisation

Sections d’un cas d’utilisation II

Scénario principal Scénario de succès (« happy path ») sans conditions nibranchements.

Extensions Scénarios alternatifs de succès ou d’échec. Ce sont desbranches qui partent du scénario principal.

Spécifications particulières Besoins non fonctionnels directement liés aucas d’utilisation.

Liste de variantes des données et des technologies Méthdes d’E/S etformats de données.

Fréquence d’occurence « Importance » du cas d’utilisation.Divers Questions ouvertes.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 47 / 197

Page 66: UML Présentation

Besoins fonctionnels Cas d’utilisation

Recommandation pour la rédaction de cas d’utilisation

Utiliser le style « essentiel » : se concentrer sur l’intention de l’acteuret non sur l’IHM.Rédiger avec concision.Rédiger des cas d’utilisation en « boîte noire » : ne pas décrire lefonctionnement interne du système (le comment) mais lesresponsabilités (le quoi).Doit être centré sur les acteurs et leurs buts : les résultats doiventavoir de la valeur pour les acteurs.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 48 / 197

Page 67: UML Présentation

Chapitre III : Exprimer les besoins

10 Besoins fonctionnelsCas d’utilisationDiagramme de cas d’utilisationDiagramme de séquence système

Page 68: UML Présentation

Besoins fonctionnels Diagramme de cas d’utilisation

Diagramme de cas d’utilisation

Le diagramme de cas d’utilisation d’UML permet de représenter :les noms de cas d’utilisation,les acteurs,les relations entre acteur et cas d’utilisation.

Il fait partie des diagrammes de comportement d’UML

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 49 / 197

Page 69: UML Présentation

Besoins fonctionnels Diagramme de cas d’utilisation

Exemple de diagramme de cas d’utilisation

Extrait d’un diagramme de cas d’utilisation pour l’étude de cas stages

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 50 / 197

Page 70: UML Présentation

Besoins fonctionnels Diagramme de cas d’utilisation

Notations du diagramme de cas d’utilisation

Un cas d’utilisation est représenté par une ellipse contenant le nom ducas d’utilisation ou comme un classeur marqué par le stéréotype« use case »Un rectangle contenant les cas d’utilisation et le nom du sujetmodélisé marque les limites du systèmeLes acteurs se trouvent à l’extérieur de ces limitesUn acteur est représenté par un symbole spécifique ou par un classeurmarqué par le stéréotype « actor »Des relations d’association relient acteurs et cas d’utilisation

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 51 / 197

Page 71: UML Présentation

Besoins fonctionnels Diagramme de cas d’utilisation

Relations entre cas d’utilisation

Un cas d’utilisation A inclut un cas B si le comportement décrit par lecas A inclut le comportement du cas BLorsque A est sollicité, B l’est obligatoirement aussiCette relation est représentée par une dépendance (flêche pointillée)de A vers B marquée par le stéréotype « include »Un cas d’utilisation A étend un cas B si le cas A peut être appelé aucours de l’exécution de BCette relation est représentée par une dépendance de A vers Bmarquée par le stéréotype « extend »Un cas d’utilisation A est une généralisation d’un cas B si B est uncas particulier de ACette relation est représentée comme un lien d’héritage entre B et A

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 52 / 197

Page 72: UML Présentation

Besoins fonctionnels Diagramme de cas d’utilisation

Exemple de relation d’inclusion

Extrait d’un diagramme de cas d’utilisation pour l’étude de cas stages

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 53 / 197

Page 73: UML Présentation

Besoins fonctionnels Diagramme de cas d’utilisation

Exemple de relation d’extension

Extrait d’un diagramme de cas d’utilisation pour l’étude de cas stages

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 54 / 197

Page 74: UML Présentation

Besoins fonctionnels Diagramme de cas d’utilisation

Exemple de généralisation entre cas d’utilisation

Extrait d’un diagramme de cas d’utilisation pour l’étude de cas stages

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 55 / 197

Page 75: UML Présentation

Besoins fonctionnels Diagramme de cas d’utilisation

Relations entre acteurs

Un acteur A est une généralisation d’un acteur B si A peut sesubstituer à BCette relation est représentée comme un lien d’héritage entre B et ATous les cas d’utilisation accessibles à A le sont aussi à B

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 56 / 197

Page 76: UML Présentation

Besoins fonctionnels Diagramme de cas d’utilisation

Exemple de généralisation entre acteurs

Extrait d’un diagramme de cas d’utilisation pour l’étude de cas stages

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 57 / 197

Page 77: UML Présentation

Besoins fonctionnels Diagramme de cas d’utilisation

Recommandations à propos du diagramme de casd’utilisation

Ne pas consacrer trop d’efforts aux diagrammes mais plutôt auxdescriptions textuellesCe diagramme sert de table des matières graphique pour les casd’utilisation du système et permet de visualiser les limites du systèmeLes relations d’inclusion, d’extension, . . . sont à utiliser avecparcimonie : elles rendent le diagramme plus complexe et il estpréférable de se focaliser sur le texte.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 58 / 197

Page 78: UML Présentation

Chapitre III : Exprimer les besoins

10 Besoins fonctionnelsCas d’utilisationDiagramme de cas d’utilisationDiagramme de séquence système

Page 79: UML Présentation

Besoins fonctionnels Diagramme de séquence système

Diagramme de séquence système

Un diagramme de séquence système (DSS) est un artefact illustrantles entrées/sorties du systèmeIl fait parti du modèle de cas d’utilisationLe diagramme de séquence d’UML est bien adapté à la représentationde cet artefact

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 59 / 197

Page 80: UML Présentation

Besoins fonctionnels Diagramme de séquence système

Intérêt des DSS

Un DSS explicite un scénario de cas d’utilisationIl représente les évènements générés par les acteurs et leur ordre vis àvis de systèmeLes systèmes sont considérés comme des boites noiresUn DSS est créé pour chaque scénario complexe d’un cas d’utilisation

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 60 / 197

Page 81: UML Présentation

Besoins fonctionnels Diagramme de séquence système

Introduction au diagramme de séquence UML

Un diagramme de séquence fait parti des diagrammes d’interactiond’UMLL’objectif des diagrammes d’interaction est de mettre en évidence lerôle des participants ainsi que les messages échangésUn diagramme de séquence permet de représenter l’ordre deséchanges de messages entre des instancesDans un DSS, les instances représentent le système et les acteursLors de la conception, les instances sont les objets logiciels del’application

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 61 / 197

Page 82: UML Présentation

Besoins fonctionnels Diagramme de séquence système

Principaux concepts

Participant élément impliqué dans l’interactionLigne de vie représente un participant de l’interaction

Message description d’une interactionÉvènement envoie/réception d’un message, signal, . . .

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 62 / 197

Page 83: UML Présentation

Besoins fonctionnels Diagramme de séquence système

Exemple de DSS

Diagramme de séquence « Tutorer un stage »

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 63 / 197

Page 84: UML Présentation

Besoins fonctionnels Diagramme de séquence système

Notation

Une ligne de vie est représentée par un rectangle accroché à une ligneverticale pointilléeLe rectangle contient le nom du participant et/ou son type (séparépar « : »)Un message est représenté par une flèche en trait plein dirigée vers lacible

pointe ouverte : message asynchronepointe pleine : message synchrone

Un message synchrone peut être suivi d’une réponse (flèche enpointillée)Un rectangle sur une ligne de vie marque l’exécution d’un traitement

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 64 / 197

Page 85: UML Présentation

Chapitre III : Exprimer les besoins

9 Généralités

10 Besoins fonctionnels

11 Autres besoins

Page 86: UML Présentation

Autres besoins

Besoins non fonctionnels

Les besoins fonctionnels ne couvrent qu’une partie des besoins d’uneapplicationLes besoins restant sont nommés besoins non fonctionnelsLa classification FURPS en montre différents types (performance, . . . )Ces besoins ne sont pas décrits par le modèle de cas d’utilisation maispar d’autres documents

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 65 / 197

Page 87: UML Présentation

Autres besoins

Expressions des besoins non fonctionnels dans UPLes artefacts

Spécifications supplémentaires capturent les autres besoins comme lepackaging, les licences, . . .

Glossaire représente le dictionnaire de donnéesVision communique les idées importantes du projet

Règles métier décrivent les règles du domaine non spécifiques à uneapplication

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 66 / 197

Page 88: UML Présentation

Chapitre IV : Modéliser le domaine

12 Généralités

13 Diagramme de classes

14 Diagramme d’activités

Page 89: UML Présentation

Chapitre IV : Modéliser le domaine

12 Généralités

13 Diagramme de classes

14 Diagramme d’activités

Page 90: UML Présentation

Généralités

Modélisation métier

La modélisation métier est une discipline de UPElle rend compte de la « structure et la dynamique de l’organisationoù doit être déployé un système »Le modèle objet métier (Business Objet Model ou BOM) est unartefact de cette disciplineIl représente à la fois les aspects statiques (modèle du domaine) etdynamiques (modèle des processus métier) d’un domaine

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 67 / 197

Page 91: UML Présentation

Généralités

Modèle du domaine

Le modèle du domaine est un modèle statique très important enA/COOIl permet de visualiser les concepts métier (classes conceptuelles) etleurs relationsIl servira de source d’inspiration pour un certain nombre d’objetslogicielsCet artefact UP peut êre constitué d’un ensemble de diagrammes declasses UML (sans opération)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 68 / 197

Page 92: UML Présentation

Généralités

Ce que n’est pas le modèle du domaine

Il ne représente pas des objets logicielsCe n’est pas un ensemble de diagrammes décrivant les classeslogiciellesCe n’est pas une représentation de la couche domaine d’unearchitecture logicielleCe n’est pas un modèle de données

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 69 / 197

Page 93: UML Présentation

Généralités

Classe conceptuelle

Une classe conceptuelle est une entité du domaine étudiéElle comporte :

un nom qui identifie le concept,une intension qui la définit en terme de propriétés,une extension qui précise l’ensemble des instances de ce concept.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 70 / 197

Page 94: UML Présentation

Généralités

Modèle des processus métier

Le modèle des processus métier (Business Process Model ou BPM)est un modèle dynamiqueIl permet de visualiser l’enchaînement des activités dans un domainedonnéCet artefact UP peut être constitué d’un ensemble de diagrammesd’activités UML

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 71 / 197

Page 95: UML Présentation

Chapitre IV : Modéliser le domaine

12 Généralités

13 Diagramme de classesIntroductionClasseRelations entre classes

14 Diagramme d’activités

Page 96: UML Présentation

Chapitre IV : Modéliser le domaine

13 Diagramme de classesIntroductionClasseRelations entre classes

Page 97: UML Présentation

Diagramme de classes Introduction

Diagramme de classes UML

Un diagramme de classe décrit les types des objets qui composent unsystème et les différents types de relations statiques qui les relientDans le contexte de la modélisation métier, ce diagramme sert dedictionnaire de données visuel

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 72 / 197

Page 98: UML Présentation

Chapitre IV : Modéliser le domaine

13 Diagramme de classesIntroductionClasseRelations entre classes

Page 99: UML Présentation

Diagramme de classes Classe

Classe

Une classe est un classeur décrivant un type d’objetsUne classe possède des propriétés et des opérations globalementnommées caractéristiquesDans le modèle du domaine, seules les propriétés sont utilisées

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 73 / 197

Page 100: UML Présentation

Diagramme de classes Classe

Notation

Une classe est représentée comme un rectangle comportant plusieurscompartimentsLe premier compartiment montre le nom de la classe, le second sespropriétés et le troisième les opérationsSeul le compartiment du nom est obligatoire et d’autrescompartiments peuvent être ajoutés (responsabilités, exceptions)Le nom de la classe débute par une majucule et peut être qualifié pardes espaces de nomsLa classe peut être associée à des mots-clés entre accolades après sonnom ({abstract})

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 74 / 197

Page 101: UML Présentation

Diagramme de classes Classe

Exemple de classe

Une classe de l’application SIGS

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 75 / 197

Page 102: UML Présentation

Diagramme de classes Classe

Propriété

Les propriétés décrivent les caractéristiques structurelles d’une classeElles peuvent apparaître sur le diagramme sous la forme d’attribut oude terminaison d’association (cf. section suivante)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 76 / 197

Page 103: UML Présentation

Diagramme de classes Classe

Attribut

Un attribut apparaît dans un compartiment d’une classe sous la formed’une chaîne de caractères :visibilité / nom : type multiplicité = valeurParDéfaut {mots-clé}

Seul le nom est obligatoireLa visibilité contrôle l’accès à l’attribut : public (+), protected (#),package (˜), private (-)Le caractère « / » précise que l’attribut est calculéLa multiplicité précise le nombre d’instances de l’attributIl est possible d’indiquer une borne inférieure et une borne supérieurepour la multiplicité (* pour illimité) ([0..1], [1], [1..*], . . . )Les mots-clé modifient les caractéristiques de l’attribut ({readOnly},. . . )Un attribut de classe est représenté en soulignant l’attribut

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 77 / 197

Page 104: UML Présentation

Chapitre IV : Modéliser le domaine

13 Diagramme de classesIntroductionClasseRelations entre classes

Page 105: UML Présentation

Diagramme de classes Relations entre classes

Association

Une association est un lien structurel entre deux (association binaire)ou plusieurs (association n-aire) classesCe lien est visualisé comme un trait continu reliant les classesUne flêche pointe sur la classe cible (type de la propriété) et exprimela navigabilité de l’associationLa plupart des informations d’un attribut peuvent être utilisées surune terminaison d’association (extrémité)Le nom et la multiplicité de la propriété apparaîssent près de la flèchedu côté cibleL’association peut être bidirectionnelle (flèche des deux côtés) etreprésente une paire de propriétés liéesUne association peut aussi être nommée avec un groupe verbal et lesens de lecture peut être indiqué

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 78 / 197

Page 106: UML Présentation

Diagramme de classes Relations entre classes

Exemple d’association

Représentation des associations

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 79 / 197

Page 107: UML Présentation

Diagramme de classes Relations entre classes

Association ou attribut

Les attributs sont en général utilisés pour des propriétés simples(chaîne, date, booléen, . . . )Les associations relient plutôt des classes du domaine

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 80 / 197

Page 108: UML Présentation

Diagramme de classes Relations entre classes

Association n-aire et classe d’association

Représentation des associations n-aires

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 81 / 197

Page 109: UML Présentation

Diagramme de classes Relations entre classes

Interprétation de la multiplicité

La multiplicité d’une terminaison d’association indique le nombred’objets pouvant occuper la position de la terminaisonPour une association binaire, la multiplicité contraint le nombred’objets de la classe cible, associé à un objet de la classe sourcePour une association n-aire, la multiplicité d’une terminaisoncontraint le nombre d’objets de la classe liée à cette terminaison,associé à un n-1-uplet d’instances des autres participantsLa spécification de multiplicité (en particulier minimale) pour uneassociation n-aire peut imposer des contraintes complexes à percevoir⇒ se limiter à une multiplicité minimale de 0 et maximale de 1 ou *

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 82 / 197

Page 110: UML Présentation

Diagramme de classes Relations entre classes

Multiplicité et cardinalité d’entité/association

Pour une association binaire, la notation de la multiplicité est inverséepar rapport à la notation de la cardinalité d’entité/associationPour une association n-aire, les sémantiques des deux notions sontdifférentes

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 83 / 197

Page 111: UML Présentation

Diagramme de classes Relations entre classes

Agrégation et composition

L’agrégation et la composition représente une relation tout/partieDans l’agrégation,

le cycle de vie de l’agrégat et des parties n’est pas lié,la navigabilité et la multiplicité ne sont pas contraintes.

Dans la composition,le cycle de vie de l’agrégat et des parties est lié,la multiplicité côté agrégat est d’au plus 1.

Graphiquement, l’agrégation se représente par un losange vide et lacomposition par un losange plein du côté de l’agrégat

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 84 / 197

Page 112: UML Présentation

Diagramme de classes Relations entre classes

Exemple d’agrégation et de composition

Représentation de l’agrégation et de la composition

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 85 / 197

Page 113: UML Présentation

Chapitre IV : Modéliser le domaine

12 Généralités

13 Diagramme de classes

14 Diagramme d’activitésIntroductionFlot de contrôleFlot de donnéesStructuration des activitésInterruption d’activités

Page 114: UML Présentation

Chapitre IV : Modéliser le domaine

14 Diagramme d’activitésIntroductionFlot de contrôleFlot de donnéesStructuration des activitésInterruption d’activités

Page 115: UML Présentation

Diagramme d’activités Introduction

Diagramme d’activités UML

Un diagramme d’activité UML visualise un modèle de traitements, i.e.l’enchaînement des activités d’un processusIl permet de représenter la séquence et le parallèlismeIl peut être utiliser pour modéliser des processus métier, desworkflows, des flots de données ou des algorithmes complexes

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 86 / 197

Page 116: UML Présentation

Diagramme d’activités Introduction

Principaux concepts

Action traitement élémentaireActivité séquence organisée d’actions

Transition spécifie l’enchaînement des traitements (flot de contrôle)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 87 / 197

Page 117: UML Présentation

Diagramme d’activités Introduction

Exemple de diagramme d’activités

Un diagramme d’activités pour l’application SIGS

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 88 / 197

Page 118: UML Présentation

Chapitre IV : Modéliser le domaine

14 Diagramme d’activitésIntroductionFlot de contrôleFlot de donnéesStructuration des activitésInterruption d’activités

Page 119: UML Présentation

Diagramme d’activités Flot de contrôle

Activité et action

Une action est un traitement élémentaire (call operation, create, . . . )Une action est représentée par un nœud actionUne activité est un ensemble organisé d’actions et/ou de sous-activitésLe flot d’exécution est modélisé par des nœuds reliés par destransitionsUne activité est un comportement

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 89 / 197

Page 120: UML Présentation

Diagramme d’activités Flot de contrôle

Nœud et transition

Un nœud d’activité représente graphiquement les phases d’uneactivitésIl en existe trois types :

un nœud action visualise une action,un nœud objet visualise les échanges de données,un nœud de contrôle modélise le flot d’exécution.

Une transition représente le passage d’une action à une autreElle est déclenchée dès que l’action source se termine, provoque ledébut de l’action suivante et est instantanée

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 90 / 197

Page 121: UML Présentation

Diagramme d’activités Flot de contrôle

Nœuds de contrôle

Les nœuds de contrôle modifie le flot d’exécution d’une activitéIl en existe plusieurs types :

initial début d’une activitéfin d’activité fin d’une activité

fin de flot fin d’un flot d’exécution sans terminer l’activitédécision choix entre plusieurs flotsfusion regroupement de plusieurs flots

bifurcation début d’activités en paralèlleunion synchronisation de plusieurs flots

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 91 / 197

Page 122: UML Présentation

Diagramme d’activités Flot de contrôle

Représentaton graphique des nœuds de contrôle

initial cercle pleinfin d’activité cercle plein entouré d’un cercle vide

fin de flot cercle barré d’un X

décision/fusion losange videbifurcation/union barre pleine

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 92 / 197

Page 123: UML Présentation

Diagramme d’activités Flot de contrôle

Exemple de diagramme d’activités

Un diagramme d’activités pour l’application SIGS

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 93 / 197

Page 124: UML Présentation

Diagramme d’activités Flot de contrôle

Nœud de décision et de fusion

Un nœud de décision marque un choix entre plusieurs flots de sortieChaque flot de sortie est conditionné par une garde (prédicat)Cette garde est évaluée pour savoir quel flot est franchissableL’ensemble des gardes doit normalement former une partition del’ensemble des décisions possibles

si aucune transition n’est franchissable, le modèle est mal formési plusieurs sont franchissables, le choix est non déterministe

Un nœud de fusion regroupe plusieurs flots alternatifs en un seul

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 94 / 197

Page 125: UML Présentation

Diagramme d’activités Flot de contrôle

Nœud de bifurcation et d’union

un nœud de bifurcation (ou débranchement) sépare un flot en tranten plusieurs flots sortants concurrentsun nœud d’union (ou jointure) synchronise plusieurs flots en trantsconcurrents

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 95 / 197

Page 126: UML Présentation

Chapitre IV : Modéliser le domaine

14 Diagramme d’activitésIntroductionFlot de contrôleFlot de donnéesStructuration des activitésInterruption d’activités

Page 127: UML Présentation

Diagramme d’activités Flot de données

Flot d’objets

Le flot d’objet représente explicitement les éléments échangés par lesactionsSur le diagramme d’activité, on peut visualiser les paramètres d’uneaction ainsi que les objets échangés

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 96 / 197

Page 128: UML Présentation

Diagramme d’activités Flot de données

Exemple de flots de données

Un diagramme d’activités pour l’application SIGS

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 97 / 197

Page 129: UML Présentation

Diagramme d’activités Flot de données

Nœud objet

Un nœud objet permet de représenter le flot d’objets échangés entreles actionsIl possède un nom, un type, une éventuelle liste d’états etd’éventuelles contraintesIl peut être représenté comme

un paramètre d’entrée ou de sortie d’une action (petit carré sur labordure d’une action),un rectangle sur une transition précisant l’ensemble des informationsassociéesun tampon central (central buffer) qui accepte plusieurs entrées ousorties d’objetsun stockage de données (datastore) qui est un tampon central assurantla persistance

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 98 / 197

Page 130: UML Présentation

Chapitre IV : Modéliser le domaine

14 Diagramme d’activitésIntroductionFlot de contrôleFlot de donnéesStructuration des activitésInterruption d’activités

Page 131: UML Présentation

Diagramme d’activités Structuration des activités

Partition

Une partition (ou couloir ou ligne d’eau) permet de regrouper lesnœuds d’activitéLe regroupement peut se faire selon divers critères (responsable del’action, . . . )La partition peut être bidimensionnelle

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 99 / 197

Page 132: UML Présentation

Diagramme d’activités Structuration des activités

Exemple de partitions

Un diagramme d’activités pour l’application SIGS

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 100 / 197

Page 133: UML Présentation

Diagramme d’activités Structuration des activités

Nœud structuré

Un nœud structuré représente une portion structurée d’une activitéGraphiquement, c’est un rectangle en trait pointillé (stéréotype« structured »)Il en existe quatre types :

séquentiel (stéréotype « sequence »)conditionnel (stéréotype « conditional »)boucle (stéréotype « loop »)zone d’expansion

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 101 / 197

Page 134: UML Présentation

Diagramme d’activités Structuration des activités

Exemple de nœud structuré

Un diagramme d’activités pour l’application SIGS

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 102 / 197

Page 135: UML Présentation

Diagramme d’activités Structuration des activités

Zone d’expansion

Une zone d’expansion représente une activité s’appliquant à unecollection d’objetsLa collection est passée en paramètre de la zone d’expansion et unecollection est produite en sortieUn stéréotype précise le fonctionnement de la zone (« parallel »,« iterative », « stream »)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 103 / 197

Page 136: UML Présentation

Diagramme d’activités Structuration des activités

Exemple de zone d’expansion

Un diagramme d’activités pour l’application SIGS

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 104 / 197

Page 137: UML Présentation

Chapitre IV : Modéliser le domaine

14 Diagramme d’activitésIntroductionFlot de contrôleFlot de donnéesStructuration des activitésInterruption d’activités

Page 138: UML Présentation

Diagramme d’activités Interruption d’activités

Signaux

Des nœuds d’action spécifique permettent de manipuler des signauxIl en existe trois types :

réception d’un signal (accept event)envoi d’un signal (send signal)attente d’un évènement temporel (accept time event)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 105 / 197

Page 139: UML Présentation

Diagramme d’activités Interruption d’activités

Exemple de signaux

Un diagramme d’activités pour l’application SIGS

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 106 / 197

Page 140: UML Présentation

Diagramme d’activités Interruption d’activités

Exceptions

Les exceptions peuvent être représentées sur le diagramme d’activitéUne activité pouvant lever un exception l’indique à l’aide d’un pin desortie surmonté d’un petit triangle et précisant le type de l’exceptionUn gestionnaire d’exception est une action possédant un pin d’entréedu type de l’exception et les mêmes pins de sortie que l’activitésurveilléeL’activité surveillée est reliée au gestionnaire par un trait en zigzag ousurmonté d’un zigzag

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 107 / 197

Page 141: UML Présentation

Diagramme d’activités Interruption d’activités

Région interruptible

Une région interruptible est une zone délimité d’une activité dont leflot peut être interrompue par un évènement nommé interruptionCette zone est délimitée par un rectangle pointillé aux coins arrondisLorsque l’interruption se produit, l’exécution se poursuit dans ungestionnaire d’interruptionl’émission de l’évènement et le gestionnaire sont reliés par un trait enzigzag

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 108 / 197

Page 142: UML Présentation

Chapitre V : Architecture de l’application

15 Généralités

16 Diagramme de packages UML

Page 143: UML Présentation

Chapitre V : Architecture de l’application

15 Généralités

16 Diagramme de packages UML

Page 144: UML Présentation

Généralités

Définition

L’architecture logique d’une application donne une vue globale de laconception d’un systèmeElle précise les modules dans lequels vont être créées les classeslogiciellesElle n’implique pas de décision technique (OS, distribution,. . . )

les décisions techniques font parties de l’architecture de déploiementEn général, une application OO est composée de plusieurs couches(interface, métier, . . . )

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 109 / 197

Page 145: UML Présentation

Généralités

Principales couches d’une architecture logique

Présentation éléments de l’interface utilisateur (fenêtres, rapports, . . . )Application gestion des interactions avec la couche présentation, gestion

des processus métier, transformation de donnéesDomaine règles et services du domaine

Infrastructure métier services (éventuellement externe) liés au métierServices techniques services techniques de haut niveau (persistance,

sécurité, journalisation, . . . )Fondation services et bibliothèques de bas niveau (I/E, threads, . . . )

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 110 / 197

Page 146: UML Présentation

Généralités

Architecture dans UP

la spécification de l’architecture appartient au Modèle de Conception(discipline Conception)représentée sous la forme de diagramme de packages UML ou dans leDocument d’Architecture Logiciels’appuie sur les Spécifications Supplémentaires

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 111 / 197

Page 147: UML Présentation

Chapitre V : Architecture de l’application

15 Généralités

16 Diagramme de packages UML

Page 148: UML Présentation

Diagramme de packages UML

Introduction

Un diagramme de package permet de réprésenter les couches,sous-systèmes ou modules d’un logicielIl montre le regroupement d’élément de modélisation (classes, casd’utilisation, autres packages, . . . )Il visualise également l’imbrication de modules

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 112 / 197

Page 149: UML Présentation

Diagramme de packages UML

Notation

Un package est représenté par une sorte de pochette à ongletLe nom du package apparaît soit dans l’onglet, soit directement sur lapochetteLe diagramme de package montre également les dépendances entrepackageUne dépendance est visualisée comme une flèche pointillée (ligne dedépendance) partant du package dépendant vers le package dont ildépendUn package est aussi un espace de nom

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 113 / 197

Page 150: UML Présentation

Diagramme de packages UML

ExempleUn diagramme de packages pour une architecture en couche

source : Layered application model diagram

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 114 / 197

Page 151: UML Présentation

Diagramme de packages UML

ExempleTrois façons de représenter l’imbrication

source : Package org.hibernate

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 115 / 197

Page 152: UML Présentation

Chapitre VI : Conception OO

17 Généralités

18 Diagramme d’interaction UML

19 Diagramme de classes

20 Diagramme d’objets

21 Diagramme de machine à états

Page 153: UML Présentation

Chapitre VI : Conception OO

17 Généralités

18 Diagramme d’interaction UML

19 Diagramme de classes

20 Diagramme d’objets

21 Diagramme de machine à états

Page 154: UML Présentation

Généralités

Définition

La conception OO consiste à identifier les classes logicielles et à leurattribuer des responsabilitésDifférentes approchesconcevoir en codant utilise par exemple des outils comme le

refactoring (approche TDD) et des diagrammes enmode esquisse

tracer des diagrammes et coder UML est un support de discussionet/ou de documentation

tracer uniquement les diagrammes approche de type MDELa question est de savoir quels diagrammes apportent une valeurajoutée pour la conception OO

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 116 / 197

Page 155: UML Présentation

Généralités

Modèle objet statique et dynamique

Les modèles dynamiques comme les diagrammes d’interaction UMLreprésentent la logique comportementaleLes modèles statiques comme les diagrammes de classes ou d’objetsUML visualisent la structure de l’applicationLe plus difficile et le plus intéressant est la réalisation du modèledynamique (création d’objets, échange de message, . . . )Il faut pour cela identifier les responsabilités des classes logiciellesCes modèles sont en général réalisés en « parallèle »Tous ces modèles font partis du Modèle de Conception UP

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 117 / 197

Page 156: UML Présentation

Généralités

Quelques techniques de conception OO

Conception piloté par les responsabilitésréfléchir à la façon d’affecter des responsabilités aux objetsce qu’un objet sait et ce qu’il faitcommunauté d’objets responsables qui collaborent

Principes GRASP (General Responsibility Assignment SoftwarePrinciples)Modèles de conception GoFCartes CRC (Classe-Responsabilité-Collaboration) fiches cartonnées(une par classe) détaillant les responsabilités et les collaborations

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 118 / 197

Page 157: UML Présentation

Chapitre VI : Conception OO

17 Généralités

18 Diagramme d’interaction UMLConcepts communsNotation des diagrammes de séquenceNotation des diagrammes de communicationAutres diagrammes d’interaction

19 Diagramme de classes

20 Diagramme d’objets

21 Diagramme de machine à états

Page 158: UML Présentation

Diagramme d’interaction UML

Introduction

Un diagramme d’interaction représente un modèle dynamiqueSon rôle est de visualiser les objets interagissant par l’intermédiaire demessagesUML en propose quatre types

diagramme de séquencediagramme de communicationdiagramme de vue d’ensemble des interactionsdiagramme de temps

RemarqueLes diagrammes de séquence ont déjà été introduits dans la section sur lesdiagrammes de séquence système

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 119 / 197

Page 159: UML Présentation

Diagramme d’interaction UML

Diagramme de séquence ou diagramme decommunication ?

Diagramme de séquence+ représentation claire de l’ordonnancement des messages+ notation riche- gestion du schéma difficile

Diagramme de communication+ gestion du schéma simple- la numérotation rend plus difficile la lecture de l’ordre des messages- notation plus limitée

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 120 / 197

Page 160: UML Présentation

Chapitre VI : Conception OO

18 Diagramme d’interaction UMLConcepts communsNotation des diagrammes de séquenceNotation des diagrammes de communicationAutres diagrammes d’interaction

Page 161: UML Présentation

Diagramme d’interaction UML Concepts communs

Ligne de vie

Une ligne de vie (lifeline) représente un participant dans uneinteractionEn général, une ligne de vie correspond à une instance d’une classeUne ligne de vie est représentée graphiquement par un rectangle danslequel se trouve le libellé de l’élémentLe libellé peut prendre différentes formes: Convention instance anonyme de la classe Conventionc1 : Convention instance nommée c1conventions : List<Convention> instance de collection

paramétréeconventions[i] : Convention instance sélectionnée dans la

collection collections

Dans un diagramme de séquence, le rectangle est connecté à uneligne vertical représentant le temps (de haut en bas)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 121 / 197

Page 162: UML Présentation

Diagramme d’interaction UML Concepts communs

Message

Une interaction entre participants est représentée par un messageUn message UML possède une syntaxe standardretour = message (param : TypeParam) : TypeRetour

A part le nom du message, tous les éléments sont optionnels

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 122 / 197

Page 163: UML Présentation

Chapitre VI : Conception OO

18 Diagramme d’interaction UMLConcepts communsNotation des diagrammes de séquenceNotation des diagrammes de communicationAutres diagrammes d’interaction

Page 164: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de séquence

Message

Un message relie deux lignes de vieUn message est représenté par une flèche en trait plein dirigée vers lacible

pointe ouverte : message asynchronepointe pleine : message synchrone

Un message synchrone peut être suivi d’une réponse (flèche enpointillée)L’invocation d’une méthode de classe a pour cible un participantinstance de métaclasse (stéréotypé « metaclass »)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 123 / 197

Page 165: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de séquence

Spécification d’excution

Une barre de spécification d’exécution marque l’exécution d’untraitementElle est visualisée par un rectangle sur une ligne de vie

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 124 / 197

Page 166: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de séquence

ExempleDiagramme de séquence

Sequence diagram major elements.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 125 / 197

Page 167: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de séquence

Création et destruction de participants

Un message de création est représenté par une flèche pointilléeLa ligne de vie de l’objet créé est placé à la hauteur du message decréationUn message de destruction est annoté par le stéréotype « destroy »Le moment de la destruction d’un participant et repéré par une croixsur sa ligne de vie

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 126 / 197

Page 168: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de séquence

Cadre

Un diagramme de séquence peut comporter des cadresUn cadre permet de regrouper ensemble des échanges de messagesUn cadre comporte un opérateur et éventuellement une gardeLes principaux opérateurs sont l’alternative (alt), la boucle (loop),le fragment optionnel (opt), le parallélisme (par) et la région critique(region)Les cadres peuvent être imbriqués

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 127 / 197

Page 169: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de séquence

ExempleLes principaux cadres

Combined fragments.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 128 / 197

Page 170: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de séquence

Utilisation d’interaction

Une utilisation d’interaction est une référence à une interaction ausein d’une autreLes utilisations d’interaction s’appuie sur deux cadres

un cadre étiqueté sd suivi d’un nom et contenant un diagrammeclassiqueun cadre étiqueté ref contenant le nom de l’interaction référencée

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 129 / 197

Page 171: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de séquence

ExempleUtilisation d’interaction

Interaction Use.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 130 / 197

Page 172: UML Présentation

Chapitre VI : Conception OO

18 Diagramme d’interaction UMLConcepts communsNotation des diagrammes de séquenceNotation des diagrammes de communicationAutres diagrammes d’interaction

Page 173: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de communication

Lien

Un lien est une connexion entre deux objetsC’est une instance d’associationIl est représenté par une ligne continue entre les lignes de viePlusieurs messages peuvent circuler sur le même lien

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 131 / 197

Page 174: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de communication

Message

Un message est une expression associée à une flèche pointant vers ledestinataireUn numéro de séquence est associé à chaque messageChaque numéro précise l’ordre dans lequel les messages sont échangésainsi que l’imbrication des appelsUn message peut posséder une garde

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 132 / 197

Page 175: UML Présentation

Diagramme d’interaction UML Notation des diagrammes de communication

ExempleDiagramme de séquence

An example of communication diagram for online bookshop.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 133 / 197

Page 176: UML Présentation

Chapitre VI : Conception OO

18 Diagramme d’interaction UMLConcepts communsNotation des diagrammes de séquenceNotation des diagrammes de communicationAutres diagrammes d’interaction

Page 177: UML Présentation

Diagramme d’interaction UML Autres diagrammes d’interaction

Diagramme de vue d’ensemble des interactions

Ce diagramme représente le flot de contrôle entre les interactionsC’est un diagramme d’interaction mais il est également proche dudiagramme d’activité

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 134 / 197

Page 178: UML Présentation

Diagramme d’interaction UML Autres diagrammes d’interaction

ExempleUn diagramme de vue d’ensemble des interactions

source : An example of interaction overview diagram for online shopping.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 135 / 197

Page 179: UML Présentation

Diagramme d’interaction UML Autres diagrammes d’interaction

Diagramme de temps

Le diagramme de temps met l’accent sur la représentation desinteractions dans le temps

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 136 / 197

Page 180: UML Présentation

Diagramme d’interaction UML Autres diagrammes d’interaction

ExempleUn diagramme de temps

source : User Experience Website Latency.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 137 / 197

Page 181: UML Présentation

Chapitre VI : Conception OO

17 Généralités

18 Diagramme d’interaction UML

19 Diagramme de classes

20 Diagramme d’objets

21 Diagramme de machine à états

Page 182: UML Présentation

Diagramme de classes

Diagramme de classes de conception

RemarqueLes diagrammes de classes ont déjà été introduits dans la section sur lamodélisation du domaine.

Le Diagramme de Classes de Conception représente les classeslogicielles d’une application

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 138 / 197

Page 183: UML Présentation

Diagramme de classes

Opérations

Le troisième compartiment d’une classe contient la signature desopérations supportées par la classeLa syntaxe complète est la suivante :visibilité opération (liste de param.) : TypeRetourpropriétés

Les propriétés indiquent par exemple les exceptions lancées parl’opération, l’indication d’une opération abstraite, . . .Une méthode est l’implémentation d’une opération

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 139 / 197

Page 184: UML Présentation

Diagramme de classes

ExempleUn diagramme de classes

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

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 140 / 197

Page 185: UML Présentation

Diagramme de classes

Généralisation, classes abstraites et polymorphisme

La relation de généralisation est représentée par une ligne continueterminée par une triangle blanc pointant sur la classe la plus généraleCe lien exprime une relation taxonomique entre une classe plusspécifique et une classe plus généraleDans un diagramme de classes de conception, ce lien est assimilé à lanotion d’héritage d’un langage de programmationUne classe ou une opération abstraite est annotée avec le mot-clé{abstract} ou écrite en italique

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 141 / 197

Page 186: UML Présentation

Diagramme de classes

Interface

Une interface est représentée comme un classeur avec le stéréotype« interface »La réalisation d’une interface par une classe est visualisée par une lignepointillée terminée par une triangle blanc pointant vers l’interfaceIl est aussi possible d’utiliser une notation abrégée (socket)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 142 / 197

Page 187: UML Présentation

Diagramme de classes

Type de données

Un type de données UML est un classeur dont les instances sontidentifiées uniquement par leurs valeurs (objet-valeur)Un type de données est représenté par un rectangle avec le stéréotype« dataType »Un type de donées peut posséder des attributs et des opérationsUn type primitif est une type de données utilisé pour représenter desvaleurs atomiques (entier, flottant, . . . )Un type primitif est visualisé grâce au stéréotype « primitive »Une énumération est un type de données dont les valeurs sont définiesdans le modèleUne énumération apparaît avec le stéréotype « enumeration » etpeut posséder un compartiment listant les valeurs

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 143 / 197

Page 188: UML Présentation

Chapitre VI : Conception OO

17 Généralités

18 Diagramme d’interaction UML

19 Diagramme de classes

20 Diagramme d’objets

21 Diagramme de machine à états

Page 189: UML Présentation

Diagramme d’objets

Diagramme d’objets

Un diagramme d’objets montre des objets et les liens qui les relientC’est une instance d’un diagramme de classeIl permet de représenter le contexte d’une interaction, i.e. l’état del’application avant ou après une interactionC’est un instantané de l’état d’un système à un instant donnéLes objets sont représentés par des rectangles contenant le nom del’objet souligné

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 144 / 197

Page 190: UML Présentation

Diagramme d’objets

ExempleUn diagramme d’objets

source : Instance specifications, value specifications, slots, and links.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 145 / 197

Page 191: UML Présentation

Chapitre VI : Conception OO

17 Généralités

18 Diagramme d’interaction UML

19 Diagramme de classes

20 Diagramme d’objets

21 Diagramme de machine à états

Page 192: UML Présentation

Diagramme de machine à états

Diagramme de machine à états

Une machine à états présente les états intéressants d’un objet ainsique son comportement face à des événementsUn état est visualisé par un rectangle aux bords arrondisUne machine à état comporte en général un pseudo-état initial et unétat final (même notation que pour le diagramme d’activité)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 146 / 197

Page 193: UML Présentation

Diagramme de machine à états

ExempleUn diagramme de machine à états

source : High level behavioral state machine for bank ATM.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 147 / 197

Page 194: UML Présentation

Diagramme de machine à états

Transition

Une transition représente un changement d’état de l’élément modéliséElle peut comporter une étiquette (libellé [garde]/activité)dont chaque composant est optionnel

libellé est le nom de l’événement provoquant le changeent d’étatgarde conditionne le changementactivité est un comportement qui se déroule lors du changement

Une transition est représentée par une flèche entre deux états et portele nom de l’événement qui l’a provoqué

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 148 / 197

Page 195: UML Présentation

Diagramme de machine à états

Activité interne

Un état peut réagir à des événements par l’intermédiaire d’activitésinternesUne activité interne est représentée par une chaîne de caractères dansun état (libellé [garde]/activité)

la signification est la même qu’une étiquette de transitionles événements entry et exit permettent de déclencher une activitélors de l’entrée, respectivement la sortie, de l’étatUn événement do précise que l’activité se déroule en continue durantl’état (état d’activité)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 149 / 197

Page 196: UML Présentation

Diagramme de machine à états

ExempleUn diagramme de machine à états

source : Behavioral state machine example - Bank ATM.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 150 / 197

Page 197: UML Présentation

Chapitre VII : Architecture de déploiement

22 Généralités

23 Diagramme de composants UML

24 Diagramme de déploiement UML

Page 198: UML Présentation

Chapitre VII : Architecture de déploiement

22 Généralités

23 Diagramme de composants UML

24 Diagramme de déploiement UML

Page 199: UML Présentation

Généralités

Architecture physique

L’architecture de déploiement d’une application représente sonarchitecture physiqueElle montre l’affectation d’artefacts logiciels à des machines physiquesansi que les communication entre ces artefactsUn diagramme de déploiement UML a pour rôle de représenter cettearchitecture physiqueElle appartient à la Description de l’Architecture Logicielle de UPLe diagramme de composants quant à lui permet de représenter àgrande échelle les éléments d’un systèmeLe diagramme de composants est utilisé pour le développementorienté composants pour les architectures orientées services (SOA)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 151 / 197

Page 200: UML Présentation

Chapitre VII : Architecture de déploiement

22 Généralités

23 Diagramme de composants UML

24 Diagramme de déploiement UML

Page 201: UML Présentation

Diagramme de composants UML

Composant

Un composant est une partie modulaire d’un système qui peut êtreremplacéeIl définit des interfaces fournies et requisesEn UML, il est possible de modéliser les composants avec des classeset des interfacesLa modélisation par composants a pour objectifs

de mettre l’accent sur les interfaces,d’insister sur l’aspect modulaire, autonome et remplaçable et sur laréutilisabilité.

Un composant est représenté par un rectangle avec le stéréotype« component » ou un symbole spécifiqueUne relation de dépendance est utilisée pour montrer qu’uncomposant en utilise un autre

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 152 / 197

Page 202: UML Présentation

Diagramme de composants UML

ExempleUn diagramme de composants

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

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 153 / 197

Page 203: UML Présentation

Chapitre VII : Architecture de déploiement

22 Généralités

23 Diagramme de composants UML

24 Diagramme de déploiement UML

Page 204: UML Présentation

Diagramme de déploiement UML

Introduction

Un diagramme de déploiement montre la répartition des composantslogiciels sur des composants physiquesUn nœud est une unité susceptible d’héberger un logiciel

un équipement est un matérielun environnement d’exécution est une plateforme d’exécution

Un nœud héberge des artefacts représentants des produits dudéveloppement (exécutables, bibliothèques, fichiers de configuration,. . . )Une voie de communication montre les nœuds communicantLe type de protocole peut être précisé comme label de la voie decommunication

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 154 / 197

Page 205: UML Présentation

Diagramme de déploiement UML

ExempleUn diagramme de déploiement

source : An example of deployment diagram for web application.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 155 / 197

Page 206: UML Présentation

Chapitre VIII : Le langage de contraintes OCL

25 Généralités

26 Contraintes OCL

27 Types et opérateurs OCL

Page 207: UML Présentation

Chapitre VIII : Le langage de contraintes OCL

25 Généralités

26 Contraintes OCL

27 Types et opérateurs OCL

Page 208: UML Présentation

Généralités

exprimer des contraintes en UML

Un contrainte est une restriction sémantique sur un élément demodèle qui limite les implémentations possibles d’un systèmeUML permet d’exprimer un certains nombres de contraintesstructurelles comme les attributs, les types de relations ou la

multiplicitéde type comme les types des propriétésdiverses comme la visibilité, les classes abstraites (« abstract »)

En complément, il est aussi possible d’exprimer d’autres contraintesen langage naturel, avec un langage de programmation ou avec unlangage formelUn contrainte apparaît dans un modèle entre accolades et est placéesoit à proximité de l’élément concerné soit dans une note reliéeOCL (Object Constraint Language) est un langage formeld’expression de contraintes adapté aux modèles UML

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 156 / 197

Page 209: UML Présentation

Généralités

ExempleContraintes OCL pour une application bancaire

context Compteinv : solde > 0

context Compte :: débiter(somme : int)pre : somme > 0post : solde = solde@pre - somme

context Compteinv : banque.clients -> includes (propriétaire)

source : Exemple d’utilisation du langage de contrainte OCL sur l’exemple bancaire.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 157 / 197

Page 210: UML Présentation

Chapitre VIII : Le langage de contraintes OCL

25 Généralités

26 Contraintes OCL

27 Types et opérateurs OCL

Page 211: UML Présentation

Contraintes OCL

Contexte d’une contrainte

Le contexte d’une contrainte est l’élément de modèle concerné parcette contrainteLe contexte peut s’exprimer de deux façons

en plaçant la contrainte à proximité de l’élément entre accolades,en utilisant la syntaxe context <élément> dans un document externe.

On peut utiliser la notation :: pour qualifier le nom de l’élément

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 158 / 197

Page 212: UML Présentation

Contraintes OCL

Invariant

Un invariant exprime une condition toujours vérifiée pour un élémentLa syntaxe est inv: <prédicat>

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 159 / 197

Page 213: UML Présentation

Contraintes OCL

Précondition et postcondition

Une précondition exprime une condition qui doit être vérifiée avant unappel de méthodeLa syntaxe est pre: <prédicat>

Une postcondition exprime une condition qui doit être vérifiée aprèsun appel de méthodeLa syntaxe est post: <prédicat>Éléments particuliers utilisable dans l’expression

result est le résultat de l’opération<attribut>@pre est la valeur de l’attribut avant l’appel

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 160 / 197

Page 214: UML Présentation

Contraintes OCL

Résultat d’un opération

La contrainte body permet de spécifier une expression décrivant lerésultat d’une opérationLa syntaxe est body: <expression>

Le type de l’expression doit correspondre au type de retour del’opération

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 161 / 197

Page 215: UML Présentation

Contraintes OCL

Définition d’attribut et d’opération

La contrainte let ...in permet de définir des attributs pouvant êtreutilisés dans l’expression suivant le in

La syntaxe est let <attribut> = <expression> in<expression>

La contrainte def permet de définir des attributs ou des méthodes auniveau d’un classeurLa syntaxe est def <déclaration> = <expression>

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 162 / 197

Page 216: UML Présentation

Contraintes OCL

Initialisation et attribut calculé

La contrainte init définit la valeur d’une propriétéLa syntaxe est init: <expression>

La contrainte derive exprime la valeur d’un attribut calculéLa syntaxe est derive: <expression>

Exemplecontext Personne::marie : Booleaninit: false

context Personne::age : Integerderive: Date::current().getYear() - dateNaiss.getYear()

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 163 / 197

Page 217: UML Présentation

Chapitre VIII : Le langage de contraintes OCL

25 Généralités

26 Contraintes OCL

27 Types et opérateurs OCL

Page 218: UML Présentation

Types et opérateurs OCL

Types et opérateurs prédéfinis

OCL supporte un ensemble de types et d’opérations classiques sur cestypesLes types prédéfinis sont Boolean, Integer, Real et StringParmi les opérateurs, on trouve

pour les booléens, and, or, xor, not, implies et if ...then...else ...endifpour les entiers et les flottants, +, -, . . .pour les chaînes, concat(), size(), . . .

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 164 / 197

Page 219: UML Présentation

Types et opérateurs OCL

Type défini

Tout type défini dans un modèle UML est utilisable avec OCLPour les énumérations, la syntaxe est<TypeEnuméré>::<constante>

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 165 / 197

Page 220: UML Présentation

Types et opérateurs OCL

Collection

OCL supporte les types de collection suivantsSet ensemble au sens mathématique

Ordered Set ensemble ordonnéBag collection non ordonnée

Sequence collection ordonnée

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 166 / 197

Page 221: UML Présentation

Types et opérateurs OCL

Accès aux attributs, aux méthodes et navigation

Un attribut ou une opération est accessible par son nom ou en lepréfixant par self.

La navigation sur une relation utilise la notation « . » préfixé par lenom du rôle

Exemplesoldeself.soldeself.getSolde()self.propriétaire.nom

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 167 / 197

Page 222: UML Présentation

Types et opérateurs OCL

Opérations prédéfinies

Les opérations suivantes sont applicables à tous les objets

oclIsTypeOf(<type>) exactement le même type ?oclIsKindOf(<type>) le même type ou un dérivé ?oclInState(<state>) dans l’état donné ?oclIsNew() créé pendant l’opération ?

oclAsType(<type>) conversion de typeallInstances() retourne toutes les instances d’un type

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 168 / 197

Page 223: UML Présentation

Types et opérateurs OCL

Manipulation de collections

L’opérateur -> permet d’accéder aux caractéristiques d’une collectionQuelques opérations supportées : size(), includes(<object>),isEmpty()Quelques opérations sur les membres d’une collection

<collection>->select(<condition>) filtre la collection<collection>->forall(<condition>) et<collection>->exists(<condition>)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 169 / 197

Page 224: UML Présentation

Chapitre IX : Notions de métamodélisation

28 Introduction

29 Métaformalisme

30 Métaformalisme et UML

31 Ingénierie dirigée par les modèles

Page 225: UML Présentation

Chapitre IX : Notions de métamodélisation

28 Introduction

29 Métaformalisme

30 Métaformalisme et UML

31 Ingénierie dirigée par les modèles

Page 226: UML Présentation

Introduction

Qu’est-ce qu’un métamodèle ?

Un métamodèle définit les éléments utilisables dans un modèleIl précise la structure que doit avoir un modèle le respectantL’OMG utilise la notation des diagrammes de classes UML pourexprimer des métamodèlesUn métamodèle ne décrit pas (ou peu) la sémantique d’un modèleCette dernière est en général précisée en langage naturel

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 170 / 197

Page 227: UML Présentation

Introduction

Intérêt de la métamodélisation

Un métamodèle permet de décrire que qu’est un modèle valideDéfinir des traitements (transformation par exemple) au niveau dumétamodèle permet de les appliquer à un ensemble de modèles

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 171 / 197

Page 228: UML Présentation

Introduction

Modèles d’ordre supérieur

On peut imaginer créer des métamétamodèles et desméta. . . métamodèlesLa question est de savoir où se trouve la limiteLe principe consiste à faire en sorte qu’un niveau soit auto-descriptif,i.e. il se décrit lui-mêmeLa réponse de l’OMG est de définir quatre niveaux

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 172 / 197

Page 229: UML Présentation

Chapitre IX : Notions de métamodélisation

28 Introduction

29 MétaformalismeIntroductionMOFEMF

30 Métaformalisme et UML

31 Ingénierie dirigée par les modèles

Page 230: UML Présentation

Chapitre IX : Notions de métamodélisation

29 MétaformalismeIntroductionMOFEMF

Page 231: UML Présentation

Métaformalisme Introduction

Définition

Un métaformalisme est un modèle d’un métamodèle, i.e. unmétamétamodèleIl définit donc les concepts de base d’un métamodèle

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 173 / 197

Page 232: UML Présentation

Chapitre IX : Notions de métamodélisation

29 MétaformalismeIntroductionMOFEMF

Page 233: UML Présentation

Métaformalisme MOF

Meta Object Facility

Le Meta Object Facility (MOF) est le métaformalisme proposé parl’OMGIl est auto-descriptifIl définit les concepts de classe, relation, . . . utilisés dans lesmétamodèleC’est l’unique métaformalisme de l’OMG servant de base à tous lesmétamodèles

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 174 / 197

Page 234: UML Présentation

Métaformalisme MOF

Niveaux du MOF

L’OMG définit quatre niveaux de modélisationM0 système réelM1 modèle du système réelM2 métamodèleM3 métamétamodèle (M3) auto-descriptif

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 175 / 197

Page 235: UML Présentation

Métaformalisme MOF

ExempleLes niveaux du MOF

source : Illustration of the Meta-Object Facility.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 176 / 197

Page 236: UML Présentation

Métaformalisme MOF

Modélisation à quatre niveaux

OMG Lang. de prog. XMLM0 instances exécution données réellesM1 diag. de classes prog. données en XMLM2 MM UML grammaire schéma XMLM3 MOF EBNF XML

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 177 / 197

Page 237: UML Présentation

Chapitre IX : Notions de métamodélisation

29 MétaformalismeIntroductionMOFEMF

Page 238: UML Présentation

Métaformalisme EMF

Eclipse Modeling Framework

Le projet Eclipse EMF est une variante du MOF pour EclipseCe projet fournit une infrastructure de génération de code en sebasant sur des modèlesA partir de modèles exprimés avec XMI, il est par exemple possible degénérer des classes JavaLe niveau M3 de EMF est nommé ECore

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 178 / 197

Page 239: UML Présentation

Chapitre IX : Notions de métamodélisation

28 Introduction

29 Métaformalisme

30 Métaformalisme et UMLMétamodèle d’UML et du MOFÉtendre UML

31 Ingénierie dirigée par les modèles

Page 240: UML Présentation

Chapitre IX : Notions de métamodélisation

30 Métaformalisme et UMLMétamodèle d’UML et du MOFÉtendre UML

Page 241: UML Présentation

Métaformalisme et UML Métamodèle d’UML et du MOF

UML et le MOF

MOF 2 est le métaformalisme de l’OMG pour la description demétamodèlesUML 2 est le métamodèle dédié à la modélisation d’applications OOet basé sur le MOFUn sous-ensemble du diagramme de classe UML est utilisée pourdéfinir le MOFLa spécification UML 2 Infrastructure regroupe les définitionscommunes à UML et au MOFLa spécification UML 2 Superstructure réutilise certaines parties deUML 2 Infrastructure

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 179 / 197

Page 242: UML Présentation

Métaformalisme et UML Métamodèle d’UML et du MOF

UML 2 Infrastructure

La spécification UML 2 Infrastructure définit un ensemble de packagesÀ la racine, on trouve les packages InfrastructureLibrary etPrimitiveTypes

InfrastructureLibrary définit le métalangage (package Core) et desméchanismes d’extensions (package Profile)PrimitiveTypes regroupe des types de bases

Les packages peuvent être réutilisés grâce à l’opération de merge

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 180 / 197

Page 243: UML Présentation

Métaformalisme et UML Métamodèle d’UML et du MOF

ExempleUML 2 Infrastructure

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 181 / 197

Page 244: UML Présentation

Métaformalisme et UML Métamodèle d’UML et du MOF

ExempleLe package Core

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 182 / 197

Page 245: UML Présentation

Métaformalisme et UML Métamodèle d’UML et du MOF

ExempleDiagramme de classes défini dans Core::Basic

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 183 / 197

Page 246: UML Présentation

Métaformalisme et UML Métamodèle d’UML et du MOF

UML 2 Superstructure

UML 2 Superstructure définit les concepts nécessaires à l’ensembledes diagrammes UMLIl utilise l’opération de merge pour importer des packages de UML 2InfrastructureIl est découpé en de nombreux packages (Classes, Components,Deployments, . . . )

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 184 / 197

Page 247: UML Présentation

Métaformalisme et UML Métamodèle d’UML et du MOF

ExemplePackages de UML 2 Infrastructure fusionné dans Classes::Kernel

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 185 / 197

Page 248: UML Présentation

Métaformalisme et UML Métamodèle d’UML et du MOF

ExempleDiagramme de classes dans Classes::Kernel

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 186 / 197

Page 249: UML Présentation

Métaformalisme et UML Métamodèle d’UML et du MOF

MOF 2

MOF 2 a été décomposée en deux partiesEMOF Essential MOF décrit des métamodèles sans associationCMOF Complete MOF décrit des métamodèles avec association

EMOF intègre le package Core::Basic de UML 2 InfrastructureCMOF intègre le package Core::Construct de UML 2 Infrastructure

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 187 / 197

Page 250: UML Présentation

Chapitre IX : Notions de métamodélisation

30 Métaformalisme et UMLMétamodèle d’UML et du MOFÉtendre UML

Page 251: UML Présentation

Métaformalisme et UML Étendre UML

Profil UML

Les concepts génériques d’UML peuvent être appliqués dans denombreux domaines (application OO, métamodèle, schéma de BD,. . . )Le problème est alors de déterminer le sens du modèleUn profil UML permet de préciser le sens de ces modèlesIl permet d’adapter dynamiquement (sans changer le métamodèle)UML à un domaine particulierUn profil UML définit un ensemble de stéréotypes qui seront ensuiteutilisés pour préciser la signaification de concepts UML

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 188 / 197

Page 252: UML Présentation

Métaformalisme et UML Étendre UML

Vue d’ensemble

source : Meta Meta Models, UML and Profiles.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 189 / 197

Page 253: UML Présentation

Métaformalisme et UML Étendre UML

Diagramme de profil

Un diagramme de profil est un diagramme de structure permettant dedéfinir des stéréotypes, des mots-clés ou des contraintesUn profil utilise la notation des packages avec le mot-clé « profile »Il peut uniquement introduire des stéréotypes, des mots-clés ou descontraintes sur des métaclasses existantesUn stéréotype est représenté comme une classe avec le stéréotype« stereotype »Le lien d’extension entre un stéréotype et une métaclasse estreprésenté par une flèche continue terminée par un triangle plein(association extension)Un stéréotype peut comporter des propriétés (mots-clé)

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 190 / 197

Page 254: UML Présentation

Métaformalisme et UML Étendre UML

ExempleUn profil UML pour EJB 3

source : Simplified example of unofficial Java EJB 3.0 Profile.Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 191 / 197

Page 255: UML Présentation

Métaformalisme et UML Étendre UML

Quelques profils existants

SysML System Modeling Language pour l’ingénierie de systèmeCWM Common Warehouse Metamodel pour l’échange de

métadonnées BIUTP UML testing profile pour les tests

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 192 / 197

Page 256: UML Présentation

Chapitre IX : Notions de métamodélisation

28 Introduction

29 Métaformalisme

30 Métaformalisme et UML

31 Ingénierie dirigée par les modèles

Page 257: UML Présentation

Ingénierie dirigée par les modèles

Introduction

L’ingénierie dirigée par les modèles (Model-Driven Engineering ouMDE) est une approche pour le développement logiciel s’appuyant surles modèles et leurs transformationsL’approche Model-Driven Architecture (MDA) est la proposition del’OMG dans ce cadreMDA inclut plusieurs standards comme UML, MOF et XMILes objectifs de MDA sont

élaborer des modèles perennes,indépendants des détails techniques,permettre la génération automatique du code,obtenir un gain de productivité.

MDA repose sur trois modèlesCIM le modèle des exigencesPIM le modèle d’analyse et de conceptionPSM le modèle de code

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 193 / 197

Page 258: UML Présentation

Ingénierie dirigée par les modèles

CIM

Le modèle des exigences (Computation Independant Model ou CIM)spécifie les exigences du clientA partir de ces besoins, un lien de traçabilité est maintenu tout aulong du processusCe modèle ne comprend pas d’information sur la réalisation del’application ou les traitements

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 194 / 197

Page 259: UML Présentation

Ingénierie dirigée par les modèles

PIM

Le modèle d’analyse et de conception (Platform Independant Modelou PIM)Ce modèle décrit les modules et sous-modules composant l’applicationIl demeure indépendant de toute plateforme d’implémentation(JavaEE, .NET, PHP, . . . )

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 195 / 197

Page 260: UML Présentation

Ingénierie dirigée par les modèles

PSM

Le modèle de code (Platform Specific Model ou PSM) décritl’implémentation d’une application sur une plateforme techniqueIl a pour objectif de faciliter la génération de codeIl s’appuie sur les profils UML pour les plateformes.

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 196 / 197

Page 261: UML Présentation

Ingénierie dirigée par les modèles

Transformation de modèles

MDA utilise la transformation de modèles pour dériver le PIM à partirdu CIM et le PSM à partir du PIMCes transformations sont également modélisées dans MDA

Stéphane Lopes (UVSQ/ISTY) UML 2011-2012 197 / 197