Null 3
Null 3
Null 3
Elément : UML
Historique d’UML
Début des années 1990
Les premiers processus de développement OO apparaissent
Augmentation de nombre des méthodes et notations étaient la cause de grande
confusion :
Méthode OOD de Grady Booch (1991)
Méthode OMT de James Rumbaugh (1991)
Méthode OOSE de Ivar Jacobson (1991)
Fin 1994
James Rumbaugh rejoint Grady Booch chez Rational Software
OMT + OOD Unified Method (oct 1995)
Fin 1995
Ivar Jacobson les rejoint chez Rational Software
Unified Method + OOSE UML 0.9 (juin 1996)
Début 1997
Partenaires divers : Microsoft, Oracle, IBM, HP et autres leaders collaborent
UML 1.0 (jan 1997)
Fin 1997
L’OMG (Object Management Group) retient UML 1.1 comme norme de modélisation
1
Dr. Yassine Rhazali
1 Er Chapitre : L'approche Objet
Aujourd’hui l’approche objet occupe une place clé dans le génie logiciel. En effet, ces
dernières années nous avons assisté tout d’abord à une utilisation plus large des langages de
programmation objet de référence comme C++, C# et Java et ensuite à l’introduction des
concepts objet dans d’autres langages comme par exemple VB.NET, Perl et même Cobol.
Exemple
Considérons l’employé objet Amine, n° 105, embauché en tant qu’ingénieur travaillant sur le
site N. Cet objet est caractérisé par la liste de ses attributs et son état est représenté par les
valeurs de ses attributs :
• N° employé : 105,
• Nom : Amine,
• Qualification : ingénieur,
• Lieu de travail : site N.
Son comportement est caractérisé par les opérations qu’il peut exécuter. Dans notre cas nous
pouvons avoir les opérations suivantes :
• Entrer dans l’organisme,
• Changer de qualification,
• Changer de lieu de travail,
• Sortir de l’organisme.
Un objet est une instance d’une et une seule classe. Une classe abstraite est une classe qui n’a
pas d’instance. Les concepts de classe et d’objet sont interdépendants.
Exemple
Considérons la classe Employé qui représente l’ensemble des employés d’une entreprise. La
description de la classe Employé comportera les éléments suivants :
• Opérations :
– Engager un employé,
– Consulter un employé,
– Modifier un employé,
2
Dr. Yassine Rhazali
– Départ d’un employé.
1.2 Encapsulation
Par rapport à l’approche classique, l’approche objet se caractérise par le regroupement dans une
même classe les attributs et les opérations. Ce regroupement porte le nom d’encapsulation
données-traitements.
Plus précisément, les données ne sont accessibles qu’à partir d’opérations définies dans la classe.
L’ensemble des opérations d’une classe rendu visible aux autres classes porte le nom d’interface.
L’agrégation est une forme particulière d’association entre plusieurs classes. Elle exprime
le fait qu’une classe est composée d’une ou plusieurs autres classes.
Une classe spécialisée porte aussi le nom de sous-classe. La spécialisation de classe se construit
en deux temps : d’abord par héritage des opérations et des attributs d’une super-classe et
ensuite par ajout d’opérations et/ou d’attributs spécifiques à la sous-classe.
1.5 Polymorphisme
Le polymorphisme est la capacité donnée à une même opération de s’exécuter différemment
suivant le contexte de la classe où elle se trouve.
Ainsi une opération définie dans une super-classe peut s’exécuter de manière différente selon la
sous-classe où elle est héritée.
Exemple
Soit la classe Employé et ses deux sous-classes Cadre et NonCadre.
• Nom de classe : Employé.
– Attributs :
– numéro,
– nom,
– salaire de base.
– Opérations : calculSalaire( ).
• Nom de la sous-classe : Cadre.
– Attributs : niveau d’encadrement.
– Opérations : calculSalaire( ).
3
Dr. Yassine Rhazali
• Nom de la sous-classe : NonCadre.
– Attributs : niveau de spécialisation.
– Opérations : calculSalaire( ).
Dans cet exemple, lorsque l’on appelle l’opération calculSalaire( ), c’est l’opération de sous-
classe Cadre ou celle de la sous-classe NonCadre qui est en fait activée selon l’objet concerné.
L’opération de la sous-classe fait en général appel explicitement à l’opération calculSalaire( ) de
la super-classe pour bénéficier des traitements communs aux cadres et non cadres et ensuite il y
aura poursuite du traitement spécifique à la sous-classe.
4
Dr. Yassine Rhazali
2 ème Chapitre: DIAGRAMME UML DES CAS
D’UTILISATION
2.1 Présentation générale et concepts de base
Un diagramme de cas d’utilisation permet de décrire l’interaction entre les acteurs
(utilisateurs du cas) et le système. La description de l’interaction est réalisée suivant le point
de vue de l’utilisateur.
La représentation d’un cas d’utilisation se base sur trois concepts : l’acteur, le cas
d’utilisation et l’interaction entre l’acteur et le cas d’utilisation.
2.1.1 Acteur
Un acteur est un utilisateur de futur système qui va utiliser ses fonctionnalités (cas
d’utilisation).
Une même personne physique peut se comporter comme plusieurs acteurs différents que le
nombre de rôles qu’elle joue vis-à-vis du système. Par exemple l’administrateur d’un groupe
facebook il peut être considéré en tant qu’un utilisateur d’un compte facebook standard ou en
tant qu’administrateur d’une page facebook.
Un acteur peut aussi être un système externe avec lequel le cas d’utilisation va interagir.
Formalisme et exemple
Un acteur peut se représenter symboliquement par un « bonhomme » et être identifié par son
nom. Il peut aussi être formalisé par une classe stéréotypée « acteur » (fig. 1).
Une interaction permet de décrire les échanges entre un acteur et un cas d’utilisation.
Formalisme et exemple
Un cas d’utilisation se représente par un ovale dans lequel figure son intitulé.
L’interaction entre un acteur et un cas d’utilisation se représente comme une association. Elle
peut comporter des multiplicités comme toute association entre classes.
5
Dr. Yassine Rhazali
Le formalisme de base de représentation d’un cas d’utilisation est donné à la figure 2.
Relation d’inclusion
Une relation d’inclusion d’un cas d’utilisation A par rapport à un cas d’utilisation B signifie
qu’une instance de A contient le comportement décrit dans B.
La figure 3 donne le formalisme et un exemple d’une relation d’inclusion entre cas d’utilisation.
Relation de généralisation
Une relation de généralisation de cas d’utilisation peut être définie conformément au principe
de la spécialisation-généralisation.
6
Dr. Yassine Rhazali
Figure 4: Exemple d’une relation de généralisation de cas d’utilisation
Relation d’extension
Une relation d’extension d’un cas d’utilisation A par un cas d’utilisation B signifie qu’une
instance de A peut être étendue par le comportement décrit dans B. Deux caractéristiques sont à
noter :
Une note peut être ajoutée à la représentation du cas d’utilisation permettant d’expliciter la
condition.
7
Dr. Yassine Rhazali
2.2 Description textuelle d’un cas d’utilisation
À chaque cas d’utilisation doit être associée une description textuelle des interactions entre
l’acteur et le système et les actions que le système doit réaliser en vue de produire les résultats
attendus par les acteurs.
UML ne propose pas de présentation de cette description textuelle. Cependant, les travaux
menés par Alistair Cockburn [Cockburn2001] sur ce sujet constituent une référence en la
matière et tout naturellement nous reprenons ici l’essentiel de cette présentation.
• Acteurs concernés – Le ou les acteurs concernés par le cas d’utilisation doivent être identifiés
en précisant globalement leur rôle.
• Pré conditions – Si certaines conditions particulières sont requises avant l’exécution du cas,
elles sont à exprimer à ce niveau.
• Post conditions – Par symétrie, si certaines conditions particulières doivent être réunies
après l’exécution du cas, elles sont à exprimer à ce niveau.
• Scénario nominal – Il s’agit là du scénario principal qui doit se dérouler sans incident et qui
permet d’aboutir au résultat souhaité.
Il existe trois catégories d’abonné. Tout d’abord les étudiants qui doivent seulement s’acquitter
d’une somme forfaitaire pour une année afin d’avoir droit à tous les services de la bibliothèque.
L’accès à la bibliothèque est libre pour tous les enseignants. Enfin, il est possible d’autoriser des
étudiants d’une autre université à s’inscrire exceptionnellement comme abonné moyennant le
versement d’une cotisation. Le nombre d’abonné externe est limité chaque année à environ 10 %
des inscrits.
Un nouveau service de consultation du catalogue général des ouvrages doit être mis en place.
Les ouvrages, souvent acquis en plusieurs exemplaires, sont rangés dans des rayons de la
bibliothèque. Chaque exemplaire est repéré par une référence gérée dans le catalogue et le code
du rayon où il est rangé.
Chaque abonné ne peut emprunter plus de trois ouvrages. Le délai d’emprunt d’un ouvrage est
de trois semaines, il peut cependant être prolongé exceptionnellement à cinq semaines.
8
Dr. Yassine Rhazali
3 ème Chapitre : Diagrammes UML de
modélisation statique
3.1 DIAGRAMME DE CLASSE (DCL) ET DIAGRAMME
D’OBJET (DOB)
La description du diagramme de classe est fondée sur :
• Le concept d’objet,
• Le concept de classe comprenant les attributs et les opérations,
• Les différents types d’association entre classes.
3.1.1 Objet
Un objet est un concept, une abstraction ou une chose qui a un sens dans le contexte du système
à modéliser. Chaque objet a une identité et peut être distingué des autres.
Un objet est caractérisé par les valeurs de ses propriétés qui lui attribuent des états significatifs
suivant les instants considérés.
Une classe décrit un groupe d’objets ayant les mêmes propriétés (attributs), un même
comportement (opérations).
Un objet est une instance d’une classe. La classe représente l’abstraction de ses objets.
• la désignation de la classe,
• la description des attributs,
• la description des opérations.
Il est possible de manipuler les classes en limitant le niveau de description à un nombre réduit
de compartiments selon les objectifs poursuivis par le modélisateur.
La figure 6 montre le formalisme général des compartiments d’une classe et des premiers
exemples.
Attribut
Un attribut est une propriété élémentaire d’une classe. Pour chaque objet d’une classe l’attribut
prend une valeur.
9
Dr. Yassine Rhazali
Figure 6: Formalisme général d’une classe et exemples.
Un attribut peut avoir des valeurs multiples. Dans ce cas, cette caractéristique
caractéristique est indiquée après
le nom de l’attribut (ex. : prénom [3] pour une personne qui peut avoir trois prénoms).
Un attribut dont la valeur peut être calculée à partir d’autres attributs de la classe est un attribut
dérivé qui se note « /nom de l’attribut dérivé ». Un exemple d’attribut dérivé est donné à la
figure 9.
Opération
10
Dr. Yassine Rhazali
Une opération est une fonction applicable aux objets d’une classe. Une opération permet de
décrire le comportement d’un objet. Une méthode est l’implémentation d’une opération.
Chaque opération est désignée soit seulement par son nom, sa liste de paramètres et son type de
retour. La signature d’une méthode correspond au nom de la méthode et la liste des paramètres
en entrée. La figure 9 montre le formalisme et un exemple de représentation d’opérations de
classe.
Il est utile de préciser que la représentation des objets sera utilisée dans plusieurs autres
diagrammes importants d’UML. C’est le cas notamment du diagramme de séquence ou encore du
diagramme d’état-transition.
11
Dr. Yassine Rhazali
Visibilité des attributs et opérations
Chaque attribut ou opération d’une classe peut être de type public, protégé, privé ou paquetage.
Les symboles + (public), # (protégé), - (privé) et ~ (paquetage) sont indiqués devant chaque
attribut ou opération pour signifier le type de visibilité autorisé pour les autres classes.
Un attribut ou une opération peut être défini non pas au niveau des instances d’une classe, mais
au niveau de la classe.
Il s’agit soit d’un attribut qui est une constante pour toutes les instances d’une classe soit d’une
opération d’une classe abstraite.
Dans l’exemple de la figure 11, l’attribut « ristourne » est de type classe et l’opération « créer »
est une opération exécutable au niveau de la classe.
Un lien est une connexion physique ou conceptuelle entre instances de classes donc entre objets.
Une association décrit un groupe de liens ayant une même structure et une même sémantique.
Un lien est une instance d’une association. Chaque association peut être identifiée par son nom.
12
Dr. Yassine Rhazali
Figure 12: Formalisme et exemple d’association
Multiplicité
La multiplicité indique un domaine de valeurs pour préciser le nombre d’instance d’une classe
vis-à-vis d’une autre classe pour une association donnée. Le domaine de valeurs est décrit
selon plusieurs formes :
• Intervalle fermé – Exemple : 3 ..15.
• Valeurs exactes – Exemple : 3, 5, 8.
• Valeur indéterminée notée * – Exemple : 1..*.
– Dans le cas où l’on utilise seulement *, cela traduit une multiplicité 0..*.
Nous donnons, à la figure 14, quelques exemples des principales multiplicités définies dans UML.
13
Dr. Yassine Rhazali
Navigabilité
Par défaut, on admet qu’une navigabilité non définie correspond à une navigabilité implicite.
Dans l’exemple donné à la figure 16, a une personne sont associées ses copies d’examen mais
l’inverse n’est pas possible (notamment avant la correction de la copie).
Contraintes
Ordre de tri
Un exemple est donné à la figure 17. Dans cet exemple, pour une entreprise donnée, les
personnes seront enregistrées suivant un ordre qui correspondra à un des attributs de
Personne.
14
Dr. Yassine Rhazali
Propriétés de mise à jour de liens
Il est possible d’indiquer des contraintes particulières relatives aux conditions de mise à jour des
liens.
• {interdit} : interdit l’ajout, la suppression ou la mise à jour des liens.
Une classe-association permet de décrire soit des attributs soit des opérations propres à
l’association. Cette classe-association est elle-même reliée par un trait en pointillé au losange de
connexion. Une classe-association peut être reliée à d’autres classes d’un diagramme de classes.
L’agrégation est une association qui permet de représenter un lien de type « ensemble »
comprenant des « éléments ». Il s’agit d’une relation entre une classe représentant le niveau «
ensemble » et 1 à n classes de niveau « éléments ».
15
Dr. Yassine Rhazali
Figure 19: Exemple d’agrégation
Composition
La composition est une relation d’agrégation dans laquelle il existe une contrainte de durée de
vie entre la classe « composant » et la ou les classes « composé ». Autrement dit la suppression
de la classe « composé » implique la suppression de la ou des classes « composant ».
Par exemple dans la figure 20 Un document est composé de plusieurs paragraphes, qui, à son
tour, est composé de plusieurs phrases.
phrases
Seules les instances possédant l’attribut indiqué dans la qualification sont concernées par
l’association. Cet attribut ne fait pas partie de l’association.
Soit la relation entre les répertoires et les fichiers appartenant à ces répertoires. À un répertoire
est associé 0 à n fichiers. Si l’on veut restreindre cette association pour ne considérer
consid qu’un
fichier associé à son répertoire, la relation qualifiée est alors utilisée pour cela. La figure 21
montre la représentation de ces deux situations.
16
Dr. Yassine Rhazali
Dépendance
La dépendance entre deux classes permet de représenter l’existence d’un lien sémantique. Une
classe B est en dépendance de la classe A si des éléments de la classe A sont nécessaires pour
construire la classe B.
La relation de dépendance se représente par une flèche en pointillé (fig. 22) entre deux classes.
Interface
Une classe d’interface permet de décrire la vue externe d’une classe. La classe d’interface,
identifiée par un nom, comporte la liste des opérations accessibles par les autres classes. Le
compartiment des attributs ne fait pas partie de la description d’une interface.
L’interface peut être aussi matérialisée plus globalement par un petit cercle associé à la classe
source.
La classe utilisatrice de l’interface est reliée au symbole de l’interface par une flèche en pointillé.
17
Dr. Yassine Rhazali
3.1.6 Généralisation et spécialisation
La généralisation est la relation entre une classe et deux autres classes ou plus partageant un
sous-ensemble commun d’attributs et/ou d’opérations.
L’opération qui consiste à créer une super-classe à partir de classes s’appelle la généralisation.
Inversement la spécialisation consiste à créer des sousclasses à partir d’une classe.
La figure 25 montre un exemple de relation de spécialisation. Dans cet exemple, les attributs
nom, prénom et date de naissance et l’opération « calculer âge » de « Employé » sont hérités par
les trois sous-classes : Employé horaire, Employé salarié, Vacataire.
Classe abstraite
Une classe abstraite est une classe qui n’a pas d’instance directe mais dont les classes
descendantes ont des instances. Dans une relation d’héritage, la super-classe est par définition
une classe abstraite. C’est le cas de la classe Employé dans l’exemple présenté à la figure.25.
D’une manière générale, quatre situations peuvent se rencontrer et se représentent sous forme
de contraintes :
• {chevauchement} : deux sous-classes peuvent avoir, parmi leurs instances, des
instances identiques ;
• {disjoint} : les instances d’une sous-classe ne peuvent être incluses dans une autre sous-
classe de la même classe ;
• {complète} : la généralisation ne peut pas être étendue ;
• {incomplète} : la généralisation peut être étendue.
La figure 26 montre un exemple d’héritage avec recouvrement d’instances entre les classes
Étudiant et Employé. En effet, une même personne peut être à la fois étudiante dans une
université et employée dans une entreprise.
18
Dr. Yassine Rhazali
Figure 26: Exemple d’héritage avec recouvrement d’instances.
L’ajout de propriétés dans une sous-classe correspond à une extension de classe. Le masquage
de propriétés dans une sous-classe correspond à une restriction de classe.
L’héritage multiple
Dans certains cas, il est nécessaire de faire hériter une même classe de deux classes « parentes »
distinctes. Ce cas correspond à un héritage multiple.
19
Dr. Yassine Rhazali
Figure 28: Exemple de relation d’héritage multiple
Exercice 1
Nous considérons les quatre objets géométriques suivants : cercle, ellipse, carré, rectangle. Il est
demandé d’utiliser les propriétés de la généralisation et la spécialisation afin de représenter au
mieux ces objets géométriques.
20
Dr. Yassine Rhazali
Exercice 2
Un hôtel est composé d'au moins deux chambres. Chaque chambre dispose d'une salle d'eau :
douche ou bien baignoire. Un hôtel héberge des personnes. Il peut employer du personnel et il
est impérativement dirigé par un directeur. On ne connaît que le nom et le prénom des
employés, des directeurs et des occupants. Certaines personnes sont des enfants et d'autres des
adultes (faire travailler des enfants est interdit).
Un hôtel a les caractéristiques suivantes : une adresse, un nombre de pièces et une catégorie.
Une chambre est caractérisée par le nombre et de lits qu'elle contient, son prix et son numéro.
On veut pouvoir savoir qui occupe quelle chambre à quelle date. Pour chaque jour de l'année, on
veut pouvoir calculer le loyer de chaque chambre en fonction de son prix et de son occupation
(le loyer est nul si la chambre est inoccupée). La somme de ces loyers permet de calculer le
chiffre d'affaires de l'hôtel entre deux dates.
3.2.1 Collaboration
Une collaboration représente un assemblage de rôles d’éléments qui interagissent en vue de
réaliser une fonction donnée. Il existe deux manières de représenter une collaboration :
Dans ce cas, une collaboration est formalisée par une ellipse en pointillé dans laquelle on fait
figurer les rôles des éléments qui interagissent en vue de réaliser la fonction souhaitée (fig. 29).
Dans cet exemple, la fonction Persistance objets métier résulte d’une collaboration entre deux
rôles d’éléments :
• mapping : classeMétier,
• stockage : tableBDD.
Figure 29: Exemple de représentation d’une structure composite à l’aide d’une collaboration de rôles
21
Dr. Yassine Rhazali
Cette nouvelle représentation (fig. 30) permet de montrer plus explicitement les éléments de la
collaboration :
Dans cet exemple, la fonction Persistance objets métier résulte d’une collaboration entre la
classe ClasseMétier considérée suivant le rôle mapping et la classe TableBDD considérée suivant
le rôle stockage.
Cette représentation permet aussi de préciser les seuls attributs des classes participantes qui
sont considérés suivant les rôles pris en compte.
22
Dr. Yassine Rhazali
4 ème chapitre: Diagrammes UML de
modélisation dynamique
4.1 DIAGRAMME DE SÉQUENCE (DSE)
4.1.1 Présentation générale et concepts de base
L’objectif du diagramme de séquence est de représenter les interactions entre objets en
indiquant la chronologie des échanges. Cette représentation peut se réaliser par cas
d’utilisation en considérant les différents scénarios associés.
Il est aussi possible dans certains outils de modélisation d’indiquer plus simplement la création
d’une nouvelle instance d’objet en utilisant le mot-clé « create »
23
Dr. Yassine Rhazali
Figure 32: Exemple type de création et de destruction d’objet
Des contraintes de chronologie entre les messages peuvent être spécifiées. De plus lorsque l’émission
d’un message requiert une certaine durée, il se représente sous la forme d’un trait oblique. Un
exemple général de contrainte temporelle est donné à la figure 33.
24
Dr. Yassine Rhazali
4.3 Fragment d’interaction
Dans un diagramme de séquence, il est possible de distinguer des sous-ensembles d’interactions
qui constituent des fragments.
Un port d’entrée et un port de sortie peuvent être indiqués pour connaître la manière dont ce
fragment peut être relié au reste du diagramme comme le montre la figure 34 Dans le cas où
aucun port n’est indiqué c’est l’ensemble du fragment qui est appelé pour exécution.
Dans l’exemple proposé (fig. 34), le fragment « ContrôlerProduit » est représenté avec un port
d’entrée et un port de sortie.
Treize opérateurs ont été définis dans UML : alt, opt, loop, par, strict/weak, break, ignore/
consider, critical, negative, assertion et ref.
L’opérateur alt se représente dans un fragment possédant au moins deux parties séparées par
des pointillés. L’exemple donné (fig. 35) montre l’équivalent d’un test à deux conditions
explicites.
25
Dr. Yassine Rhazali
L’opérateur opt se représente dans un fragment possédant une seule partie (fig. 36).
Il est possible aussi d’utiliser une condition portant sur un nombre minimum et maximum
d’exécution de la boucle en écrivant : loop min, max. Dans ce cas, la boucle s’exécutera au
minimum min fois et au maximum max fois. Il est aussi possible de combiner l’option min/max
avec la condition associée à la boucle.
L’opérateur loop se représente dans un fragment possédant une seule partie et englobant toutes
les interactions faisant partie de la boucle. Un exemple est donné à la figure 37.
26
Dr. Yassine Rhazali
Figure 37:Exemple de fragment d’interaction avec l’opérateur loop
L’opérateur par se représente dans un fragment possédant deux parties séparées par une ligne
en pointillé. C’est un opérateur qui est à plutôt utilisé dans l’informatique temps réel et c’est
pour cela que j’ai donné qu’un exemple type (fig. 38).
27
Dr. Yassine Rhazali
• L’opérateur weak est utilisé quand l’ordre d’exécution des opérations n’a pas d’importance.
L’exemple présenté figure 39 montre que les opérations A1, A2, B1, B2 et A3 doivent être
exécutées dans cet ordre puisqu’elles font partie du fragment d’interaction comportant
l’opérateur strict.
28
Dr. Yassine Rhazali
4.4 Opérateurs ignore et consider
Les opérateurs ignore et consider sont utilisés pour des fragments d’interactions dans lesquels
on veut montrer que certains messages peuvent être soit absents sans avoir d’incidence sur
le déroulement des interactions (ignore), soit obligatoirement présents (consider).
• dans le fragment consider, les messages Op1, Op2 et Op5 doivent être obligatoirement
présents lors de l’exécution du fragment sinon le fragment n’est pas exécuté,
• dans le fragment ignore, les messages Op2 et Op3 peuvent être absents lors de l’exécution du
fragment.
L’exemple présenté figure 42 montre que les opérations Op1( ), Op2( ) et Op3( ) du fragment
critical doivent s’exécuter sans interruption.
L’exemple présenté figure 43 montre que les opérations Op1( ) et Op2( ) du fragment neg sont
invalides. Une erreur sera déclenchée dans ce cas à l’exécution du fragment.
29
Dr. Yassine Rhazali
Figure 42: Exemple de fragment d’interaction avec l’opérateur critical
30
Dr. Yassine Rhazali
L’exemple présenté figure 44 montre que le fragment assert ne s’exécutera que si l’unique
séquence de traitement Op1( ), Op2( ) et Op3( ) se réalise en respectant l’ensemble des
caractéristiques de ces opérations (paramètre d’entrée, type de résultat…). Toute autre situation
sera considérée invalide.
31
Dr. Yassine Rhazali
Figure 46: Exemple de diagramme de séquence associé à un cas d’utilisation
32
Dr. Yassine Rhazali
4.6 DIAGRAMME GLOBAL D’INTERACTION
4.6.1 Présentation générale et concepts de base
Le diagramme global d’interaction permet de représenter une vue générale des interactions
décrites dans le diagramme de séquence et des flots de contrôle décrits dans le diagramme
d’activité.
Le diagramme global d’interaction privilégie la vue générale des flux de contrôle dans lesquels
les noeuds sont des interactions ou des utilisations d’interactions (opérateur ref).
Autrement dit, le diagramme global d’interaction est un diagramme d’activité dans lequel on
représente des fragments d’interaction ou des utilisations d’interactions. Ainsi, il est possible de
représenter :
Les lignes de vie concernées par le diagramme global d’interaction peuvent être citées dans l’en-
tête du diagramme mais ne sont pas à représenter graphiquement.
Concepts manipulés
Le diagramme global d’interaction utilise les concepts du diagramme d’activité auquel on ajoute
deux compléments :
• Les utilisations de fragments d’interaction – Il est aussi possible de faire appel à des
fragments d’interaction à l’aide de l’opérateur ref comme le montre la figure 48.
33
Dr. Yassine Rhazali
Figure 48: Exemple de fragment d’interaction avec l’opérateur ref
34
Dr. Yassine Rhazali
4.7 DIAGRAMME DE COMMUNICATION
4.7.1 Présentation générale et concepts de base
Le diagramme de communication constitue une autre représentation des interactions que celle
du diagramme de séquence. En effet, le diagramme de communication met plus l’accent sur
l’aspect spatial des échanges que l’aspect temporel.
4.7.1.1 Rôle
Chaque participant à un échange de message correspondant à une ligne de vie (objet) dans le diagramme de
séquence se représente sous forme d’un rôle dans le diagramme de communication. Un rôle est identifié par
:
Une des deux parties de cette identification est obligatoire ainsi que le séparateur « : ». Le nom du rôle
correspond au nom de l’objet dans le cas où l’acteur ou la classe ont un rôle unique par rapport au système.
Le nom du type correspond au nom de la classe lorsque l’on manipule des objets.
Exemple
administrateur : utilisateur
4.7.1.2 Message
Un message correspond à un appel d’opération effectué par un rôle émetteur vers un rôle récepteur. Le sens
du message est donné par une flèche portée au-dessus du lien reliant les participants au message (origine et
destinataire). Chaque message est identifié par :
<numéro> : nom ( )
Plus précisément l’identification d’un message doit respecter la syntaxe suivante : [n° du message préc.
reçu] « . » n° du message *[clause d’itération] [condition] « : » nom du message.
Exemples
Formalisme et exemple
35
Dr. Yassine Rhazali
Les rôles correspondent à des objets. Le lien entre les rôles est représenté par un trait matérialisant le
support des messages échangés. La figure 22 donne le formalisme de base du diagramme de
communication.
Un deuxième exemple
ple de diagramme de communication est donné à la figure 24.
2
36
Dr. Yassine Rhazali
4.7.2 Travaux pratiques
Le passage d’un état à un autre état s’appelle transition. Un événement est un fait survenu qui
déclenche une transition.
Type appel de méthode (call) – C’est le type le plus courant que nous traiterons dans la suite de
la présentation.
Type écoulement du temps – C’est un événement lié à une condition de type after (durée) ou
when (date).
Formalisme et exemple
Un objet reste dans un état pendant une certaine durée. La durée d’un état correspond au temps
qui s’écoule entre le début d’un état déclenché par une transition i et la fin de l’état déclenché
par la transition i+1. Une condition, appelée « garde », peut être associée à une transition.
37
Dr. Yassine Rhazali
Figure 54: Formalisme d’état-transition
La figure 55 donne un premier exemple d’état-transition. Dans cet exemple, pour un employé
donné d’une entreprise, nous pouvons considérer les deux états significatifs suivants : état
recruté, état en activité.
Une activité est une opération d’une certaine durée qui peut être interrompue, elle est associée à
un état d’un objet.
Formalisme et exemple
La figure 57 montre un exemple des actions et activités d’états ainsi que la description complète
d’une transition.
L’enchaînement de tous les états caractéristiques d’un objet constitue le diagramme d’état. Un
diagramme d’états débute toujours par un état initial et se termine par un ou plusieurs états
finaux sauf dans le cas où le diagramme d’états représente une boucle. À un événement peut être
associé un message composé d’attributs.
38
Dr. Yassine Rhazali
Formalisme et exemple
Afin de nous rapprocher des situations réelles, nous proposons à la figure 59 un premier
exemple tiré d’une gestion commerciale qui montre le diagramme d’état-transition de l’objet
client.
Nous proposons comme second exemple, à la figure 60, le diagramme d’état-transition de l’objet
« personnel » qui se caractérise par trois états :
• En activité : état qui correspond à un personnel ayant une date d’arrivée renseignée.
• Parti : état qui correspond à un personnel ayant une date de départ renseignée.
39
Dr. Yassine Rhazali
Figure 60: Exemple de diagramme d’état-transition
Formalisme et exemple
Dans cet exemple, l’état contrôlé est un état composite qui fait l’objet d’une description
individualisée à un second niveau que l’on appelle aussi sous-machine d’état.
40
Dr. Yassine Rhazali
4.8.3.2 Point d’entrée et de sortie
Sur une sous-machine d’état, il est possible de repérer un point d’entrée et un point de sortie
particuliers.
Formalisme et exemple
Le formalisme de représentation d’une sous-machine d’état avec point d’entrée et de sortie est
donné à la figure 62.
Figure 62: Exemple d’une sous-machine d’état avec point d’entrée et de sortie
Formalisme et exemple
41
Dr. Yassine Rhazali
4.8.3.4 Point de choix
Le point de choix se comporte comme un test de type : si condition faire action1 sinon faire
action2.
Formalisme et exemple
Formalisme et exemple
Le formalisme de représentation d’états historisés est donné à la figure 65.
42
Dr. Yassine Rhazali