Cours Diagrammes d'interaction UML
Rappel :
UML est conçu pour modéliser divers types de systèmes, de taille quelconque et pour tous les domaines d’application (gestion, scientifique, temps réel, système embarqué).
UML permet de diviser le système d’information (d’une organisation) en le système métier et le système informatique. Le système métier modélise les aspects statiques et dynamiques de l’activité selon une vision externe et une vision interne (en ignorant l’implémentation technique) tandis que le système informatique recouvre la partie automatisée du système métier concrétisant les choix effectués parmi les différentes technologies d’actualité. Les concepts manipulés sont les mêmes, à chacun de ces deux niveaux d’abstraction.
UML est fortement inspiré de l’approche 4+1 vues (logique, composants, processus, déploiement et cas d’utilisation) indépendantes définies par P. Kruchten pour exprimer les diverses perspectives de l’architecture d’un système informatique.
UML se compose d’une part des éléments de modélisation qui représentent toutes les propriétés du langage et d’autre part des diagrammes (de cas d’utilisation, de classes, d’objets, d’états-transitions, d’activités, de séquence, de collaboration, de composants et de déploiement) qui en constituent l’expression visuelle et graphique.
UML n’impose pas de processus de développement logiciel particulier, même si celui sous-jacent est un processus itératif (précisant à chaque itération les degrés d’abstraction), incrémental (i.e. en divisant le développement en étapes aboutissant chacune à la construction de tout ou partie du système), centré sur l’architecture (au niveau de la modélisation comme de la production), conduit par les cas d’utilisation (modélisant l’application à partir des modes d’utilisation attendus par les utilisateurs), piloté par les risques (afin d’écarter les causes majeures d’échec) tel que le 2TUP (Two Tracks Unified Process) présenté notamment dans l’ouvrage UML en action – De l’analyse des besoins à la conception en Java de P. Roques et F.
Vallée paru aux éditions Eyrolles en 2000.
UML prend en compte de manière complètement intégrée l’ingénierie des besoins (cas d’utilisation).
UML est automatisable pour générer du code à partir des modèles vers les langages et les environnements de programmation.
UML est générique, extensible (en plus de couvrir les possibilités des différentes technologies objet existantes) et configurable.
UML se veut intuitif, simple et cohérent.
...
Les diagrammes d'UML
Diagramme
Diagramme de structure
Diagramme comportemental
Diagramme de classes
Diagramme de composant
Diagramme de structure composite
Diagramme de
Déploiement
Diagramme d’objets
Diagramme de package
Diagramme d’activités
Diagramme de cas d’utilisation
Diagramme de transition d’état
Diagramme d’interactions
Diagramme de séquence
Diagramme de communication
Diagramme vue d’ensemble des interactions
Diagramme de timing
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes d'interaction
Introduction
Modéliser la façon dont les groupes d'objets collaborent pour réaliser un comportement donné.
Diagrammes de séquence
Montrent les interactions entre objets selon un point de vue temporel
Le contexte des objets n'est pas représenté
A : Objet B : Objet
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes d'interaction
Introduction
Diagrammes de collaboration / communication
Montre les interactions entre objets en insistant sur la structure spatiale statique
Exprime à la fois le contexte de groupe d'objets et l'interaction entre ces objets
Extension du diagramme d'objets
: Traitement de texte
: Imprimante
: Scanner
1: lire
2: écrire
II.6. Diagrammes d'interaction
- Diagrammes de séquence
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Concepts principaux :
1 Les participants (le plus souvent des objets)
Une ligne de vie
Des zones d’activation
2 Les messages
L’opération et éventuellement ses paramètres
Éventuellement son résultat
3 Des structures de contrôle
Alt : conditionnelle
Loop : boucle
Réf : référence à un autre diagramme de séquence (=appel de fonction)
Etc.
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Représentation des acteurs
Rectangle + Ligne de vie
Nom_objet : nom_classe
Ferrari : Voiture : Garage
Temps t nom
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Messages
Communication entre les lignes de vie
appel de méthode
envoi d'un signal
création/destruction d'une instance
Ferrari : Voiture : Conducteur démarre
attribut = nom_signal_ou_op (arguments) : valeur_retournée
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Types de messages
1 Appels de méthodes ou autres méthodes d'appels synchrones
2 Communication asynchrone : l'émetteur déclenche le stimulus et passe immédiatement à la suite de l'exécution
3 Retours de procédures (ou de méthodes) : optionnel
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Un objet peut s'envoyer des messages
Un message peut entraîner la création ou la destruction d'objets
: objet
Message
réflexif
: objet
<> : objet
<>
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Occurrence d'exécution
Aussi appelé « focus de contrôle »
Correspond à la durée d'activité de l'objet <=> temps durant lequel il est actif
Ferrari : Voiture : Conducteur démarre
Focus d'exécution
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Message trouvé = émetteur inconnu.
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Exemple
Créations
Destructions
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Exemple : distributeur de boisson
Moi : Personne : MachineDdB distributeur de boisson
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Invariants d'état
: FenetrePrincipale : Compte
create("bob","glopglop")
: ControleurDAuthentification
verifierReferences(compte)
{compte.authentificationOk == true}
initialiserTransaction()
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Occurrences événementielles
: A : B
Action()
description
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Fragments combinés
Types
1 Opt
2 Loop
3 Alt
4 Break
5 Critique
6 Ref
7 ...
nom [expression booléenne]
: A
condition de garde
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Fragments combinés
Opt : Fragment parcouru si une condition est vérifiée
: A : B
Opt [condition]
Action()
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Fragments combinés
Loop : Répétition du fragment tant que la condition est vérifiée
: A : B
Loop [condition]
Action()
Loop (0, n)
Action()
ou
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Fragments combinés
Alt : Equivalent à la structure de contrôle "si .. alors .. sinon".
: A : B
Alt [condition]
[else]
ActionA()
ActionB()
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Fragments combinés
Break : Fragment exécuté et met fin au fragment englobant
: A : B
Break [condition]
Action()
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Fragments combinés
Critique : Fragment exécuté de façon atomique (d'un bloc)
: A : B
ActionCritique()
Critique [condition]
Diagrammes de séquence
Décomposition : mot clef "ref"
Méthode n°1
: A
: B
ref
DiagB
Action()
Reponse()
DiagA DiagB
: B
Action()
Reponse()
: C
Action1()
Reponse1()
Diagrammes de séquence
Décomposition : mot clef "ref"
Méthode n°2
: A DiagA
: B SousFonction
Ref
SousFonction : A : B
Action()
Reponse()
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de séquence
Exercice : distributeur de boissons
Client Ecran MachineDdB G_Monnaie G_Boisson G_gobelet Piece
II.6. Diagrammes d'interaction
- Dia. de communication
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Introduction
Les diagrammes d'UML
Diagramme
Diagramme de structure
Diagramme comportemental
Diagramme de classes
Diagramme de composant
Diagramme de structure composite
Diagramme de déploiement
Diagramme d’objets
Diagramme de package
Diagramme d’activités
Diagramme de cas d’utilisation
Diagramme de transition d’état
Diagramme d’interactions
Diagramme de séquence
Diagramme de communication
Diagramme vue d’ensemble des interactions
Diagramme de timing
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de communication
Objectif
Extension du diagramme d'objet
1 - le contexte = modèle objets
2 - les interactions = les scénarios
Montrent les interactions entre objets du point de vue statique et dynamique
1 - Objets = instances de classes
2 - Lien = instance des associations définies dans le diagramme de classes
Module Génie Logiciel : Cours d'Analyse Orientée Objet.
Diagrammes de communication
Concepts
Objets / acteurs
Messages séquentiels numérotés
Echangés entre objets et non entre classes
Exemple :
tourDeContrôle Fk74:Airbus
1 : confirmerIdentité
2 : décoller
Diagrammes de communication
Exemples
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
[Age >= 18 ans] 6.2 : Voter() // message conditionnel
A B x
Diagrammes de communication
Exercice
Transformer ce diagramme de séquence en diagramme de communication
Fenêtre : Frame Préférences : Data
chargeParams()
Ouverture d'URL dans un navigateur web
PortDeRéception : Socket
<>
ecouter()
accepter()
Module Génie Logiciel : Cours d'Analyse Orientée Objet. 32
Diagrammes de communication
Exemple : distributeur de boissons
: MachineDbB
: G_Monnaie : G_Boisson
: G_Gobelet
: Piece
: Ecran
Moi : Utilisateur
Chocolat : Boisson