ENSGI 2A MSI - UML (2) 1 Michel Tollenaere version 1.1 du 7 Octobre 2003 UML (2) Rappel sur le modèle statique : classe / objet Modèle dynamique • le diagramme de séquence • le diagramme état - transition MOT (Modèle organisationnel des traitements de MERISE) Extension du modèle de classes : le concept de généralisation/spécialisation. Héritage. Polymorphisme. Implantation de l’héritage en relationnel (SGBD)
47
Embed
Michel Tollenaere version 1.1 du 7 Octobre 2003 ENSGI 2A MSI - UML (2) 1 UML (2) Rappel sur le modèle statique : classe / objet Modèle dynamique le diagramme.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ENSGI 2A MSI - UML (2)
1Michel Tollenaere
version 1.1 du 7 Octobre 2003
UML (2)
Rappel sur le modèle statique : classe / objetModèle dynamique
• le diagramme de séquence• le diagramme état - transition
MOT (Modèle organisationnel des traitements de MERISE)
Extension du modèle de classes : le concept de généralisation/spécialisation. Héritage. Polymorphisme.
Implantation de l’héritage en relationnel (SGBD)
Liens entre modèles statique et dynamique.
ENSGI 2A MSI - UML (2)
2Michel Tollenaere
version 1.1 du 7 Octobre 2003
Cas d’utilisation
une fonctionnalité attendue du système (VEGA2) par les différents acteurs.
cas d'utilisation : acteur (intéragissant
avec VEGA2)
Système (VEGA2)
message
messagemessage
message
Diagramme de séquence
Chaque cas d'utilisation apparaît comme un scénario, décrit par un ou plusieurs diagrammes de séquence.
Un diagramme de séquences montre les interactions entre les acteurs et le système selon un point de vue
temporel pour accomplir une fonctionnalité attendue du système (un cas d ’utilisation). C’est une ensemble de
messages échangés entre les acteurs et le système, ordonnés chronologiquement.
Diagramme de Classes
objet 1
objet 3
objet 2 objet 4
lien exprimant que "objet 2 est
composé de objet 3"
lien exprimant que "objet 2 a une relation avec objet 4"
lien exprimant que "objet 2 est une sorte de objet 1"
Exemples : Quelques diagrammes
ENSGI 2A MSI - UML (2)
3Michel Tollenaere
version 1.1 du 7 Octobre 2003
Modèle Statique (rappels)
• Diagramme de classes• Diagramme d’objet
ENSGI 2A MSI - UML (2)
4Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des commandes client
(diagramme de classes 1)
commandeclient
Passe une>1 0 .. *
nomprénomadressetéléphonecode postal
Passe commande ()paie commande (cmd)
numdateadresse livraison
Montant ()ajout articlemodifier ()paye
article
codedésignationprix-Urayonss-rayon
comporte> 1 .. **
Ligne-Cmd
quantité
ENSGI 2A MSI - UML (2)
5Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des commandes client
(diagramme de classes et d ’objets)
commandeclientPasse une>1 0 .. *
articlecomporte>
1 .. **
Ligne-Cmd
CMD015 :commande
CMD007 :commande
CMD003 :commande
Jacky Durand :client
Pierre Dupond :client
Hervé Latour :client
1 : lignecmd
1 : lignecmd
1 : lignecmd
2 : lignecmd
1 : lignecmd
Dell Lat400 :article
Compaq tabletPC :article
RAM 512MO :article
Photosmart500 :article
Toshiba SD300 :article
ENSGI 2A MSI - UML (2)
6Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des commandes client
(diagramme de classes et d ’objets)
commandeclientPasse une>1 0 .. *
articlecomporte>
1 .. **
Ligne-Cmd
CMD015 :commande
CMD007 :commande
CMD003 :commande
Jacky Durand :client
Pierre Dupond :client
Hervé Latour :client
1 : lignecmd
1 : lignecmd
1 : lignecmd
2 : lignecmd
1 : lignecmd
Dell Lat400 :articl
e
Compaq tabletPC :article
RAM 512MO :article
Photosmart500 :article
Toshiba SD300 :article
Diagramme
de classe
Diagramme
d ’objet
s
Illustre
Conceptualise
Objet
Classe
Lien
Association
ENSGI 2A MSI - UML (2)
7Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des commandes client
(diagramme de classes 2)
commandeclient
Passe une>1 0 .. *
nomprénomadressetéléphonecode postal
Passe commande ()paie commande (cmd)
numdateadresse livraison
Montant ()ajout articlemodifier ()paye
article
codedésignationprix-U
rayonss-rayon
comporte> 1 .. **
Ligne-Cmd
quantité Ne respecte pas les formes
normales
On peut affiner le modèle au niveau de l ’implantation des articles (très utile pour définir les tournées de constitution des commandes)
ENSGI 2A MSI - UML (2)
8Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des commandes client
(diagramme de classes 2)
commandeclient
Passe une>
1 0 .. *
nomprénomadressetéléphonecode postal
Passe commande ()paie commande (cmd)
numdateadresse livraison
Montant ()ajout articlemodifier ()paye
article
codedésignationprix-U
rayonss-rayon
comporte> 1 .. **
Ligne-Cmd
quantité*
contient>1Sous rayon
Rayonemplacement Implantation
comporte
Rôle dans l’association
On ne définit pas l ’appartenance du sous rayon au rayon
ENSGI 2A MSI - UML (2)
9Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des commandes client
(diagramme de classes 2)
article
codedésignationprix-U
rayonss-rayon
*
contient>1
Sous rayon
Rayonemplacementnom
Implantation
comporte
Rayon
Nomemplacement *
1
Partage de propriétés et de comportements
ENSGI 2A MSI - UML (2)
10Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des commandes client
(diagramme de classes 2)
article
codedésignationprix-U
rayonss-rayon
*
contient>1
Sous rayon
Rayonemplacementnom
Implantation
comporte
Rayon
Nomemplacement *
1
Implantation
Nomemplacement
GénéralisationHéritage de propriétés
ENSGI 2A MSI - UML (2)
11Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des commandes client(diagramme de classes 1)
commandeclient
Passe une>1 0 .. *
nomprénomadressetéléphonecode postal
numdateadresse livraison
Montant ()ajout articlemodifier ()paye
article
codedésignationprix-Urayonss-rayon
comporte> 1 .. **
Ligne-Cmd
quantité
Passe commande ()paie commande (cmd)
Comportement des objets
Quand peut on ajouter un article ?
Etat des commandes ?
Nécessité de définir et spécifier un modèle dynamique
ENSGI 2A MSI - UML (2)
12Michel Tollenaere
version 1.1 du 7 Octobre 2003
Modèle Dynamique
• Diagramme d’état transition• Diagramme de séquence
ENSGI 2A MSI - UML (2)
13Michel Tollenaere
version 1.1 du 7 Octobre 2003
Diagramme d ’états-Transition
Description des séquences possibles d’états et d ’actions par lesquelles un objet peut passer tout au long de sa vie. Ces séquences résultent de sa réaction à des événements discrets.
Eléments du diagramme :
• état : situation d’un objet à un moment donné
• transition : connexion entre deux états, permettant le passage d’un état à l’autre
ENSGI 2A MSI - UML (2)
14Michel Tollenaere
version 1.1 du 7 Octobre 2003
Diagramme d ’états-Transition
• événement : occurrence d ’une situation donnée dans le domaine du système qui déclenche la transition
• garde : condition booléenne qui valide ou non le déclenchement d’une transition lors de l’occurrence d’un événement (cas de plusieurs transitions exclusives déclenchées par le même événement)
• action : opération exécutée pendant que l’objet est dans un état donné ou lorsque une transition est déclenchée (correspondant à des opérations déclarées dans la classe de l’objet destinataire). Une action d’un état est dite activité quand l’opération associée a un temps d’exécution non négligeable (do : nom_opération) (exemple notification)
ENSGI 2A MSI - UML (2)
15Michel Tollenaere
version 1.1 du 7 Octobre 2003
Diagramme d ’états-Transition de la classe « commande »
En préparation
do / ajout articleétat initial
état final
Confirmée
do / préparer livraison
Livrée
do / attente paiement
Payée
Confirmation client [Si solvable]
Livraison effectuée
paiement effectué
10 ans après paiement
état final
Pas de confirmation client après 1
mois
commande
numdateadresse livraison
Montant ()ajout articlemodifier ()paye
ENSGI 2A MSI - UML (2)
16Michel Tollenaere
version 1.1 du 7 Octobre 2003
Perte
d ’emploi
société
personne
est employée
par>0..1*
nomprénomageadressetéléphonecode postal
n° SIRENnomC.A.Implantation
Les personnes ne possèdent pas toutes un emploi et se trouvent, à un moment donné, dans un des états suivants : en activité, au chômage, à la retraite
L’état d ’une personne donnée est déterminé selon son âge et la présence ou non d ’un lien vers une société.
Diagramme d ’états-Transition
Exemple
Diagramme de classes Diagramme d ’états-transitions
En activité
do: travailler
Au chômage
A la retraiteEmbauche
Plus de 60 ans
Plus de 60 ans
ENSGI 2A MSI - UML (2)
17Michel Tollenaere
version 1.1 du 7 Octobre 2003
Diagramme d ’états-Transition
Une classe peut posséder plusieurs diagrammes d ’état (selon le point de vue examiné).
Exemple, pour une personne,
• l’état matrimonial et
• l’état professionnel.
Les diagrammes d ’états - transitions peuvent être imbriqués et hiérarchisés.
Exemple : pour une machine, (cf photocopieuse, imprimante)
commandée, livrée, qualifiée, en service, en maintenance, au rebut
en service est détaillée par les différents elements du cycle de fonctionnement
ENSGI 2A MSI - UML (2)
18Michel Tollenaere
version 1.1 du 7 Octobre 2003
Diagramme de Séquences
Pour chaque cas d’utilisation, nous pouvons décrire un ou plusieurs scénario, décrit chacun par un diagramme de séquences.
Diagramme de séquence : exprime la séquence des interactions entre objets du système selon un point de vue temporel, pour réaliser le cas d’utilisation.
ENSGI 2A MSI - UML (2)
19Michel Tollenaere
version 1.1 du 7 Octobre 2003
Diagramme de Séquences (principes)
Objet 1 Objet 2
1 : [condition A] message
2 : message synchrone
4 : message
6 : [condition B] message
9 : message asynchrone
7 : message réflexif
Evénement / Communication
entre objets
Objet 33 : message de création
5 : message
8 : message de destruction
Période d’activité de l’objet : ligne de vie
ENSGI 2A MSI - UML (2)
20Michel Tollenaere
version 1.1 du 7 Octobre 2003
Diagramme de Séquences (principes)
Objet 1 Objet 2
1 : [condition A] message 2 : message synchrone
4 : message
6 : [condition B] message
9 : message asynchrone
7 : message réflexif
Objet 33 : message de création
5 : message
8 : message de destruction
message synchrone: l’émetteur est bloqué et attend que l’appelé ait fini de traiter le message (message 1)
message asynchrone: l’émetteur n’est pas bloqué et peut continuer son exécution (message 6)
Un message réflexif indique souvent un point d ’entrée dans une activité de plus bas niveau qui s ’exerce entre objets contenus par l ’objet composite (message 7)
ENSGI 2A MSI - UML (2)
21Michel Tollenaere
version 1.1 du 7 Octobre 2003
Diagramme de Séquences (principes)
Objet 1 Objet 2
1 : [condition A] message 2 : message synchrone
4 : message
6 : [condition B] message
9 : message asynchrone
7 : message réflexif
Objet 33 : message de création
5 : message
8 : message de destruction
Un message dont les délais de transmission sont non négligeables est matérialisé par une flèche oblique (message 4)
Messages conditionnés : flèches prenant leur origine au même instant avec des conditions mutuellement exclusives (messages 1 et 6)
Possibilité de compléments d ’informations sous forme de texte libre ou de pseudo-code à côté du diagramme
ENSGI 2A MSI - UML (2)
22Michel Tollenaere
version 1.1 du 7 Octobre 2003
Diagramme de Séquences (principes)
Objet 1 Objet 2
1 : [condition A] message 2 : message synchrone
4 : message
6 : [condition B] message
9 : message asynchrone
7 : message réflexif
Objet 33 : message de création
5 : message
8 : message de destruction
Période d ’activité : temps pendant lequel un objet effectue une action, directement ou par l ’intermédiaire d ’un autre objet sous-traitant
Des contraintes temporelles peuvent être exprimées en graduant la ligne de vie (pour dire par exemple: « 10 secondes plus tard »)
ENSGI 2A MSI - UML (2)
23Michel Tollenaere
version 1.1 du 7 Octobre 2003
ENSGI 2A MSI - UML (2)
24Michel Tollenaere
version 1.1 du 7 Octobre 2003
ENSGI 2A MSI - UML (2)
25Michel Tollenaere
version 1.1 du 7 Octobre 2003
Nouvelle mission
ENSGI 2A MSI - UML (2)
26Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des commandes client(diagramme de séquences 1)
ENSGI 2A MSI - UML (2)
27Michel Tollenaere
version 1.1 du 7 Octobre 2003
Diagramme de Séquences
Exemple
AppelantLigne
téléphonique Appelé
décroche
tonalité
numérotation
sonnerieindication de sonnerie
décroche
allô
ENSGI 2A MSI - UML (2)
28Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des composants externes: Création composant constance
: BE
système
demande création
vérifier droit utilisateur
afficher dialogue de création [droit = OK]
Saisie code composant - Valider
rechercher infos dans fichier export de
constanceaffichage infos relatifs au composant [composant existe]
affichage dialogue sans infos [composant inexistant]
valider création
création du composant dans VEGA
fabricantréf-fabricantdésignation
saisie manuelle infos relatifs au composant
ENSGI 2A MSI - UML (2)
29Michel Tollenaere
version 1.1 du 7 Octobre 2003
Gestion des composants externes: Mise à jour composant constance
Solution N°1 (non retenue): Avec validation par l’opérateur Système
Schéma relationnel plus concis, mais :• un rayon ou sous rayon peut être constitué d ’autres rayons• aucun contrôle de cohérence sur les compositions récursive