Michel Tollenaere U.M.L. partie 2 1 UML (2) Rappel sur le modèle statique : classe / objet Modèle...
-
Upload
capucine-lefevre -
Category
Documents
-
view
110 -
download
3
Transcript of Michel Tollenaere U.M.L. partie 2 1 UML (2) Rappel sur le modèle statique : classe / objet Modèle...
Michel Tollenaere U.M.L. partie 21
UML (2)UML (2)
Rappel sur le modèle statique : classe / objetModèle dynamique
• les diagrammes état - transition• les diagrammes de séquences
IHM (sous Windows, HTML)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 : Cohérence du modèle
Cours MSI-2A filière ICLUML 2 version 3.0 du 15 novembre 2013
Michel Tollenaere U.M.L. partie 22
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
Michel Tollenaere U.M.L. partie 23
Modèle Statique (rappels)Modèle Statique (rappels)
• Diagramme de classes• Diagramme d’objets
Cours MSI-2A filière ICLUML 2 version 3.0 du 15 novembre 2013
Michel Tollenaere U.M.L. partie 24
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
CalculMontant ()ajout articlemodifier ()paye
article
codedésignationprix-Urayonss-rayon
comporte> 1 .. **
Ligne-Cmd
quantité
Cours MSI-2A filière ICLUML 2 version 3.0 du 15 novembre 2013
Michel Tollenaere U.M.L. partie 25
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
Cours MSI-2A filière ICLUML 2 version 3.0 du 15 novembre 2013
Michel Tollenaere U.M.L. partie 26
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
Michel Tollenaere U.M.L. partie 27
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
CalculMontant ()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)
Michel Tollenaere U.M.L. partie 28
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
CalculMontant ()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
Faut il définir l’appartenance du sous rayon au rayon ??
Michel Tollenaere U.M.L. partie 29
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
Michel Tollenaere U.M.L. partie 210
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
Michel Tollenaere U.M.L. partie 211
Gestion des commandes client(diagramme de classes 1)
commandeclient
Passe une>1 0 .. *
nomprénomadressetéléphonecode postal
numdateadresse livraison
CalculMontant ()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
Michel Tollenaere U.M.L. partie 212
Modèle Dynamique
• Diagramme d’état-transition• Diagramme de séquences
Michel Tollenaere U.M.L. partie 213
Diagramme d’états-Transition
Description des séquences possibles d’états et d’actions par lesquels 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
Michel Tollenaere U.M.L. partie 214
Diagramme d’état-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)
Michel Tollenaere U.M.L. partie 215
Diagramme d’état-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
CalculMontant ()ajout articlemodifier ()paye
Michel Tollenaere U.M.L. partie 216
Une implémentation dans MS-Access
un attribut « Etat »
de type « liste déroulante »dont le contenu correspond aux valeurs des états du diagramme
Michel Tollenaere U.M.L. partie 217
Une meilleure implémentation dans MS-Access
Michel Tollenaere U.M.L. partie 218
Une meilleure implémentation dans MS-Access
Michel Tollenaere U.M.L. partie 219
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’état-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
Michel Tollenaere U.M.L. partie 220
Diagramme d’état-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’état-transition 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 éléments du cycle de fonctionnement
Michel Tollenaere U.M.L. partie 221
Diagramme de Séquences
Pour chaque cas d’utilisation, un ou plusieurs scénario peut être détaillé 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.
Niveau 1 : diagramme de séquences fonctionnel = = interactions acteur(s) – système dans le cadre d’un use case
Niveau 2 : diagramme de séquences technique = = interactions acteur – IHM - objets système ou objets système/ objets système dans le cadre d’un use case
Michel Tollenaere U.M.L. partie 222
Diagramme de Séquences (principes généraux)
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
Michel Tollenaere U.M.L. partie 223
Diagramme de Séquences (principes généraux)
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)
Michel Tollenaere U.M.L. partie 224
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
Michel Tollenaere U.M.L. partie 225
Diagramme de Séquences (principes généraux)
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 »)
Ligne de vie de l’objet
Michel Tollenaere U.M.L. partie 226
Diagramme de Séquences
AppelantLigne
téléphonique Appelé
décroche
tonalité
numérotation
sonnerieindication de sonnerie
décroche
allô
Exemple de Diagramme
Niveau 1
Michel Tollenaere U.M.L. partie 227
Exemple de Diagramme
Niveau 2
Michel Tollenaere U.M.L. partie 228
Exemple de Diagramme
Niveau 2
Michel Tollenaere U.M.L. partie 229
Nouvelle mission
Exemple de Diagramme
Niveau 2
Michel Tollenaere U.M.L. partie 230
Les Interfaces Homme-Machine
I.H.M.I.H.M.
• sous Windows• html• étendus
Michel Tollenaere U.M.L. partie 231
Resp de production : supervision d’un process
Ou visualisation des plannings de techniciens libres
Michel Tollenaere U.M.L. partie 232
En logistique, les interfaces carto
Michel Tollenaere U.M.L. partie 233
Modèles Statique et Dynamique
• Concept de généralisation et d’héritage• Implantation de l’héritage en relationnel• Méta-modélisation UML
Michel Tollenaere U.M.L. partie 234
Généralisation :
• Relation non réflexive : une classe ne peut dériver d’elle-même
• Relation non symétrique : si une une voiture est une sorte de véhicule, alors le véhicule ne peut pas être une sorte de voiture
• Relation transitive : si voiture est une sorte de véhicule terrestre qui elle même est une sorte de véhicule alors voiture est une sorte de véhicule
Michel Tollenaere U.M.L. partie 2
Part- number- version- status- short description- full description- release date- creation date- author- relevant property 1- relevant property 2- relevant property 3
Part and document modelling
Document- number- version- status- short description- format- release date- creation date- author- relevant property 1- relevant property 2- relevant property 3
- display- print- create
- display- print- create
•Part number should be under control when creating new part or document.
Michel Tollenaere U.M.L. partie 2
Part
- number- version- status
- short description- full description- release date- creation date- author- relevant property 1- relevant property 2
- relevant property 3
Part and document modelling
Document
- number- version- statusshort description- format- release date- creation date- author- relevant property 1- relevant property 2- relevant property 3
Purchased_Part Manufactured_Part Drawing Quality Doc Requirement
Michel Tollenaere U.M.L. partie 2
Product Structures, BOMProduct Structures, BOM
BOM with an engineering viewpoint
BOM with a manufacturing
viewpoint
Michel Tollenaere U.M.L. partie 2
•Object-Oriented Representation of Electro-Mechanical Assemblies Using UML, Sriram & al., NIST Research report n°7057, oct 2003
Michel Tollenaere U.M.L. partie 2
item
Component standard Sub-assembly
Is made of- I-number- description
- Quantity- order
2 .. *
0.. *
Class
- attribut 1- attribut 2
- méthod 1 Inheritance Association
Rôle in association
Miultiplicities
2 .. * 0.. *
- where used
- mass- mass
Where used function
Properties communication
Michel Tollenaere U.M.L. partie 2
item documentreprésents
Component Assembly
is made of
Task
Correction Change
Work-about
- author- date
- part-number- description
item
- changes in progress
Michel Tollenaere U.M.L. partie 241
Cours MSI-2A filière ICLUML 2 version 3.0 du 15 novembre 2013
Classe abstraite
Classe Abstraite
Non instanciable
Sert de Type pour manipuler les objets instances d'une (ou plusieurs) de leurs sous-classes
Propriété Abstraite définie pour tous les éléments généralisables
Propriété Abstraite définie aussi pour une opération
Michel Tollenaere U.M.L. partie 242
Implantation de l’héritage en relationnel
Sous rayonRayon
*1
Implantation
Nomemplacement
Principe : 1 classe = 1 table1 association n - m = 1 table
Table ImplantationID-implant : entierNom : stringEmplacement : string
Table RayonID-rayon : entierNom : stringEmplacement : string
Table Sous-RayonID-ss-rayon : entierNom : stringEmplacement : stringRayon : entier
• On ne factorise pas les attributs (Nom, emplacement)• Il faudra coder 3 fois les accès communs définis dans la classe « implantation »
Michel Tollenaere U.M.L. partie 243
Implantation de l ’héritage en relationnel
Sous rayonRayon
*1
Implantation
Nomemplacement
Principe : 1 table pour toutes les classes1 association n - m = 1 table
Table ImplantationID-implant : entierNom : stringEmplacement : stringType : {rayon ; ss-rayon}
Rayon : entier
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écursives
*
1Implantation
Nomemplacementtype : {rayon ; ss-rayon}
Michel Tollenaere U.M.L. partie 244
Diagramme de Classes Métier
comp. externe comp. externe
plan CIP<<rep>>
plan mécanique<<rep>>
comp. interne
CdC<<rep>>
structure
schema<<rep>>
plan CIM<<rep>>
composant
Spec de test<<rep>>
Accessoires
sous-ensembleEM
<<rep>>
comp. mécanique
caractéristiques<<rep>>
plan-mécanique<<rep>>
comp. interne
CdC<<rep>>
CIP
plan<<rep>>
conditionnement
Master<<rep>>
soft
étiquette vierge
etiquette
comp. électronique
Micro-processeurCarte electronique
notice<<rep>>
Documentation
Michel Tollenaere U.M.L. partie 245
UML cohérence des diagrammes
• Use cases• Diagramme d’état-transition• Diagramme de séquences• Diagramme de classes• Interfaces Homme/Machine.
Michel Tollenaere U.M.L. partie 246
cas d'utilisation
cas d'utilisation
cas d'utilisation
Acteur 1
Acteur 2
article
codedésignationprix-Urayonss-rayon
*
contient>1
Sous rayon
Rayonemplacementnom
Implantation
comporte
Rayon
Nomemplacement *
1
Implantation
Nomemplacement
En préparati
on
do / ajout article
état initial
état final
Confirmée
do / préparer livraison
Livrée
do / attente
paiement
Payée
Confirmati
on client
paiement
effectué
10 ans
après paiem
ent
état final
Pas de
confirmatio
n client après
1 mois
Cours MSI-2A filière ICLUML 2 version 3.0 du 15 novembre 2013