Académique Documents
Professionnel Documents
Culture Documents
la Recherche Scientifique
Cours
Ingénierie des
Systèmes
d’Information
Unified Modeling
Language (UML)
Dr MAMADOU
Diarra
29/01/2020
Table des matières
1
4.5.2 Associations..................................................................................................................22
4.5.3 Plusieurs associations entre deux classes.....................................................................22
4.5.4 Association réflexive.....................................................................................................22
4.5.5 Dépendance entre classe..............................................................................................23
4.5.6 Multiplicité ou cardinalité.............................................................................................23
4.5.7 Navigabilité...................................................................................................................24
4.5.8 Classe-association.........................................................................................................24
4.5.9 Agrégation et composition...........................................................................................24
4.5.10 Dépendances................................................................................................................25
4.5.11 Type énuméré...............................................................................................................25
4.6 Diagrammes d’objets............................................................................................................26
4.7 Exemples de diagrammes de classes....................................................................................27
4.8 Exemple de diagrammes objets............................................................................................28
5 Diagramme d’états-transitions.....................................................................................................29
5.1 Introduction..........................................................................................................................29
5.2 Formalisme du diagramme d’état-transition........................................................................29
5.2.1 Etat simple....................................................................................................................29
5.2.2 État composite..............................................................................................................29
5.2.3 Etat initial......................................................................................................................30
5.2.4 Etat final........................................................................................................................30
5.2.5 Transition externe.........................................................................................................30
5.2.6 Transition interne.........................................................................................................30
5.2.7 Points de jonction.........................................................................................................31
5.2.8 Point de décision..........................................................................................................31
5.2.9 État historique..............................................................................................................31
5.2.10 Point de connexion.......................................................................................................32
5.2.11 Nœud de débranchement ou de contrôle....................................................................33
5.3 Exemples d’état-transition...................................................................................................34
6 Diagramme d’activités..................................................................................................................36
6.1 Introduction..........................................................................................................................36
6.2 Formalisme du digramme d’activités....................................................................................37
6.2.1 Activités :......................................................................................................................37
6.2.2 Quelques formalismes..................................................................................................38
6.3 Exemple de diagramme d’activité........................................................................................39
7 Diagrammes de séquence............................................................................................................40
7.1 Rôle du diagramme de séquence.........................................................................................40
2
7.2 Représentation du diagramme de séquence........................................................................40
7.2.1 Délimitation du diagramme de séquence.....................................................................40
7.2.2 L’objet...........................................................................................................................40
7.2.3 Ligne de vie...................................................................................................................40
7.2.4 Messages......................................................................................................................41
7.3 Quelques séquences expliquées...........................................................................................44
7.3.1 Messages retours implicites et explicites.....................................................................44
7.3.2 Recouvrement des bandes d’activations......................................................................44
7.3.3 Messages récursifs........................................................................................................44
7.3.4 Contraintes temporelles...............................................................................................45
7.3.5 Messages perdus et trouvés.........................................................................................45
7.4 Fragments d’interactions combinés.....................................................................................46
7.4.1 Fragment d’interaction avec opérateur « opt »............................................................46
7.4.2 Fragment d’interaction avec opérateur « alt ».............................................................46
7.4.3 Fragment d’interaction avec opérateur « loop »..........................................................47
7.4.4 Fragment d’interaction avec opérateur « par »............................................................47
7.4.5 Autres fragments d’interactions...................................................................................48
7.5 Exemple de diagramme de séquence...................................................................................48
8 Diagrammes de composants et de déploiement..........................................................................51
8.1 Diagramme de composants..................................................................................................51
8.1.1 Notion de composant (component) et d’interface.......................................................51
8.1.2 Interfaces......................................................................................................................51
8.1.3 Les ports.......................................................................................................................53
8.1.4 Boite noire-boites blanche............................................................................................53
8.1.5 Rôle du diagramme de composants.............................................................................54
8.2 Diagramme de déploiement.................................................................................................54
8.2.1 Rôle du diagramme de déploiement............................................................................54
8.3 Eléments du diagramme de déploiement.............................................................................54
8.3.1 Nœuds..........................................................................................................................54
8.3.2 Chemins de communications........................................................................................55
8.3.3 Artefacts :.....................................................................................................................56
8.3.4 Exemples de projet.......................................................................................................56
9 Bibliographie :..............................................................................................................................60
3
4
1 Introduction à la modélisation objet
1.1 Notions de modèle
Un modèle est une représentation d’une réalité matérielle ou immatérielle, un modèle
n’est pas cette réalité.
On pourra affiner les modèles en créant de nouveaux modèles de plus en plus
détaillés jusqu'à peut-être atteindre de manière asymptotique le monde réel sans jamais
l'atteindre.
Modéliser est donc l’acte de représenter nos concepts et les objets de notre réalité.
Cette réalité pouvant être immatériel et exister uniquement comme activité conceptuelle.
Un modèle est forcément une description limitée et orientée de la réalité.
Il est impossible de décrire de manière absolue la réalité à des fins descriptives ou
prédictives, sans même parler de l’intérêt d’une telle démarche.
Un modèle va décrire la réalité avec un certain filtre, en utilisant certains concepts
permettant de classifier la réalité observée.
De manière très simplifié, un modèle décrit toujours une réalité observable ou, encore
mieux, mesurable et donc numérique.
La réalité observable peut être décrite en répondant aux questions : « Quoi ? Qui ? Quand ?
Où ? Comment ? » ainsi qu’en décrivant les contraintes qui définissent les limites du modèle.
5
La difficulté de cette modélisation consiste à créer une représentation abstraite, sous forme
d’objets, d’entités ayant une existence matérielle (chien, voiture, ampoule, personne, . . .) ou
bien virtuelle (client, temps, . . .).
La Conception Orientée Objet (COO) est la méthode qui conduit à des architectures
logicielles fondées sur les objets du système, plutôt que sur la fonction qu’il est censé
réaliser.
1.2.2 Concepts importants de l’approche objet
L’approche objet rapproche les données et leurs traitements.
Mais cette approche ne fait pas que ça, d’autres concepts importants sont spécifiques à
cette approche et participent à la qualité du logiciel.
Notion de classe
Tout d’abord, introduisons la notion de classe. Une classe est un type de données abstrait,
caractérisé par des propriétés (attributs et méthodes) communes à toute une famille
d’objets et permettant de créer (instancier) des objets possédant ces propriétés. Les autres
concepts importants qu’il nous faut maintenant introduire sont l’encapsulation, l’héritage et
l’agrégation.
Encapsulation
L’encapsulation consiste à masquer les détails d’implémentation d’un objet, en définissant
une interface.
L’interface est la vue externe d’un objet, elle définit les services accessibles (offerts) aux
utilisateurs de l’objet.
L’encapsulation facilite l’évolution d’une application car elle stabilise l’utilisation des objets :
on peut modifier l’implémentation des attributs d’un objet sans modifier son interface, et
donc la façon dont l’objet est utilisé.
L’encapsulation garantit l’intégrité des données, car elle permet d’interdire, ou de
restreindre, l’accès direct aux attributs des objets.
Héritage, Spécialisation, Généralisation et polymorphisme
L’héritage est un mécanisme de transmission des propriétés d’une classe (ses attributs et
méthodes) vers une sous-classe. Une classe peut être spécialisée en d’autres classes, afin d’y
ajouter des caractéristiques spécifiques ou d’en adapter certaines. Plusieurs classes peuvent
être généralisées en une classe qui les factorise, afin de regrouper les caractéristiques
communes d’un ensemble de classes.
Ainsi, la spécialisation et la généralisation permettent de construire des hiérarchies de
classes. L’héritage peut être simple ou multiple. L’héritage évite la duplication et encourage
la réutilisation.
Le polymorphisme représente la faculté d’une méthode à pouvoir s’appliquer à des objets
de classes différentes. Le polymorphisme augmente la généricité, et donc la qualité, du code.
Agrégation
Il s’agit d’une relation entre deux classes, spécifiant que les objets d’une classe sont des
composants de l’autre classe. Une relation d’agrégation permet donc de définir des objets
composés d’autres objets.
6
L’agrégation permet donc d’assembler des objets de base, afin de construire des objets plus
complexes.
1.3 UML
1.3.1 Brève introduction
UML : Unified Modeling Language
Normalisé par l'OMG (Object Management Group)
http://www.omg.org/spec/UML/
Dernière version : 2.4.1 (Août 2011)
Notation standard pour la modélisation d'applications à base d'objets (et de composants depuis la
version 2)
Mais utilisable dans de nombreux autres contextes de conception ou spécification Exemple :
schéma de BDD
Langage utilisant une notation graphique
Comme tout type de projet, un projet informatique nécessite une phase d’analyse, suivi
d’une étape de conception.
1.3.2 Conception orientée objet et diagrammes
Dans la phase d’analyse, on cherche d’abord à bien comprendre et à décrire de façon
précise les besoins des utilisateurs ou des clients. Que souhaitent-ils faire avec le logiciel ?
Quelles fonctionnalités veulent-ils ? Pour quel usage ? Comment l’action devrait-elle
fonctionner ? C’est ce qu’on appelle « l’analyse des besoins ». Après validation de notre
compréhension du besoin, nous imaginons la solution. C’est la partie analyse de la solution.
7
Figure 2: Projet informatique
UML permet donc de modéliser une application selon une vision objet. L’appréhension
d’UML est complexe car UML est à la fois :
- une norme ;
- un langage de modélisation objet ;
- un support de communication ;
- un cadre méthodologique.
8
2 Processus Unifié (PU)
Il existe plusieurs méthodes de développement logiciel construites sur UML comme la
méthode : UP, RUP, TTUP, UP agile, XP, 2TUP ….. Parmi ses méthodes notre choix est basé
sur la méthode UP (Unified Process)
- Un processus de développement logiciel définit qui fait quoi, quand et comment pour
atteindre un objectif donné
- U.P. (Unified Process - Processus Unifié) = processus de développement logiciel
prenant en charge le cycle de vie d’un logiciel et de son développement
- Contrairement aux démarches antérieures :
UP prend en compte l’ensemble des intervenants : client, utilisateur,
gestionnaire, qualiticien, … d’où l’adjectif “unified”,
UP est générique pour les logiciels orientés objets utilisant UML comme
langage de modélisation,
UP est itérative et incrémentale.
2.1.2 Caractéristiques du processus unifié
UP est itératif et incrémental Le projet est découpé en itérations ou étapes de courte durée qui
permettent de mieux suivre l’avancement globale. A la fin de chaque itération une partie exécutable
du système finale est produite, de façon incrémentale (par ajout).
9
Figure 4 Déroulement du Processus Unifié
UP est centré sur l'architecture. Tout système complexe doit être décomposé en partie modulaire
afin d’en faciliter la maintenance et l’évolution. Cette architecture (fonctionnelle, logique, matérielle,
etc.) doit être modéliser en UML, et pas seulement documentée en texte.
UP est guidé par les cas d'utilisation d'UML Le but principal d’un système d’informatique est de
satisfaire les besoins de client. Le processus de développement sera donc accès sur l’utilisateur. Le
cas d’utilisation permet d’illustrer ces besoins. Ils détectent puis décrivent les besoins fonctionnels et
leur ensemble constitue le modèle de cas d’utilisation qui dicte les fonctionnalités complètes du
système. UP est piloté par les risques Les risques majeurs du projet doivent être identifiés au plus tôt
mais surtout levés le plus rapidement. Les mesures à prendre dans ce cadre déterminent l’ordre des
itérations.
10
Figure 5 Architecture bidirectionnelle
Pour mener efficacement un tel cycle, les développeurs ont besoins de toutes les représentations du
produit logiciel.
2.1.4 Activités
Expression des besoins
L'expression des besoins comme son nom l'indique, permet de définir les différents besoins :
Le modèle de cas d'utilisation présente le système du point de vue de l'utilisateur et représente sous
forme de cas d'utilisation et d'acteur, les besoins du client
Analyse
L'objectif de l'analyse est d'accéder à une compréhension des besoins et des exigences du client. Il
s'agit de livrer des spécifications pour permettre de choisir la conception de la solution. Un modèle
11
d'analyse livre une spécification complète des besoins issus des cas d'utilisation et les structure sous
une forme qui facilite la compréhension (scénarios), la préparation (définition de l'architecture), la
modification et la maintenance du futur système. Il s'écrit dans le langage des développeurs et peut
être considéré comme une première ébauche du modèle de conception.
Conception
La conception permet d'acquérir une compréhension approfondie des contraintes liées au langage de
programmation, à l'utilisation des composants et au système d'exploitation. Elle détermine les
principales interfaces et les transcrit à l'aide d'une notation commune. Elle constitue un point de
départ à l'implémentation :
Test
Les tests permettent de vérifier des résultats de l'implémentation en testant la construction. Pour
mener à bien ces tests, il faut les planifier pour chaque itération, les implémenter en créant des cas
de tests, effectuer ces tests et prendre en compte le résultat de chacun. Chapitre I : le langage UML
et le processus unifié
2.1.5 Phases
Analyse des besoins
L'analyse des besoins donne une vue du projet sous forme de produit fini. Cette phase porte
essentiellement sur les besoins principaux (du point de vue de l'utilisateur), l'architecture générale
du système, les risques majeurs, les délais et les coûts.
Elaboration
L'élaboration reprend les éléments de la phase d'analyse des besoins et les précise pour arriver à une
spécification détaillée de la solution à mettre en œuvre. L'élaboration permet de préciser la plupart
des cas d’utilisation, de concevoir l’architecture du système et surtout de déterminer l'architecture
de référence.
Construction
Transition
Le produit est en version bêta. Un groupe d’utilisateurs essaye le produit et détecte les
anomalies et défauts. Cette phase suppose des activités comme la formation des utilisateurs
12
clients, la mise en œuvre d’un service d’assistance et la correction des anomalies constatées.
Tout simplement la phase de transition permet de faire passer le système informatique des
mains des développeurs à celles des utilisateurs finaux.
13
3 Diagramme de cas d’utilisation
3.1 Introduction
Bien souvent, la maîtrise d’ouvrage et les utilisateurs ne sont pas des informaticiens. Il leur
faut donc un moyen simple d’exprimer leurs besoins. C’est précisément le rôle des
diagrammes de cas d’utilisation qui permettent de recueillir, d’analyser et d’organiser les
besoins, et de recenser les grandes fonctionnalités d’un système. Il s’agit donc de la
première étape UML d’analyse d’un système.
Un diagramme de cas d’utilisation capture le comportement d’un système, d’un sous-
système, d’une classe ou d’un composant tel qu’un utilisateur extérieur le voit. Il scinde la
fonctionnalité du système en unités cohérentes, les cas d’utilisation, ayant un sens pour les
acteurs. Les cas d’utilisation permettent d’exprimer le besoin des utilisateurs d’un système,
ils sont donc une vision orientée utilisateur de ce besoin au contraire d’une vision
informatique.
Il ne faut pas négliger cette première étape pour produire un logiciel conforme aux attentes
des utilisateurs. Pour élaborer les cas d’utilisation, il faut se fonder sur des entretiens avec
les utilisateurs.
14
3.2.3 Relations d’associations
Une relation d’association est chemin de communication entre un acteur et un cas d’utilisation et est
représenté un trait continu.
Figure 8 : Exemple simplifié de diagramme de cas d’utilisation modélisant une borne d’accès à une banque
Multiplicité
Lorsqu’un acteur peut interagir plusieurs fois avec un cas d’utilisation, il est possible
d’ajouter une multiplicité sur l’association du côté du cas d’utilisation. Le symbole * signifie
plusieurs,
exactement n s’écrit tout simplement n, n..m signifie entre n et m, etc. Préciser une
multiplicité sur une relation n’implique pas nécessairement que les cas sont utilisés en
même temps.
La notion de multiplicité n’est pas propre au diagramme de cas d’utilisation. Nous en
reparlerons dans le chapitre consacré au diagramme de classes
Acteurs principaux et secondaires
Un acteur est qualifié de principal pour un cas d’utilisation lorsque ce cas rend service à cet
acteur. Les autres acteurs sont alors qualifiés de secondaires. Un cas d’utilisation a au plus
un acteur principal. Un acteur principal obtient un résultat observable du système tandis
qu’un acteur secondaire est sollicité pour des informations complémentaires. En général,
l’acteur principal initie le cas d’utilisation par ses sollicitations. Le stéréotype « primary »
15
vient orner l’association reliant un cas d’utilisation à son acteur principal, le stéréotype «
secondary » est utilisé pour les acteurs secondaires.
Cas d’utilisation interne
Quand un cas n’est pas directement relié à un acteur, il est qualifié de cas d’utilisation
interne.
3.2.4 Relations entre cas d’utilisation
Types et représentations
Il existe principalement deux types de relations :
- les dépendances stéréotypées, qui sont explicitées par un stéréotype (les plus utilisés
sont l’inclusion et l’extension),
- et la généralisation/spécialisation.
Une dépendance se représente par une flèche avec un trait pointillé. Si le cas A inclut ou
étend le cas B, la flèche est dirigée de A vers B.
Le symbole utilisé pour la généralisation est une flèche avec un trait pleins dont la pointe est
un triangle fermé désignant le cas le plus général.
Relation de généralisation
Un cas A est une généralisation d’un cas B si B est un cas particulier de A. Dans la figure ci-
dessus, la consultation d’un compte via Internet est un cas particulier de la consultation.
Cette relation de généralisation/spécialisation est présente dans la plupart des diagrammes
UML et se traduit par le concept d’héritage dans les langages orientés objet.
16
Figure 11: Relations entre cas pour décomposer un cas complexe
17
Objectif : Une description résumée permettant de comprendre l’intention principale du cas
d’utilisation.
Cette partie est souvent renseignée au début du projet dans la phase de découverte
des cas d’utilisation.
Acteurs principaux : Ceux qui vont réaliser le cas d’utilisation (la relation avec le cas
d’utilisation est illustrée par le trait liant le cas d’utilisation et l’acteur dans un diagramme de
cas d’utilisation)
Acteurs secondaires : Ceux qui ne font que recevoir des informations à l’issue de la
réalisation
du cas d’utilisation
Dates : Les dates de créations et de mise à jour de la description courante.
18
Figure 13 Diagramme de cas d'utilisation gestion de stock d'articles
19
4 Diagramme de classes
4.1 Introduction
Le diagramme de classes est considéré comme le plus important de la modélisation orientée
objet, il est le seul obligatoire lors d’une telle modélisation. Le diagramme de classes en
montre la structure interne. Il permet de fournir une représentation abstraite des objets du
système qui vont interagir ensemble pour réaliser les cas d’utilisation.
Il s’agit d’une vue statique car on ne tient pas compte du facteur temporel dans le
comportement du système. Le diagramme de classes modélise les concepts du domaine
d’application ainsi que les concepts internes créés de toutes pièces dans le cadre de
l’implémentation d’une application. Chaque langage de Programmation Orienté Objets
donne un moyen spécifique d’implémenter le paradigme objet (pointeurs ou pas, héritage
multiple ou pas, etc.), mais le diagramme de classes permet de modéliser les classes du
système et leurs relations indépendamment d’un langage de programmation particulier.
Les principaux éléments de cette vue statique sont les classes et leurs relations : association,
généralisation et plusieurs types de dépendances, telles que la réalisation et l’utilisation .
4.2 Classes
Tout système orienté objet est organisé autour des classes.
Une classe est la description formelle d’un ensemble d’objets ayant une sémantique et des
propriétés communes.
Un objet est une instance d’une classe. C’est une entité discrète dotée d’une identité, d’un
état et d’un comportement que l’on peut invoquer. Les objets sont des éléments individuels
d’un système en cours d’exécution.
Une classe est un concept abstrait représentant des éléments variés. Une instance est une
concrétisation d’un concept abstrait.
4.3 Méthodes
Une classe définit un jeu d’objets dotés de propriétés. Les propriétés d’un objet permettent
de spécifier son état et son comportement. Les propriétés d’un objet étaient soit des
attributs, soit des opérations. Ce n’est pas exact dans un diagramme de classe car les
terminaisons d’associations font également partie des propriétés d’un objet au même titre
que les attributs et les opérations.
Les attributs, les terminaisons d’association et les méthodes constituent donc les propriétés
d’une classe (et de ses instances).
20
Figure 15 : Représentation graphique d’une classe
Pour matérialiser l’Encapsulation, la visibilité et l’interface une classe peut être représentée
de la façon suivante.
Où :
public ou + : tout élément qui peut voir le conteneur peut également voir l’élément indiqué.
protected ou # : seul un élément situé dans le conteneur ou un de ses descendants peut voir
l’élément indiqué.
private ou - : seul un élément situé dans le conteneur peut voir l’élément.
package ou ~ ou rien : seul un élément déclaré dans le même paquetage peut voir l’élément.
21
4.5.2 Associations
Une association est une relation entre deux classes (association binaire) ou plus (association
n-aire),
qui décrit les connexions structurelle entre leurs instances.
Une association binaire est matérialisée par un trait plein entre les classes associées.
Elle peut être ornée d’un nom, avec éventuellement une précision du sens de lecture (
)
Quand les deux extrémités de l’association pointent vers la même classe, l’association est
dite réflexive.
Une association n-aire lie plus de deux classes. La ligne pointillé d’une classe-association
peut être reliée au losange par une ligne discontinue pour représenter une association n-aire
dotée d’attributs, d’opérations ou d’associations.
On représente une association n-aire par un grand losange avec un chemin partant vers
chaque classe participante. Le nom de l’association, le cas échéant, apparaît à proximité du
losange.
4.5.3 Plusieurs associations entre deux classes
On peut définir une ou plusieurs associations entre deux classes
22
Figure 21 Exemple d'auto-association
Comment lire ça ?
Une personne est l’enfant d’une autre personne
Une personne est le parent d’une autre personne
23
empêche la navigabilité par une croix du côté de la terminaison non navigable (cf. figure
3.6). Par défaut, une association est navigable dans les deux sens.
Lorsque l’on représente la navigabilité uniquement sur l’une des extrémités d’une
association, il faut remarquer que, implicitement, les trois associations représentées sur la
figure 3.7 ont la même signification : l’association ne peut être traversée que dans un sens.
4.5.8 Classe-association
Une classe-association possède les propriétés des associations et des classes : elle se
connecte à deux ou plusieurs classes et possède également des attributs et des opérations.
Une classe-association est caractérisée par un trait discontinu entre la classe et l’association
qu’elle représente.
24
Figure 26 : Exemple de relation d’agrégation et de composition
4.5.10 Dépendances
Une dépendance est une relation unidirectionnelle exprimant une dépendance sémantique
entre les éléments du modèle. Elle est représentée par un trait discontinu orienté. Elle
indique que la modification de la cible implique une modification de la source. La
dépendance est souvent stéréotypée pour mieux expliciter le lien sémantique entre les
éléments du modèle.
25
Ce diagramme introduit un nouveau type de classeur, stéréotypé « enumeration »,
permettant de définir une énumération. Une énumération est un type de donnée UML,
possédant un nom, et utilisé pour énumérer un ensemble de littéraux correspondant à
toutes les valeurs possibles que peut prendre une expression de ce type. Un type énuméré
est défini par un classeur possédant le stéréotype « enumeration ».
26
Exemple 2
27
4.8 Exemple de diagrammes objets
28
5 Diagramme d’états-transitions
5.1 Introduction
Les diagrammes d’états-transitions d’UML décrivent le comportement interne d’un objet à
l’aide d’un automate à états finis. Ils présentent les séquences possibles d’états et d’actions
qu’une instance de classe peut traiter au cours de son cycle de vie en réaction à des
événements discrets (de type signaux, invocations de méthode).
Un diagramme d’états-transitions rassemble et organise les états et les transitions d’un
classeur donné.
Bien entendu, le modèle dynamique du système comprend plusieurs diagrammes d’états-
transitions.
Il est souhaitable de construire un diagramme d’états-transitions pour chaque classeur (qui,
le plus souvent, est une classe) possédant un comportement dynamique important. Un
diagramme d’états-transitions ne peut être associé qu’à un seul classeur. Tous les automates
à états finis des diagrammes d’états-transitions d’un système s’exécutent concurremment et
peuvent donc changer d’état de façon indépendante.
29
5.2.3 Etat initial
L’état initial est un pseudo état qui indique l’état de départ, par défaut, lorsque le
diagramme d’états-transitions, ou l’état enveloppant, est invoqué. Lorsqu’un objet est créé,
il entre dans l’état initial.
30
5.2.7 Points de jonction
Les points de jonction sont un artefact graphique (un pseudo-état en l’occurrence) qui
permet de partager des segments de transition, l’objectif étant d’aboutir à une notation plus
compacte ou plus lisible des chemins alternatifs.
31
Figure 40 : État historique
32
Figure 41 : Point de connexion
33
Figure 42 : Noeud de bifurcation ou de débranchement (fork node)
34
Figure 43 processus d'enregistrement dans un aéroport
35
6 Diagramme d’activités
6.1 Introduction
Le diagramme d’activité (Activity Diagram) fait partie des diagrammes comportementaux. Il
est utilisé pour modéliser les aspects dynamiques d'un système. Il s'agit de représenter les
opérations d'un processus et leurs conséquences sur les objets (logiciels ou matériels). La
modélisation peut être utilisée pour décrire le déroulement d'un cas d'utilisation ou d'une
méthode.
Les diagrammes d'activité affichent le flux de travail d'un point de départ à un point d'arrivée
en détaillant les nombreux chemins de décision existant dans la progression des événements
contenus dans l'activité.
Ils peuvent être utilisés pour détailler des situations dans lesquelles un traitement parallèle
peut avoir lieu lors de l'exécution de certaines activités. Les diagrammes d'activités sont
utiles pour la modélisation métier car ils sont utilisés pour détailler les processus impliqués
dans les activités métier.
Les diagrammes d'activités permettent de mettre l'accent sur les traitements.
Dans la phase de conception, les diagrammes d'activités sont particulièrement adaptés pour
une plus grande description des cas d'utilisation. Plus précisément, ils viennent illustrer et
consolider la description textuelle.
De plus, leur représentation sous forme d'organigrammes nous les rend facilement
intelligibles. Nous nous concentrons ici sur les activités telles que les voient les acteurs qui
collaborent avec le système dans le cadre d'un processus métier. La modélisation du flot
d'objets est souvent importante dans ce type d'utilisation des diagrammes d'activités.
36
Figure 45 : exemple de diagramme d’activités
Une activité définit un comportement décrit par un séquencement organisé d'unités dont les
éléments simples sont les actions. Le flot d'exécution est modélisé par des nœuds reliés par
des arcs (transitions). Le flot de contrôle reste dans l'activité jusqu'à ce que les traitements
soient terminés.
Ce diagramme ci-après représente le fonctionnement d'une borne bancaire qui illustre les
différentes représentations des actions. Après avoir saisi le code, deux activités sont
déclenchées : nous choisissons l'opération souhaitée si le code est valide ou la carte est
restituée si nous annulons l'opération. Après avoir choisi l'opération, nous trouvons deux
alternatives : choisir une somme à déposer (dépôt) ou retirer de l’argent (retrait). Dans les
deux cas, nous spécifions le compte par la suite. Si nous avons choisi de déposer des billets,
nous devons insérer une enveloppe ce qui nous donne droit à la restitution de notre carte à la
fin de l'opération. Si nous avons choisi d'effectuer un retrait de billets, nous lançons deux
actions simultanées : afficher une publicité et demander en même temps une autorisation de
retrait. Dans tous les cas de figure, la carte bancaire est restituée et nous arrivons à la fin du
processus.
Une activité possède éventuellement des paramètres en entrée ou en sortie, ainsi que des
variables locales au même titre qu'une méthode d’un objet. Une activité peut regrouper des
nœuds et des arcs, c’est ce que nous appelons « groupe d'activités ».
37
Figure 46 : diagrammes d’activités opérations DAB
Nœuds
activités
Transitions
Nœud d’actions
(action node)
38
Noeud de
bifurcation ou de
débranchement
(fork node) :
Nœuds de
stockage de
données (data
store node)
Pins
d’entrée/sortie
39
7 Diagrammes de séquence
7.1 Rôle du diagramme de séquence
Le diagramme de séquence fait parties des diagrammes comportementaux (dynamique) et
plus précisément des diagrammes d’interactions.
Les diagrammes de séquences représentant les échanges entre les objets mais aussi les
échanges avec les acteurs, nous trouverons aussi la représentation du stickman (qui peut
être considéré comme un objet).
7.2.3 Ligne de vie
Comme il représente la dynamique du système, le diagramme de séquence fait entrer en
action les instances de classes intervenant dans la réalisation d’un cas d’utilisation
particulier. • A chaque objet est associé une ligne de vie (en trait pointillés à la verticale de
40
l’objet) qui peut être considéré comme un axe temporel (le temps s’écoule du haut vers le
bas). Dans ce genre de diagramme, la quantification du temps n’a pas d’importance.
La ligne de vie indique les périodes d’activité de l’objet (généralement, les moments ou
l’objet exécute une de ces méthodes).
Lorsque l’objet est détruit, la ligne de vie s’achève par une croix.
7.2.4 Messages
7.2.4.1 Définition
Un message définit une communication particulière entre des lignes de vie. Ainsi, un
message est une communication d’un objet vers un autre objet. La réception d’un message
est considérée par l’objet récepteur comme un événement qu’il faut traiter (ou pas).
Plusieurs types de messages existent, les plus communs sont :
- L’invocation d’une opération : message synchrone (appel d’une méthode de l’objet
cible).
- L’envoi d’un signal : message asynchrone (typiquement utilisé pour la gestion
événementielle).
- La création ou la destruction d’une instance de classe au cours du cycle principal.
Les messages synchrones : La réception d’un message synchrone doit provoquer chez le
destinataire le lancement d’une de ses méthodes (qui souvent porte le même nom que le
message). L’expéditeur du message reste bloqué pendant toute l’exécution de la méthode et
attend donc la fin de celle-ci avant de pouvoir lancer un nouveau message. C’est le message
le plus fréquemment utilisé.
Les messages asynchrones : Dans le cas d’un message asynchrone, l’expéditeur n’attend
pas la fin de l’activation de la méthode invoquée chez le destinataire. Un message
asynchrone peut être :
41
l’objet destinataire. Souvent, ce sont les acteurs ou les périphériques qui envoient
des signaux, typiquement utilisé dans la gestion événementielle d’une IHM
graphique, comme la librairie QT, par exemple.
7.2.4.2 Représentation graphique
Dans le diagramme de séquence, les envois de messages sont représentés par des flèches
horizontales qui vont de la ligne de vie de l’objet émetteur vers la ligne de vie de l’objet
récepteur du message.
Si une méthode qui a été activée (par un message) doit retourner des valeurs à la fin de son
activation, cela se fait par un message retour. o Le message de retour n’est donc pas un
appel de méthode (il ne provoque donc pas l’activation d’un objet) o Le message retour
porte souvent le nom de l’élément retourné.
- La création d’un objet est matérialisée par un message spécifique, appel d’un
constructeur, généralement accompagné du stéréotype « create » qui pointe sur le
42
début (le sommet) de la ligne de vie de l’objet créé (Le rectangle de l’instance de la
classe est alors surbaissée).
- La destruction d’un objet est représentée par une croix à la fin de sa ligne de vie.
Souvent l’objet est détruit suite à la réception d’un message mais ce n’est pas
obligatoire. Dans ce cas là, il porte le stéréotype « destroy ».
43
Figure 54: réponse de message
7.2.4.6 Remarque sur la syntaxe des messages dans les diagrammes de séquence
La syntaxe que nous venons de voir est simple et très souvent largement suffisante pour
décrire les messages des diagrammes de séquence.
44
Figure 56
- Le message trouvé est un message dont nous connaissons le destinataire mais pas
l’émetteur. Il est représenté par une flèche partant d’un disque noir vers la ligne de vie d’un
élément. Ce message peut être utilisé pour modéliser le comportement d’un élément suite à
la réception d’un message d’exception.
45
7.4 Fragments d’interactions combinés
Un fragment d’interactions est une partie du diagramme de séquence (délimitée par un
rectangle) associée à une étiquette (dans le coin supérieur gauche). L’étiquette contient un
opérateur d’interaction qui permet de décrire des modalités d’exécution des messages à
l’intérieur du cadre.
Les opérandes d’un opérateur d’interaction sont séparés par une ligne pointillée. Les
conditions de choix des opérandes (éventuels) sont données par des expressions booléennes
entre crochets ([ ]). Les principales modalités sont les boucles, les branchements
conditionnels, les alternatives, les envois simultanés, etc.
46
Figure 61: interaction operateur alt
- La garde s’écrit de la façon suivante : loop [min, max, condition] : Chaque paramètre (min,
max et condition) est optionnel.
o Le contenu du cadre est exécuté min fois, puis continue à s’exécuter tant que la condition
et que le nombre d’exécution de la boucle ne dépasse pas max fois.
47
Figure 63 : inteaction opeateur par
48
Figure 64: exemple de diagramme de séquence
Grâce aux fragments d’interactions, il est possible de documenter un scénario alternatif (ou
d’exception) dans le diagramme de séquence du scénario nominale. Par exemple, le
diagramme de séquence ci-dessous correspond à la description du scénario nominal et du
scénario alternatif SA4 (porteur de carte client banque).
49
Figure 65: diagramme de séquence et description de scénario nominal
50
8 Diagrammes de composants et de déploiement
8.1 Diagramme de composants
8.1.1 Notion de composant (component) et d’interface
UML, un composant est un élément logiciel remplaçable et réutilisable qui fournit ou reçoit
un service bien précis. Il peut être vu comme une pièce détachée du logiciel. Les plu-gins, les
drivers, les codecs, les bibliothèques sont des composants.
La notion de composant est proche de celle d’objet, dans le sens de la modularité et de
réutilisation avec toutefois une granularité qui peut être différente. Le composant est à
l’architecture du logiciel ce que l’objet est à l’architecture du code. Les composants
fournissent des services via des interfaces. Un composant peut être remplacé par n’importe
quel autre composant compatible c'est-à-dire ayant les mêmes interfaces. Un composant
peut évoluer indépendamment des applications ou des autres composants qui l’utilise à
partir du moment où les interfaces sont respectées. Il existe deux types d’interface :
✔ Les interfaces requise : Ce sont des interfaces qui fournissent un service au composant et
dont il a besoin pour fonctionner.
✔ Les interfaces fournies : Ce sont des interfaces par lesquels le composant fourni lui-même
un service.
2)Représentation graphique : 2-1) Les composants : Il existe plusieurs possibilités pour
représenter un composant, à vous de choisir :
8.1.2 Interfaces
Là aussi, il existe plusieurs possibilités pour représenter les interfaces :
- Intégrées dans la représentation du composant : Nous reprenons l’une des trois
représentations du composant que nous venons juste de voir et nous ajoutons un
compartiment dans lequel nous listons les interfaces requises et fournies (grâce aux
stéréotypes <<required interface>> et <<provided interface>>).
51
Figure 67: Représentation des composants
Dans un classeur séparé du composant dans lequel sont listés les différents services :
✔ Les interfaces requises sont reliées au composant par une flèche en pointillées sur laquelle
figure le stéréotype <<use>>.
✔ Les interfaces fournies sont reliées au composant par une flèche en pointillées sur laquelle
figure le stéréotype <realize> (le bout de la flèche est un triangle vide).
52
Figure 70 : exemple de diagramme de composants
53
8.1.5 Rôle du diagramme de composants
Le diagramme de composants fait partie des diagrammes structuraux (statiques) d’UML. Il
permet de représenter les différents éléments logiciels (composants) du système et leurs
dépendances (relations qui les lient). Comme nous venons de le voir dans le chapitre
précédent lorsque nous définissons la notion de composant, ces dépendances peuvent être :
- Des relations de compositions (boîte blanche)
- Des relations d’assemblages et de connexion (via des interfaces) Mais elles peuvent
aussi être d’autre type tel que :
Des contraintes de compilation, des éditions de liens (les composant sont alors des
fichiers de code source, des fichiers en binaire, des bibliothèques…). Dans ce cas, un
stéréotype peut préciser la nature de la dépendance.
Exemple : Compilation de fichiers en C++.
Un nœud est représenté par un parallélépipède rectangle dans lequel figure son nom
- des contraintes entre accolades (pour indiquer par exemple qu’un accès est
sécurisé) ;
- le type de réseau et/ou son débit en l’indiquant comme un stéréotype…
55
Figure 76 : Communication entre noeud
8.3.3 Artefacts :
L'artefact est le terme générique qui désigne n'importe quel élément produit du travail, c’est
un élément concret et existant dans le monde réel (document, exécutable, fichier, base de
données…). L’implémentation des modèles se fait sous forme d’artefacts. On dit que
l’artefact est la manifestation du modèle qu’il implémente.
→ Ce sont les artefacts qui sont déployés sur les nœuds et nom pas les composants. Un
artefact se représente par un rectangle contenant son nom et le stéréotype <artefact> (nous
pouvons aussi y faire figurer le symbole ). Un artefact qui est la manifestation d’un
composant est relié à celui-ci par une relation de dépendance (flèche en pointillées)
stéréotypé <manifast> orienté de l’artefact vers le composant.
Figure 77 : Artefact
56
- À l’extérieur du nœud dans lequel il est déployé, mais relié à celui-ci par une relation
de dépendance stéréotypé <deploy>.
57
Figure 80 : Projet de transfert de photos par Internet
58
59
Figure 82 : Exemple de diagramme de déploiement
60
9 Bibliographie :
UML 2.0, guide de référence . James Rumbaugh, Ivar Jacobson, Grady Booch. Editions Campus Press
(2005)
UML 2.0 . Benoît Charoux, Aomar Osmani, Yann Thierry-Mieg. Editions Pearson, Education France
(2008)
UML 2.0 Superstructure et UML 2.0 Infrastructure OMG (Object Management Group). www.uml.org
(2004).
J. Gabay, Merise. Vers OMT et UML, InterÉditions, 1998.
N. Kettani, D. Mignet, P. Paré et C. Rosenthal-Sabroux, De MERISE à UML, Eyrolles, 1998 :
recommandé !
M. Lai, Penser objet avec UML et Java, InterÉditions, 1998.
M. Lai, UML : La notation unifiée de modélisation objet – De Java aux EJB, Dunod, 2000
N. Lopez, J. Migueis et E. Pichon, Intégrer UML dans vos projets, Eyrolles, 1997.
C. Morley, B. Leblanc et J. Hugues, UML pour l'analyse d'un système d'information – Le cahier des
charges du maître d'ouvrage, Dunod, 2000.
P.-A. Muller, Modélisation objet avec UML, Eyrolles, 1998 : souvent cité et conseillé !
P. Roques et F. Vallée, UML en action – De l’analyse des besoins à la conception en Java, Eyrolles,
2000. C. Soutou, Objet-Relationnel sous Oracle8, Modélisation avec UML, Eyrolles, 1999. 1.5.2. Les
références (ouvrages et articles cités dans la documentation d’UML 1.3)
C. Bock et J. Odell, “A Foundation For Composition”, Journal of Object-Oriented Programming, oct.
1994.
G. Booch, J. Rumbaugh et I. Jacobson, The Unified Modeling Language User Guide, Addison-Wesley,
1999.
S. Cook et J. Daniels, Designing Object Systems: Object-oriented Modelling with Syntropy, Prentice
Hall Object-Oriented Series, 1994.
D. D’Souza et A. Wills, Objects, Components and Frameworks with UML: The Catalysis Approach,
Addison-Wesley, 1999.
M. Fowler avec K. Scott, UML Distilled: Applying the Standard Object Modeling Language, Addison-
Wesley, 1997.
M. Griss, “Domain Engineering And Variability In The Reuse-Driven Software Engineering Business”,
Object Magazine, déc. 1996.
D. Harel, “Statecharts: A Visual Formalism for Complex Systems”, Science of Computer Programming
8, 1987, pp. 231- 274.
D. Harel et E. Gery, “Executable Object Modeling with Statecharts”, Proc. 18th Int. Conf. Soft. Eng.,
Berlin, IEEE Press, mars 1996, pp. 246-257.
D. Harel et A. Naamad, “The STATEMATE Semantics of Statecharts”, ACM Trans. Soft. Eng. Method
5:4, oct. 1996.
61
I. Jacobson, G. Booch et J. Rumbaugh, The Unified Software Development Process, Addison-Wesley,
1999.
R. Malan, D. Coleman, R. Letsinger et al., “The Next Generation of Fusion”, Fusion Newsletter, oct.
1996.
J. Martin et J. Odell, Object-Oriented Methods, A Foundation, Prentice Hall, 1995.
G. Ramackers et D. Clegg, “Object Business Modelling, requirements and approach” in Sutherland, J.
and Patel, D. (eds.), Proceedings of the OOPSLA95 Workshop on Business Object Design and
Implementation, Springer Verlag.
G. Ramackers et D. Clegg, “Extended Use Cases and Business Objects for BPR”, ObjectWorld UK ‘96,
Londres, 18-21 juin 1996.
J. Rumbaugh, I. Jacobson et G. Booch, The Unified Modeling Language Reference Manual, Addison-
Wesley, 1999.
B. Selic, G. Gullekson et P. Ward, Real-Time Object-Oriented Modeling, John Wiley & Sons, 1994.
J. Warmer et A. Kleppe, The Object Constraint Language: Precise Modeling with UML, Addison-
Wesley, 1999.
62