124
13/06/22 01:07 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Unified Modeling Language Language

16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

Embed Size (px)

Citation preview

Page 1: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:001

Jean-Marc JézéquelIRISA/CNRS

et

Yves Le Traon IRISA/Ifsic

Unified Modeling LanguageUnified Modeling Language

Page 2: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:002

PLANPLAN

Introduction à la modélisation selon UMLIntroduction à la modélisation selon UML– historique, intérêts de la modélisationhistorique, intérêts de la modélisation– cycles de viecycles de vie

Les 9 vues d’un modèle UMLLes 9 vues d’un modèle UML– Use CasesUse Cases, diagrammes de classes, modèles dynamiques, , diagrammes de classes, modèles dynamiques,

packages...packages...

Processus de développement avec UMLProcessus de développement avec UML– Expression des besoins Expression des besoins (étude de cas télécom : (étude de cas télécom : serveur SMDSserveur SMDS))

– Analyse (Technique de découverte des classes...)Analyse (Technique de découverte des classes...)– Conception (Systémique, notion de Conception (Systémique, notion de Design Patterns)Design Patterns)– Réalisation et ValidationRéalisation et Validation

Page 3: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:003

Généalogie deGénéalogie de UMLUML

OOA(P. Coad)

OMT(J. Rumbaugh et al.)

Data-FlowSADT/SA-SD(De Marco)

OOA - OODLE(Schlaer & Mellor)

DiagrammesEtat-Transition

(HAREL)

FUSION(HP-Labs)

UML(Rumbaugh, Booch, Jacobson)

Use-Case(I.Jacobson)

Entite-RelationMerise(Chen)

OOA-OOD(G.Booch)

CLASSE-RELATION(P. Desfray)

CRC(R. Wirf-Brooks)

JSD(M. Jackson)

Page 4: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:004

De OMT à UMLDe OMT à UML 1990 : Object-oriented Modeling Technique 1990 : Object-oriented Modeling Technique ((Rumbaugh et al., G.E.)Rumbaugh et al., G.E.)

– Succès de la méthode du aux qualités de la notation :Succès de la méthode du aux qualités de la notation :– Concise, assez précise, simple à utiliser et à outillerConcise, assez précise, simple à utiliser et à outiller– Rien de fondamentalement nouveauRien de fondamentalement nouveau

» Inspirée “ entité-relation ” pour la modélisation des objetsInspirée “ entité-relation ” pour la modélisation des objets» Notation de Harel pour la dynamique des objetsNotation de Harel pour la dynamique des objets» De Marco/Yourdon flots de données & transformationsDe Marco/Yourdon flots de données & transformations

1995 : Version préliminaire de UML1995 : Version préliminaire de UML

– extensions et améliorations, publications extensions et améliorations, publications JOOPJOOP, ..., ...– inspirées par les auteurs eux-mêmes et par Boochinspirées par les auteurs eux-mêmes et par Booch

1997 : UML version 1.01997 : UML version 1.0– Intégration de la méthode OOSE de Jacobson (Intégration de la méthode OOSE de Jacobson (use-casesuse-cases), et ), et

des remarques de grandes sociétés informatiques des remarques de grandes sociétés informatiques – Standardisée à l’OMG. 2Q99 =>Version 1.4Standardisée à l’OMG. 2Q99 =>Version 1.4

Page 5: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:005

La consécration des méthodes La consécration des méthodes fondées sur la modélisationfondées sur la modélisation

L’approche par modélisation faciliteL’approche par modélisation facilite– Communication (et sa précision)Communication (et sa précision)

» avec donneur d’ordreavec donneur d’ordre» entre différentes phases de développement et de maintenanceentre différentes phases de développement et de maintenance

– Capacité de vérificationCapacité de vérification» CohérenceCohérence» ComplétudeComplétude

– Continuité entre les différentes phases du cycle de vieContinuité entre les différentes phases du cycle de vie» cf. Jackson et JSDcf. Jackson et JSD» N.B.: continuité <> isomorphique ou plongement/projectionN.B.: continuité <> isomorphique ou plongement/projection

Page 6: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:006

Un peu de Méthodologie...Un peu de Méthodologie...

Une méthode de développement de logiciels, c’est :Une méthode de développement de logiciels, c’est :– Une notationUne notation

» La syntaxe --- graphique dans le cas de UMLLa syntaxe --- graphique dans le cas de UML

– Un méta-modèleUn méta-modèle» La sémantique --- paramétrable dans UML La sémantique --- paramétrable dans UML (stéréotypes(stéréotypes))

– Un processusUn processus» Détails dépendants du domaine d’activité :Détails dépendants du domaine d’activité :

Informatique de gestionInformatique de gestion Systèmes réactifs temps-réelsSystèmes réactifs temps-réels Shrink-wrapShrink-wrap software (PC) software (PC)

Page 7: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:007

Activités du développement de logicielsActivités du développement de logiciels

Définir ce qui sera développé

Définir comment il sera développé

Développer undes composants

Assembler lescomposants

Valider le logiciel

L’organisation de ces activités et leur L’organisation de ces activités et leur enchaînement définit le enchaînement définit le cycle de développementcycle de développement du logicieldu logiciel

Page 8: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:008

Processus «classique»Processus «classique»

• Expression du besoin

Analyse

• Analyse détaillée

• Codage • Mise au point

Réalisation

• Tests unitaires

• Validation

Validation

• Mise en œuvre

• Etude technique préalable • Conception préliminaire

Conception

• Conception détaillée

• Intégration

Intégration

• Tests d'Intégration

Cycle de vie normalisé AFNORCycle de vie normalisé AFNOR

Variante US : Cycle en « cascade »

Page 9: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

9

Problèmes avec le processus classique...Problèmes avec le processus classique...

Ce que l’analyste a spécifié

Ce que le programmeur a écrit

Ce que la mise au point a fait

Ce que l’utilisateur n’a pas su exprimer

Ce que demande l’utilisateur

Ce que prévoit le concepteur

Page 10: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0010

Problèmes du processus classiqueProblèmes du processus classique Organisation « industrielle » héritée du XIXOrganisation « industrielle » héritée du XIXème ème sièclesiècle

– rassurant pour les managersrassurant pour les managers– hiérarchie malsaine dans les rôleshiérarchie malsaine dans les rôles– antinomie : Coplien ’s organizational pattern antinomie : Coplien ’s organizational pattern

»    Architects Also ImplementArchitects Also Implement  

cycle management <> cycle développementcycle management <> cycle développement linéarité implicitelinéarité implicite

– temps d ’approbation des documents => effet tampontemps d ’approbation des documents => effet tampon– coût de la (non-) modification d ’un document « final »coût de la (non-) modification d ’un document « final »– irréaliste pour un projet innovant, donc à risquesirréaliste pour un projet innovant, donc à risques

Page 11: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0011

Cycle de vie en « spirale »Cycle de vie en « spirale »

Intégration

Réalisation

Conception

Analyse détaillée

Analyse préliminaire « (de risque) »

V1 V2

Validation

Synergie avec approche par objets

Page 12: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0012

Cycle de vie en « spirale »Cycle de vie en « spirale » Bien adapté au développements innovantsBien adapté au développements innovants

– les progrès sont tangibles : c ’est du logiciel qui « tourne » les progrès sont tangibles : c ’est du logiciel qui « tourne » et pas seulement des kilos de documentset pas seulement des kilos de documents

– possibilité de s ’arrêter « à temps », i.e. avant que possibilité de s ’arrêter « à temps », i.e. avant que l ’irréalisabilité du projet ait crée un gouffre financierl ’irréalisabilité du projet ait crée un gouffre financier

Moins simple à managerMoins simple à manager– difficile à gérer en situation contractuelledifficile à gérer en situation contractuelle– mal contrôlé => on retombe dans le mal contrôlé => on retombe dans le hackinghacking

Production des incréments asservie sur 2 parmi 3 :Production des incréments asservie sur 2 parmi 3 :– période (e.g. release toutes les 2 semaines)période (e.g. release toutes les 2 semaines)– fonctionnalités (releases découpés suivant use-cases)fonctionnalités (releases découpés suivant use-cases)– niveau de qualité (problème de la mesure)niveau de qualité (problème de la mesure)

Page 13: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0013

Vision «générique» d’un cycle UMLVision «générique» d’un cycle UML

INCEPTION

• Cas d'utilisation• Modèle des objets du domaine• Interfaces• Maquettes

VALIDATION

• Validation technique

• Validation par les utilisateurs

ELABORATION

• Architecture • Modèles des objets et scénarios• Règles de transformation (Design patterns)

CONSTRUCTION• Modèle détaillé des objets• Scénarios détaillés• Algorithmes• Codage - Mise au point• Intégration

UML

Modèle utilisateurModèle statique

Modèle dynamiqueModèle d’implantation

Page 14: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0014

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 15: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0015

Température des diagrammes UMLTempérature des diagrammes UML

Besoins Conception V & V Analyse Réalisation

Diagramme de cas d’utilisationsDiagramme de cas d’utilisations Diagramme de classesDiagramme de classes Diagramme de paquetagesDiagramme de paquetages Diagramme de séquencesDiagramme de séquences Diagramme de collaborationsDiagramme de collaborations Diagramme d’états-transitionsDiagramme d’états-transitions Diagramme d’activitésDiagramme d’activités Diagramme d’implantationDiagramme d’implantation

«Température»

Page 16: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0016

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 17: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0017

Sujet longtemps négligé (e.g. OMT)Sujet longtemps négligé (e.g. OMT) Question de l'expression des besoins pourtant Question de l'expression des besoins pourtant

fondamentalefondamentale– Et souvent pas si facile Et souvent pas si facile (cible mouvante)(cible mouvante)

» cf. syndrome de la balançoirecf. syndrome de la balançoire

Object-Oriented Software Engineering (Ivar Object-Oriented Software Engineering (Ivar Jacobson et al.)Jacobson et al.)– Principal apport : la technique des acteurs et des cas Principal apport : la technique des acteurs et des cas

d'utilisationd'utilisation– Cette technique est intégrée a UMLCette technique est intégrée a UML

Expression des besoins et OOADExpression des besoins et OOAD

Page 18: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0018

Se comprendreSe comprendre

Représenter le systèmeReprésenter le système

Exprimer le service renduExprimer le service rendu

Décrire la manière dont le système est perçuDécrire la manière dont le système est perçu

Quatre objectifsQuatre objectifs

Page 19: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0019

Les moyensLes moyens

Les acteurs UMLLes acteurs UML

Les Les use-casesuse-cases UML UML

Utilisation d’un dictionnaire du domaineUtilisation d’un dictionnaire du domaine

Page 20: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0020

Outil de dialogueOutil de dialogue Informel, évolutif, simple a réaliserInformel, évolutif, simple a réaliser Etablir et figer la terminologieEtablir et figer la terminologie

– Permet de figer la terminologie du domaine d'application.Permet de figer la terminologie du domaine d'application.– Constitue le point d'entrée et le référentiel initial de Constitue le point d'entrée et le référentiel initial de

l'application ou du système.l'application ou du système.

Intérêt du dictionnaireIntérêt du dictionnaire

Page 21: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0021

Exemple de dictionnaireExemple de dictionnaire

– Dictionnaire d'un simulateur de volDictionnaire d'un simulateur de vol

Notion Définition Nom informatiqueTraduit en ...

Pilotage Action de piloter un avion en enchaînant des manoeuvres élémentaires

PilotagePackage

Manette des gaz

Instrument qui permet d'agir sur la quantité de carburant injectée dans le moteur

Classe abstraite

Manette_gazClasse

InstrumentInstrument Organe d'interaction entre le pilote et l'avion ou entre l'avion et le pilote

Mettre_a_fondOpérationMettre les gaz à fond

Action qui permet d’injecter le maximum de carburant pour atteindre la vitesse maximale

Action Définition Nom informatiqueTraduit en ...

Page 22: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0022

ActeursActeurs

Entité externe au système et amenée à interagir Entité externe au système et amenée à interagir avec lui. Un acteur «joue un rôle» vis-a-vis du avec lui. Un acteur «joue un rôle» vis-a-vis du systèmesystème

Un acteur est une classeUn acteur est une classe Un acteur peut représenter un être humain, un Un acteur peut représenter un être humain, un

autre système, ...autre système, ... L'identification des acteurs permet de délimiter le L'identification des acteurs permet de délimiter le

systèmesystème

Page 23: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0023

Acteurs : notationsActeurs : notations

«Actor»SUPERVISEUR

CLIENT

«Actor»

EXPEDITEUR

Système de vente par correspondance (VPC)

Page 24: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0024

Les cas d'utilisation (use-cases)Les cas d'utilisation (use-cases) Un cas d'utilisation est une manière particulière Un cas d'utilisation est une manière particulière

d'utiliser le systèmed'utiliser le système– séquence d'interactions entre le système et un ou séquence d'interactions entre le système et un ou

plusieurs acteursplusieurs acteurs– Ils s’expriment par des diagrammes de séquences Ils s’expriment par des diagrammes de séquences

La compilation des cas d'utilisation décrit de La compilation des cas d'utilisation décrit de manière informelle le service rendu par le systèmemanière informelle le service rendu par le système– fournissent une expression "fonctionnelle" du besoinfournissent une expression "fonctionnelle" du besoin– peuvent piloter la progression d ’un cycle en spiralepeuvent piloter la progression d ’un cycle en spirale

Les cas d'utilisation sont nommes en utilisant la Les cas d'utilisation sont nommes en utilisant la terminologie décrite dans le dictionnaireterminologie décrite dans le dictionnaire

Page 25: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0025

Cas d'utilisation : exemple et notationCas d'utilisation : exemple et notation

CLIENT

EXPEDITEUR

Traiter commande

MAJ catalogue

Etablir crédit

SUPERVISEUR

Commander

Consulter

VPC

Page 26: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0026

Relations sur les Relations sur les use-casesuse-cases

CommunicationCommunication– Lien entre le use case et l’acteur. Lien entre le use case et l’acteur. – De type « association »De type « association »

Utilisation Utilisation («uses»)(«uses»)– Utilisation d’autres use-cases pour en préciser la Utilisation d’autres use-cases pour en préciser la

définitiondéfinition

Extension Extension («extends») : utilisation « optionnelle » (attention («extends») : utilisation « optionnelle » (attention au sens des flèches.au sens des flèches.

Inclusion (« includes ») : utilisation systématiqueInclusion (« includes ») : utilisation systématique

Héritage (« Generalization »Héritage (« Generalization »

Page 27: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0027

Relations sur les Relations sur les use-casesuse-cases : notation : notation

Commander Commander échantillon

«extends»

Organiser paiement

Lire données client

Sélectionner produit

«includes»

«includes»

«includes»

Consulter Catalogue

Page 28: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0028

Exprimer le service renduExprimer le service rendu

Besoins fondamentaux : manières d'utiliser le systèmeBesoins fondamentaux : manières d'utiliser le système– Représentation globale par cas d'utilisationReprésentation globale par cas d'utilisation taille du système, seulement de 3 à 10 Use Casestaille du système, seulement de 3 à 10 Use Cases

Besoins opérationnels : interactions avec le systèmeBesoins opérationnels : interactions avec le système– Représentation détaillée par raffinement des cas d'utilisationReprésentation détaillée par raffinement des cas d'utilisation– Début de décomposition fonctionnelle : ne pas aller trop loinDébut de décomposition fonctionnelle : ne pas aller trop loin

Page 29: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0029

Besoins fondamentaux et opérationnelsBesoins fondamentaux et opérationnels

Besoin fondamental :Besoin fondamental :– Conduire une voitureConduire une voiture

Besoins opérationnelsBesoins opérationnels– Ouvrir la porteOuvrir la porte– Mettre le contactMettre le contact– AccélérerAccélérer– Tourner le volantTourner le volant– ......

conduire une voiture{fondamental}

conduire une voiture{fondamental}

ouvrir la porte{opérationnel}

mettre le contact{opérationnel}

accélérer{opérationnel}

tourner le volant{opérationnel}

«includes»

«includes»

«includes»

«includes»

Page 30: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0030

Utiles pour l’établissement de scénariosUtiles pour l’établissement de scénarios

Modélisation d’exemples issus des use-casesModélisation d’exemples issus des use-cases

Domaine de l’application

Utilisateur 1

Utilisateur 2

besoin1

besoin2

besoin3

besoin4

service1() service3()

service1() service2() service3()

service5() service6() service1()

service6()

service2()

Objet1 Objet2 Objet3

service1

service2

service3

service4

service5

service3 scénario du use case«besoin 2»

service4() service5()

Page 31: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0031

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 32: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0032

Notations UML pour classes et objetsNotations UML pour classes et objets

Représentation d’une classeReprésentation d’une classe

CL805699 : Compte

Représentation simplifiée

Nom de la classe

Compartiment des Attributs

Compartiment des Opérations

CompteCompte

solde: Sommeplancher: Somme

créditer (Somme)débiter (Somme)

Représentation des objets

Nom de l’objet

Page 33: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0033

Constituants d’une classeConstituants d’une classe

Concept représenté (nom)Concept représenté (nom) Classes héritées (concepts précisés)Classes héritées (concepts précisés) Relations avec autres classesRelations avec autres classes Attributs (classe, nom, visibilité)Attributs (classe, nom, visibilité) Opérations (paramètres)Opérations (paramètres) Contraintes, invariantsContraintes, invariants Généricité (classes paramétrées)Généricité (classes paramétrées) StéréotypesStéréotypes

Page 34: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0034

Représentation des attributsReprésentation des attributs

Caractérisation des attributsCaractérisation des attributs

Nom de l'attribut

Type de l'attributATTRIBUTS

Compte

solde: Sommeplancher: Somme

créditer (Somme)débiter (Somme)

Page 35: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0035

Attributs dérivésAttributs dérivés Attributs dont la valeur peut être déduite d ’autres Attributs dont la valeur peut être déduite d ’autres

éléments du modèleéléments du modèle– e.g. e.g. âgeâge si l ’on connaît la date de naissance si l ’on connaît la date de naissance– notation : /agenotation : /age

En termes d ’analyse, indique seulement une En termes d ’analyse, indique seulement une contraintecontrainte entre valeurs et non une indication de entre valeurs et non une indication de ce qui doit être calculé et ce qui doit être mémorisé ce qui doit être calculé et ce qui doit être mémorisé

Page 36: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0036

Représentation des opérationsReprésentation des opérations Vues graphiquesVues graphiques

Nom de l’opération

Nom de paramètreClasse du paramètre

Compte

solde: Sommeplancher: Somme

créditer (montant: Somme)débiter (montant: Somme)

Page 37: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0037

Représentation des invariantsReprésentation des invariants

Des contraintes peuvent être ajoutées aux éléments Des contraintes peuvent être ajoutées aux éléments du modèle UML du modèle UML – notation entre notation entre { }{ }

Invariants = Propriétés vraies pour l'ensemble des Invariants = Propriétés vraies pour l'ensemble des instances de la classeinstances de la classe– dans un état stable, chaque instance doit vérifier les dans un état stable, chaque instance doit vérifier les

invariants de sa classeinvariants de sa classe– exprimés à l ’aide d ’OCL exprimés à l ’aide d ’OCL

» Object Constraint LanguageObject Constraint Language

– e.g. e.g. {solde >= plancher} {solde >= plancher}

Compte{solde>=plancher}

solde: Sommeplancher: Somme

créditer (Somme)débiter (Somme)

Page 38: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0038

Représentation des pré/post conditionsReprésentation des pré/post conditions

PréconditionsPréconditions– {«precondition» {«precondition» expression booléenneexpression booléenne OCL} OCL}– Abrégé en: {pre: Abrégé en: {pre: expression booléenneexpression booléenne OCL} OCL}

PostconditionsPostconditions– {«postcondition» {«postcondition» expression booléenneexpression booléenne OCL} OCL}– Abrégé en: {post: Abrégé en: {post: expression booléenneexpression booléenne OCL} OCL}– Operateur « valeur précédente » (idem Operateur « valeur précédente » (idem oldold Eiffel): Eiffel):

» expression OCL expression OCL @pre @pre

Page 39: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0039

Etre abstrait Etre abstrait etet précis avec UML précis avec UML

Compte{solde>=plancher}

solde: Sommeplancher: Somme

créditer (montant : Somme) {pre: montant > 0} {post: solde = solde @pre + montant}débiter (s: Somme) {pre: montant > 0 and montant<=solde-plancher} {post: solde = solde @pre - montant}

Analyse précise ou “analyse par contrat”

Page 40: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0040

Relation entre classesRelation entre classes

Deux points de vue :Deux points de vue :– Une relation met en correspondance des éléments Une relation met en correspondance des éléments

d’ensemblesd’ensembles

– Une relation permet la description d'un concept à l’aide Une relation permet la description d'un concept à l’aide d’autres conceptsd’autres concepts

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

Page 41: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0041

Relation entre classesRelation entre classes

Personne Voiture

Possession

Personne Voiturepropriétaire propriétépossession

NotationNotation

Vue ensembliste = Graphe de la relationVue ensembliste = Graphe de la relation

Une association met en correspondance des éléments d’ensembles

1 *

Page 42: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0042

Représentation des relationsReprésentation des relations

RôleNom de relation

Cardinalité précisée

Relation, direction, rôle, cardinalitéRelation, direction, rôle, cardinalité

Voiture Personne*

passager

moyen_de_transport

transporte

direction de relation

Rôle

Page 43: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0043

**

Cardinalité d'une relationCardinalité d'une relation

Classe Exactement une

Classe Plusieurs (0 à n)

Classe Optionnelle (0 ou 1)

Classe1,2,4

Classe1-10

0,1

1

Cardinalité spécifiée

Intervalle

Page 44: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0044

Cas particuliers de relationsCas particuliers de relations

Une relation réflexive lie des objets de même classe

encadre

sous-fifre

chef1

Relations réflexivesRelations réflexives

Personne1..*

Page 45: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0045

Cas particuliers de relations :Cas particuliers de relations :– Notion de Notion de touttout et et partiesparties

Composition et AgrégationComposition et Agrégation

1

4,6Roue

Voiture Personne*

passager

moyen_de_transport

transporte

Chassis1

Composition

Agrégation

1 1

roulement >

structure >

Page 46: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0046

Différentes formes suggérant Différentes formes suggérant l’inclusionl’inclusion

Autre vues de la Autre vues de la composition/agrégationcomposition/agrégation

Voiture

roulement[4-6]: Rouestructure: Chassis

Voiture

Roue

Chassis

roulement 4-6

structure 1

Page 47: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0047

Relations n-airesRelations n-aires

Relations entre plus de 2 classes Relations entre plus de 2 classes (à éviter si possible)(à éviter si possible)

MATIERE

CLASSE

Enseignement1..*

1..*

Enseignant Enseignée

Destinataire

PROFESSEUR*

1..*

Enseignant Enseignée1..*

Destinataire

1PROFESSEUR MATIEREEnseignement

CLASSE

1..*

1..*

0..*

Page 48: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0048

L'attribut porte sur le lienL'attribut porte sur le lien

Relations attribuéesRelations attribuées

Etudiant Matièrecandidat

objet_épreuve

n..k

Note

épreuve

Page 49: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0049

Qualifieurs de relationsQualifieurs de relations

Un qualifieur est un attribut spécial qui permet, Un qualifieur est un attribut spécial qui permet, dans le cas d'une relation 1-vers-plusieurs ou dans le cas d'une relation 1-vers-plusieurs ou plusieurs-vers-plusieurs, de réduire la cardinalité. plusieurs-vers-plusieurs, de réduire la cardinalité. Il peut être vu comme une clé qui permet de Il peut être vu comme une clé qui permet de distinguer de façon unique un objet parmi distinguer de façon unique un objet parmi plusieurs.plusieurs.

FichierRépertoire FichierNom du fichierRépertoire

Relation non qualifiée

Nom du fichier

Relation qualifiée

Un répertoire + un nom de fichier identifient de façon unique un fichier

0..*0..*

Page 50: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0050

Représentation de la généralisation Représentation de la généralisation (héritage)(héritage)

AVION

Héritage simple Héritage multiple

AEROPLANE AEROPLANE VEHICULE_DE_TRANSPORT

AVION

Héritage simple et multipleHéritage simple et multiple

Page 51: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0051

Interfaces et « lollipop »Interfaces et « lollipop »

AVION

MOBILE

Raffinement AVION

MOBILE« interface »

Page 52: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0052

Héritage des relationsHéritage des relations

REPERTOIRE1..*

DRIVER FICHIER_TEXTE FICHIER_BINAIRE

FICHIERlien logique

Les relations sont héritées par les sous classes :Les relations sont héritées par les sous classes :

VEHICULE MOTEUR1..2

VOITURE CAMION

motorisation

*

Page 53: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0053

Représentation de classes abstraitesReprésentation de classes abstraites

Classes sans instances immédiatesClasses sans instances immédiates

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

CercleCarre

Forme{abstract}

Page 54: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0054

Représentation des opérations Représentation des opérations abstraitesabstraites

Opération sans corps d’une classe abstraiteOpération sans corps d’une classe abstraite

calculer_surface () {abstract}

Forme {abstract}

calculer_surface()

Carre Cercle

calculer_surface()

Page 55: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0055

VisibilitéVisibilité

Différentes visibilités des membres d'une classeDifférentes visibilités des membres d'une classe

Interface

corpsimplémenteur

usager

héritier

privé = -

protégé = #

public = +

Page 56: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0056

VisibilitéVisibilité

#m1 (p1,P2,p3)

+a1 : T1-a2 : T2

+m2 (p1,P2,p3)

Classe

ReprésentationReprésentation

Pas de sens en analyse...Pas de sens en analyse...

Page 57: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0057

Classes paramétrées (Généricité)Classes paramétrées (Généricité)

Tableau

element : Ttaille : Entier

T , Entier : Integer

Tableau

<<bind>> <Point, 3>

Classe générique

Classe effective

paramètres génériques

paramètres effectifs

Page 58: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0058

Les relations en tant que classesLes relations en tant que classes

Pratique dans certains casPratique dans certains cas– Relations ternaires.Relations ternaires.– La relation a des opérations appelées : La relation a des opérations appelées : classe de liaisonclasse de liaison

utilisateur station detravail

autorisation

prioritéprivilègessession dedémarrage

répertoire

home directory

autorisation sur* *

*

Page 59: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0059

Les stéréotypesLes stéréotypes Nouveaux éléments de modélisation instanciant Nouveaux éléments de modélisation instanciant

– Des classes du méta modèle UML (pour les stéréotypes Des classes du méta modèle UML (pour les stéréotypes de base UML)de base UML)

– Des extensions de classes du méta modèle UML (pour Des extensions de classes du méta modèle UML (pour les stéréotypes définis par l’utilisateur)les stéréotypes définis par l’utilisateur)

Peuvent être attachés aux éléments de Peuvent être attachés aux éléments de modélisations et aux diagrammes :modélisations et aux diagrammes :– Classes, objets, opérations, attributs, généralisations, Classes, objets, opérations, attributs, généralisations,

relations, acteurs, uses-cases, événements, diagrammes relations, acteurs, uses-cases, événements, diagrammes de collaboration ...de collaboration ...

Page 60: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0060

Notations pour les stéréotypesNotations pour les stéréotypes

«persistent» CLIENT

nom : stringadresse : string

«persistent» CLIENT

nom : stringadresse : string

CLIENT

CLIENT

nom : stringadresse : string

stéréotype

Page 61: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0061

Les notesLes notes

Compléments de modélisationCompléments de modélisation– Attachés à un élément du modèle ou libre dans un Attachés à un élément du modèle ou libre dans un

diagrammediagramme– Exprimés sous forme textuelleExprimés sous forme textuelle– Elles peuvent être typées par des stéréotypesElles peuvent être typées par des stéréotypes

modèle réalisépar John Doe

PERSONNE ENTREPRISE* 0..1

employé employeur

0..1

chef

{PERSONNE.employeur = PERSONNE.chef.employeur}

Page 62: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0062

Conseils pratiques Conseils pratiques Réfléchir au problème avant de commencerRéfléchir au problème avant de commencer

– Soigner le nommage, insister sur le nommage des Soigner le nommage, insister sur le nommage des relations et des rôlesrelations et des rôles

Faire simple!Faire simple!– ««Things must be as simple as possible, but no simplerThings must be as simple as possible, but no simpler». ».

A. EinsteinA. Einstein– éviter toute complication nuisibleéviter toute complication nuisible

» utiliser les qualifieurs utiliser les qualifieurs » éviter les relations ternaires, quaternaires (trop complexe)éviter les relations ternaires, quaternaires (trop complexe)» se dégager de l’implémentation : raisonner objets, classes, se dégager de l’implémentation : raisonner objets, classes,

messages, relations, attributs, opérationsmessages, relations, attributs, opérations

– ne pas s’inquiéter si les possibilités de la notation ne sont ne pas s’inquiéter si les possibilités de la notation ne sont pas toutes exploitéespas toutes exploitées

Page 63: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0063

Conseils pratiques (suite)Conseils pratiques (suite) Approche incrémentaleApproche incrémentale

– ItérerItérer– Confronter ses modèles aux autresConfronter ses modèles aux autres– Savoir s'arrêter avant d’atteindre la perfection...Savoir s'arrêter avant d’atteindre la perfection...

» prise en compte qualité (niveau de précision), coûts, délais...prise en compte qualité (niveau de précision), coûts, délais...» asservissement au processus de développementasservissement au processus de développement

Faire simple (encore)Faire simple (encore)– Un bon modèle n’est pas un modèle où l’on ne peut plus Un bon modèle n’est pas un modèle où l’on ne peut plus

rien ajouter, mais un modèle où on ne peut plus rien rien ajouter, mais un modèle où on ne peut plus rien enleverenlever. . (d’après A. de St-Exupéry)(d’après A. de St-Exupéry)

Page 64: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0064

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 65: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0065

Notion de packageNotion de package

Élément structurant les classesÉlément structurant les classes– Modularisation à l'échelle supérieureModularisation à l'échelle supérieure– Un package partitionne l'application :Un package partitionne l'application :

» Il référence ou se compose des classes de l’applicationIl référence ou se compose des classes de l’application» Il référence ou se compose d’autres packagesIl référence ou se compose d’autres packages

– Un package réglemente la visibilité des classes et des Un package réglemente la visibilité des classes et des packages qu’il référence ou le composepackages qu’il référence ou le compose

– Les packages sont liés entre eux par des liens d'utilisation, Les packages sont liés entre eux par des liens d'utilisation, de composition et de généralisationde composition et de généralisation

– Un package est la représentation informatique du contexte Un package est la représentation informatique du contexte de définition d’une classede définition d’une classe

Page 66: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0066

Représentation d’un packageReprésentation d’un package

Vue graphique externeVue graphique externe

Vue graphique externe et interneVue graphique externe et interne

P1

P2

P3

C1 C2

P1

Page 67: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0067

    Définition de vues partielles d'une applicationDéfinition de vues partielles d'une application

Partitionnement d’une applicationPartitionnement d’une application

ENSEMBLE DES CLASSES DE L'APPLICATION

SYNTHÈSE EN PACKAGES

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

Page 68: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0068

Réglementation de la visibilité des classesRéglementation de la visibilité des classes– Classes de visibilité publiqueClasses de visibilité publique : :

» classes utilisables par des classes d’autres packagesclasses utilisables par des classes d’autres packages

– Classes de visibilité privéeClasses de visibilité privée : : » classes utilisables seulement au sein d’un packageclasses utilisables seulement au sein d’un package

Représentation graphiqueReprésentation graphique

Visibilité dans un packageVisibilité dans un package

CLASSE D'INTERFACE CLASSE DE CORPS CLASSE EXTERNE

{public }

Classe{private }

Package::Classe

Page 69: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0069

Utilisation entre packagesUtilisation entre packages     Définition Définition

– Il y a utilisation entre packages si des classes du package Il y a utilisation entre packages si des classes du package utilisateur accèdent à des classes du package utiliséutilisateur accèdent à des classes du package utilisé

– Pour qu’une classe d’un package p1 puisse utiliser une Pour qu’une classe d’un package p1 puisse utiliser une classe d’un package p2, il doit y avoir au préalable une classe d’un package p2, il doit y avoir au préalable une déclaration déclaration expliciteexplicite de l’utilisation du package p2 par le de l’utilisation du package p2 par le package p1package p1

Représentation graphiqueReprésentation graphique

P2P1

Vue externe du package P1

Page 70: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0070

Utilisation entre packagesUtilisation entre packages

Exemple (vue externe du package livraisons)Exemple (vue externe du package livraisons)

LIVRAISONS

VEHICULES

COLIS

LIVREURS

Page 71: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0071

Héritage entre packagesHéritage entre packages

ExemplesExemples

JeuPlateau

JeuDameJeuEchec

Windowing System

Motif MicrosoftWindows

Page 72: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0072

Utilité des packagesUtilité des packages

Réponses au besoinRéponses au besoin– Contexte de définition d'une classeContexte de définition d'une classe– Unité de structurationUnité de structuration– Unité d'encapsulationUnité d'encapsulation– Unité d'intégrationUnité d'intégration– Unité de réutilisationUnité de réutilisation– Unité de configurationUnité de configuration– Unité de productionUnité de production

Page 73: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0073

Structuration par packages Structuration par packages (vs)(vs)

décomposition hiérarchiquedécomposition hiérarchique Pour les grands systèmes, il est nécessaire de

disposer d’une unité de structuration : À un niveau supérieur,

Plus souple que :

La composition de classe

Le référençage de packages

=> domaines de structuration :Packages décomposables en packages

Page 74: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0074

Exemple : Package entrepriseExemple : Package entreprise

Exemple de compositionExemple de composition

ENTREPRISE

COMPTABILITÉ COMMERCIAL

LIVRAISON

Page 75: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0075

Exemple : Package entrepriseExemple : Package entreprise

Ensemble des packages terminaux de l’applicationEnsemble des packages terminaux de l’application

Véhicules

Personnel

Colis

Clientèles

LivraisonsFacturation

Bilan

Livreurs

Commerciaux

TenueComptes

Page 76: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0076

Exemple : Package entrepriseExemple : Package entreprise

Composition des packages en sous-packagesComposition des packages en sous-packages

COMMERCIAL

ENTREPRISE

COMPTABILITÉ

Facturation

TenueComptes Personnel

Bilan

LIVRAISONS

Véhicules

Livreurs

Livraisons

Colis

Clientèles Commerciaux

Page 77: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0077

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 78: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0078

Aspects dynamiques du systèmeAspects dynamiques du système Jusqu’ici, système décrit Jusqu’ici, système décrit statiquementstatiquement::

– Décrivent les messages (méthodes ou opérations) que Décrivent les messages (méthodes ou opérations) que les instances des classes peuvent recevoir mais ne les instances des classes peuvent recevoir mais ne décrivent pas l’émission de ces messagesdécrivent pas l’émission de ces messages

– Ne montrent pas le lien entre ces échanges de messages Ne montrent pas le lien entre ces échanges de messages et les processus généraux que l’application doit réaliseret les processus généraux que l’application doit réaliser

Il faut maintenant décrire comment le système Il faut maintenant décrire comment le système évolue dans le tempsévolue dans le temps

Page 79: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0079

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 80: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0080

Diagrammes de séquences (scénarios)Diagrammes de séquences (scénarios) Dérivés des scénarios de OMT :Dérivés des scénarios de OMT :

– Montrent des exemples de coopération entre objets dans Montrent des exemples de coopération entre objets dans la réalisation de processus de l’applicationla réalisation de processus de l’application

– Illustrent la dynamique d’enchaînement des traitements à Illustrent la dynamique d’enchaînement des traitements à travers les messages échangés entre objetstravers les messages échangés entre objets

– le temps est représenté comme une dimension explicitele temps est représenté comme une dimension explicite» en général de haut en basen général de haut en bas

Les éléments constitutifs d’un scénario sont :Les éléments constitutifs d’un scénario sont :– Un ensemble d’objets (et/ou d’acteurs)Un ensemble d’objets (et/ou d’acteurs)– Un message initiateur du scénario Un message initiateur du scénario – La chronologie des messages échangés La chronologie des messages échangés

subséquemmentsubséquemment– Les contraintes de temps (aspects temps réel)Les contraintes de temps (aspects temps réel)

Page 81: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0081

Syntaxe graphiqueSyntaxe graphique

Objets et messagesObjets et messages

Nom Objet1:NomClasse1Nom Objet:NomClasse

Objets = Instances de classes

nom message (paramètres)

Message nom message émis par Nom Objet

vers Nom Objet1

Tem

ps

Page 82: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0082

Ligne de vie et activationLigne de vie et activation

La «ligne de vie» représente l’existence de l’objet à La «ligne de vie» représente l’existence de l’objet à un instant particulierun instant particulier– Commence avec la création de l’objetCommence avec la création de l’objet– Se termine avec la destruction de l’objetSe termine avec la destruction de l’objet

L’activation est la période durant laquelle l’objet L’activation est la période durant laquelle l’objet exécute une action lui-même ou via une autre exécute une action lui-même ou via une autre procédureprocédure

Page 83: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0083

NotationNotation

objet1:Classe1

objet2:Classe2

objet3:Classe3

Client

op ( )

m1 ( )m2 ( )

m3 ( )

Objet créé dans le scénario

Activité de l’objet

Objet existant avant et après l’activation du scénario

Ligne de vie

Page 84: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0084

MessagesMessages

Communication entre objetsCommunication entre objets– Des paramètresDes paramètres– Un retourUn retour

Cas particuliersCas particuliers– Les messages entraînant la construction d’un objetLes messages entraînant la construction d’un objet– La récursionLa récursion– Les destructions d’objetsLes destructions d’objets

Page 85: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0085

NotationsNotations

objet1:Classe1op ( )

objet2:Classe2

m1 ( par )

Création d’objet

Destruction d’objetRetour d’opération

Envoi de message avec paramètre

m2 ( )

Récursion

Page 86: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0086

Aspects asynchrones et temps réelAspects asynchrones et temps réel

Lecture du scénario et chronologieLecture du scénario et chronologie– Un scénario se lit de haut en bas dans le sens Un scénario se lit de haut en bas dans le sens

chronologique d’échange des messages.chronologique d’échange des messages.– Des contraintes temporelles peuvent être ajoutées au Des contraintes temporelles peuvent être ajoutées au

scénarioscénario

:Nom classe2Nom Objet1:

demande

réponse

a

b

{b-a< 5 sec.}

:Nom classe2Nom Objet1:

demanded

d’

{d’-d< 1 sec.}

Page 87: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0087

Représentation de conditionnellesReprésentation de conditionnelles

objet1:Classe1op ( )

objet2:Classe2

[x<0] m1 ( x )

[x>0] m2 ( x )

Branchement conditionnel

Branchement conditionnel

Page 88: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0088

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 89: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0089

Diagrammes de collaborationDiagrammes de collaboration

Les scénarios et diagrammes de collaboration:Les scénarios et diagrammes de collaboration:– Montrent des exemples de coopération des objets dans la Montrent des exemples de coopération des objets dans la

réalisation de processus de l’applicationréalisation de processus de l’application

Les scénarios :Les scénarios :– Illustrent la dynamique d’enchaînement des traitements Illustrent la dynamique d’enchaînement des traitements

d’une application en introduisant la dimension temporelled’une application en introduisant la dimension temporelle

Les diagrammes de collaborationLes diagrammes de collaboration– Dimension temporelle représentée par numéros de Dimension temporelle représentée par numéros de

séquence : définition d’un ordre partiel sur les opérationsséquence : définition d’un ordre partiel sur les opérations– Représentation des objets et de leurs relationsReprésentation des objets et de leurs relations– Utilisent les attributs et opérationsUtilisent les attributs et opérations

Page 90: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0090

Utilisation des diagrammes de Utilisation des diagrammes de collaborationcollaboration

Ils peuvent être attachés à :Ils peuvent être attachés à :– Une classeUne classe– Une opérationUne opération– Un use-caseUn use-case

Ils s’appliquentIls s’appliquent– En spécificationEn spécification– En conception (illustration de En conception (illustration de design patternsdesign patterns))

Page 91: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0091

Eléments constitutifsEléments constitutifs

Un contexte contenant les éléments mis en jeu Un contexte contenant les éléments mis en jeu durant l’opération :durant l’opération :– Un acteurUn acteur– Un ensemble d’objets, d’attributs et de paramètresUn ensemble d’objets, d’attributs et de paramètres– Des relations entre ces objetsDes relations entre ces objets

Des interactionsDes interactions– Des messagesDes messages– Un message initiateur du diagramme provenant d’un Un message initiateur du diagramme provenant d’un

» Acteur de l’application,Acteur de l’application,» Objet de l’application.Objet de l’application.

– Les numéros de séquence des messages échangés entre Les numéros de séquence des messages échangés entre les objets de cet ensemble suite au message initiateurles objets de cet ensemble suite au message initiateur

Page 92: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0092

Fred

MariePierre

père mère1: cashRequest($25)

2: cashReceived($25)

Représentation d’une collaboration Représentation d’une collaboration (niveau instance)(niveau instance)

Page 93: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0093

Equivalent au diagramme de séquence:Equivalent au diagramme de séquence:

cashRequest($25)

cashReceived($25)

MarieFred

Page 94: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0094

Syntaxe graphiqueSyntaxe graphique

Les messagesLes messages» OpérationsOpérations» Réception d’événementsRéception d’événements

Le séquencementLe séquencement» Les séquences consécutivesLes séquences consécutives» Les séquences imbriquéesLes séquences imbriquées

:Segment:Carréafficher ( )

4

origine:Point

1 *(i=1..4):afficher ( )

destination:Point

1.1: position ( )

1.2: position ( )

séquence imbriquée

message initiateur

numéro de séquence

opération

boucle

Page 95: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0095

Questions auxquelles répondent les Questions auxquelles répondent les collaborationscollaborations

Quel est l’objectif ?Quel est l’objectif ?

Quels sont les objets ?Quels sont les objets ?

Quelles sont leurs responsabilités ?Quelles sont leurs responsabilités ?

Comment sont-ils interconnectés ?Comment sont-ils interconnectés ?

Comment interragissent-ils ?Comment interragissent-ils ?

Page 96: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0096

Collaboration : Niveau Spécification Collaboration : Niveau Spécification DéfinitionDéfinition du du ClassifierRoleClassifierRole

• A ClassifierRole is a named slot for an object participating in a Collaboration.

• Object behavior is represented by its participation in the overall behavior of the Collaboration.

• Object identity is preserved through this constraint:

"In an instance of a collaboration, each ClassifierRole maps onto at most one object."

Page 97: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0097

Collaboration de Niveau SpécificationCollaboration de Niveau Spécification un exemple simpleun exemple simple

/ Enfant

/ Mère/ Père

père mère

1: cashRequest($25)

2: cashReceived($25)

Page 98: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0098

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 99: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:0099

Les diagrammes d’étatsLes diagrammes d’états

Attachés à une classe Attachés à une classe – Généralisation des scénariosGénéralisation des scénarios– Description systématique des réactions d'un objet aux Description systématique des réactions d'un objet aux

changements de son environnementchangements de son environnement

Décrivent les séquences d’états d’un objet ou d’une Décrivent les séquences d’états d’un objet ou d’une opération :opération :– En réponse aux «stimulis» reçusEn réponse aux «stimulis» reçus– En utilisant ses propres actions (transitions déclenchées)En utilisant ses propres actions (transitions déclenchées)

Réseau d’états et de transitionsRéseau d’états et de transitions– Automates étendusAutomates étendus– Essentiellement Essentiellement Diagrammes de HarelDiagrammes de Harel (idem OMT) (idem OMT)

Page 100: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00100

Syntaxe graphique: diagramme d’étatsSyntaxe graphique: diagramme d’états

Evt1 [cond] / m() ^Evt2E1 E2

état transition

événement reçuévénement émisactioncondition de garde

Syntaxe :EvénementReçu (param : type, ...) [condition de garde] / Action

^EvénementsEmis

Syntaxe :EvénementReçu (param : type, ...) [condition de garde] / Action

^EvénementsEmis

Page 101: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00101

Notion d’événementsNotion d’événements Stimulis auxquels réagissent les objetsStimulis auxquels réagissent les objets

– Occurrence déclenchant une transition d’étatOccurrence déclenchant une transition d’état

Abstraction d'une information instantanée échangée Abstraction d'une information instantanée échangée entre des objets et des acteursentre des objets et des acteurs– Un événement est instantanéUn événement est instantané– Un événement correspond à une communication Un événement correspond à une communication

unidirectionnelleunidirectionnelle– Un objet peut réagir à certains événements lorsqu'il est Un objet peut réagir à certains événements lorsqu'il est

dans certains états.dans certains états.– Un événement appartient à une Un événement appartient à une classe d'événementsclasse d'événements

(classe stéréotypée «signal»).(classe stéréotypée «signal»).

Page 102: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00102

Les événementsLes événements

«signal»IO_EVENT

time

«signal»USER_INPUT

device«signal»

NETWORK_EVENT

«signal»MOUSE_EV

«signal»KEYBD_EV

Les événements sont considérés comme des objetsLes événements sont considérés comme des objets

location character

... ... ...

Page 103: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00103

Typologie d’événementsTypologie d’événements Réalisation d’une condition arbitraireRéalisation d’une condition arbitraire

– transcrit par une condition de garde sur la transitiontranscrit par une condition de garde sur la transition

Réception d’un signal issu d’un autre objet Réception d’un signal issu d’un autre objet – transcrit en un événement déclenchant sur la transitiontranscrit en un événement déclenchant sur la transition

Réception d’un appel d’opération par un objetRéception d’un appel d’opération par un objet– transcrit comme un événement déclenchant sur la transcrit comme un événement déclenchant sur la

transitiontransition

Période de temps écouléePériode de temps écoulée– transcrit comme une expression du temps sur la transitiontranscrit comme une expression du temps sur la transition

Page 104: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00104

Notion d ’actionNotion d ’action

Action : opération Action : opération instantanéeinstantanée (conceptuellement) (conceptuellement) et et atomiqueatomique (ne peut être interrompue) (ne peut être interrompue)

Déclenchée par un événementDéclenchée par un événement– Traitement associé à la transitionTraitement associé à la transition

– Ou à l ’entrée dans un état ou à la sortie de cet étatOu à l ’entrée dans un état ou à la sortie de cet état

User_input / mise_sous_tension

délai_mise_en_veille /passage_en_mode_veille

Veille Allumé

action

action

Page 105: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00105

Notion d’étatsNotion d’états

Etat : situation stable d’un objet parmi un ensemble Etat : situation stable d’un objet parmi un ensemble de situations pré-définiesde situations pré-définies– conditionne la réponse de l’objet à des événements conditionne la réponse de l’objet à des événements

» programmation réactive /  « temps réel »programmation réactive /  « temps réel »

– Intervalle entre 2 événements, il a une duréeIntervalle entre 2 événements, il a une durée

Peut avoir des variables internesPeut avoir des variables internes– attributs de la classe supportant ce diagramme d’étatsattributs de la classe supportant ce diagramme d’états

Page 106: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00106

Structuration en sous-étatsStructuration en sous-états

Problème d'un diagramme d'états platsProblème d'un diagramme d'états plats– Pouvoir d'expression réduit, inutilisable pour de grands Pouvoir d'expression réduit, inutilisable pour de grands

problèmesproblèmes– Explosion combinatoire des transitions.Explosion combinatoire des transitions.

Structuration à l ’aide de super/sous états (+ Structuration à l ’aide de super/sous états (+ hiérarchies d ’événements)hiérarchies d ’événements)– représentés par imbrication graphiquereprésentés par imbrication graphique

Page 107: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00107

Notion d ’activité dans un étatNotion d ’activité dans un état Activité : opération se déroulant continuement tant Activité : opération se déroulant continuement tant

qu ’on est dans l ’état associéqu ’on est dans l ’état associé– do/ do/ actionaction

Une activité peut être interrompue par un Une activité peut être interrompue par un événement.événement.

TéléphoneN° invalide Téléphone raccroché Invalide

do / passer message

activité

Page 108: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00108

Exemple de diagramme d'étatsExemple de diagramme d'états un téléphone :un téléphone :

Actif

En composition

connecté

décrochecombiné

Repos

Appelé raccroche

Dialogue Sonneriedo/ sonneRéponse de l’appelé/

autorise parole

Compose numéro (n)

Appelant raccroche/déconnexion

Tonalitédo/ joue tonalité

Occupédo/ tonalité occupée

occupé

15 sec

Invalidedo/ dit message

Compose numéro (n) [n.isInvalid]

Timeoutdo/ timeout tone 15 sec

Composenuméro (n)

Etablissement

OccupéLibre

Derniernuméro

Page 109: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00109

Émission d’événementsÉmission d’événements Automate d’états d’une télécommande double : Automate d’états d’une télécommande double :

– TV + MAGNETOSCOPETV + MAGNETOSCOPE

Contrôle distantMAGNETOSCOPE

TVcontrôle

TVcontrôle

MAGNETO

bouton marche^signal ON/OFF

Télévision

Arrêt Marche

signal ON/OFF

Page 110: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00110

Diagrammes d'états concurrentsDiagrammes d'états concurrents

Utilisation de sous-états concurrents pour ne pas à Utilisation de sous-états concurrents pour ne pas à avoir à expliciter le produit cartésien d ’automatesavoir à expliciter le produit cartésien d ’automates– si 2 ou plus aspects de l ’état d ’un objet sont si 2 ou plus aspects de l ’état d ’un objet sont

indépendants indépendants – Activités parallèlesActivités parallèles

Sous-états concurrents séparés par pointillésSous-états concurrents séparés par pointillés– « « swim lanesswim lanes » »

Page 111: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00111

Exemple de concurrenceExemple de concurrence

Préparation d'un avion

Remplissage Plein

Maintenance

Réservoir pleinpréparation Avion

prêt

Chargementnourriture

Nourriturechargée

Approvisionnement

Compartiment plein

Equipageabsent

Vérificationavion

Equipage

Montée

vérification OK

Page 112: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00112

Etat-transition (résumé)Etat-transition (résumé) Format : Format :

– événement (arguments) [conditions] / action ^événements provoquésévénement (arguments) [conditions] / action ^événements provoqués

Déclenchement :Déclenchement :– par un événement (peut être nul).par un événement (peut être nul).

» Peut avoir des arguments.Peut avoir des arguments.

– Conditionné par des expressions booléennes sur l'objet Conditionné par des expressions booléennes sur l'objet courant, l'événement, ou d'autre objets.courant, l'événement, ou d'autre objets.

Tir de la transition :Tir de la transition :– Exécute certaines actions instantanément.Exécute certaines actions instantanément.– Provoque d'autres événements ; globaux ou vers des Provoque d'autres événements ; globaux ou vers des

objets cibles.objets cibles.

Page 113: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00113

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 114: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00114

Les diagrammes d’activitéLes diagrammes d’activité

Traitements effectués par une opérationTraitements effectués par une opération– Description d’un flot de contrôle procéduralDescription d’un flot de contrôle procédural

» Réseau d’actions et de transitions : automate dégénéréRéseau d’actions et de transitions : automate dégénéré» La transition s’effectue lorsque l’opération est terminéeLa transition s’effectue lorsque l’opération est terminée

– Pas de déclenchement par événement asynchronePas de déclenchement par événement asynchrone» Sinon utilisation diagrammes d’états classiquesSinon utilisation diagrammes d’états classiques

Attachés à Attachés à – une classe, une classe, – une opération,une opération,– ou un ou un use-case (workflow)use-case (workflow)

Page 115: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00115

Etat-action et décisionEtat-action et décision Etat-action = raccourci pour un état où il y a :Etat-action = raccourci pour un état où il y a :

– une action interneune action interne– au moins une transition sortanteau moins une transition sortante

» production d’un événement implicite : action accomplieproduction d’un événement implicite : action accomplie

– Pas de production/réaction à des événements explicitesPas de production/réaction à des événements explicites

Modélisation d’une étape dans l'exécution d’un Modélisation d’une étape dans l'exécution d’un algorithmealgorithme– Notation :Notation :

Décision = branchement sur plusieurs transitionsDécision = branchement sur plusieurs transitions– Notation : Notation :

obtenir un gobelet

[coût<50][coût>=50]

Page 116: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00116

Exemple de diagramme d’activitéExemple de diagramme d’activité

déterminer boisson

mettre le cafédans le filtre

mettre le filtredans la machine

obtenir une canettede soda

boireverser café

infuser

obtenir un gobeletajouter de l’eau

dans le réservoir

[demande café]

[pas de café]

[demande soda]

[pas de soda]

opération PréparerBoisson de la classe Personne

Page 117: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00117

Stéréotypes optionnelsStéréotypes optionnels

Emission de signalEmission de signal

Réception de signalRéception de signal

On obtient une syntaxe graphique proche de SDLOn obtient une syntaxe graphique proche de SDL

– langage de description de spécificationslangage de description de spécifications

– populaire dans le monde télécompopulaire dans le monde télécom

Allumer cafetière

Voyant s’éteint

Page 118: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00118

Liens modèles statiques/dynamiquesLiens modèles statiques/dynamiques

Le modèle dynamique définit des séquences de Le modèle dynamique définit des séquences de transformation pour les objets transformation pour les objets – Diagramme d'état généralisant pour chaque classe ayant Diagramme d'état généralisant pour chaque classe ayant

un comportement réactif aux événements les scénarios et un comportement réactif aux événements les scénarios et collaborations de leurs instancescollaborations de leurs instances

» Les variables d'état sont des attributs de l'objet courantLes variables d'état sont des attributs de l'objet courant» Les conditions de déclenchement et les paramètres des actions Les conditions de déclenchement et les paramètres des actions

exploitent les variables d'état et les objets accessiblesexploitent les variables d'état et les objets accessibles

– Diagrammes d’activités associés aux Diagrammes d’activités associés aux opérations/transitions/méthodesopérations/transitions/méthodes

Les modèles dynamiques d'une classe sont Les modèles dynamiques d'une classe sont transmis par héritage aux sous-classestransmis par héritage aux sous-classes

Page 119: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00119

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 120: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00120

Diagrammes d’implantationDiagrammes d’implantation

Diagrammes de composantsDiagrammes de composants– Dépendances entre composants logicielsDépendances entre composants logiciels

» code sourcecode source» binaires, DLLbinaires, DLL» exécutablesexécutables

Diagrammes de déploiementDiagrammes de déploiement– Configuration des composantsConfiguration des composants– Localisation sur les noeuds d’un réseau physiqueLocalisation sur les noeuds d’un réseau physique

Page 121: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00121

Exemples de composantsExemples de composants

Dictionnaire

Planner

GUI

Vérificateur

Synonymes

Interfaces

Composants

Page 122: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00122

Exemple de déploiementExemple de déploiement

GUI

Dictionnaire

Planner

MachineServeur

MachineClient1

MachineClient2

Noeuds

Page 123: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00123

Modélisation UMLModélisation UML Modélisation selon 4 points de vue principaux :Modélisation selon 4 points de vue principaux :

– Vision utilisateur du systèmeVision utilisateur du système» Cas d’utilisationCas d’utilisation

– Aspects statiques du systèmeAspects statiques du système» Description des données et de leurs relationsDescription des données et de leurs relations» Structuration en paquetagesStructuration en paquetages

– Aspects dynamiques du système (comportemental)Aspects dynamiques du système (comportemental)» Diagramme de séquences (scénarios)Diagramme de séquences (scénarios)» Diagramme de collaborations (entre objets)Diagramme de collaborations (entre objets)» Diagramme d’états-transitions (Harel)Diagramme d’états-transitions (Harel)» Diagramme d’activitésDiagramme d’activités

– Vision implantation Vision implantation » Diagramme de composants et de déploiementDiagramme de composants et de déploiement

Page 124: 16/08/2014 00:59 1 Jean-Marc Jézéquel IRISA/CNRS et Yves Le Traon IRISA/Ifsic Unified Modeling Language

11/04/23 05:00124

Processus de développement avec UMLProcessus de développement avec UML

?