Académique Documents
Professionnel Documents
Culture Documents
UML
Patrice BROU
annee academique 2010
1/27
Unité2 : une introduction à la méthode UML
Plan du cours
Introduction
Diagrammes statiques
Diagrammes dynamiques
Etude de cas
Les techniques servant à spécifier et à construire sont appelés modèles. En fait ce sont des
méta-modèles permettant de construire les modèles de l’artefact à modéliser. L'artefact est un
système à fabriquer, en l'occurrence ici, il s'agit d'un système logiciel.
Le produit final d'une modélisation (utilisation d’un modèle) est un diagramme.
La notion de modèles.
Un modèle est un ensemble de concepts prédéfinis (en général dans une méthode), qui aident
à réfléchir sur un artefact construit (existant) ou à construire (futur).
Un bon modèle doit être indépendant de la technique. Il doit intégrer le comportement, il doit
permettre d'exprimer le maximum de contraintes. Certaines contraintes sont inhérentes au
modèle (constructeur), d'autres seront explicitement exprimées, d'autres seront implicites,
c'est à dire déduites des autres. Un bon modèle doit réduire les choix possibles du
concepteur.
Les concepts utilisés dans un modèle doivent être propres sémantiquement. Leurs
définitions doivent être précise et mettre le modélisateur sur des rails en le guidant en
permanence dans ses choix.
2/27
Le modèle doit être expressif, il doit permettre de voir et de masquer certain détails du
système. Selon le niveau, l’abstraction (masquage du détail) pourra être plus ou moins
importante. En utilisant le modèle de données, on doit être capable de représenter n'importe
quelle propriété statique ou dynamique d ' intérêt pour le lecteur, avec le degré de précision
souhaité pour capturer la sémantique. Les concepts utilisés doivent être définis avec
précision. Il est indispensable d'avoir des outils associés. Il faut faire la preuve de l'intégrité
dans l'évolution du système d'information.
La notion de diagramme
Le rôle d’un diagramme, s’il est suffisamment proche de la réalité est de nous donner des
renseignements sur le système réel (de manière descriptive: statique ou comportementale).
Son rôle est donc de nous renseigner sur le système réel. Un diagramme de système
d'information doit permettre d'expérimenter l'aspect statique et dynamique du système réel.
Ce diagramme peut représenter des éléments d’un artefact déjà construit ou à construire. Ce
diagramme peut représenter l’artefact sous différents aspects (structurel, comportemental,
fonctionnel) pour différentes préoccupations (conceptuel, organisationnel, logique,
technique).
Le diagramme obtenu permet de voir le futur système . Le diagramme apparaît ici, sous
l'angle d'un diagramme pour voir. Il est donc extrêmement utile dans le dialogue avec les
différents interlocuteurs.
3/27
travailleront dans le futur système. Ceci signifie qu'une interface graphique paraît
indispensable.
(Les ateliers de génie logiciel tels que MEGA, AMC DESIGNOR, Paradigm +, Rational
ROSE sont des outils indispensables pour représenter des systèmes. Les diagrammes
obtenus sont lisibles et bien documentés).
De nombreuses suggestions ont été faites pour représenter des diagrammes qui à partir d'une
vue globale d'un système complexe ignorant les détails, arrivent progressivement dans
d'autres modèles à décrire le détail. Ceci un peu comme un atlas qui montre un pays
complet , avant de montrer le pays province par province. Notons que UML propose un lien
« refines » entre le même élément de modèles vu à des niveaux différents.
La représentation doit être la plus directe possible, la plus unique possible, malgré une
réduction de la flexibilité
Un bon diagramme est un outil lisible, clair, documenté, fournissant l’information au bon
niveau du lecteur. La notation ne doit pas être ambiguë. A un concept du modèle doit
correspondre un symbole, une notation. La notation doit être compacte, elle doit éviter tous
signe superflu ( trait, encadrement, etc..).
Le diagramme doit être présenté dans toute sa dimension, ceci nécessite souvent des formats
très grand (A3, A2,..).
Il doit être lisible par le lecteur. La lisibilité peut être vue à deux niveaux : celui de la taille
des informations présentes sur le diagramme et celui du choix des concepts représentés par
rapport au lecteur. Par exemple, la maîtrise d’ouvrage considérera qu’un diagramme
représentant une base de données ou un réseau comme peu utile. Inversement, un
développeur considérera un diagramme conceptuel comme peu utile.
Elle doit décrire une DEMARCHE, qui liste les tâches à effectuer pour conduire un projet
systèmes d'information.
Elle doit fournir un MODELE pour décrire la sémantique des données, leur comportement.
Elle doit fournir un ensemble de DIAGRAMMES s'appuyant sur un FORMALISME de
description (graphique ou langage).
Il doit être possible de trouver sur le marché des OUTILS LOGICIELS D'AIDE à la
conception.
Ces outils portent le nom d’A.G.L (Atelier de Génie Logiciel) ou C.A.S.E (Computer Aided
Software Engineering)
4/27
Dans le cadre de la conception oriente objet, un langage unifié pour la
modélisation a été développé : UML (Unified Modeling Language ). Il s'agit d'un
langage graphique de modélisation objet permettant de spécifier, de construire, de
visualiser et de décrire les détails d'un système logiciel. il est issu de la fusion de
plusieurs méthodes dont ´ BOOCH ª et ´ OMT ª et est adapté à la modélisation de
tous types de systèmes. La modélisation d'un système s'effectue indépendamment
de toute méthode ou de tout langage de programmation.
Les éléments
Il existe quatre types d'éléments dans uml :
les éléments structurels (classe, interface, collaboration,...) ;
les éléments comportementaux (interaction, automate à états finis) ;
les éléments de regroupement (package) ;
les éléments d'annotation (note).
Les relations
Il existe quatre types de relations dans uml :
la dépendance ;
l'association ;
la généralisation ;
la réalisation.
Les diagrammes
Diagramme: représentation graphique d'un ensemble d'éléments et de relations
qui constituent un système.
5/27
uml définit neuf types de diagrammes divisés en deux catégories :
L'importation permet aux éléments d'un package d'accéder aux éléments d'un
autre package. Cette relation est à sens unique et est représentée par une relation
de dépendance associée à un stéréotype « import ».
6/27
I.1. 2 Les classes
Représentation d'un ensemble d'éléments partageant les mêmes attributs, les
mêmes opérations, les mêmes relations et les mêmes sémantiques.
En programmation orientée objet, une classe définit une abstraction, un type
abstrait qui permettra d'instancier des objets. (Cf. cours POO licence Miage)
Graphiquement, une classe décrite en UML peut être plus ou moins précise :
Exemple de classe
Classe abstraite: classe ne pouvant pas être instanciée directement. Une telle
classe sert de spécification pour des objets instances de ses sousclasses.
Les interfaces
7/27
I.1. 3 Les relations entre classes
a- L'association
Une association représente une relation structurelle entre classes d’objets. La
plupart des associations sont binaires, c’est à dire qu’elles connectent deux
classes.
Les extrémités d’une association sont appelées rôles et peuvent porter un nom.
Le rôle décrit comment une classe voit une autre classe au travers d’une
association.
Les associations peuvent être nommées en utilisant une forme verbale. On peut
également préciser le sens de lecture par le biais d’un petit triangle dirigé vers la
classe désignée par la forme verbale.
Il arrive en effet que l’information que l’on veut représenter nécessite la mise en
relation de plus de deux classes. Ces associations n-aires peuvent se
représenter au moyen d’un losange sur lequel arrivent les différents brins de
l’association.
8/27
1..1 noté 1 Un et un seul
0..1 Zéro ou un
0..* noté * De Zéro à n
1..* De un à n
n..m De n à m
GARAGE
LOCATAIRE
1
1
1..* 1..*
louer
CONTRAT
BOX
1 0..1
1..* Autoriser
0..2 VEHICULE
Un box peut être loué par au maximum un seul contrat ou peut rester non loué.
Un contrat concerne la location d'un seul box à la fois.
Un box peut être vide ou contenir au maximum 2 véhicule.
Un véhicule est autorisé à aller dans un box (au minimum) ou plus.
Un contrat ne concerne qu'un seul locataire.
Un locataire peut souscrire plusieurs contrat mais doit en avoir souscrit au moins
un.
Il peut arriver que l’on ait besoin de garder des informations (attributs ou
opérations) propres à une association. Une classe de ce type est appelée classe
association.
Exemple :
LIG-COM LIVRAISON
9/27
Quantité
1..* 1
Une classe association est une classe comme une autre qui peut entretenir des
relations avec d’autres classes
c) Agrégation
1 1..*
GARAGE BOX
d) La composition
La composition est un cas particulier d’agrégation dans laquelle la vie des
composants est liée à celle de l’agrégat. Dans la composition, l’agrégat ne peut
être multiple. La composition se représente par un losange noir.
10/27
C om m u n e
1 1 1
M a i ri e C o n s e i l M u n i ci pa l S e rvi ce
e) Généralisation :
UML emploie le terme de généralisation pour désigner la relation de
classification entre un élément plus général et un élément plus spécifique. La
relation de généralisation signifie « est un » ou « est une sorte de ».
Instrument
La classe ‘Instrument’ est une classe générique, elle porte les attributs
communs à tous les instruments. La classe ‘Instrument à cordes’ est une classe
spécialisée qui porte les attributs spécifiques à ce type d’instrument.
Une classe spécialisée peut avoir des relations avec d’autres classes.
11/27
I.2 Les Cas d’utilisation (Uses cases)
12/27
Exemple : Diagramme de cas d’utilisation d’un guichet automatique bancaire
guichet
Retirer de l'argent
Client de la banque
Déposer de l'argent
Ravitailler distributeur
Réparer le distributeur
Agent de maintenance
13/27
I.2.3 Les relations
UML prédéfinit 4 stéréotypes de liens dans un diagramme Use Case :
<<Association>> :
C'est la seule relation autorisée entre une instance d'acteur et une instance de use
case. Nous l'avions particularisée en Procède, Déclenche et Reçoit dans les pages
précédentes.
<<Extend>> :
C'est une relation entre 2 instances de Use Case telle que A extend B signifie que
le comportement d'un B peut être complété par le comportement d'un A.
Exemple : Choix_Fournisseur dans la figure précédente peut être complété en cas
d'urgence par une opération de vérification du délai de livraison.
La relation extend doit spécifier à la fois :
- la condition de l'extension (par exemple RuptureStock:=Vrai)
- le point d'extension, i.e. l'endroit où l'extension doit être faite dans le Use Case
général (par exemple immédiatement après TrouveFournisseursProduit et avant
TrouveMeilleurPrix).
<<Extend>> spécifie donc une possibilité, une option, contrairement à la suivante
:
<<Include>> :
C'est une relation entre 2 instances de Use Case telle que la réalisation de la
fonction de l'un nécessite la réalisation de la fonction de l'autre. Exemple :
Commande_Fournisseur a besoin de Choix_fournisseur dans la figure précédente.
L'endroit ou le case Choix s'insère dans Commande est spécifié par un point
d'extension (sans condition).
<<Generalize>> :
Exprime la relation d'héritage qui sera expliquée plus en détail à l'occasion du
diagramme de structure statique. Nous la nommerons aussi "sorte de" :
Commande_Fournisseur est une spécialisation d'un cas plus général Commande,
dont une autre sorte pourrait être Commande_Client. Contrairement aux
précédentes, il s'agit d'une relation entre 2 Use Case et non entre des instances de
ceux-ci.
14/27
Etapes de construction:
1. Les acteurs
2. Pour chaque acteur, recherche des cas d'utilisation,
3. Structuration des cas d'utilisation pour faire apparaître les
comportements partagés (relation d'inclusion), les cas particuliers
ou options (relation d'extension), les généralisations /
spécialisations.
Une instance de cas d’utilisation représente une réalisation particulière d'un Use Case. C’est
un chemin unique dans un Use case.
Une description explicite d’une instance de cas d’utilisation est appelée un scénario.
Le use case comprend au moins deux scénarios: -un ou tout se passe bien, et un autre ou il
y a problème.
Alternative.
scénario Normal
alternative
scénario primaire/scénario secondaire.
Ensuite, il devient possible d’ écrire des alternatives en utilisant des flots d'événements
alternatifs. Il est possible d'écrire également les alternatives comme des scénarios
secondaires.
15/27
Documentation
Chaque acteur doit être nommé et avoir une description succincte en une ou deux phrases.
Chaque cas d'utilisation doit avoir un nom et une ou deux phrases descriptives.
Pré condition:
Ce qui doit arriver avant le cas d'utilisation.
Dans quel état doit être le système au début du use case.
Post Condition:
Ce qui doit être après le use Case.
Quel état doit être vrai à la fin du Use Case.
Flots d'événements.
Il existe plusieurs types de présentation possible: On peut par exemple décrire un Use Case
en utilisant du texte informel, ou encore des étapes numérotées, ou même pour le niveau
technique du pseudo-code.
C'est une série de déclarations montrant les différentes étapes du Use Case.
Possibilité d'introduire une alternative par If; ou une répétitive par For each.
Si l'alternative est complexe, il est possible d'utiliser while.
16/27
II LES DIAGRAMMES DYNAMIQUES
Une ligne en pointillé indique la ligne de vie d'un objet. L'ordre d'envoi des
messages est donné par une position sur l'axe vertical. Il s'agit donc d'un
diagramme équivalent à un Graphe des Flux dans lequel on aurait précisé l'ordre
des messages.
17/27
II.2 Le diagramme d’état/transition
L’état d’un objet est défini à un instant T par l’ensemble des valeurs de ses
attributs
Le passage d’un état à un autre s’appelle la transition ; Cette transition peut être
conditionnée
Un évènement est un fait survenu qui déclenche une transition (signal, appel,
temporel… )
Formalisme et exemple
Actions et activités
Une action est une opération instantanée qui ne peut être interrompue ; elle est
associée à une transition.
Une activité est une opération d’une certaine duré e qui ne peut être interrompue
et elle est associée à un état d’un objet.
Exemple
18/27
Diagramme d'état la classe « compte »
Demande EnCoursOuverture
ouverture
DO :CréerCompte
DemandeFermetu Créditeur
re
[solde > =0]
débitEffectué
DemandeRetrait(montant)
enTrainEtreFerm
enTrainDeDébiter
é Virement (montant)
DO : débiter [solde >=0]
DO :ouvrir
créditEffectué
DemandeRetrait(montant) enTrainDeCrédit
er
DO :créditer
Virement(montan
t)
Débiteur
19/27
II.3 Le diagramme de collaboration
Les messages sont les seuls moyens de communication entre les objets.
Ils sont donc positionnés sur le lien entre deux objets.
20/27
lorsqu’une réalisation de cas d’utilisation ne nécessite aucun
objet de contrôle.
21/27
Exemple : Utilisation d’un diagramme de collaboration pour décrire la réalisation du scénario « retrait
autorisé » du cas d’utilisation « retirer de l’argent »
IntGuichet/:IGuichetAccueil 2:DemanderAutorisation(Code)
Contrôleur1/:CAutorisation
1:Identifier(Code)
4:AutoriserCréation(ListeComptes) 3:[ContrôleOK]ObtenirListe()
5:ChoixCompteMontant(Compte,Montant)
IntChoixMontant/:IGuichetMontant
ComptesMartin/:Compte
M. Martin/:Client de la banque
6:DemanderRetrait(Compte, Montant)
CompteClient/:Compte
9:DélivrerArgent()
7:ValiderEtEffectuerRetrait()
Contrôleur2/:CRetrait Multi-objet
8:AutoriserRetrait(montant)
IntDistributeur/:Idistributeur
II.5 Diagramme d’activité
Le niveau : la méthode
Un diagramme d'activités concerne le comportement d'un objet d'une
classe déterminée. Par exemple, la classe des commandes est notamment
décrite par l'opération "contrôler bon de commande".
Une méthode est l'implémentation d'une opération dans sa classe
propriétaire, par exemple la méthode "Commande :: controle" montre
comment se réalise l'opération qui consiste à contrôler le bon de
commande.
Une décision montre les conditions selon lesquelles, à la sortie d'une action,
l'action suivante à exécuter (parmi plusieurs possibles) est déterminée.
Un état actif peut invoquer un autre graphe d'activité complet. On dit qu'il
entre alors dans un sous-état actif dont il ne peut sortir qu'à la terminaison
du graphe invoqué. Un graphe d'activité donné peut être invoqué par
plusieurs sous-états actifs.
23
Soit le cas d'une activité de Réception :
Mr Yao est chargé du magasin. Lors des livraisons, il trie les articles selon
qu'il s'agit de choses courantes (elles sont rangées dans des rayons par
familles d'articles) ou selon qu'il s'agit d'articles spécifiques à une affaire
(rangés dans un casier spécial au nom du client).
Article :: Réceptionner
Remarques :
Une transition est automatique : l'article est déballé dès qu'il est fini de
décharger, il est rangé dès qu'il est fini de déballer, et le stock est mis à jour
dès que l'article est rangé.
24
Les extensions UML pour le "Business Modeling" :
(NB : nous préférons garder l'expression anglaise des concepts plutôt que
traduire, afin de marquer leur caractère de définitions au sein de la notation
UML)
Worker : une abstraction d'une personne qui agit dans le système. Elle
interagit avec d'autres personnes et manipule des entités. Elle se subdivise
en :
Case worker : une personne qui interagit avec des partenaires extérieurs au
système : par exemple le Chef d'entreprise lorsqu'il négocie les devis avec
les clients.
Internal worker : une personne qui n'interagit avec d'autres qu'à l'intérieur
du système. C'est le cas de notre secrétaire pour l'exemple ci-dessus.
Entity : un objet passif qui n'a pas d'initiative propre d'interaction. L'entité
sert de support au partage des activités entre plusieurs workers. Par
exemple la commande est une entité créée par la secrétaire et visée par le
chef d'entreprise.
Les symboles << >> ont une signification particulière dans UML : ils notent
des stéréotypes.
25
III Déploiement
26
IV La demarche
La démarche.
U.M.L ne donne aucune démarche « normalisée »
La plus proche d’U.M.L reste objectory de Y.Jacobson, qui a donné lieu à la création d’un
PROCESSUS UNIFIE.
La démarche est pilotée par les USES CASES, elle est centrée sur la création le plus
tôt possible de l’architecture du logiciel, et le processus est incrémental au début du
processus et Itératif dès que c’est possible.
Le Processus est non linéaire. Il s’agit de faire les activités classique du génie logiciel, à
savoir REQUIREMENTS, ANALYSE , CONCEPTION , IMPLEMENTATION, TEST de
nombreuses fois au cours du cycle qui va comprendre des phases de lancement, puis de
l’élaboration, enfin de construction.
Naturellement chaque type d’activité sera privilégié et forte à son ordre. Par exemple, les
requirements seront beaucoup plus important en phase de lancement qu’en phase de
conception. Mais on ne peut pas nier que cela puisse arriver. En effet, certaines exigences
peuvent apparaître au moment de la construction du système.
27