24
Cours n°3 UML 1

Langage de modélisation objet unifié

  • Upload
    lukas

  • View
    53

  • Download
    0

Embed Size (px)

DESCRIPTION

Langage de modélisation objet unifié. Cours n°3. Plan. Introduction Modéliser avec UML Diagrammes de cas d’utilisation Diagrammes de classes Notion de paquetage Diagrammes d’objets Diagrammes de séquence Diagrammes de collaboration Diagrammes d’états/transition Autres diagrammes. - PowerPoint PPT Presentation

Citation preview

Page 1: Langage de modélisation objet unifié

Cours n°3

UML1

Page 2: Langage de modélisation objet unifié

Plan Introduction Modéliser avec UMLDiagrammes de cas d’utilisationDiagrammes de classesNotion de paquetageDiagrammes d’objetsDiagrammes de séquenceDiagrammes de collaborationDiagrammes d’états/transitionAutres diagrammes

UML2

Page 3: Langage de modélisation objet unifié

Diagrammes d’interactionReprésentent une interactioninteraction, c.a.d un

ensemble d’objets et leurs relationsrelations, y compris les messages qu’ils peuvent échanger

Représentent une vue dynamiquedynamique du système

UML3

Page 4: Langage de modélisation objet unifié

Diagrammes d’interaction2 types de diagrammes d’interaction :

Diagrammes de séquence : mettent l’accent sur le classement chronologiquechronologique des messages de collaboration d’instance

Diagrammes de collaboration : mettent l’accent sur l’organisation l’organisation structurelle des éléments qui envoient et reçoivent des messages

Les diagrammes de séquence et les diagrammes de collaboration d’instances sont isomorphesisomorphes : l’un peut-être transformé en l’autre

UML4

Page 5: Langage de modélisation objet unifié

UML5

Page 6: Langage de modélisation objet unifié

Vues Vues statiques du système :

diagrammes de cas d'utilisation (Fonctionnel)    diagrammes de classesdiagrammes d'objets diagrammes de composants diagrammes de déploiement

Vues dynamiques du système :diagrammes de séquence diagrammes de collaboration diagrammes d'états-transitions diagrammes d'activités

UML6

Page 7: Langage de modélisation objet unifié

Sequence diagramsPermettent de représenter des interactions

Entre objets (et acteurs)Selon un point de vue temporel (chronologie des envois

de messages) 

Complémentaire du diagramme de collaborationDiagramme de collaboration décrit le contexte ou l'état

des objetsDiagramme de séquence se concentre sur l'expression

des interactions  Les diagrammes de séquences peuvent servir à

illustrer un cas d'utilisation

UML7

Page 8: Langage de modélisation objet unifié

Sequence diagramsL'ordre d'envoi d'un message est déterminé par

sa position sur l'axe vertical du diagramme le temps s'écoule "de haut en bas" de cet axe

  La disposition des objets sur l'axe horizontal n'a

pas de conséquence pour la sémantique du diagramme

  Les diagrammes de séquences et les diagrammes

d'état-transitions sont les vues dynamiques les plus importantes d'UML

UML8

Page 9: Langage de modélisation objet unifié

Convention graphique

UML9

Acteur :Objet :Ligne de vie :Bande d’activation :Envoi de message : Création dynamique :Supprimer un objet :

:nom nom:Classe

Message()

new() obj:Classe2

kill()

Page 10: Langage de modélisation objet unifié

Convention graphiqueBranchement conditionnel :

Récursivité :

UML10

cas2()

if x

else

endif

obj2:Classe

obj1:Classe

msg()

cas1()

Page 11: Langage de modélisation objet unifié

Types de messages Message simple : aucune caractéristique d'envoi ou de réception

particulière 

Message minuté (timeout) : bloque l'expéditeur pendant un temps donné, en attendant la prise en compte du message par le récepteur. L'expéditeur est libéré si la prise en compte n'a pas eu lieu pendant le délai spécifié 

Message synchrone : bloque l'expéditeur jusqu'à prise en compte du message par le destinataire

UML11

msg()

msg()

msg()

Page 12: Langage de modélisation objet unifié

Types de messages Message asynchrone : n'interrompt pas l'exécution de

l'expéditeur. Le message peut être pris en compte par le récepteur à tout moment ou ignoré 

Message dérobant : n'interrompt pas l'exécution de l'expéditeur et ne déclenche une opération chez le récepteur que s'il s'est préalablement mis en attente de ce message

UML12

msg()

msg()

Page 13: Langage de modélisation objet unifié

Exemple

13

:client :GuichetAutomatique

introductionCarte()

demandeCode()

code(valeur)

verifieCode()[code faux] detruit()

[code bon] demandeMontant()

demandeRetrait(valeur)verifieSolde()

[retrait>solde] detruit()

[retrait<solde] proposeTicket()

[oui]acceptTicket()

editeTicket()

[non]refuseTicket()

ejectCarte()

recupereCarte()

ejectionBillets()recupereBillets()

Page 14: Langage de modélisation objet unifié

UML14

Page 15: Langage de modélisation objet unifié

Vues Vues statiques du système :

diagrammes de cas d'utilisation (Fonctionnel)    diagrammes de classesdiagrammes d'objets diagrammes de composants diagrammes de déploiement

Vues dynamiques du système :diagrammes de séquence diagrammes de collaboration diagrammes d'états-transitions diagrammes d'activités

UML15

Page 16: Langage de modélisation objet unifié

Collaboration diagramsmontrent des interactions entre objets permettent de représenter le contexte d'une

interaction : on peut y préciser les états des objets qui interagissent

concernent des objets reliés par des liens et qui se connaissent dans une situation donnée

Représentation spatiale d’une interaction

UML16

Page 17: Langage de modélisation objet unifié

MessagesUnité de communication entre rôlesRegroupent les flots de contrôle (appel de

méthode) et les flots de données (valeurs)Les messages échangés par les objets sont

représentés le long des liensL’ordre d’envoi des messages est

matérialisé par un numéro de séquence

UML17

Page 18: Langage de modélisation objet unifié

Convention graphique

UML18

O1:classe OClasse2:classe2

1: operation()

2: op2()

O2:classe

3: opInterne()

O3:classe

4: op3()

Page 19: Langage de modélisation objet unifié

Synchronisation des messagesUML permet de spécifier de manière très

précise l'ordre et les conditions d'envoi des messages sur un diagramme dynamique 

Pour chaque message, il est possible d'indiquer : les clauses qui conditionnent son envoison rang (son numéro d'ordre par rapport aux

autres messages)sa récurrence ses arguments

UML19

Page 20: Langage de modélisation objet unifié

Syntaxepré / [cond] séq *|| [iter] : r := msg (par)

pré : prédécesseurs (liste de numéros de séquence de messages) Indique que le message ne sera envoyé que lorsque tous ses prédécesseurs le seront

[cond] : expression booléenne.Permet de conditionner l'envoi du message

séq : numéro de séquence du message.Indique le rang du message, c'est-à-dire son numéro d'ordre par rapport aux autres messages. Il est possible de représenter le niveau d'emboîtement des messages et leur précédence, à l'aide de chiffres séparés par des points.Exemple : l'envoi du message 1.3.5 suit immédiatement celui du message 1.3.4 et ces deux messages font partie du flot (de la famille de messages) 1.3.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 : récurrence du message.Permet de spécifier l'envoi séquentiel (ou en parallèle, avec "||") de messages. Il est aussi possible de spécifier qu'un message est récurrent en n'utilisant que "*" ou "*||".

r : valeur de retour du message.Permet d'affecter la valeur de retour d'un message

msg : nom du message. par : paramètres du message

20

Page 21: Langage de modélisation objet unifié

Exemples 3 : bonjour() Ce message a pour numéro de séquence "3".

  [heure = midi] 1 : manger() Ce message n'est envoyé que s'il est midi.

  1.3.6 * : ouvrir() Ce message est envoyé de manière séquentielle un certain nombre de fois.

  3 / *||[i := 1..5] : fermer() Représente l'envoi en parallèle de 5 messages. Ces messages ne seront

envoyés qu'après l'envoi du message 3. 

1.3,2.1 / [t < 10s] 2.5 : age := demanderAge(nom,prenom)   Ce message (numéro 2.5) ne sera envoyé qu'après les messages 1.3 et 2.1, et

que si "t < 10s". La valeur de retour est affectée à age. Le message prend nom et prenom en paramètres 

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 cela 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.

UML21

Page 22: Langage de modélisation objet unifié

Types de messageMêmes messages que pour les séquences :

Message simple Message minuté   Message synchrone   Message asynchrone   Message dérobant

UML22

Page 23: Langage de modélisation objet unifié

Exemple

UML23

:TourControle

pa87:Boeing

Etat=detresse

:Avion

Etat=a_terrePosition=piste

:RegimentPompier

1*: mayday()

2.a/3: atterrir(piste)

1/2.b: envoyer(piste)

1/2.a *||: seDeplacer(piste, parking)

Page 24: Langage de modélisation objet unifié

Isomorphisme

UML24

O1:C1 O3:C3

O2:C2

5: msg5()3: msg3()

10: msg10()4: msg4()1: msg1()

9: msg9()7: msg7()

8: msg8()

2: msg2() 6: msg6()

Diagramme de collaboration Diagramme de séquence

O3:C3O1:C1 O2:C2

msg1()msg2()

msg3()

msg4()

msg5()msg6()

msg8()

msg7()

msg9()

msg10()