CONCEPTION des SYSTÈMES d`INFORMATION UML SOMMAIRE

publicité
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
Modèle statique
Classes
(objet)
Objets
Modèle dynamique
Séquence
ANALYSE
(objet)
Collaboration
ORGANIQUE
Modèle dynamique
Etats-transitions
(non objet)
Activités
ANALYSE DES
DONNEES
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
Modèle statique
Classes
(objet)
Objets
Modèle dynamique
Séquence
ANALYSE
(objet)
Collaboration
ORGANIQUE
Modèle dynamique
Etats-transitions
(non objet)
Activités
ANALYSE DES
DONNEES
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
B
A
val :=calcule()
Ou encore :
B
A
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
B
A
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 :
B
A
*[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
if X
Message 1
else
Message 2
B
C
B
C
endif
Ou encore :
A
[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
: Ascenseur
: Usager
: 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
-Nom : string
-Adresse : string
-Catégorie : int
+calculCA() : float
+disponibilitéChambre() : Liste de Chambre
+réserverChambre()
+facturerOccupation()
Chambre
1
2..*
-Numéro : int
-nbLitSimple : int
-nbLitDouble : int
-nbLitEnfant : int
-salleDEau : string
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é
1
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
est dirigé par
emploie
-dateArrivée : Date
-dateDépart : Date
-nbAdulte : int
-nbEnfant : int
-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
1
1..*
-directeur
-Numéro : int
-nbLitSimple : int
-nbLitDouble : int
-nbLitEnfant : int
-salleDEau : string
-Nom : string
-Prénom : string
-Adresse : string
-employés
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
Modèle statique
Classes
(objet)
Objets
Modèle dynamique
Séquence
ANALYSE
(objet)
Collaboration
ORGANIQUE
Modèle dynamique
Etats-transitions
(non objet)
Activités
ANALYSE DES
DONNEES
•
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
B
3 :Z
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
6 :M6
8:M8
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.
B
A
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
Modèle statique
Classes
(objet)
Objets
Modèle dynamique
Séquence
ANALYSE
(objet)
Collaboration
ORGANIQUE
Modèle dynamique
Etats-transitions
(non objet)
Activités
ANALYSE DES
DONNEES
•
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
Modèle statique
Classes
(objet)
Objets
Modèle dynamique
Séquence
ANALYSE
(objet)
Collaboration
ORGANIQUE
Modèle dynamique
Etats-transitions
(non objet)
Activités
ANALYSE DES
DONNEES
• 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
Téléchargement