85
UML Concepts de base et applications Par Jérôme DIVO

UML Concepts de base et applications Par Jérôme DIVO

Embed Size (px)

Citation preview

Page 1: UML Concepts de base et applications Par Jérôme DIVO

UML

Concepts de base et applicationsPar Jérôme DIVO

Page 2: UML Concepts de base et applications Par Jérôme DIVO

2

Plan

1. Introduction2. Rappel Objet3. Présentation générale d’UML4. Les structures de bases5. Les Uses Cases6. Les classes et les objets7. Les diagrammes de collaborations 8. Les diagrammes d’états-transitions9. Les diagrammes d’activités10.UML dans les projets11.Du modèle à la réalisation12.Les outils d’UML

Page 3: UML Concepts de base et applications Par Jérôme DIVO

3

Introduction

1. La modélisation Pourquoi modéliser ? Les principes de la modélisation

2. La modélisation Orientée Objet

Page 4: UML Concepts de base et applications Par Jérôme DIVO

4

1.1 La modélisation

Postulats : L’objectif : satisfaire son client La réussite est basée sur la production d’applications de qualité La modélisation est une des caractéristiques d’un projet qui réussi

Les moyens :

Pour réaliser un logiciel, il faut les outils de communication adéquats pour Simplifier la réalité Mieux appréhender le système à concevoir

Page 5: UML Concepts de base et applications Par Jérôme DIVO

5

1.1 La modélisation

Objectifs : Visualiser les problèmes Préciser les comportements et les structures Fournir un guide pour la réalisation Documenter les décisions

Principes : Le choix des modèles a une forte influence sur la manière d’aborder le

problème et sa solution Le niveau de précision du modèle dépend de l’interlocuteur Un très bon modèle ne perd pas le sens des réalités Il faut décomposer un système en ensembles de modèles pour en

améliorer la compréhension

Page 6: UML Concepts de base et applications Par Jérôme DIVO

6

1.2 Modélisation Orienté Objet

But :

Avoir un outil donnant une dimension méthodologique à l'approche objet.

Un outil pour caractériser: L’identité des Objets L’état des Objets Les comportements de Objets Les interactions entre Objets

=> Ce sont les objectifs d’UML.

Page 7: UML Concepts de base et applications Par Jérôme DIVO

7

Plan

1. Introduction

2. Rappel Objet

3. Présentation générale d’UML

4. Les structures de bases

5. Les Uses Cases

6. Les classes et les objets

7. Les diagrammes de collaborations

8. Les diagrammes d’états-transitions

9. Les diagrammes d’activités

10.UML dans les projets

11.Du modèle à la réalisation

12.Les outils d’UML

Page 8: UML Concepts de base et applications Par Jérôme DIVO

8

2. Rappel Objet

Les principales entités: Classes Objets Polymorphisme Héritage

Page 9: UML Concepts de base et applications Par Jérôme DIVO

9

Plan

1. Introduction2. Rappel Objet3. Présentation générale d’UML4. Les structures de bases5. Les Uses Cases6. Les classes et les objets7. Les diagrammes de collaborations 8. Les diagrammes d’états-transitions9. Les diagrammes d’activités10.UML dans les projets11.Du modèle à la réalisation12.Les outils d’UML

Page 10: UML Concepts de base et applications Par Jérôme DIVO

10

3. Présentation générale d’UML

1. Qu’est ce qu’UML ?

2. Historique d’UML

3. Les idées reçues d’UML

4. Vue d’ensemble des éléments d’UML

5. Vue d’ensemble des diagrammes UML

Page 11: UML Concepts de base et applications Par Jérôme DIVO

11

3.1 Qu’est ce Qu‘UML

Présentation : UML pour Unified Modeling Language Les éléments fondamentaux sont faciles à appréhender Chaque symbole est porteur d’une sémantique propre

UML est un langage qui permet de : Visualiser Spécifier Construire Documenter

On trouve UML dans les domaines tels que: les systèmes informatiques d’entreprise les banques Les télécoms Les transports La défense Le WEB……………….

Page 12: UML Concepts de base et applications Par Jérôme DIVO

12

3.2 Historique

Apparition des premières modélisations OO début 80 avec une forte extension entre 1989 et 1994.

3 se détachent du lot BOOCH de Booch OOSE de Jacobson OMT de Rumbaugh

Ces 3 auteurs se rapprochent peu à peu (1994)

En 1996 Booch, Jacobson et Rumbaugh sortent la version 0.9 d’UML

En Janvier 1997 un comité composé de IBM, Rational, Oracle, TI…. propose la norme UML 1.0 à l’OMG (Object Management Group) qui standardise le langage.

Version 1.1 en Juillet 97 validée en Septembre 97

UML 1.2 Juin 1998 et UML 1.5 Mars 2003

UML 2.0 en cours d’étude

Page 13: UML Concepts de base et applications Par Jérôme DIVO

13

3.3 Les idées reçues d’UML

La notation graphique d'UML n'est que le support du langage : la puissance et l'intérêt d'UML, c'est qu'il normalise la sémantique des concepts qu'il véhicule !

UML n’est qu’un langage, il n’apporte en aucun cas la réponse absolue à un problème.

Page 14: UML Concepts de base et applications Par Jérôme DIVO

14

3.4 Les éléments d’UML

Les éléments structurauxLes classes, les collaborations, les cas d’utilisation (use cases), les composants, les nœuds….

Les éléments comportementauxLes messages, les états, les objets

Les éléments de regroupementsLes packages

Les éléments d’annotationLes annotations

Page 15: UML Concepts de base et applications Par Jérôme DIVO

15

3.5 Les Diagrammes d’UML

Les diagrammes :De classes

D’ objets

De cas d’utilisation

De séquences

De collaborations

D’ états-transitions

D’ activités

De composants (non vu en cours)

De déploiement (non vu en cours)

Page 16: UML Concepts de base et applications Par Jérôme DIVO

16

Plan

1. Introduction2. Rappel Objet3. Présentation générale d’UML4. Les structures de bases5. Les Uses Cases6. Les classes et les objets7. Les diagrammes de collaborations 8. Les diagrammes d’états-transitions9. Les diagrammes d’activités10.UML dans les projets11.Du Modèle à la réalisation12.Les outils d’UML

Page 17: UML Concepts de base et applications Par Jérôme DIVO

17

4. Structures de base

1. Les notes

2. Les stéréotypes

3. Les packages

Page 18: UML Concepts de base et applications Par Jérôme DIVO

18

4.1 Structures de base : Note

Permet d’inclure dans un modèle une remarque, un commentaire…

Cette Classe est définiepour les besoins client

Page 19: UML Concepts de base et applications Par Jérôme DIVO

19

4.2 Structures de base : stéréotype

Un stéréotype : est un nouveau concept créé à partir d’un élément UML a les mêmes caractéristiques (et mêmes obligations) que l’élément

UML sur lequel il se base

Un stéréotype peut être représenté par un nouvel objet graphique ou par l’ajout du nom du stéréotype entre ‘«  »’ dans l’objet UML.

<<Entity>>Image

Image

Image

Trois manières de représenter une classe stéréotypée « Entity »

Page 20: UML Concepts de base et applications Par Jérôme DIVO

20

4.3 Structures de base : Package

Un package organise ou regroupe au sein d’une même entité des ensembles d’éléments.

Package simple, le nom peut être mis au centre du package ou sur le tag (en haut à gauche). Un package peut être stéréotypé

«system»Core

Des packages peuvent être liés entre eux par des associations stéréotypées «import» ou «access».

Un package peut hériter d’un autre package

«system»Core

Interface «Access» 

Vector

«Import» 

Matrice

Image

Math

Page 21: UML Concepts de base et applications Par Jérôme DIVO

21

Plan

1. Introduction2. Rappel Objet3. Présentation générale d’UML4. Les structures de bases5. Les Uses Cases6. Les classes et les objets7. Les diagrammes de collaborations 8. Les diagrammes d’états-transitions9. Les diagrammes d’activités10.UML dans les projets11.Du Modèle à la réalisation12.Les outils d’UML

Page 22: UML Concepts de base et applications Par Jérôme DIVO

22

5 Cas d’utilisation (Présentation)

Les cas d’utilisation : Permettent de structurer les besoins Permettent d’identifier les services rendus (fonctionnalités) par un

système vis à vis de ses utilisateurs (acteurs)

Les acteurs : Permettent de structurer les entités externes (ensemble de rôle )

qui agissent sur le système (opérateur, autre système...).

Un cas d’utilisation est décrit par : Ses acteurs (primaires et secondaires) Sa pré-condition Sa post-condition Ses scénarios (interactions entre le cas d’utilisation et les acteurs)

Page 23: UML Concepts de base et applications Par Jérôme DIVO

23

5 Cas d’utilisation (Les scénarios)

Les scénarios : Ils permettent de décrire de façon brève les interactions entre un

système et ses acteurs Ils peuvent être de type nominal d’exception ou alternatif Un scénario alternatif permet d’identifier un flot d’événement

variant du scénario nominal Un scénario d’exception est un scénario ne permettant pas

d’aboutir à la post-condition du use case

Les use cases, permettent de modéliser les besoins des clients d'un système et doivent aussi posséder ces caractéristiques.Ils ne doivent pas chercher l'exhaustivité, mais clarifier, filtrer et organiser les besoins !

Page 24: UML Concepts de base et applications Par Jérôme DIVO

24

5 Cas d’utilisation (représentation)

Les noms des acteurs et des uses cases :Doivent être clairReprendre au maximum la terminologie utilisateurLe nom peut être une forme verbale active

Gestionnaire de Commande

Acteur

Passer Commande

Uses Case

Systéme de Réservation

Acteur systéme

Page 25: UML Concepts de base et applications Par Jérôme DIVO

25

5. Diagramme de cas d’utilisation

Définition : Le diagramme de cas d’utilisation a pour but de montrer les acteurs et les cas d’utilisation d’un système, ainsi que leurs relations

Rôle : Modélisation des services visibles de l’extérieur (donc par les acteurs), fournis par le système.

Contenu : Cas d’utilisation Acteurs Relation de dépendance, de généralisation, d’association

Il existe 2 axes de modélisation : Orienté système Orienté client

Page 26: UML Concepts de base et applications Par Jérôme DIVO

26

5. Diagramme de cas d’utilisation

Retirer de l'argent

Consulter soncompte

Client

Gérer ledistributeur

Technicien

*

Débiter

Visualiser

On ne retire de l'argentdans la limite du stocke contenu dans le coffre

Le technicien a pour obligationd'éteindre l'appareil avantd'intervenir

distributeur

Acteur : élément à l’origine d’un interaction avec le système

Note : documente un élément du modèle

Nature de l’interaction

Page 27: UML Concepts de base et applications Par Jérôme DIVO

27

5. Diagramme de cas d’utilisation

La relation d’inclusion ou d’utilisation

La relation d’extension

Imprimer un solde Consulter un compte<<Include>>

Indique que le cas d’utilisation source inclus (utilise) le cas d’utilisation ciblePar exemple ici : Pour imprimer un solde, il faut consulter un compte

Indique que le cas d’utilisation source précise (étend) le cas d’utilisation cible.

Passer une commande

Consulter lecatalogue

«extend» Consultation du catalogue

Extention points :après creation de

la commande

Point d’extension

Page 28: UML Concepts de base et applications Par Jérôme DIVO

28

5. Exercice 1

Etude d’une bibliothèque :

Dans une bibliothèque, des abonnés peuvent emprunter et restituer des livres auprès d’un bibliothécaire.

Un gestionnaire d’abonnement a la charge de gérer les nouveaux abonnés, les résiliations, et les cas litigieux.

Définir pour un cas d’utilisation sa prè-condition, sa post-condition, décrire en entier un scénario nominal, donner un titre de scénario alternatif et un titre de scénario d’exception.

Page 29: UML Concepts de base et applications Par Jérôme DIVO

29

5. Exercice 2

Etude d’une banque de données médicales :

Un grand hôpital souhaite pouvoir gérer les dossiers de ses patients de façon centralisée.

Pour cela, il a besoin de mettre en place un système d’alimentation des dossiers par les images provenant des différents services (Scanner, Radiologie, IRM, Médecine Nucléaire). Chacun de ces services utilisant des formats d’image différents, il faut que le système permette de stocker toutes les données sous le même format. A chaque fois qu’une nouvelle image vient d’un service, l’ancienne image est historisée, et la nouvelle image est transmise par mail aux médecins suivants le patient.

Page 30: UML Concepts de base et applications Par Jérôme DIVO

30

5. Exercice 3

Étude d’un téléphone portable :

Vous devez concevoir un téléphone portable à carte, le plus simple possible.

Ce téléphone possède : Un répertoire Une gestion locale des temps de communication La gestion de l’envoi et de la réception des appels téléphoniques

Page 31: UML Concepts de base et applications Par Jérôme DIVO

31

Plan

1. Introduction2. Rappel Objet3. Présentation générale d’UML4. Les structures de bases5. Les Uses Cases6. Les classes et les objets7. Les diagrammes de collaborations 8. Les diagrammes d’états-transitions9. Les diagrammes d’activités10.UML dans les projets11.Du Modèle à la réalisation12.Les outils d’UML

Page 32: UML Concepts de base et applications Par Jérôme DIVO

32

6. Les classes (Définition et règles)

Une classe décrit un ensemble de concepts métiers ou techniques. C’est un type abstrait caractérisé par des propriétés (attributs, méthodes, relation, sémantique) communes, permettant de créer des instances ayant ces propriétés.

Un attribut est une propriété nommée d’une classe qui décrit un ensemble de valeur qu’un instance de cette propriété peut prendre.

Une méthode est l’implémentation d’un service qui peut être demandée à tous les objets d’une même classe.

Page 33: UML Concepts de base et applications Par Jérôme DIVO

33

6. Les classes (Représentation)

Une classe peut :Ne pas comporter d’attributsNe pas comporter de méthodesPréciser les valeurs limite de ses attributsFournir les niveaux de protection de ses éléments constitutifs

Sur le symbole graphique d’une classe :On peut ne pas représenter les attributs ou les méthodes d'une classeOn peut ne pas spécifier les niveaux de protection des membres d'une classe

Le nom d’une classe doit être clair et concis

Page 34: UML Concepts de base et applications Par Jérôme DIVO

34

6. Les classes (Représentation)

Classe Simple

Classe Abstraite

Voiture

Classe : non documentée

Non de la classe

Zone pour les attributs

Zone pour les méthodes (ou opérations)

Voiture Le nom en italique indique une classe abstraite

Page 35: UML Concepts de base et applications Par Jérôme DIVO

35

6. Les classes (Représentation)

Classe Template

Non de la classeImage

T Paramètre du Template

Page 36: UML Concepts de base et applications Par Jérôme DIVO

36

6. Les classes (Représentation)

Description d’un attribut[visibilité] nom [multiplicité] [:type] [= valeur initiale] [{Chaîne-propriété}]

Visibilité : Public (+), protected (#), private (-)Multiplicité : Le nombre d’élément possible pour l’attributType : Type de l’attributValeur initiale : C’est la valeur par défaut de l’attributChaîne-propriété : changeable, addonly, frozen

ExempleEscaledeDépart => Nom simple

+EscaledeDépart => Attribut Public

-EscaledeDépart : String => Nom et type d’un attribut privé

-EscaledeDépart [0..5] : String => Tableau de 0 à 5 escales

#EscaledeDépart : String = CDG {Frozen} => Attribut protected dont la valeur par défaut et CDG. Cette valeur ne peut être changée après avoir été initialisée.

NoteUn attribut précédé d’un ‘/’ indique qu’il est dérivée, c’est à dire qu’il est calculé à partir d’autres attributs

/tempsDeVol=heure_’arrivée _ heure_départ + 24*variation

Page 37: UML Concepts de base et applications Par Jérôme DIVO

37

6. Les classes (Représentation)

Description d’une opération[visibilité] nom [(Liste des paramètres)] [:type de retour] [{Chaîne-propriété}]

Visibilité : Public (+), protected (#), private (-)

Liste des paramètres : Signature de la méthode [direction] nom [:Type] [= valeur par défaut]Le type peut être In, Out ou InOut

Type de retour : Valeur renvoyée par la méthode

Chaîne-propriété : isquery,sequential, guarded, concurrent

ExempleTempsdeVol => Non Simple

#TempsdeVol => Méthode Privée

#TempsdeVol (in TypeAvion : String = 747) : Date => méthode recevant en paramètre le type d’un avion, et retournant une date

#FiltrerSignal () {concurrent} => méthode de filtrage numérique permettant un accès concurrent

Note Une méthode en italique indique une méthode virtuelle

Page 38: UML Concepts de base et applications Par Jérôme DIVO

38

6. Les classes (Représentation)

Exemple d’une classe détaillée

#Convetir()+Getimage()+Getdimension()+Image()

#Image+Type : char = JPEG#Hauteur : int#Largeur : int

Image

Page 39: UML Concepts de base et applications Par Jérôme DIVO

39

6. Les relations (Présentations)

UML définit 3 types de relations : Les associations Les dépendances Les généralisations

Page 40: UML Concepts de base et applications Par Jérôme DIVO

40

6. Les relations (Les associations)

Une association : C’est un lien nommé entre 2 classes Elle caractérise une navigabilité

Association en forme verbale active

Rôles d’une associationPermet de décrire la fonction que remplit la classe dans le cadre de cette association

Personne EntrepriseTravaille pour >

Vol Escale

+EscaleDeDépart

+Escale Darrivée

On précise le nom de l’association. La flèche définit le sens

Escale peut avoir des rôlesdifférents : Départ ou Arrivéed’un vol

Page 41: UML Concepts de base et applications Par Jérôme DIVO

41

6. Les relations (Les associations)

La MultiplicitéPrécise le nombre d'instances qui participent à une relation

La cardinalité est définie comme suit : 1 : exactement 1 (n, entier naturel > 0)1..n : de 1 à n0..1 : Aucun ou unn : n’importe quelle valeur

Parfois on trouve * à la place de n      

Association à navigabilité restreintePar défaut, une association est navigable dans les deux sens. La réduction exprime que les instances d'une classe ne "connaissent" pas les instances d'une autre.

Vol Avion

10..n 10..n

Electeur candidat

0..10..n 0..10..n

Vote

Un vol utilise un et un seul avion, et un vol ne peut se faire sans avion.

Un avion peut être utilisé pour un nombre quelconque de vols

Un électeur connaît le candidat pour lequel il vote l’inverse n’est pas vrai

Page 42: UML Concepts de base et applications Par Jérôme DIVO

42

6. Les relations (Les associations)

Les classes d’association

Il s'agit d'une classe qui réalise la navigation entre les instances d'autres classes

Association n-aire

C’est une association qui relie plus de 2 classes

Facteur personne

nn

+recepteur

nn

courier

Année

Equipe Joueur* *

*

Page 43: UML Concepts de base et applications Par Jérôme DIVO

43

6. Les relations (Les associations)

L’agrégation

L'agrégation exprime un couplage fort et une relation de subordination.Elle représente une relation de type "ensemble / élément".

La composition

C’est une agrégation forteLes cycles de vies des éléments et de l'agrégat sont liés A un même moment, une instance ne peut être liée qu'à un seul agrégat.

PageLivre

1..n1 1..n1

vaisselleMeuble

0..n1 0..n1

Un meuble est un conteneur qui peut contenir de la vaisselle

Un livre ne peut exister sans pages, et une page est forcément rattachée à un livre et un seul

Page 44: UML Concepts de base et applications Par Jérôme DIVO

44

6. Les relations (Les dépendances)

Une relation de dépendance permet de symboliser l’emploi d’une classe dans une autre classe.

Les deux classes ne sont pas liées d’un point de vue métier, mais d’un point de vue technique.

Fenêtre graphique

Evénement de souris

Ici on a un lien de dépendence car la fenêtre graphique n'a pas de relation direct avec l'événement, mais l'état de l'événement peut avoir une influence sur la fenêtre

Page 45: UML Concepts de base et applications Par Jérôme DIVO

45

6. Les relations (La généralisation)

C’est exactement la notion d’héritage

Courier

Lettre Colis

Page 46: UML Concepts de base et applications Par Jérôme DIVO

46

6. Les classes avancées (Les stéréotypes)

L’interfaceL’interface permet de caractériser les services que l’on va rendre aux clients. Elle symbolise les frontières du système

Le contrôleurLe contrôleur permet de définir une classe qui va organiser les processus

VisualiserImage

Convertir

Signal

FiltrageNumérique Filtre

Page 47: UML Concepts de base et applications Par Jérôme DIVO

47

6. Les classes avancées (Les stéréotypes)

L’entitéC’est une classe qui va servir de conteneur pour relier les objets formant une même abstraction du système

Index

Abstract

Rapport de stage

Projet

Page 48: UML Concepts de base et applications Par Jérôme DIVO

48

6. Diagramme de classe

Définition : Le diagramme de classe a pour but de présenter une modélisation statique d’un système.

Rôle : Présenter un système en faisant intervenir les concepts et les relations entre ces concepts

Contenu : Classes Packages Relations

Le niveau de granularité dépend du besoin associé au diagramme.

Page 49: UML Concepts de base et applications Par Jérôme DIVO

49

6. Exercice 1

Etude d’une bibliothèque :

Modéliser la bibliothèque (Modèle de domaine)

Page 50: UML Concepts de base et applications Par Jérôme DIVO

50

6. Exercice 2

Etude d’une banque de données médicales :

Faire le modèle de classe du système de gestion des images

Page 51: UML Concepts de base et applications Par Jérôme DIVO

51

6. Exercice 3

Modéliser le système de téléphone

Page 52: UML Concepts de base et applications Par Jérôme DIVO

52

6. Instances

Les instances sont des représentations concrètes des classes. Elles permettent de définir et d’expliciter un état particulier d’un objet

: Etudiant

JD : Etudiant

JD

Instance anonyme de la classe Etudiant

Instance nommée de la classe Etudiant

Instance nommée d’une classe anonyme

Nom = TotoPrenom = FaitduveloID = ZQV34566789

JD : Etudiant

Instance nommée de la classe sur laquelle une partiedes attributs a été spécifiée

: Etudiant

Instance multiple ou collection d’instances anonymes

Page 53: UML Concepts de base et applications Par Jérôme DIVO

53

6. Instances composites

Eau : Molecule

Oxygene : Atome

Hydrogene : Atome

Oxygene : Atome

Objet Composite : c’est la représentationsous forme d’instance d’une agrégation

Constituant de l’agrégat

Page 54: UML Concepts de base et applications Par Jérôme DIVO

54

6. Diagramme d’objets ou d’instances

Définition : Le diagramme d’objets représente un ensemble d’instances de classes et leurs relations.

Rôle : Représenter l’état du système (un contexte) à un moment donné du temps afin d’éclaircir ou d’illustrer une situation

Contenu : Instances Relations Packages

Page 55: UML Concepts de base et applications Par Jérôme DIVO

55

Plan

1. Introduction2. Rappel Objet3. Présentation générale d’UML4. Les structures de bases5. Les Uses Cases6. Les classes et les objets7. Les diagrammes de collaborations 8. Les diagrammes d’états-transitions9. Les diagrammes d’activités10.UML dans les projets11.Du Modèle à la réalisation12.Les outils d’UML

Page 56: UML Concepts de base et applications Par Jérôme DIVO

56

7. Diagramme de séquence

Définition : Les diagrammes de séquences permettent de représenter les échanges, ou collaborations entre objets, d’ un point de vue temporel

Rôle : Le diagramme de séquence va permettre de représenter, par exemple, un scénario particulier d’un USE CASE.

Contenu : Instances Acteurs Messages (ou opérations) Notes Des informations temporelles Des informations processus

Page 57: UML Concepts de base et applications Par Jérôme DIVO

57

7. Diagramme de séquence

Un diagramme de séquence : met l’accent sur le comportement du système est basé sur la chronologie de l’envoi des messages n’apporte pas d’importance au placement des objets sur l’axe

horizontal

Page 58: UML Concepts de base et applications Par Jérôme DIVO

58

7. Diagramme de séquence (Les rôles)

Objet nommé ou non<NomObjet>:NonDelaclasse

Ligne de vie

Période d’activationde l’objet

Fin de vieexplicitede l’objet

CommandeEnCours:Commande

Appel Récursif

Branchement conditionnel

Ne confondez pas la période d'activation d'un objet avec sa création ou sa destruction.

L’objet peut être un acteur (rôle) défini dans le diagramme de USE CASE.

Pour représenter une exécution conditionnelle, on peut noter du pseudo code. Exemple :

If Xelseendif

Page 59: UML Concepts de base et applications Par Jérôme DIVO

59

7. Diagramme de séquence (Les messages)

Message Synchrone : Bloque l ’expéditeur jusqu’à la prise en compte du message par le récepteur

Message Asynchrone : Le message n’interrompt pas l’exécution. Le récepteur peut prendre en compte le message à n’importe quel moment, voir ne pas le prendre en compte.

Message Retour : Indique l’envoi d’une réponse à un message ou stimulus

Emmeteur Recepteur

Message synchrone

Message assynchrone

Ressage retour

Emetteur

Page 60: UML Concepts de base et applications Par Jérôme DIVO

60

7. Diagramme de séquence (Les messages)

Message réflexif : Permet de représenter une activité interne à l’objet, ou l’abstraction d’une autre interaction. (Cette autre interaction peut être développée dans un autre diagramme de séquence).

Messages conditionnels : Permet d’indiquer un choix au niveau du processus. Ce choix est effectué par une condition (If, else).

Message avec délai de propagation : Permet de caractériser le temps de transit d’un message

Emetteur Recepteur

Message Réflexif ()

CasA()

CasB()

Transit

Z {Z-Y<0.1s}

Y

Repère de temps

Contrainte temporelle

Page 61: UML Concepts de base et applications Par Jérôme DIVO

61

7. Diagramme de séquence (Syntaxe des messages)

La syntaxe est la suivante :[pré "/"] [["["cond"]"] [séq] ["*"["||"]["["iter"]"]] ":"] [r ":="] msg"("[par]")« 

•pré : C’est une liste de numéros de séquence séparés par une virgule, indiquant que le message courant ne sera envoyé que lorsque tous ses prédécesseurs le seront aussi (permet de synchroniser l'envoi de messages).  •cond : Permet de conditionner l'envoi du message, à l'aide d'une clause exprimée en langage naturel. Le résultat de la condition est un booléen.

•séq : numéro de séquence du message. Il indique le rang du message, c'est-à-dire son numéro d'ordre par rapport aux autres messages. Les messages sont numérotés à la façon de chapitres dans un document, à l'aide de chiffres séparés par des points. Pour représenter l'envoi simultané de deux messages, il suffit de les indexer par une lettre.Exemple : l'envoi des messages 1.3.a et 1.3.b est simultané.  •iter : Permet de signaler une récurrence. Elle spécifie en langage naturel l'envoi séquentiel (ou en parallèle, avec "||") de messages.

•r : valeur de retour du message. Permet d'affecter la valeur de retour d'un message, pour par exemple la retransmettre dans un autre message, en tant que paramètre.  •msg : nom du message.  •par : paramètres du message.

 

Page 62: UML Concepts de base et applications Par Jérôme DIVO

62

7. Diagramme de séquence (Syntaxe des messages)

1 : bonjour() Message simple ayant pour numéro de séquence 1.  [Etat Personne = Pas Vue] 1 : Bonjour() Message conditionné par l’état de la personne.

1.3 * : ouvrir() Ce message 1.3 est envoyé de manière séquentielle un certain nombre de fois.  3 / *||[i := 1..5] : Fermer() Ce message est envoyé 5 fois en parallèle. Ces messages ne seront envoyés qu'après l'envoi du message 3.  1.3,2.1 / [t < 10s] 2.2 : age := demanderAge(nom,prenom)   Le message numéro 2.2 ne sera envoyé qu'après les messages 1.3 et 2.1, et que si "t < 10s". La valeur retournée est un age, et on passe en argument un nom et un prénom.  1.3 / [disk full] 1.7.a * : deleteTempFiles()1.3 / [disk full] 1.7.b : reduceSwapFile(20%) Ces messages ne seront envoyés qu'après l'envoi du message 1.3 et si la condition "disk full" est réalisée. Si tel est le cas, les messages 1.7.a et 1.7.b seront envoyés simultanément. Plusieurs messages 1.7.a peuvent être envoyés.

Page 63: UML Concepts de base et applications Par Jérôme DIVO

63

7. Exercice

Page 64: UML Concepts de base et applications Par Jérôme DIVO

64

7. Diagramme de collaboration

Définition : Les diagrammes de collaboration permettent de représenter les échanges, ou collaborations entre objets, en spécifiant l’état de chaque objet

Rôle : Le diagramme de collaboration a le même rôle que le diagramme de séquence, à la différence près qu’il permet de caractériser l’état d’un objet.

Contenu : Instances Acteurs Messages (ou opérations) Notes Des contraintes

Page 65: UML Concepts de base et applications Par Jérôme DIVO

65

7. Diagramme de collaboration

Les objets sont décrits de la même façon qu’au paragraphe 6 (Instances)

Les messages ont le même format que pour les diagrammes de séquence

Les représentations graphiques des messages sont les mêmes que pour le diagramme de séquence.

Claudine : AgentD'inscription

JD : Etudiant

IPO : Ecole

THIEL : PromotionESI :

Option

4: Affecter

5: [an-andiplom<2] affecter

1: Créer3: Affecter(THIEL, ESI)

2: AjouterEtudiant(JD)

Page 66: UML Concepts de base et applications Par Jérôme DIVO

66

7. Exercice

Page 67: UML Concepts de base et applications Par Jérôme DIVO

67

Plan

1. Introduction2. Rappel Objet3. Présentation générale d’UML4. Les structures de bases5. Les Uses Cases6. Les classes et les objets7. Les diagrammes de collaborations 8. Les diagrammes d’états-transitions9. Les diagrammes d’activités10.UML dans les projets11.Du Modèle à la réalisation12.Les outils d’UML

Page 68: UML Concepts de base et applications Par Jérôme DIVO

68

8. Diagramme d’états-transitions

Définition : C’est un graphe d’état et de transitions décrivant les réponses (les états) d’un objet à une sollicitation.

Rôle : Il s’agit de représenter une machine à état fini, permettant de décrire un processus ou un algorithme, sous forme d’état et d’arc entre ces états, représentant des transitions.

Contenu : Etats Transitions

Page 69: UML Concepts de base et applications Par Jérôme DIVO

69

8. Diagramme d’états-transitions

Début d’un diagramme d’état

Fin d’un diagramme d’état

Page 70: UML Concepts de base et applications Par Jérôme DIVO

70

8. Diagramme d’états-transitions (Représentations)Un état représente un objet à un moment donnée de sa vie. L’état de objet est fini dans le temps.

Un état peut être représenté par un ensemble d’action : Entry / action : Action exécutée à l’entrée de l’état Exit / action : Action exécutée à la sortie de l’état ON événement / action : Action exécutée à chaque fois que l’événement

arrive. Cette action bloque toutes les autres actions si elle survient. On peut préciser une liste d’argument à l’événement.

Do / action : Action exécutée dans l’état.

Les transitions permettent de nommer l’événement qui va faire changer d’état :

Nom {(argument)} {[In « état »]} /action

Un état

Un état[X]

[ELSE]

Page 71: UML Concepts de base et applications Par Jérôme DIVO

71

SaisieMotDePasse

entry/ Ne plus afficher le Promptexit/ Afficher le Promptdo/ Traiter la saisie du mot de passeevent F1/ Afficher l'aideevent F10[ UserValide ]/ EnvoiMotDePasse.Mail(User)

8. Diagrammes d’états-transitions (Etats)

Etat complet

L’état Historique

H

Ce symbole représente la mémorisation du dernier état actif pour y revenir directement ultérieurement.

Sur l’événement F10 si le user est valide, on envoi un message nommé mail à EnvoiMotDePasse en lui passant en argument le USER

Page 72: UML Concepts de base et applications Par Jérôme DIVO

72

8. Diagrammes d’états transitions (Etats composites)

Les Supers Etats

Un état peut être le conteneur d’autres diagramme d’états-transitions.

Pré-lavage

/ after(5mn)

Lavage

/ ArrêtCuvePleine

Attente/ after(5mn)

/ after(15mn)

Rinçage Séchage/ séchage,after(10mn)

/ HumiditéElevée

/ HumiditéFaible/ after(10mn)

/ OuverturePorte

Attente

/ FermeturePorte

H

Page 73: UML Concepts de base et applications Par Jérôme DIVO

73

8. Diagrammes d’états transitions(Etats composites)

Les souches

Afin d'introduire plus d'abstraction dans un diagramme d'états-transitions complexe, il est possible de réduire la charge d'information, tout en matérialisant la présence de sous-états, à l'aide de souches.

/ OuverturePorte

/ FermeturePorte

Attente

Page 74: UML Concepts de base et applications Par Jérôme DIVO

74

8. Diagramme d’états transitions (Synchro, Thread,…)La barre de synchronisation permet de représenter graphiquement des points de synchronisation.

Les transitions qui en partent ont lieu en même temps On ne la franchit qu'après réalisation de toutes les transitions qui y

rentrent

Les états concurrents permettent de représenter des Etats concurrents sur un même diagramme.

State1

State2

State3

State4

State5 State6 State7

State8 State9

Ces deux états fonctionnent en parallèle.

La ligne discontinue indique la frontière

Point de synchroPoint de fork

Page 75: UML Concepts de base et applications Par Jérôme DIVO

75

8. Exercice

Page 76: UML Concepts de base et applications Par Jérôme DIVO

76

Plan

1. Introduction2. Rappel Objet3. Présentation générale d’UML4. Les structures de bases5. Les Uses Cases6. Les classes et les objets7. Les diagrammes de collaborations 8. Les diagrammes d’états-transitions9. Les diagrammes d’activités10.UML dans les projets11.Du Modèle à la réalisation12.Les outils d’UML

Page 77: UML Concepts de base et applications Par Jérôme DIVO

77

9. Diagramme d’activité

Définition : Un diagramme d’activité est une variation du diagramme d’état, ou les états sont des activités représentant la réalisation des opérations liées à cet état. La transition entre les activités se fait automatiquement à chaque fois qu’une activité est terminée.

Rôle : Ce diagramme permet de fournir la description d’une procédure, sous forme d’un WORKFLOW.

Contenu : Activités Transitions Objets

Page 78: UML Concepts de base et applications Par Jérôme DIVO

78

9. Diagramme d’activité (Représentation)

Exemple

Mettre le contact

Desserer le frein à main

[Voiture Démarre]

appeler le garagiste

Embrayer Passer la 1ére

Débrayer

Début

Fin

Activité

TransitionSynchroniser

Condition

Une Activité peut être une opération (y=pente*x) ou une description de l’action.Dans le cas ou l’activité est présentée sous la forme Nom () , il s'agit d’un état d’activité, c’est à dire que l’action peut être décomposée de façon plus poussée.

Page 79: UML Concepts de base et applications Par Jérôme DIVO

79

9. Diagramme d’activité (Objets)

Il est possible de montrer dans un diagramme d’activité les objets manipulés durant le processus. Le formalisme utilisé est celui des objets (6).

Passer Une Commande Comande : commandeActivité

Lien

Objet

Page 80: UML Concepts de base et applications Par Jérôme DIVO

80

9. Diagramme d’activité (Travées)

Il est possible d’organiser un diagramme d'activités selon les différents responsables des actions représentées. La segmentation se fait par ‘Couloirs D’activités’ ou Travées

Le garagisteLe client

Appeler le garagiste

Réponse du garagiste Mise en attente

Description de la panne

Prise en compte du probléme

S'identifier

Page 81: UML Concepts de base et applications Par Jérôme DIVO

81

Plan

1. Introduction2. Rappel Objet3. Présentation générale d’UML4. Les structures de bases5. Les Uses Cases6. Les classes et les objets7. Les diagrammes de collaborations 8. Les diagrammes d’états-transitions9. Les diagrammes d’activités10.UML dans les projets11.Du Modèle à la réalisation12.Les outils d’UML

Page 82: UML Concepts de base et applications Par Jérôme DIVO

82

10. UML dans les projets

Echanger avec son clientDéfinir ensemble un diagramme de cas d’utilisationValider ensemble les scénarios

Analyser et concevoir le systèmeA partir des Uses Cases et des scénarios, définir le diagramme

de classeA partir des scénarios, définir les diagrammes de séquence et de

collaboration (et enrichir les classes)Définir si besoins les diagrammes d’états…..

Page 83: UML Concepts de base et applications Par Jérôme DIVO

83

10. UML dans les projets

La Méthode itérative (basée sur la méthode UP)

Expression etstructuration du besoin

Analyse

Conception réalisation

Intégration

Recette

Le but est d’augmenter le périmètre à chaque étape.

La durée d’une étape varie de 15 jours à 3 mois.

La phase d’expression et de structuration des besoins correspond à la définition des UC.

La phase d’analyse à la définition des classes et des diagrammes de séquence.

La phase de conception-réalisation permet de générer le code, appliquer les patterns, écrire les tests unitaires.

La phase d’intégration valide le code.

La phase de recette valide le produit.

A la fin de chaque phase on augmente le périmètre ou on revient sur les choix faits.

En cas de non conformité, le problème est traité immédiatement.

Page 84: UML Concepts de base et applications Par Jérôme DIVO

84

11. Du Modèle à la réalisation(TP)

Présentation des outils Cas particulier de ROSE Transposition du modèle de classe en code C++ Exercices Génération automatique de code Design patterns

Page 85: UML Concepts de base et applications Par Jérôme DIVO

85

Web, Bibliographie et contact

www.omg.org : Site officel d’UML

www.developpez.com : Site consacré au développement (site francophone)

Le Guide de l’utilisateur UML (Eyrolles) ISBN : 2-212-09103-6

Le processus unifié (Eyrolles)ISBN : 2-212-09142-7

Le langage C++ (Stroustrup-Campus press)ISBN : 2-7440-0609-2

Pour vos questions :

[email protected]

Tél : 01 64 47 79 84