Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented...

100
Christine Bonnet UML Christine Bonnet UML 1 1 Unified Modeling Language (UML) Langage de modélisation unifié (notation unifiée) fondé sur les concepts orientés objet ; Créé dans le cadre de l'OMG (Object Management Group) Objectif : définir une notation standard utilisable dans le développement des systèmes informatiques basés sur l'objet.

Transcript of Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented...

Page 1: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 11

Unified Modeling Language (UML)

Langage de modélisation unifié (notation unifiée) fondé sur les concepts orientés objet ;

Créé dans le cadre de l'OMG (Object Management Group)

Objectif :définir une notation standard utilisable dans le

développement des systèmes informatiques

basés sur l'objet.

Page 2: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 22

OMG (OMG (ObjectObject Management Group)Management Group)Organisme de normalisation international crOrganisme de normalisation international créééé en 1989 en 1989 àà ll’’initiative initiative de socide sociééttéés ams amééricaines ricaines

Mission : standardisation des technologies objets pour une Mission : standardisation des technologies objets pour une meilleure interopmeilleure interopéérabilitrabilitéé des solutions logiciellesdes solutions logiciellesMembres : Membres :

–– ÉÉditeurs de logiciels (SOFTEAM, Oracle, Microsoft,diteurs de logiciels (SOFTEAM, Oracle, Microsoft,……))–– Constructeurs (Sun, IBM, Constructeurs (Sun, IBM, ……))–– Utilisateurs (France TUtilisateurs (France Téélléécom, AT&T, com, AT&T, ……))

Standards les plus connus Standards les plus connus –– UML : notation pour lUML : notation pour l’’analyse et la conceptionanalyse et la conception–– CORBA (CORBA (CommonCommon ObjectObject RequestRequest Broker Architecture) : Broker Architecture) :

modmodèèle pour la construction dle pour la construction d’’applications applications àà objets objets distribudistribuéés (rs (réépartis sur un rpartis sur un rééseau).seau).

Page 3: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 33

Unified Modeling Language (UML)

N'est pas une méthode : UML ne propose pas de processus standard d'analyse ou de conception.

Raisons : 1. UML se veut un standard

ORPas de consensus international suffisant pour aboutir àdes processus de développement logiciel standard acceptables et utilisables.

2. Les processus dépendent des organisations et des métiers. Pas de processus unique adapté à toutes les situations.

Conçu pour permettre la modélisation de "tous" les phénomènes de l'activité de l'entreprise.

Exemple : le ministère de la Justice américain modélise les processuspénitencier de New York avec UML.

Page 4: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 44

Chronologie des méthodes / Précurseurs d'UML1975 1980 1985 1990 1995 2000

WARNIERDIEKSKRACORIG

Réseau de PETRIThéorie des systèmes

MERISE(1978)

BACHMANN

Shlaer & MellorOOA (1979)

REMORA(1982)

MERISE/2(1992)

OOM(1993)

RumbaughOMT (1987)

JacobsonOOSE (1990)

HOOD(1987)

Coad & YourdonOOA/OOD (1991)

Booch - OOD(1981)

UML(1997)

HOOD (Hierarchical Object Oriented Design)OMT (Object Modeling Technique)OOA (Object Oriented Analysis)OOA/OOD (Object Oriented Analysis/ Object Oriented Design)OOD (Object Oriented Design)OOM (Orientations Objet dans MERISE)OOSE (Object Oriented Software Engineering)UML (Unified Modeling Language)

Page 5: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 55

Apports d'UMLApports d'UMLElaboration ou refonte d'un système d'information de l'entreprise sur la base du concept objet

pérennité du concept objet?risques encourus?

gains escomptés?lubie ou effet de mode?

Avantages apportés par UML ( par l'objet) :

- Réactivité ;- Plus grande évolutivité des applications ;- Réutilisation des composants ;- Gains de productivité en développement et en maintenance ;

- Meilleure communication avec les utilisateurs ;- Des IHM plus sophistiquées.

La tâche d'une équipe de développement logiciel est de donner l'illusion de la simplicité.

Page 6: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 66

UML est un langage pseudo-formel

UML est fondé sur un métamodèle, qui définit :

les éléments de modélisation (les concepts manipulés par le langage)

la sémantique de ces éléments (leur définition et le sens de leur utilisation)

Un métamodèle est une description très formelle de tous les concepts d'un langage. Il limite les ambiguïtés.

Page 7: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 77

ExempleExemple

Page 8: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 88

UML est un support de communication

Sa notation graphique permet d'exprimer visuellement une solution objet.

L'aspect formel de sa notation limite les ambiguïtés et les incompréhensions.

Son aspect visuel facilite la comparaison et l'évaluation de solutions.

Son indépendance (par rapport aux langages d'implémentation, domaine d'application, processus...) en font un langage universel.

Page 9: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 99

Les points forts d'UML

UML est un langage formel et normaliségain de précision gage de stabilitéencourage l'utilisation d'outils

UML est un support de communication performantIl cadre l'analyseIl facilite la compréhension de représentations abstraites complexesSon caractère polyvalent et sa souplesse en font un langage universel

Page 10: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 1010

Les points faibles d'UMLLa mise en pratique d'UML nécessite un apprentissage et passe par une période d'adaptation.

La nécessité de s'accorder sur des modes d'expression communs est vitale en informatique. UML n 'est pas àl'origine des concepts objets, mais en constitue une étape majeure, car il unifie les différentes approches et en donne une définition plus formelle.

Le processus (non couvert par UML) est une autre cléde la réussite d'un projet

L'intégration d'UML dans un processus n'est pas triviale et améliorer un processus est un tâche complexe et longue.

Mais l'acceptabilité industrielle de la modélisation objets passe d'abord par la disponibilité d'un langage d'analyse objet performant et standard.

Page 11: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 1111

Diagrammes UMLDiagrammes UML

Vues statiques du systVues statiques du systèèmeme–– Diagramme de paquetagesDiagramme de paquetages

regroupe des regroupe des ééllééments de modments de modéélisation, selon des lisation, selon des critcritèères purement logiques.res purement logiques.

–– Diagramme de classesDiagramme de classescollection d'collection d'ééllééments de modments de modéélisation statiques, qui lisation statiques, qui montre la structure d'un modmontre la structure d'un modèèle.le.

–– Diagramme dDiagramme d’’objetsobjetsmontre des objets (instances de classes dans un montre des objets (instances de classes dans un éétat tat

particulier) et des liens (relations sparticulier) et des liens (relations séémantiques) entre ces objets.mantiques) entre ces objets.

Page 12: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 1212

Vues statiques (suite)Vues statiques (suite)

–– Diagramme de cas dDiagramme de cas d’’utilisationutilisationLes use cases permettent de structurer les besoins des Les use cases permettent de structurer les besoins des utilisateurs et les objectifs correspondants d'un systutilisateurs et les objectifs correspondants d'un systèème. me.

–– Diagramme de composantsDiagramme de composantspermettent de dpermettent de déécrire l'architecture physique et statique crire l'architecture physique et statique d'une application en terme de modulesd'une application en terme de modules : fichiers sources, : fichiers sources, librairies, exlibrairies, exéécutables, etc.cutables, etc.

–– Diagramme de dDiagramme de dééploiementploiementmontre la disposition physique des matériels qui composent le système et la répartition des composants sur ces matériels.

Page 13: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 1313

Diagramme UML (suite)Diagramme UML (suite)

Vues dynamiques du systVues dynamiques du systèèmeme–– Diagramme de collaborationDiagramme de collaboration

Les collaborations sont des interactions entre objets, Les collaborations sont des interactions entre objets, dont le but est de rdont le but est de rééaliser un objectif du systaliser un objectif du systèème et me et rréépondre pondre àà un besoin d'un utilisateur.un besoin d'un utilisateur.

–– Diagramme de sDiagramme de sééquencequencepermet de reprpermet de repréésenter des collaborations entre objets senter des collaborations entre objets selon un point de vue temporel, on y met l'accent sur la selon un point de vue temporel, on y met l'accent sur la chronologie des envois de messages.chronologie des envois de messages.

Page 14: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 1414

Vues dynamiques (suite)Vues dynamiques (suite)

–– Diagramme dDiagramme d’’éétatstats--transitionstransitionspermet de dpermet de déécrire les changements d'crire les changements d'éétats d'un objet tats d'un objet ou d'un composant, en rou d'un composant, en rééponse aux interactions avec ponse aux interactions avec d'autres objets/composants ou avec des acteurs. d'autres objets/composants ou avec des acteurs.

–– Diagramme dDiagramme d’’activitactivitééssUML permet de reprUML permet de repréésenter graphiquement le senter graphiquement le comportement d'une mcomportement d'une mééthode ou le dthode ou le dééroulement d'un roulement d'un cas dcas d’’utilisation, utilisation, àà l'aide de diagrammes d'activitl'aide de diagrammes d'activitéés (une s (une variante des diagrammes dvariante des diagrammes d’’éétatstats--transitionstransitions).).

Page 15: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 1515

EnchaEnchaîînement logique des diagrammesnement logique des diagrammes

Processus d'Analyse et de Conception :Analyse "Quoi ?"expression des besoins, modélisation du domaine.

Conception "Comment ?" Construction de la solution informatique.Affinement des diagrammes.Solution logique puis physique (diagramme de composants et de déploiement)

Mega [4]État Interface

Classe Séquence Collaboration

Cas d'utilisation

Paquetage

Page 16: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 1616

Diagramme de paquetageDiagramme de paquetage

Paquetage :

Un paquetage partitionne le domaine d'étude et les travaux associés.Résultat de l'analyse des processus métier et des structures organisationnelles.(un processus métier est l'ensemble des activités internes d'un métier dont l'objectif est de fournir un résultat observable et mesurable pour un utilisateur individuel du métier).

Groupement d'éléments de modélisation, en particulier les classes et les cas d'utilisation : hiérarchie. Un paquetage peut aussi contenir d'autres paquetages : graphe

Le découpage en paquetages doit être fait de manière à minimiser les interactions entre les différents paquetages.

Moyen de structurationGrain de réutilisationMoyen d'organisation de l'équipe

Page 17: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 1717

Paquetage (suite)Paquetage (suite)Les paquetages divisent et organisent le projet de la même manière que les répertoiresorganisent les systèmes de fichiers.

Notation :

Nom de paquetage

Exemple :

Entreprise

SI commercial Gestion de production

Prospect Client Commande

Société Personne Produit

Commandenumérique

Systèmed'alarme

Page 18: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 1818

Diagramme de classes et d'objetsDiagramme de classes et d'objets

"Regarde le quadrupède allongé sur la véranda"

Les classes et les objets doivent être au bon niveau d'abstraction : ni trop élevé, ni trop bas.

Page 19: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 1919

Objet

Un objet a un état, il exhibe un comportement bien défini et il a une identité unique

• Composante statique : savoir déclaratif Attributs

• Composante dynamique : savoir procéduralMéthodes

Page 20: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 2020

ClassesClassesNotion de type abstrait

Collection d'objets de description et de comportement identiques

Page 21: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 2121

MMéécanisme d'instanciation / classificationcanisme d'instanciation / classification

La classification est le moyen par lequel nous ordonnons nos connaissances

Page 22: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 2222

MMéécanisme d'instanciation / classification (suite)canisme d'instanciation / classification (suite)

Exemple 1 : Exemple 2 :

Classe compteAttributs :

• débit : nombre• crédit : nombre

Méthodes :• déposer• retirer• avoirSolde

C150006000

C232003000

Instance-deInstance-de

AbuQuoi (Boisson)Qui (Personne)QtéDate

BoissonNomQté

PersonneNomAdresse

Page 23: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 2323

DifficultDifficultéé de la classificationde la classification

Différents observateurs peuvent classer le même objet de différentes façons

Page 24: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 2424

Persistance

La persistance sauvegarde l'état et la classe d'un objet à travers le temps et l'espace.

Page 25: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 2525

Approche de l'architecture en couches : Approche de l'architecture en couches : classification des objets.classification des objets.

Trois catégories d'objets :• les objets du domaine = objets métier ; objets conceptuels réutilisables dansdifférentes applications d'un même métier : client, compte bancaire, etc. ;

• les objets de l'application = objets de présentation (grille de saisie), les objets de contrôle, et les dispositifs physiques (objets avec lesquels un utilisateur interagit); objets spécifiques au domaine de l'application ;

• les objets d'implémentation (techniques) = objets de servitude nécessaires pour réaliser une solution informatique (type élémentaire ou construit, liste, arbre, fenêtre, bouton, etc..).

TechnologieUtilisateurs

Système

Objets de type interface

Objets detypetechnique

Cœur dusystème :les objetsmétier

Page 26: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 2626

DiagrammeDiagramme de classesde classesReprésentation de la structure statique d'un système, en terme de classes et derelations entre ces classes.

Représentation d'une classe :

Nom de classe

Attributs

Opérations

Attribut : propriété nommée d'une classe Opération : service qui peut être demandé à un objet pour mettre en œuvre un comportement défini.

Nom_d'attribut : Type_Attribut = Valeur initiale

Attributs dérivés (redondants) : Nom_d_opération()

Rectangle

LongueurLargeur/Surface

Rectangle

LongueurLargeur

Surface()

Page 27: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 2727

VisibilitVisibilitéé des attributs et des opdes attributs et des opéérationsrations

• Public (+) : visibilité par défaut, l'élément est visible par tous ;

• Protégé (#) : l'élément est visible par les héritiers de son paquetage ou ses amis ;

• Privé (-) : l'élément est visible par sa classe ou ses amis.

Portée des attributs et des opérations

• Objet : l'attribut (respectivement l'opération) peut prendre des valeurs spécifiques pour chacun des objets de la classe (respectivement s'appliqueaux objets de la classe) ;

• Classe : l'attribut (respectivement l'opération) peut prendre une valeur quicaractérise l'ensemble de la classe (respectivement s'applique à la classeelle-même).

Page 28: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 2828

Relations entre classes : associationRelations entre classes : association

Exemple :liaison

Plan de volHeure de départHeure d'arrivéeCompagnieCommandant de bord

Rechercher_Plan( )

1..* 2Aéroport

NomPositionPistes

Avion

TypeCaractéristiques1

0..*attribution

Arité d'une association : le plus souvent, l'association est binaire, mais des arités supérieures peuvent cependant exister.

Année

Equipe JoueurGardien-de-but

équipe

saison

Page 29: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 2929

Association (suite)Association (suite)

Classe-association (classe associative) : association qui est une classe, possède des fonctionnalités propres, liées à l'existence de l'association.

employéemployeurPersonne

travaille-pourSociété * 1..*

Emploisalaire

Page 30: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 3030

Contraintes Contraintes (m(méécanisme commun dcanisme commun dééfini par UML)fini par UML)

Information sémantique associée à un élément du modèle et qui spécifie les conditions que le modèle doit satisfaire pour être correct.

Exprime une règle de gestion qui se traduit par un contrôle.

Langage d'expression de contraintes OCL (Object Constraint Language).

Contraintes sur les associations{ordonnée}Une contrainte {ordonnée} peut être placée sur le rôle pour spécifier qu'unerelation d'ordre décrit les objets placés dans la collection.La déclaration ne spécifie pas comment les éléments sont ordonnés.

L'ordre doit être maintenu durant l'ajout ou la suppression des objets par exemple.

Personne Compte{ordonnée}

1 *Exemple: Etc…

Page 31: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 3131

Relations entre classes : agrRelations entre classes : agréégationgation

L'agrégation définit une relation "partie-de" entre instances de classes.Association non symétrique dans laquelle une des extrémités joue un rôleprédominant par rapport à l'autre extrémité.

Représentation : A B

Critères impliquant une agrégation :

• une classe fait partie d'une autre classe ;

• les valeurs d'attributs d'une classe se propagent dans les valeurs d'attributsd'une autre classe ;

• une action sur une classe implique une action sur une autre classe ;

• les objets d'une classe sont subordonnés aux objets d'une autre classe.

Page 32: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 3232

AgrAgréégation (suite)gation (suite)

Deux formes d'agrégation : agrégation partagée (par référence ) , composition stricte (par valeur ).

Exemples : Agrégation de type catalogueAgrégation physique(composition)

Alphabet

Lettre1..*1..*

Immeuble

Appartement

11..*

Equipe

Joueur1..*1..*

Page 33: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 3333

Liens sLiens séémantiques entre classes mantiques entre classes -- HiHiéérarchiesrarchies

Généralisation / Spécialisation

Mécanisme d'héritage

Une sous-classe hérite de la structure et du comportement de sa super-classe

Page 34: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 3434

• Héritage simpleExemple :

Classe compteAttributs :

• débit : nombre• crédit : nombre

Méthodes :• déposer• retirer• avoirSolde

Classe compte épargneAttributs :

• taux : réel

Méthodes :

• calculerIntérêt

• Héritage multipleExemple :

Plante à fleurs Plante à fruits

Plante à fleurs et à fruits

Page 35: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 3535

Contrôle de la complexitContrôle de la complexitéé : l'encapsulation: l'encapsulationClasse :

•partie interface (vue externe),

• partie implémentation (structure des objets).

Classe personne

nomprénomdate de naissanceconjoint (personne)enfants (personne)

Méthodes :

Attributs :

nom nom-conjointnoms-enfantsâge

Implémentation

Interface

Modification de programmes en toute sécurité

Page 36: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 3636

Relations entre classes : gRelations entre classes : géénnééralisationralisation

Relation de classification (taxinomie) - d'héritage - entre une classe plus générale et une classe plus spécifique.

VolNuméroNiveau de volPiste attribuéeHeure de départHeure estimée d'arrivée

PositionTrajectoire

màj_niveau de vol ( )demander_contrôle ( )passer_en_mode_contrôle ( )créer( )

Vol civil Vol militaire

GénéralisationSpécialisation

Page 37: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 3737

GGéénnééralisation (suite)ralisation (suite)

Une classe peut être spécialisée selon plusieurs critères simultanément.Discriminant :

Indication du critère par un discriminant

Exemple : Véhicule

A voile A moteur Terrestre Marin

MilieuMotorisation

Contraintes sur les généralisations :

• {exclusif}

Champignon

Agaricus Boletus{exclusif}

Une sous-classe d'une super-classe peut être descendante d'une seule sous-classe de la super-classe.

Exemple :

Etc…

Page 38: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 3838

Classes abstraites / concrClasses abstraites / concrèètestes

Une classe abstraite n'est pas directement instanciable.sert de spécification plus générale - de type - pour manipuler les objetsinstances d'une (ou plusieurs) de ses sous-classes.

Convention : le nom d'une classe abstraite est en italique.

Exemple :

Mammifère

Etre humainChat

Objet GérardObjet Félix

Abstraites

Concrètes...

...

Instances

Page 39: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 3939

Diagramme d'objetsDiagramme d'objetsPermet de montrer une instance de structure du système à un instant t (snapshot).

pour montrer un contexte, par exemple, avant et après une interaction ;

pour faciliter la compréhension des structures de données complexes, comme les structures récursives.

Représentation des objets :

Nom de l'objet Nom de l'objet : Classe : Classe

Valeur des attributs : : Voiture

Couleur = rouge

Page 40: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 4040

Diagramme d'objets (suite)Diagramme d'objets (suite)

Représentation des liens :

Plan_de_vol

Aéroport

Avion0..* 1

1..*2

Diagramme de Classecorrespondant

: Plan_de_vol : Avion

: Aéroport : Aéroport

Etienne : Personne

patron

Denis : Personne

patronpatron

collaborateur

Personne0..1

*Jean-Luc : Personne

Etienne est le patron de Jean-Luc

Denis est son proprepatron

< gère

Page 41: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 4141

Diagramme d'objets (suite)Diagramme d'objets (suite)

Représentation des objets composites :

Diagramme de Classecorrespondant

AscenseurFenêtre

Zone de dessin

1 2

1

1

:Fenêtre

:Zone de dessin :Ascenseur

:Ascenseur

2

1

Page 42: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 4242

Diagramme de cas d'utilisationDiagramme de cas d'utilisation

Description du comportement d'un système d'un point de vue de l'utilisateur.

Un cas d'utilisation est une suite d'actions qui amène à un résultat observablepour un acteur particulier.

Objectif : identifier les "services": fonctionnalités du système et les acteurs(internes et externes) qui y participent Détermination des besoins.

Un cas d'utilisation n'est pas une fonction du système mais englobe plusieurs fonctions.

Mémorise les consignes (Niveau, Piste, Vitesse)

Active/Désactive un plan de vol

Contrôleur

Affiche des informations

Radar Indique la position d'un vol

Transfert un vol/plan de vol

Exemple :

Page 43: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 4343

Diagramme de cas d'utilisation (suite)Diagramme de cas d'utilisation (suite)Notation :

Acteur B

Acteur A

Nom de paquetage

Cas d'utilisation X

Cas d'utilisation Y

Acteur : représente un rôle joué par une personne ou une chose qui interagit avec le système dans différents cas d'utilisation .

candidats acteurs : utilisateurs, clients, partenaires, fournisseurs, vendeurs, autres systèmes.

La même personne physique peut jouer le rôle de plusieurs acteurs (client, vendeur).

Plusieurs personnes peuvent jouer le même rôle et donc agir comme le même acteur (tous les clients).

Page 44: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 4444

Diagramme de cas d'utilisation (suite)Diagramme de cas d'utilisation (suite)

Généralisation des acteurs :

Employé Employeur

Particulier

Recherche des cas d'utilisation : à partir des acteurs identifiés

Quelles sont les tâches fondamentales que l'acteur veut faire faire au système ?

Est-ce que l'acteur crée, modifie, supprime ou consulte des informations dans le système ?

Est-ce que l'acteur a besoin d'informer le système de changements externes ?

Est-ce que l'acteur a besoin d'être informé des occurrences survenues dans lesystème ?

Est-ce que l'acteur commande le démarrage et l'arrêt du système ?

Page 45: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 4545

Relation entre les acteurs et les cas Relation entre les acteurs et les cas d'utilisationd'utilisation

Relation de communication

Participation d'un acteur à un cas d'utilisation.

Notation :

Cas d'utilisation XActeur A

Page 46: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 4646

Relation entre les acteurs et les cas d'utilisation Relation entre les acteurs et les cas d'utilisation (suite)(suite)

Les signauxSignal : événement qui peut être invoqué explicitement. Il peut posséder des paramètres.

La participation d'un acteur à un cas d'utilisation peut se décomposer en signaux émis et signaux reçus.Convention : les notions "émis" et "reçu" sont définies par rapport au cas d'utilisation.

Signal émis

Cas d'utilisation XActeur A Signal reçu

Exemple :

Traitement commandeAgent commercial

Commande

Page 47: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 4747

Relations entre cas d'utilisation Relations entre cas d'utilisation

Relation d'extension : <<cas-étendu>>Une relation d'extension du cas d'utilisation A vers le cas d'utilisation B indique qu'une instance du cas d'utilisation A étend le comportement spécifié par A.

<<cas-étendu>>

Cas d'utilisation A Cas d'utilisation B

Relation d'utilisation : <<Cas-utilisateur>>

Une relation d'utilisation du cas d'utilisation A vers le cas d'utilisation B indique qu'une instance du cas d'utilisation A inclut le comportement spécifié par B.

<<cas-utilise>>

Cas d'utilisation A Cas d'utilisation B

Page 48: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 4848

Relations entre cas d'utilisation (suite) Relations entre cas d'utilisation (suite) Exemples :

Virement par minitel

Virement

<<cas-étendu>>

Identification

<<cas-utilise>>Client distant Client local

Gérer commande Gérer litige

Facturer Livrer marchandises

<<cas-étendu>>

<<cas-utilise>> <<cas-utilise>>

Page 49: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 4949

Diagramme de cas d'utilisation (suite)Diagramme de cas d'utilisation (suite)

Scénarios :Des scénarios (séquences d'interactions) illustrent les cas d'utilisation par l'exemple.

Chaque fois qu'une instance d'un acteur déclenche un cas d'utilisation, un scénario est créé.

les cas d'utilisation doivent être vus comme des classes dont lesinstances sont les scénarios.

Les scénarios sont représentés :• en langage naturel;• par des diagrammes d'interaction (diagrammes de collaboration et diagrammes de

séquence).

Source précieuse pour identifier les objets.

Page 50: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 5050

Diagrammes d'interactionDiagrammes d'interaction

Les objets travaillent en synergie afin de réaliser les fonctions de l'application

Servent à montrer les interactions entre objets.

Diagramme de collaboration ;

Diagramme de séquence.

Page 51: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 5151

Dynamique des objets : les messagesDynamique des objets : les messages

Programmation classique: Programmation par objets :un programme est constitué d'un ensembled'objets (partie données/procédures) quiinteragissent par envoi de messages.

découpage net entre procédureset données.

Données

Procédure 1

Procédure 2

Procédure 3

Page 52: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 5252

Dynamique des objets : les messages (suite)Dynamique des objets : les messages (suite)

Message = <receveur, sélecteur de méthode, arguments>

Activation de procédures de services ;Calcul de valeurs ;Accès et modifications d'attributs ;

...

Exemple :

Compte…

Méthodes :• déposer

Compte Epargne…

Méthodes :...

Hérite-de

C3Instance-dedéposer(300)

Page 53: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 5353

Diagramme de collaborationDiagramme de collaboration

Permet de décrire comment un ensemble d'objets collaborent pour répondre à une sollicitation.

Montre :

interactions entre les objets ;

relations entre les objets (classes).

Ne montre pas :la dimension temporelle.

Représentation :- objets et liens entre objets ;- envois de messages.

Page 54: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 5454

Diagramme de collaboration (suite)Diagramme de collaboration (suite)

Notation (Mega) :

: Acteur1<<Acteur>>

Objet1 : Classe1<<Entité>>

Objet2 : Classe2<<Entité>>

1:Opération1()L61

L52 2:Opération2()

Page 55: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 5555

Un exemple de diagramme de collaboration Un exemple de diagramme de collaboration d'une d'une éédition de relevdition de relevéé bancairebancaire

(Notation Rational Rose)

:Banque :Compte

:Opération

titulaire : Personne

:Relevé

1: éditer_relevé(Date)

2: opérations_du_mois (Date)

3: val_adresse()

4: cré

er (O

pérat

ion, T

exte)

5: ligne()

Page 56: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 5656

Le concept de messageLe concept de message

Unité de communication entre objets. Intégrateur dynamiqueReconstitution d'une fonction de l'application par la mise en collaboration

d'un groupe d'objets.

Réception d'un message Evénement générateur d'une activité chez l'objet récepteur.

Regroupe :

- les flots de contrôle (description de la répartition de l'activité entre les objets).Notation :

- les flot de données (description des données qui transitent d'un objet vers un autre objet).Notation :

Page 57: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 5757

Les principales catLes principales catéégories de messagesgories de messages

Objets créés, puis détruits au sein de la même interaction :

:Classe1

{nouveau}

:Classe1

{détruit}

les constructeurs : créent des objets ;

:Classe1

{transitoire}les destructeurs : détruisent des objets ;

les sélecteurs : renvoient tout ou partie de l'état d'un objet ;

les modificateurs : changent tout ou partie de l'état d'un objet ;

les itérateurs : visitent l'état d'un objet ou le contenu d'une structure de donnéesqui contient plusieurs objets.

Note (Mega) : l'envoi d'un message peut correspondre à l'envoi d'un signal.

Page 58: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 5858

Exemples de la syntaxe d'envoi des messagesExemples de la syntaxe d'envoi des messagessynchronisation séquence ':' résultat ':=' nom arguments

4 : Afficher (x, y) message simple

3.3.1 : Afficher (x, y) message imbriqué

4.2 : âge := Soustraire (Aujourd'hui, DateDeNaissance) message imbriqué avec valeur retournée

6.2 [Age ≥ 18 ans ] : Voter () message conditionnel

4.a, 6.b / c.1 : Allumer (Lampe) synchronisation avec d'autres flots d'exécution

1 * : Laver () itération

3.a, 3.b / 4 * | | [i := 1..n] : Eteindre () itération parallèle

Page 59: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 5959

Diagramme de sDiagramme de sééquencequence

Permet de décrire des interactions entre objets selon un point de vue temporel.

Montre :

Interactions entre les objets ;

Les messages ordonnancés dans le temps.

Ne montre pas :Les associations entre objets.

Représentation en deux dimensions :- axe vertical : temps ;- axe horizontal : objets qui interagissent dans la séquence.A chaque objet de la collaboration :

ligne verticale ligne de vie de l'objet.

Page 60: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 6060

Diagramme de sDiagramme de sééquence (suite)quence (suite)

Notation :

Nom : Classe Nom : ClasseObjet

MessageLigne de vie

Utilisation :

Documentation des cas d'utilisation ;

Description détaillée des interactions entre objets.

Page 61: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 6161

ReprRepréésentations graphiquessentations graphiques

Envois de message synchrones et asynchrones :

A BMessage synchrone

Message asynchrone

l'émetteur est bloqué et attend quel'appelé ait fini de traiter le message.

L'émetteur n'est pas bloqué et peut continuer son exécution.

Délai de propagation :

Un Objet Un autre objet

Un message

Page 62: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 6262

ReprRepréésentations graphiques (suite)sentations graphiques (suite)Envoi de message réflexif :

Création et destruction des objets :

Un Objet Objet composite

Composant A

Composant B

Point d'entrée

interactions internes (entre objets contenus par un objet composite)

Message réflexif

Un Objet

Un Autre ObjetCréer

Détruire

Page 63: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 6363

ReprRepréésentations graphiques (suite)sentations graphiques (suite)Période d'activité d'un objet et récursion :

Un ObjetUn Objet

Activation

Récursion

Temps pendant lequel un objet effectue une action

Activation et retour :

A B A B

Envoi synchrone→ retour implicite

Envoi asynchrone→ retour explicite

Page 64: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 6464

ReprRepréésentations graphiques (suite)sentations graphiques (suite)

Structures de contrôle : texte libre ou pseudo-code

A B C

x

y

tt'

z

{y-x<3s}Message

Message

Message

Message{z-y<1s}

{t'-t<2s}

Exemple de contraintes temporelles construites à partir de noms de transitions (x, y, z, t : instants d’émission, t’ : instant de réception d’un message).

Page 65: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 6565

ReprRepréésentations graphiques (suite)sentations graphiques (suite)

A B A Bwhile Xloop *[X] MessageMessage OU

end loop

Représentation d'une boucle while (pseudo-code/condition)

A B C

Message

Message

A B C

[X] Message

[non X] Message

A B

Message

[Y]

[X]If X

elseend if

OU

Alternatives du côté dudestinataire.

Représentation des branchements conditionnels

Page 66: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 6666

Exemple 1 :Exemple 1 : diagramme de séquence décrivant le cas d'utilisation Ouvrir un nouveau marché

:Acheteur :Ingénieur commercial

:Directeur régional

Un marché

Un client

Demande nouveaumarché

Vérifier existence et solvabilité

Etudier demande

Demander avis (marché)

Créer

Etudier la demande

Notifier acceptationTransmettre poursignature

Notifier acceptation

Activer

Page 67: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 6767

Exemple 2 :Exemple 2 : diagramme de séquence avec contrôles, branchementsconditionnels, récursion, création et destruction.

Obj1:C1 Obj3:C3

Obj2:C2

Obj4:C4

[x>0] créer

[x<=0] bloquer

plus()

à-faire[z]à-faire[w]

Page 68: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 6868

Diagramme dDiagramme d’é’étatstats--transitionstransitionsModélisation de la dynamique de systèmes réactifsMachines à états / automates d’états finis (D. Harel)

Description du comportement des objets d’une classe en réponse aux interactions avec les objets de son environnement ou avec des acteurs, en terme d’états et de transitions.

Graphe orienté : nœud ↔ état, arc ↔ transition, étiquette d’un arc ↔ événement déclenchant.

Toutes les classes d’objets ne nécessitent pas un diagramme d'états.

Exemple : diagramme d'états d'un avion

Créer (immatriculation) Au sol

En vol Crash

Décoller Atterrir

Page 69: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 6969

Diagramme dDiagramme d’é’étatstats--transitions Etattransitions EtatEtat → durée, stabilitéSituation stable dans laquelle un objet peut être observé pendant un certain temps.

Image :• de la conjonction instantanée des valeurs contenues par les attributs de l’objet.

Exemple :État d’une banque : solvable, insolvable Attributs : actifs, dettes

• de la présence ou de l’absence de liens, de l’objet considéré vers d’autres objets.Exemple :

État d’une personne : en activité, au chômage, à la retraite Lien : entre Personne et SociétéAttribut : âge de la personne

Page 70: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 7070

Diagramme dDiagramme d’é’étatstats--transitions Etat (suite)transitions Etat (suite)

Notation :Etat initial

Etat intermédiaireEtat final

Variables d'état :

Les états peuvent également contenir des variables exprimées sous la formed'attributs.

Exemple :

Login

NomMot de passe

→ Utilisation de ces variables dans les actions ou les activités.

Page 71: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 7171

Diagramme dDiagramme d’é’étatstats--transitions Evtransitions Evéénementnement

Evénement : quelque chose qui se produit à un moment donné dans le temps.

Exemples : l'utilisateur appuie sur le bouton gauche, le vol 123 part de Chicago,31 décembre 2004 à Lyon, majorité d'un individu, ...

Déclencheur pour passer d'un état à un autre.

Les objets sont contrôlés par les événements en provenance du système.

Syntaxe : Nom_de_L'Evénement (nom_de_paramètre : Type, …)

Exemple : après (15 secondes), numéroter_chiffres (10), ...

Page 72: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 7272

Diagramme dDiagramme d’é’étatstats--transitions Transitiontransitions TransitionTransition entre les états : réponse d'un objet à un événement.

Permet de passer d'un état à un autre (ou à lui-même).

Les transitions peuvent aussi être automatiques, lorsqu'on ne spécifie pas l'événement qui la déclenche.

nom de l'événementNotation : Un état Un autre état

Exemple :En activité

A la retraite

Au chômage

Plus de 60 ans

Plus de 60 ans

EmbauchePerte d’emploi

Extrait d’un diagramme d'états-transitions d’une classe Personne

Page 73: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 7373

Diagramme dDiagramme d’é’étatstats--transitions Condition de gardetransitions Condition de garde

Condition de garde :Garde : condition booléenne qui valide ou non le déclenchement d'une

transition lors de l'occurrence d'un événement.

maintien de l'aspect déterministe d'un automate d'états finis.

Notation :événement [condition]

BA

Exemple :Sas vide et fermé

Alarme basculement

Accès(personne) [intru] Accès(personne) [autorisé]

Un événement, plusieurs transactions ⇒ gardes mutuellement exclusives.

Page 74: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 7474

Diagramme dDiagramme d’é’étatstats--transitions Actiontransitions Action

Action :

Traitement exécuté par l'objet pendant une transition (une des opérations Déclarées dans la classe de l'objet destinataire de l'événement).

Action instantanée et atomique ; il n'est pas possible d'observer un objet en train d'effectuer une transition.

événement / ActionNotation : A B

OuvertExemple : Signer / Qté consommée = 0En cours d’ouverture

Page 75: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 7575

Diagramme dDiagramme d’é’étatstats--transitions Actiontransitions Action

Actions associées aux états :Entry : action exécutée en entrée de l'état.Exit : action exécutée en sortie de l'état.on UnEvénement : action exécutée lors de l’occurrence d’un événement

Les actions attachées aux clauses "entry" et "exit" ne sont pas exécutées si l'événement spécifié dans la clause "on" survient.

Aentry : action d'entréeon UnEvénement : actionexit : action de sortie

Notation :

Exemple :Saisie mot de passe

on aide : afficher l’aide

Basculement

entry : bloquer porte entréeet ouvrir porte sortie

exit : bloquer porte sortie

Page 76: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 7676

Diagramme dDiagramme d’é’étatstats--transitions Activittransitions Activitéé

Activité : décrit ce que fait un objet lorsqu'il est dans un état.

Opération de durée de vie importante, interruptible.

Types d'activité :

- cyclique : l'activité ne s'arrête que lorsqu'une transition de sortie est déclenchée ;

- séquentielle : l'activité démarre à l'entrée dans l'état, après l'exécution des actions d'entrée.Fin d'une activité séquentielle → l'état peut être quitté si une destransitions est franchissable (transition automatique).

Ado : une opération

Alarmedo : signal d’alarme

Exemple :Notation :

Page 77: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 7777

Simplification de la reprSimplification de la repréésentation des sentation des diagrammes ddiagrammes d’é’étatstats--transitionstransitions

Généralisation d'états :

Décomposition disjonctive d'un état (le super-état) en sous-états disjoints.

Représentation "à plat" → représentation hiérarchique.

Héritage : les sous-états héritent des caractéristiques de leur super-état (variables d'état, transitions externes).

Exemple :

A B

C

E1

E2 E2A B

E1

C

E2

Page 78: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 7878

Simplification de la reprSimplification de la repréésentation des sentation des diagrammes ddiagrammes d’é’étatstats--transitions (suite)transitions (suite)

Les transitions d'entrée ne sont pas héritées par tous les états.

Exemple :

B

AB1

B2

L'état B est divisé en deux sous-états B1 et B2. La transition d'entrée dans l'état Best reportée dans un des sous-états, parl'ajout d'un état initial dans le super-état.

A B

Souche : vision de plus haut niveau. Les sous-états ne sont pas détaillés.

AB

C

Page 79: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 7979

Diagramme dDiagramme d’é’étatstats--transitions Historiquetransitions Historique

Historique : mémorisation par un état, de l'histoire de ses sous-états.

Utilité : une future entrée dans l'état pourra se faire dans le dernier sous-état lors de la dernière sortie.

Notation : H

← quelle que soit la profondeur d’emboîtement des états.H*

Exemples :

D2

C

AD1

In Rinçage Lavage Séchage

AttentePorte fermée

Out

Porte ouverte

H

H

L'état C mémorise le dernier sous-état actif

Le contrôle est transmis directement au sous-état mémorisélorsqu'une transaction qui arrive sur l'état spécial H estdéclenchée.

Page 80: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 8080

Diagramme dDiagramme d’é’étatstats--transitions transitions Communication entre objetsCommunication entre objets

Communication entre objets : envoi d'un événement entre les diagrammes d'états finis des classes d'objets concernées.

Syntaxe : ^Cible.Evénement (Arguments)où Cible : classe de l'objet destinataire.

Syntaxe complète d'une transition : Evénement (Arguments) [Condition] / Action^Cible.Evénement (Arguments)

Exemple :

Attente Arrêt

Basculé

Basculé

Téléviseur Télécommande

Bouton enfoncé^Téléviseur.Basculé

Attente

Le téléviseur peut être allumé ou éteint par manipulation d'un interrupteur basculant. La télécommande possède un bouton-poussoir (touche on/off) qui, lorsqu'il est enfoncé, allumeou éteint le téléviseur. Le téléviseur peut être commandé directement ou par la télécommande.

Page 81: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 8181

Diagramme dDiagramme d’é’étatstats--transitions transitions Transition temporisTransition temporisééee

Transaction temporisée :

Représentation : temporisation (durée de temporisation).

Exemple :A

Attente argentEntry : Afficher messageExit : Fermer la trappe

Tempo (3 minutes)

Annulation transaction

B

/ouvrir trappe

Dépôt effectué

Séquence d'attente dans un guichet automatique de banque. La trappe qui accueille les dépôts est ouverte ; le système informe l'utilisateur qu'il dispose de 3 minutes pour effectuer son dépôt.

Page 82: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 8282

Diagramme d'activitDiagramme d'activitééss

Représentation simplifiée pour la visualisation directe des activités.

Variation d'une machine à états :états : activités représentant la réalisation d'opérations ;transitions : déclenchées par la complétion des opérations.

Fin d'une activité → événement interne déclenchant la transition.

→ machine à états d'une procédure

Un diagramme d'activités est attaché à une classe, à l'implémentation d'une opération ou à un cas d'utilisation.

Notation :

activité Autre activité

Note : n'existe pas dans MEGA (ISOA).

Page 83: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 8383

Diagramme d'activitDiagramme d'activitéés (suite)s (suite)Notations :

[Garde]

[Garde]Conditions booléennes, mutuellement exclusives.

Synchronisation de flots de contrôle parallèlesà partir d'une barre de synchronisation.

Fusion de flots de contrôle parallèles regroupés sur une barre de synchronisation.

Allumer la cafetière

Café infusé

^Cafetière.AllumerReprésentation mixte, incluant des activitéset des états (envoi d'événement).

La lumière s'éteint

Page 84: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 8484

Diagramme d'activitDiagramme d'activitéés (suite)s (suite)Exemple : Personne :: préparer boisson

Trouver boisson[pas de café] [pas de Coca-Cola]

[Coca-Cola trouvé][café trouvé]

Mettre le cafédans le filtre

Ajouter de l'eau dans le réservoir

Prendre des tasses

Mettre le filtredans la cafetière

Allumer la cafetière

Faire infuser le café

Prendre descanettes de Coca

Verser le café

Boire

^Cafetière.Allumer

La lumière s'éteint

Page 85: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 8585

Diagramme d'activitDiagramme d'activitéés (suite)s (suite)Compléments :

Partition d'un diagramme d'activités en couloirs d'activités.Visualisation directe des objets responsables des différentes activités.

Commander

Client Vendeur Expédition

Facturer

Payer

Commande[passée]

Commande[payée] Livrer

Bon delivraison

Page 86: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 8686

Diagrammes d'implDiagrammes d'impléémentation : mentation :

Diagrammes de composants : permettent de montrer les types decomposants et leurs interdépendances.

Diagrammes de déploiement : montrent les instances des composants.

Page 87: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 8787

Diagramme de composantsDiagramme de composantsMise en œuvre physique des modèles logiques avec l'environnement de développement. Elle tient compte des problématiques de programmation, compilation, dépendance, réutilisation.

décrivent les éléments physiques et leurs relations dans l'environnement de réalisation ; montrent les choix de réalisation.

Modules : toutes les sortes d'éléments physiques qui entrent dans la fabrication des applications informatiques (simples fichiers, bases de données,paquetages du langage Ada, bibliothèques chargées dynamiquement, etc.).

Représentation : compacteCorpsSpécification Générique

Page 88: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 8888

Diagramme de composants (suite)Diagramme de composants (suite)Dépendances entre composants :

• d'instanciation, d'ami, etc. ; • à la compilation et à l'exécution ;• d'appel entre composants (le diagramme montre les interfaces).

Exemples :X Liste

<<instanciation>>Dépendance d'instanciation

Spéc. de A Corps de A

Spéc. de B

Dépendance à la compilation

Page 89: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 8989

ExempleExemple

Page 90: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 9090

Diagramme de dDiagramme de dééploiementploiement

Montre • la disposition physique des différents matériels (les nœuds) qui entrentdans la composition d'un système

et • la répartition des programmes exécutables sur ces matériels.

Nœud : ressource matérielle.

Représentation : Nœud

La nature de l'équipement peut être précisée au moyen d'un stéréotype :

Modem<<Dispositif>>

PC<<Processeur>>

Disque<<Mémoire>>

Page 91: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 9191

Diagramme de dDiagramme de dééploiement (suite)ploiement (suite)Connexion entre nœuds : ligne qui symbolise un support de communication

a priori bidirectionnel.

PC 68Kconnexion

Exemple 1 :

ordinateur de Joe : PC

serveur_admin : Serveur

:Ordonnanceur<<base de données>>

BD des réunions

réservations

: Planificateur

Page 92: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 9292

Diagramme de dDiagramme de dééploiement (suite)ploiement (suite)Exemple 2 :

Serveurd'impression

Site centralFrance

ServeurWeb

Poste del'acheteur

SGBD

PT DirecteurServeur DR1

PT Comptable

Valider marchéConsulter historique clientConsulter stockConsulter commandesConsulter tarifs

Créer facture

SGBD

PT Assistante

Consulter historique clientConsulter stockConsulter commandesConsulter tarifsCréer factures

PT ICL2 DR1PT ICL1 DR1

Consulter marché

<<Internet>>

Gérer marchésGérer commandesGérer clientsConsulter tarifsConsulter factures

Page 93: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 9393

Autres exemples de diagrammesAutres exemples de diagrammesDiagramme de classes

Livretitre : Stringauteur : Stringéditeur : String

Livre(double, String, String, String)description() : StringrechercheParTitre(Livre[], String) : Livre

ProduitnuméroProduit : intprix : double$ tva : double = 19.6$ dernierNuméroProduit : int = 1

Produit(double)getPrixTTC() : doubledescription() : StringgetNumero() : int

CDtitre : Stringinterprète : Stringchansons : String[]

CD(double, String, String, String[])description() : Stringclone() : ObjectrechercheParNum(int, Vector) : CDgetTitre() : StringgetInterprete() : StringgetChansons() : String[]

Page 94: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 9494

Diagramme d’activité

Page 95: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 9595

Diagramme de cas d’utilisation

Page 96: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 9696

Diagramme d’états-transitions

Page 97: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 9797

Diagramme de collaboration

message synchrone : l'objet émetteur envoie le message, attend que le récepteur le reçoive mais n'attend pas de réponse.message asynchrone : L'objet émetteur envoie le message sans savoir quand, ni même si, le message sera traité par le récepteur.message simple (cas le plus courant) : l'objet émetteur du message attend la réponse de la part du récepteur.

Page 98: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 9898

Diagramme de séquence

Page 99: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 9999

Diagramme de déploiement

Page 100: Unified Modeling Language (UML)olazo.free.fr/IUT/Cours/C.Bonnet/UML/ToutUml.pdfOOSE (Object Oriented Software Engineering) UML (Unified Modeling Language) Christine Bonnet 5 UML 5

Christine Bonnet UMLChristine Bonnet UML 100100

FIN FIN ……