Vous êtes sur la page 1sur 18

CONCEPTION des SYSTÈMES d’INFORMATION

UML
4 : Analyse organique
Epitech 3 – Automne 2007

Bertrand LIAUDET

SOMMAIRE

ANALYSE ORGANIQUE 2
Diagrammes de séquence 3
Exemple de diagramme de séquence 8
Diagramme de collaboration 12
Diagramme d’objets 15
Diagramme d’Etats-transitions 16

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 1/18- Bertrand LIAUDET
ANALYSE ORGANIQUE

Il est facile de décrire la méthode encore que son application exige à coup sûr savoir et
pratique.

Modèle UML Diagramme UML

ANALYSE DES Modèle statique Classes


DONNEES (objet) Objets

Modèle dynamique Séquence

ANALYSE (objet) Collaboration


ORGANIQUE Modèle dynamique Etats-transitions

(non objet) Activités

L’analyse organique avec UML va essentiellement consister à créer les diagrammes de séquence
objet qui sont une reprise des diagrammes de séquence système, mais en montrant quels sont les
méthodes des objets qui sont en jeu pour chaque scénario.
Les diagrammes de collaboration sont une autre façon de représenter la même chose.
Les diagrammes d’états-transitions et d’activités permettent de faire des zooms sur certains
objets à fonctionnement particulier. On utilise plus souvent des diagrammes d’états-transitions
au niveau de l’analyse organique et des diagrammes d’activités au niveau de l’analyse
fonctionnelle.

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 2/18- Bertrand LIAUDET
Diagrammes de séquence

Modèle UML Diagramme UML

ANALYSE DES Modèle statique Classes


DONNEES (objet) Objets

Modèle dynamique Séquence

ANALYSE (objet) Collaboration


ORGANIQUE Modèle dynamique Etats-transitions

(non objet) Activités

Notions générales sur les diagrammes de séquence et formalisme UML

• Un diagramme de séquence est la représentation graphique d’un scénario.

• Il montre des interactions entre des objets dans un enchaînement temporel.

• Il montre les objets et les classes impliqués dans le scénario ainsi que les messages échangés
pour réaliser la fonctionnalité du scénario.

• Il peut être transformé en diagramme de collaboration.

• C’est un diagramme orienté « client » plutôt que développeur.

Représentation d’un appel de procédure emboîtée

A B C
procédure
sous-procédure
retour implicite

A est un objet
La ligne verticale en pointillé est appelée : ligne de vie.

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 3/18- Bertrand LIAUDET
Le rectangle sur la ligne de vie représente la période d’activité de l’objet.

Représentation du paramètre de retour

A B
val :=calcule()

Ou encore :
A B
calcule()

val

Représentation de la récursivité
A

récursion()

Pour représenter la récursivité, on dédouble la bande rectangulaire : dans le déroulement du


message, on fait appel au message.

Envoi d’un message réflexif


A

message réflexif

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 4/18- Bertrand LIAUDET
Il y a message réflexif quand un message d’un objet fait appel à un autre message du même
objet.

Représentation de contraintes temporelles

A B C
Message
x
(y-x < 3s) y Message
(z-y < 1s) z

Représentation des boucles

A B
while X
loop Message

end loop

Ou encore :

A B

*[X] Message

La boucle est symbolisée par le “*” place devant la condition entre crochets.

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 5/18- Bertrand LIAUDET
Représentation des tests

A B C

if X Message 1

else Message 2

endif

Ou encore :

A B C

[X] Message 1

[non X] Message 2

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 6/18- Bertrand LIAUDET
Diagramme de séquence d’un scénario

: Usager : Ascenseur : Porte


appel extérieur

déplacement
ouverture
ouverte
{ < 9 sec.}
fermeture
fermée

Le diagramme de séquence d’un scénario représenté au niveau de l’analyse architectonique fait


apparaître les premiers objets du système.
C’est à partir de ces premiers objets, d’une analyse des données type MCD, et d’une démarche
d’abstraction, qu’on va pouvoir construire le diagramme de classes.

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 7/18- Bertrand LIAUDET
Exemple de diagramme de séquence

L’hôtel

On repart du diagramme des classes correspondant à la situation suivante :


Un hôtel est composé d’au moins deux chambres. Chaque chambre dispose d’une salle d’eau qui
peut être une douche ou une salle de bain. L’hôtel héberge des personnes. Il peut employer du
personnel et est dirigé par un des employés. L’hôtel a les caractéristiques suivantes : une
adresse, le nombre de pièces, la catégorie. Une chambre est caractérisée par le nombre et le type
de lits, le prix et le numéro. On peut calculer le chiffre d’affaires et le prix de la chambre en
fonction du nombre d’occupants. On gère aussi la réservation des chambres. On peut connaître à
tout moment la disponibilité des chambres.
(d’après UML-2, édition Pearson Education).

Hotel
Chambre
-Nom : string
-Adresse : string -Numéro : int
-Catégorie : int 1 -nbLitSimple : int
2..*
+calculCA() : float -nbLitDouble : int
+disponibilitéChambre() : Liste de Chambre -nbLitEnfant : int
+réserverChambre() -salleDEau : string
+facturerOccupation() facturation

Occupation
*
-dateArrivée : Date
* -dateDépart : Date
-nbAdulte : int
-nbEnfant : int
-coût : float
+calculCoût()
emploie

est dirigé par Personne


-Nom : string
-Prénom : string
-Adresse : string

1..* -employés

-directeur Client
Employé

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 8/18- Bertrand LIAUDET
Explications complémentaires :

• L’hôtel est composé de chambres. Si on détruit l’objet hôtel, les objets chambres sont aussi
détruits. Ceci veut dire qu’on ne se sert jamais des objets chambres sans avoir un objet hôtel.
La composition crée une liste de référence par valeurs (et non pas par adresse comme dans
le cas de l’agrégation simple). Par contre, on considère que la destruction de l’objet hôtel
n’engendre pas la destruction des objets « employés », ni celle des objets « occupation ».
Ceci est a préciser en fonction de l’usage réel du logiciel.

• Tous les liens qui partent de l’hôtel ne sont navigables que dans le sens de l’hôtel vers les
classes liées. En effet, c’est à partir de l’hôtel quelles sont les chambres de l’hôtel, quelles
sont les chambres disponibles, quelles sont les employés de l’hôtel. On pourra aussi calculer
le chiffre d’affaire à partir de l’occupation des chambres.

• Les réservations sont gérées comme des occupations.

• DisponibilitéChambre renvoie la liste des chambres. On l’utilisera pour faire la réservation.

• RéserverChambre ne ressort rien : on met à jour les données et c’est tout.

• Facturer l’occupation ne renvoie rien : le résultat est directement affecté à l’attribut coût de
l’occupation.

• CalculCA renvoie le résultat. On en fera ensuite ce qu’on veut.

• Personnes est une classe abstraite (en italique). Elle n’est jamais instanciée.

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 9/18- Bertrand LIAUDET
Diagramme de séquence de la réservation

:Hotel :Client :Occupation

:Hotelier

réserverChambre()

ListeChambre:=disponibilitéChambre()

Afficher(ListeChambre)

LireRésa(Chambre, NomCli, NbAdult, NbEnfant, DateDeb, DateFin)

Client:=ChercherClient(NomCli)

si ChercherClient = NULL alors : Client:=NouveauClient(Nom, Prénom, Adresse)

occupation := créerOccupation(Client, Chambre, NbAdult, NbEnfant, DateDéb, DateFin):

ajoutListeOccupation(occupation)

Fin de réserverChambre()

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 10/18- Bertrand LIAUDET
Diagramme des classes ajusté :
On a du ajouter de nouvelles opérations dans le diagramme de classes : chercherClient, lireRésa,
nouveauClient.
A noter que l’accès aux opérations des classes-association est problématique dans Visio.

Hotel
-Nom : string
-Adresse : string
-Catégorie : int
+calculCA() : float 1
+disponibilitéChambre() : Liste de Chambre
+réserverChambre()
+facturerOccupation()
+LireRésa(entrée NumCham, entrée NomCli, entrée NbAdult, entrée NbEnfant, entrée DateDeb, entrée DateFin)
+ChercherClient(entrée NomCli) : Client
+ajoutListeOccupation(entrée occupation)

facturation

Occupation
-dateArrivée : Date
-dateDépart : Date
-nbAdulte : int
-nbEnfant : int
est dirigé par
emploie -coût : float
+calculCoût()
+créerOccupation(entrée Chambre, entrée Client, entrée NbAdult, entrée NbEnfant, entrée DateDeb, entrée DateFin) : <non spécifié>

2..*
Chambre
Personne
-Numéro : int
-Nom : string -nbLitSimple : int
-Prénom : string -nbLitDouble : int
1..* -Adresse : string -nbLitEnfant : int
-employés
1 -directeur -salleDEau : string

Employé
*

Client *

+NouveauClient(entrée Nom, entrée Prénom, entrée Adresse) : Client

A noter que certains éléments de Visio ne sont pas du tout ergonomiques !

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 11/18- Bertrand LIAUDET
Diagramme de collaboration

Modèle UML Diagramme UML

ANALYSE DES Modèle statique Classes


DONNEES (objet) Objets

Modèle dynamique Séquence

ANALYSE (objet) Collaboration


ORGANIQUE Modèle dynamique Etats-transitions

(non objet) Activités

• Un diagramme de collaboration est la représentation graphique d’un scénario.

• Il montre des interactions entre des objets.

• Il se concentre sur l’organisation des objets et sur les messages envoyés.

• Il peut être transformé en diagramme de séquence.

• C’est un diagramme orienté développeur.

Exemple

A 1 :X C 3 :Z

B 2 :Y

Le scénario débute par un objet A qui envoie un message X à un objet B, puis l’objet B envoie
un message Y à un objet C, et enfin C s’envoie un message Z.

Avantages
Les diagrammes de collaboration sont particulièrement indiqués pur la phase exploratoire qui
correspond à la recherche des objets et des classes.

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 12/18- Bertrand LIAUDET
Inconvénients
Seule une petite collaboration est représentable.
S’il y a beaucoup de messages échangés, le diagramme est peu lisible.

3 :M3
5 :M5

A 7 :M7 C 8:M8
6 :M6
9 :M9

1 :M1 B 2:M2
4 :M4
10 :M10

Remplacement par un diagramme de séquence


Si le diagramme de collaboration est trop dense, il vaut mieux utiliser un diagramme de
séquence.
Le passage d’un diagramme de collaboration à un diagramme de séquence est automatique.

A B C

M1
M2
M3
M4
M5
M6
M7
M8
M9
M10

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 13/18- Bertrand LIAUDET
On peut aussi représenter les périodes d’activité des objets :

A B C

M1
M2
M3
M4
M5
M6
M7
M8
M9
M10

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 14/18- Bertrand LIAUDET
Diagramme d’objets

Modèle UML Diagramme UML

ANALYSE DES Modèle statique Classes


DONNEES (objet) Objets

Modèle dynamique Séquence

ANALYSE (objet) Collaboration


ORGANIQUE Modèle dynamique Etats-transitions

(non objet) Activités

• Le diagramme d’objets montre les objets et leurs liens à un moment de l’exécution du


programme.

• C’est un instantané, une photo, d’un sous-ensemble d’objets d’un système à un instant de la vie
du système.

• Il permet de rendre plus concrètes et plus claires certaines parties du diagramme de classe.

• C’est un diagramme orienté développeur.

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 15/18- Bertrand LIAUDET
Diagramme d’Etats-transitions

Modèle UML Diagramme UML

ANALYSE DES Modèle statique Classes


DONNEES (objet) Objets

Modèle dynamique Séquence

ANALYSE (objet) Collaboration


ORGANIQUE Modèle dynamique Etats-transitions

(non objet) Activités

• Le digramme d’états-transitions montre les différents états et transitions possibles des objets
d’une classe à l’exécution.

Notions générales sur les diagrammes d’Etats-transitions et formalisme UML

Automate d’états finis


Le comportement de divers éléments de modélisation peut être spécifié par des automates
d’états finis, aussi appelés simplement automates ou automates d’états ou bien machine à états.

Etat
• Un état est une situation donnée durant la vie d’un objet. C’est une situation plus ou moins
durable.
• Un état peut
1. satisfaire à certaines conditions,
2. réaliser des actions
3. être en attente d’évènements

• Un état dépend des états précédents et des événement survenus.


• La série des états d’un objet est décrite dans un automate.

Etat UML :

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 16/18- Bertrand LIAUDET
Transition
• Une transition relie deux états de manière unidirectionnelle.
• La transition matérialise le passage d’un état à un autre.
• Une transition est déclenchée par un événement.
• Les transitions indiquent les chemins dans les graphes des états.

Transition UML :

Etat initial
• L’état initial est la première situation modélisée.
• Dans un diagramme d’états-transitions, il y a toujours un et un seul état initial.
• C’est un pseudo-état relié au premier état effectif par une pseudo-transition.

Etat final
• L’état final est la dernière situation modélisée.
• Dans un diagramme d’états-transitions, il peut y avoir 0 ou plusieurs états finaux (0 dans le
cas d’un système qui ne s’arrête jamais).
• C’est un pseudo-état relié au dernier état effectif par une pseudo-transition.

Etats initial et final UML :

Evénement
• Un événement est une situation remarquable dans la vie de l’objet.
• Un événement est une situation qui ne dure pas, contrairement à un état.
• Un événement peut déclencher le passage d’un état à un autre, via une transition.
• Un événement peut porter des paramètres qui matérialise le flot d’informations ou de
données entre les objets.

Condition de garde
• Une condition de garde est une condition booléenne dont dépend le déclenchement d’une
transition lors de l’occurrence d’un événement.

Effet (action, activité, opération)


• Un effet est une action ou activité qui s’exécute lorsqu’une transition se déclenche.
• L’effet est déclenché après l’évaluation à « vrai » de la condition de garde.

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 17/18- Bertrand LIAUDET
Transitions composites

Etats composites

Transition entre états composites

Sous-états concurrents

Transition entre sous-états concurrents

EPITECH - CSI - UML – Analyse organique - 2007-2008 - page 18/18- Bertrand LIAUDET

Vous aimerez peut-être aussi