Intro cours PLM IPro3 2005/06

Download Report

Transcript Intro cours PLM IPro3 2005/06

Modélisation objet des données et
processus
UML (Unified Modelling Language)
Master 2 Mécanique et Génie Mécanique
Parcours : Intégration en Conception de Produit
Michel Tollenaere (INPG)
http://www.g-scop.fr/~tollenam/Ipro3
1
Michel Tollenaere
U.M.L. fondamentaux
UML : Unified Modelling Language
Historique : Grady Booch 1981, ADA, « Object Oriented Development »
James Rumbaugh 1991, OMT, JOOP (Journal of OO programming)
Ivar Jacobson, OOSE
sept 97, UML 1.1
Références : http://www.omg.org
http://uml.free.fr/ site en français
en France Pierre Alain Muller (U-Mulhouse) et Valtech
http://uml.developpez.com/
Outils :
StarUML 5.0
Objecteering http://www.objecteering.com/us/produits_pe.php
Rational ROSE , http://www.rational.com
plus de 30 outils de modélisation et de CASE
(Computer Aided Software Engineering)
2
Michel Tollenaere
U.M.L. fondamentaux
objet 1
Système
(VEGA2)
Architecture
: acteur (intéragissant
avec VEGA2)
lien exprimant que "objet 2 est une sorte de objet 1"
message
lien exprimant que "objet 2
a une relation avec objet 4"
objet 2
message
message
objet 4
message
lien exprimant que
"objet 2 est
composé de objet 3"
UML
• modelling information
systems
• at conceptual level
• at logical level
Technologie
objet 3
Constituant
PERSONNE
n-uplet1
n-uplet2
n-uplet3
n-uplet4
Num_securite_sociale
1 76 02 99 167 098
2 76 04 95 165 008
1 78 12 38 122 4332
1 68 02 99 5649 876
STAGE
n-uplet1
n-uplet2
n-uplet3
n-uplet4
n-uplet5
Num_securite_sociale
1 76 02 99 167 098
2 76 04 95 165 008
1 68 02 99 5649 876
2 76 04 95 165 008
1 76 02 99 167 098
Nom
Dupont
Durand
Faure
Dumontier
propriétés
Constituant
Constituant
Prenom
Marcel
Elisabeth
Bertrand
Michel
Constituant
Code_postal
41500
31900
38700
75016
Telephone
06 08 78 65 88
02 99 167 098
04 38 56 45 32
01 55 45 34 87
propriétés
D_type_stageTitre
Inge_Adjoint Définition d'une politique Qualité
Inge_Adjoint Mise en place d'un SI pour la maintenance
EDT
Reconfiguration des achats
EDT
Reconfiguration des achats
PFE
Mise en place d'un ERP
3
Michel Tollenaere
U.M.L. fondamentaux
Creating the UML
UML 2.2
UML 2.0
2009
2005
UML 1.3
OMG Acceptance, Nov 1997
UML 1.1
Final submission to OMG, Sep ‘97
public
feedback
First submission to OMG, Jan ´97
UML 1.0
UML partners
UML 0.9
Web - June ´96
Unified Method 0.8
OOPSLA ´95
Other methods
Booch method
OMT
OOSE
4
Michel Tollenaere
U.M.L. fondamentaux
Contributions to the UML
Harel
Meyer
Statecharts
Before and after
conditions
Gamma, et al
Frameworks and patterns,
HP Fusion
Booch
Operation descriptions and
message numbering
Booch method
Embley
Rumbaugh
Singleton classes and
high-level view
OMT
Jacobson
Wirfs-Brock
OOSE
Responsibilities
Shlaer - Mellor
Object lifecycles
Odell
Classification
5
Michel Tollenaere
U.M.L. fondamentaux
Axes de modélisation d ’un système
Statique (ce que le système EST)
• diagramme de classes
• diagramme d’objets
• diagramme de composants
• diagramme de déploiement
Dynamique
(comment le système
EVOLUE)
• diagramme de séquence
Fonctionnel
(ce que le système FAIT)
• diagramme de collaboration
• diagramme de cas d’utilisation
• diagramme d’états-transitions
• diagramme de collaboration
• diagramme d’activités
6
Michel Tollenaere
U.M.L. fondamentaux
Niveaux d’abstraction d’un
SI
En UML, les mêmes modèles peuvent être utilisés à différents
niveaux d’abstraction du plus conceptuel à l’implantation.
On peut donc appliquer des mécanismes de transformation
continue.
•
•
•
•
Conceptuel
organisationnel
logique
physique
7
Michel Tollenaere
U.M.L. fondamentaux
Les 9 diagrammes d’UML 1.1
(13 diag en 2.0)
• diagramme de cas d’utilisation
• diagramme de classes
• diagramme de séquence
• diagramme de collaboration
• diagramme d’objets
• diagramme d’états-transitions
• diagramme d’activités (nous utiliserons IDEF 0)
• diagramme de composants
• diagramme de déploiement
8
Michel Tollenaere
U.M.L. fondamentaux
Description UML des diagrammes UML
Diagramme
Ceci est
un commentaire
Cas d ’utilisation
Collaboration
Classes
Composants
Séquence
Etats Transitions
Déploiement
Activité
Objets
9
Michel Tollenaere
U.M.L. fondamentaux
Exemples : Quelques diagrammes
Cas d’utilisation
une fonctionnalité attendue du
système par les différents acteurs.
Système
(VEGA2)
: acteur (intéragissant
avec VEGA2)
message
message
message
cas d'utilisation
Diagramme de Classes
message
objet 1
Diagramme de séquence
lien exprimant que "objet 2 est une sorte de objet 1"
lien exprimant que "objet 2
a une relation avec objet 4"
objet 2
Chaque cas d'utilisation apparaît comme un scénario,
décrit par un ou plusieurs diagrammes de séquence.
objet 4
lien exprimant que
"objet 2 est
composé de objet 3"
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.
objet 3
10
Michel Tollenaere
U.M.L. fondamentaux
Modèle Fonctionnel
• Use Cases = cas d’utilisation
• diagramme de collaboration
11
Michel Tollenaere
U.M.L. fondamentaux
Diagramme de cas
d’utilisation
Représente les fonctions du système de point de vue de l ’utilisateur.
Ceci est un cas
d’utilisation
relation
Acteur
Ceci est
un acteur
Cas d ’utilisation
Ceci est
une relation
Eléments du diagramme :
• acteur : un rôle joué par une personne, un service, etc. qui interagit avec
le système étudié
• cas d’utilisation : manière spécifique d ’utiliser un système. Image d’une
fonctionnalité attendue, déclenchée en réponse à la stimulation d’un acteur
• relations entre cas d’utilisations et acteurs
12
Michel Tollenaere
U.M.L. fondamentaux
Relations entre cas d ’utilisation
Trois types de relations :
• relation de communication : entre un acteur et un cas d’utilisation. Exprime l’échange
d’informations entre l’acteur et le système.
Déclencher virement
client
• relation d’utilisation : entre deux cas d’utilisation. Exprime que le cas d’utilisation source
comprend également le comportement décrit par le cas d’utilisation destinataire (utile pour la
factorisation de cas).
« use »
Déclencher
virement
identification
• relation d’extension : entre deux cas d’utilisation. Exprime que le cas d’utilisation source étend
le comportement du cas d’utilisation cible (utile pour la spécialisation de cas).
« extend »
Virement par
Internet
Michel Tollenaere
U.M.L. fondamentaux
Déclencher
virement
13
Source http://uml.free.fr/
14
Michel Tollenaere
U.M.L. fondamentaux
Acteurs : diagramme de cas d’utilisation
Acteur humain : il s’agit ici d’un rôle et non d’un acteur identifié.
Acteur non humain : exemple un logiciel de comptabilité ou d’ERP avec lequel
le système interagit
Conçoit les schémas
et nomenclatures
Exemple
Développeur
Récupère les
schémas
Gestion des schémas
Récupère les
contraintes
Définit les contraintes
mécaniques
Gestion des contraintes
Responsable
BE
Gère la création
et les révisions
des dossiers variantes
Gestion des jobs
<<dépend>>
Responsable
CFAO
Gère la création et
les révisions d ’un job
Gestion des dossiers
15
Michel Tollenaere
U.M.L. fondamentaux
Diagramme de Collaboration
Interactions entre objets du système avec un accent particulier sur la structure
spatiale statique des objets (contexte des objets). Les messages sont numérotés pour
indiquer l’ordre des envois.
Permet de situer le contexte du système.
Message : Simple, Asynchrone, Synchrone, Minuté
: ascenseur
Objet 1
1 : message
1 : monter
2 : message
: cabine
4 : message
Objet 2
3 : fermer
5 : message
: porte
3 : message
Objet 3
2 : allumer
: lumière
16
Michel Tollenaere
U.M.L. fondamentaux
Modèle Statique
• diagramme d ’objets
• Diagramme de classes
17
Michel Tollenaere
U.M.L. fondamentaux
Objets et classes
TaVoiture : Voiture
AutreVoiture
: Voiture
Marque
= Renault
MaVoiture
Voiture
Marque
= Renault
Modèle
=: Megane
Objet : une entité concrète avec une identité
bien définie qui encapsule un état et un
comportement. L’état est représenté par
des valeurs d’attribut et des
associations, le comportement par des
méthodes.
Marque
= Immatriculation
Renault
Modèle
= Megane = 648DBX38
Modèle
= 1Megane
re immatriculation
Immatriculation
= 648DBX38
= 16 sept 2009
Immatriculation
= 648DBX38
1re immatriculation
16 000
sept 2007
Kilométrage
==125
1re immatriculation
16 sept
Kilométrage
==125
000 1997
Kilométrage-annuel
? ()
Kilométrage
= 125 000 ? ()
Kilométrage-annuel
Kilométrage-annuel ? ()
Un objet est une instance d’une classe.
Classe : une description d’un ensemble d’objets
qui partagent les mêmes attributs,
opérations, méthodes, relations et
contraintes.
Une classe peut posséder des attributs
ou des méthodes «de classe».
Voiture
Marque : chaîne
Modèle : chaîne
Immatriculation : chaîne (8)
1re immatriculation : date
Kilométrage : entier
Kilométrage-annuel ? ( )
Kilometrage_annuel_moyen ( )
Michel Tollenaere
U.M.L. fondamentaux
18
Liens diagramme d’objets -/- diagramme de
classes
Structure statique d’un système, en termes d’objets et de liens entre ces objets.
Ces objets et ces liens possèdent des attributs qui possèdent des valeurs.
Un objet est une instance de classe et un lien est une instance d’association.
Nom de l’objet : Classe
Attributs = valeurs
Etienne : personne
Personne
âge : entier
collaborateur
*
patron 1
âge = 35
patron
emploie>
collaborateur
Jean-Luc : personne
âge = 25
Diagramme de classes
Diagramme d ’objets
19
Michel Tollenaere
U.M.L. fondamentaux
Diagramme de classes
Structure statique d’un système, en termes de classes et de relations entre ces classes.
Voiture
Couleur
Nom de classe
Attributs
exemple :
Opérations ()
Cylindrée
Vitesse max
Démarrer ()
Accélérer ()
Syntaxe:
Freiner ()
• nom_attribut : type_attribut = valeur initiale
• nom_opération (nom_argument : type_argument = valeur_par_défaut, …) : type_retourné
Visibilité : trois niveaux de visibilité pour les attributs et les opérations:
• public (+) : élément visible à tous les clients de la classe
• protégé ( #) : élément visible aux sous-classes de la classe
• privé (-) : élément visible à la classe seule
20
Michel Tollenaere
U.M.L. fondamentaux
Nommage des associations
constructeur
Construire>
fabricant
personne
personne
produit
<construit par
<Transporte
véhicule
conducteur
Conduit>
véhicule
propriétaire
Possède>
véhicule
employé
<Emploie employeur
passager
véhicule
directeur
Dirige>
actionnaire
Possède>
véhicule
entreprise
société
société
21
Michel Tollenaere
U.M.L. fondamentaux
Multiplicité des associations
1
Un et un seul (obligatoire)
0 .. 1
Zéro ou un (optionnel)
m .. n
De m à n (entiers)
* ou 0 .. *
1 .. *
Personne
quelconque
Au moins 1
0..*
Employeur
Employé
1
Société
22
Michel Tollenaere
U.M.L. fondamentaux
Associations
Agrégation:
• Association transitive : si voiture est composée de moteur et si moteur est composé de
courroie alors voiture est composée de courroie
• Association non systémique : si voiture est composée de moteur, moteur ne peut pas
être composé de voiture
• Association qui peut être réflexive : exemple, une fonction peut être composée d’autres
fonctions, un sous ensemble d’autres sous ensembles.
Rôle et multiplicité :
• Une classe a un rôle dans une association.
• Les rôles portent une information de multiplicité précisant le nombre d ’associations
auquel une instance d ’objet peut être associée. Les multiplicités les plus courantes sont :
1 / 0..1 / m..n / * /0..* / 1..*
23
Michel Tollenaere
U.M.L. fondamentaux
Classe-association
Permet de «qualifier» plus finement une association
Véhicule
+NumImmatriculation
+ChargeUtile
+PermisRequis
Commande
+Num-commande
+date
+PoidsTotal
affrète
Véhicule
*
+NumImmatriculation
+ChargeUtile
traite
affrète
1..*
0..1
SociétéTransport
+NumSIRET
+NomCommercial
+TypeTransport
0..1
SociétéTransport
+NumSIRET
+NomCommercial
+TypeTransport
0..*
1..*
PeriodeConduite
0..1
+t0
+tf
+kilometrage
conduit
0..1
0..*
conduit
1...2
Chauffeur
+Nom
+Prénom
+Adresse
+TypePermis
Chauffeur
+Nom
+Prénom
+Adresse
+TypePermis
+KilometrageAnnée()
24
Michel Tollenaere
U.M.L. fondamentaux
Placement des attributs et des associations
Etudiant
1
0..*
Diplôme
Mention
Réalise >
0..*
0..*
Travail
1
Note
- valeur
0..1
Chambre
Numéro
25
Michel Tollenaere
U.M.L. fondamentaux
Contraintes
personne
Est_titulaire>
1
0 .. *
compte
{Ordonnée}
0 .. *
personne
Parent d ’élève
classe
{Sous ensemble}
0 .. *
Délégués
0 .. *
personne
Enseignants
université
{Ou-exclusif}
0 .. *
Etudiants
26
Michel Tollenaere
U.M.L. fondamentaux
Agrégation
Livre
Chapitre
1 .. *
1
{Ordonnée}
{Ordonnée}
1 .. *
Paragraphe
27
Michel Tollenaere
U.M.L. fondamentaux
Composition
Homme
1
1
Tête
La composition traduit une dépendance existentielle forte.
28
Michel Tollenaere
U.M.L. fondamentaux
Exemple de diagramme de classes
Problème
Titre_Problème
Objectif
Delai
Prix
NiveauPriorite
FicheEtude
Conclusion
Problème()
Tes_infos?()
Nou_Paramètres()
Créer_Etude()
Projet
NomProjet
NuméroPDM
DateDebutProjet
1..*
Induit 1
1..*
Projet()
Tes_infos?()
Nouv_Paramètres()
Créer_Problème()
1..*
LesProblèmes
1
Outil Simulation
EstResoluPar
0..*
Etude
0..1
ComplétéePar
0..*
Titre_Etude
NomPièce
ButEtude
TypeEtude
Conclusion
0..1
Suivant
0..*
Etude()
Tes_infos()
Nouv_Paramètres()
Créer_Cycle()
Ajouter_Conclusion()
Michel Tollenaere
LesProjets
U.M.L. fondamentaux
1..*
LesEtudes
Créer_Projet()
Modifier_Projet()
ModifierParamètre_Projet()
Créer_Problème()
Modifier_Problème()
ModifierParamètre_Problème()
Créer_Etude()
Modifier_Etude()
ModifierParamètre_Etude()
FaireAppelAUneAncienne_Etude()
Conclure_Etude()
Créer_Cycle()
Modifier_Cycle()
ModifierPramètre_Cycle()
Rajouter_Entité()
Conclure_Cycle()
29
Modèle Statique
Passage d’un diagramme de classe UML
à un modèle relationnel pour SGBD
30
Michel Tollenaere
U.M.L. fondamentaux
Règle 0 & 1: attribut et classe
Classe
produit
fournisseur
Réf-produit
Libellé-p
Prix-vente-p
Code-fournisseur
Adresse
Téléphone
Relation / Table
Produit (Réf-produit, Libellé-p, Prix-vente-p)
Fournisseur (Code-fournisseur, Adresse, Téléphone)
31
Michel Tollenaere
U.M.L. fondamentaux
Règle 2 : relation de multiplicité (1)
Classe
produit
Réf-produit
Libellé-p
Prix-vente-p
< fournir
fournisseur
1 Code-fournisseur
Adresse
Téléphone
Remise
- valeur
Relation / Table
Produit (Réf-produit, Libellé-p, Prix-vente-p, Code-fournisseur, remise)
Fournisseur (Code-fournisseur, Adresse, Téléphone)
32
Michel Tollenaere
U.M.L. fondamentaux
Règle 3 : relation de multiplicité (0-1)
Classe
produit
Réf-produit
Libellé-p
Prix-vente-p
fournisseur
*
< fournir
0-1 Code-fournisseur
Adresse
Téléphone
Remise
- valeur
Relation / Table
Produit (Réf-produit, Libellé-p, Prix-vente-p, remise, Code-fournisseur)
Fournisseur (Code-fournisseur, Adresse, Téléphone)
33
Michel Tollenaere
U.M.L. fondamentaux
Règle 4 : relation de multiplicité (0..*) (1..*)
Classe
produit
Réf-produit
Libellé-p
Prix-vente-p
fournisseur
< fournir 0..* Code-fournisseur
ou Adresse
1..* Téléphone
Remise
- valeur
Relation / Table
Produit (Réf-produit, Libellé-p, Prix-vente-p)
Fournisseur (Code-fournisseur, Adresse, Téléphone)
Fournir (Réf-produit, Code-fournisseur, remise)
34
Michel Tollenaere
U.M.L. fondamentaux
Règle 5 : relation réflexive orientée
Relation / Table
Père (nom-fils, nom-père)
Classe
Personne
0..*
nom
1
père de >
35
Michel Tollenaere
U.M.L. fondamentaux
Règle 6 relation réflexive symétrique
Relation / Table
Personne (Nom)
Frère (nom, nom)
Classe
Personne
nom
Attention, la relation étant
transitive, des traitements devront
être associés au modèle.
frère de
36
Michel Tollenaere
U.M.L. fondamentaux
Modèle Dynamique
• Diagramme d’état transition
• Diagramme de séquences
37
Michel Tollenaere
U.M.L. fondamentaux
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
•
é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)
Etat A
….
état initial
action
Evénement [garde] / Action
do:opération
Etat B
….
état final
38
Michel Tollenaere
U.M.L. fondamentaux
Diagramme d ’états-Transition
Exemple
En activité
do: travailler
Perte d ’emploi
Personne
age
Plus de 60 ans
1..*
0..1
Société
A la retraite
Embauche
Au chômage
Diagramme de classes
Plus de 60 ans
Diagramme d ’états-transitions
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é.
39
Michel Tollenaere
U.M.L. fondamentaux
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.
40
Michel Tollenaere
U.M.L. fondamentaux
Diagramme de Séquences
Objet 1
Objet 2
1 : [condition A] message
2 : message synchrone
3 : message de création
Evénement /
Communication
entre objets
5 : message
Objet 3
4 : message
6 : [condition B] message
7 : message réflexif
Période
d’activité
de l’objet
9 : message asynchrone
8 : message de destruction
41
Michel Tollenaere
U.M.L. fondamentaux
Diagramme de Séquences
Cas particuliers
• 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)
• 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
• 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 »)
Michel Tollenaere
U.M.L. fondamentaux
42
Diagramme de Séquences
Exemple
Ligne
téléphonique
Appelant
Appelé
décroche
tonalité
numérotation
indication de sonnerie
sonnerie
décroche
allô
43
Michel Tollenaere
U.M.L. fondamentaux
Gestion des composants externes: Création composant constance
système
: BE
demande création
vérifier droit utilisateur
afficher dialogue de création [droit = OK]
Saisie code composant - Valider
affichage infos relatifs au composant [composant existe]
affichage dialogue sans infos [composant inexistant]
rechercher infos dans
fichier export de
constance
fabricant
réf-fabricant
désignation
saisie manuelle infos relatifs au composant
valider création
création du composant
dans VEGA
44
Michel Tollenaere
U.M.L. fondamentaux
Gestion des composants externes: Mise à jour composant constance
Solution N°1 (non retenue): Avec validation par l’opérateur
fichier export
de constance
: BE
Système
arrivée (mise à disposition)
rechercher les composants
rechercher composants
constance dans VEGA non
marqués
fournir composants (désignation /
fabricants / réf_fabricant)
comparer fichier par
rapport à composants
marquer composants modifiés
informer de l'arrivée de la collection
créer collection des
composants modifiés
demander collection
afficher collection
sélectionner composants
valider modification
mise à jour des composants
sélectionnés dans VEGA
démarquer les composants
sélectionnés
45
Michel Tollenaere
U.M.L. fondamentaux
Gestion des composants externes: Mise à jour composant constance
Solution N°2 (retenue): avec validation par l’opérateur
fichier export
de constance
Système
arrivée (mise à disposition)
rechercher les composants
dans fichier d'export
rechercher dans VEGA les
composants constance
fournir composants (désignation /
fabricants / réf_fabricant)
comparer fichier par rapport aux composants
constance dans VEGA [ si composant
present dans fichier constance]
mise à jour
composants dans
fabricant
désignation
réf-fabricant
enregistrer les modifications
dans un fichier Log
46
Michel Tollenaere
U.M.L. fondamentaux
Modèle Organisationnel de Traitements (MOT) de
Merise
•
•
•
•
Enchaînement des opérations ou taches
condition d’enchaînement
acteur affecté (qui ?)
période de traitement (quand ?)
47
Michel Tollenaere
U.M.L. fondamentaux
48
Michel Tollenaere
U.M.L. fondamentaux
49
Michel Tollenaere
U.M.L. fondamentaux
Diagramme de Classes Métier
<<rep>>
CdC
structure
<<rep>>
schema
<<rep>>
Spec de test
<<rep>>
plan CIM
<<rep>>
EM
sous-ensemble
Carte electronique
Micro-processeur
etiquette
composant
comp. mécanique
étiquette vierge
Accessoires
comp. électronique
CIP
Documentation
comp. interne
<<rep>>
plan mécanique
comp. externe
comp. externe
soft
comp. interne
conditionnement
<<rep>>
CdC
<<rep>>
plan CIP
<<rep>>
plan-mécanique
<<rep>>
notice
<<rep>>
caractéristiques
<<rep>>
plan
<<rep>>
Master
50
Michel Tollenaere
U.M.L. fondamentaux
Modélisation de S.I.
Étude de cas
Compagnie aérienne : CRM
ENSGI – MSI 2ème année
Michel Tollenaere
http://gilco.inpg.fr/~tollenaere/msi/MSI2A-etude-cas.ppt
Inspiré de
UML par la pratique
2ème Edition
Pascal Roque
Groupe Eyrolles, 2003
ISBN : 2-212-11246-7
51
Michel Tollenaere
U.M.L. fondamentaux
ÉTUDE D’UN SYSTÈME DE GESTION DE LA RELATION CLIENT POUR UN
RESEAU D’AGENCES DE VOYAGES
Un réseau d’agences de voyages désire améliorer son système d’information pour la relation avec sa clientèle. Il a été
convenu de commencer ce travail par la gestion de la composante « transport aérien ».
Les fonctions principales attendues du système sont :
-- permettre une sélection dans l’offre de vols et de places disponibles.
-- assurer les réservations pour les passagers.
-- permettre aux compagnies aériennes partenaires d’ouvrir ou de fermer des vols
-- mettre en place des tableaux de bord permettant de mieux connaître les clients.
Les principaux utilisateurs visés par le système sont :
-- les hôtesses dans les agences qui sont en contact avec les clients.
-- les opérateurs de guichets dans les aéroports qui délivrent les cartes d’embarquement aux passagers
-- les responsables du réseau d’agences qui désirent disposer de tableaux de bord sur l’activité
-- les clients et les passagers via Internet
-- les compagnies aériennes partenaires
Les interviews des experts métier ont permis de résumer leur connaissance du domaine sous la forme des phrases suivantes :
1. Des compagnies aériennes proposent différents vols.
2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie.
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
6. Un vol a un aéroport de départ et un aéroport d’arrivée.
7. Un vol a un jour et une heure de départ, et un jour et une heure d’arrivée.
8. Un vol peut comporter des escales dans des aéroports.
9. Une escale a une heure d’arrivée et une heure de départ.
10. Chaque aéroport dessert une ou plusieurs villes.
52
Michel Tollenaere
U.M.L. fondamentaux
Fonctions et acteurs : Cas d’utilisation
« extend »
réserver
Réserver par
Internet
« extend »
Hôtesse d’agence
Consulter
disponibilités
Guichet aéroport
Client et
passager
Consulter
disponibilités par
Internet
Délivrer carte
embarquement
Consulte tableaux
de bord
Compagnie
Ouvrir et fermer
des vols
Fonctions : permettre une sélection dans l’offre de vols et
de places disponibles.
-- assurer les réservations pour les passagers.
-- permettre aux compagnies aériennes partenaires d’ouvrir
ou de fermer des vols
-- mettre en place des tableaux de bord permettant de
mieux connaître les clients.
Michel Tollenaere
Responsable
agence
U.M.L. fondamentaux
Les principaux utilisateurs visés par le système sont :
-- les hôtesses dans les agences qui sont en contact avec les clients.
-- les opérateurs de guichets dans les aéroports qui délivrent les
cartes d’embarquement aux passagers
-- les responsables du réseau d’agences qui désirent disposer de
tableaux de bord sur l’activité
-- les clients et les passagers via Internet
-- les compagnies aériennes partenaires
53
Modèle statique : classes et objets
Compagnie
Vol
numéro
nom
1.. ?
propose>
1 .. *
1. Des compagnies aériennes proposent différents vols.
54
Michel Tollenaere
U.M.L. fondamentaux
Modèle statique : classes et objets
Compagnie
Vol
nom
1
propose>
1 .. *
Numéro
État : (ouvert, fermé)
affréteur
2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie.
55
Michel Tollenaere
U.M.L. fondamentaux
Diagramme d’état – transition
Diagramme de classes
Modèle statique : classes, états - transitions
Compagnie
Vol
nom
1
propose>
1 .. *
affréteur
Numéro
État : (ouvert, fermé)
OuvrirRéservation ()
FermerRéservation ()
Diagramme d’état – transition de la classe « Vol »
Fermeture par
compagnie
état
initial
Fermé
Ouvert
Ouverture par
compagnie
état
final
2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie.
56
Michel Tollenaere
U.M.L. fondamentaux
Diagramme de collaboration
Diagramme de classes
Modèle dynamique : diagramme de collaboration
Compagnie
Vol
Numéro
nom
1
1 .. *
propose>
affréteur
1 : ouvrirRéservation ()
AirFrance : Compagnie
ouvrirRéservation ()
fermerRéservation ()
AF506 : Vol
2 : fermerRéservation ()
AF519 : Vol
3 : ouvrirRéservation ()
AF714 : Vol
57
Michel Tollenaere
U.M.L. fondamentaux
Continuons d’affiner la classe « Vol »
6. Un vol a un aéroport de départ et un aéroport d’arrivée.
7. Un vol a un jour et une heure de départ, et un jour et une heure d’arrivée.
8. Un vol peut comporter des escales dans des aéroports.
9. Une escale a une heure d’arrivée et une heure de départ.
10. Chaque aéroport dessert une ou plusieurs villes.
Vol
Compagnie
nom
1
propose>
affréteur
numéro
dateDépart
1 .. * heureDépart
dateArrivée
heureArrivée
ouvrirRéservation ()
fermerRéservation ()
Diagramme d’état – transition de la classe « Vol »
Fermeture par
compagnie
état
initial
Ouvert
Ouverture par
compagnie
Fermé
état final
58
Michel Tollenaere
U.M.L. fondamentaux
Les aéroports
6. Un vol a un aéroport de départ et un aéroport d’arrivée.
Vol
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
aeroportdépart
aeroportArrivée
Aeroport
nom
pays
1 .. *
utilise>
2
{ordered}
ouvrirRéservation ()
fermerRéservation ()
59
Michel Tollenaere
U.M.L. fondamentaux
Les aéroports (suite)
6. Un vol a un aéroport de départ et un aéroport d’arrivée.
Aeroport
nom
pays
Vol
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
1 .. *
1
Aeroportdépart
AeroportArrivée
1 .. *
ouvrirRéservation ()
fermerRéservation ()
1
60
Michel Tollenaere
U.M.L. fondamentaux
Les aéroports (fin)
6. Un vol a un aéroport de départ et un aéroport d’arrivée.
Vol
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
Aeroport
1 .. *
départ>
1
1 .. *
arrivée>
1
nom
pays
ouvrirRéservation ()
fermerRéservation ()
61
Michel Tollenaere
U.M.L. fondamentaux
Les villes
10. Chaque aéroport dessert une ou plusieurs villes.
Vol
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
Aeroport
1 .. * départ>
1
Ville
nom
pays
nom
pays
dessert>
?
1 .. * arrivée>
1.. *
1
ouvrirRéservation ()
fermerRéservation ()
62
Michel Tollenaere
U.M.L. fondamentaux
Association « dessert » (multiplicité)
10. Chaque aéroport dessert une ou plusieurs villes.
Aeroport
Ville
nom
pays
nom
pays
dessert>
*
Charles de Gaulle : Aeroport
1.. *
Paris :Ville
Orly : Aeroport
Metz :Ville
Passage par les
diagrammes d’objets
Metz-nancy-lorraine : Aeroport
Nancy :Ville
63
Michel Tollenaere
U.M.L. fondamentaux
ou…. factorisation des attributs
Lieu-geo
nom
pays
decalage-horaire
Affiche(carte)
Aeroport
Ville
dessert>
Affiche(carte)
*
1.. *
Affiche(carte)
64
Michel Tollenaere
U.M.L. fondamentaux
Les escales
Vol
Aeroport
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
0 .. *
départ>
1
0 .. *
arrivée>
1
ouvrirRéservation ()
fermerRéservation ()
0 .. *
faitEscale>
nom
pays
*
{ordered}
InfosEscale
heureDépart
heureArrivée
65
Michel Tollenaere
U.M.L. fondamentaux
Récapitulons (1)
Vol
Compagnie
nom
numéro
dateDépart
heureDépart
1 propose> dateArrivée
affréteur 1 .. * heureArrivée
Aeroport
0 .. * départ>
1
0 .. *arrivée>
Ville
nom
pays
dessert>
1.. *
1
nom
pays
*
faitEscale>
*
ouvrirRéservation () 0 .. *
{ordered}
fermerRéservation ()
InfosEscale
heureDépart
heureArrivée
Diagramme d’état – transition de la classe « Vol »
+
Fermeture par
compagnie
état
initial
Ouvert
Ouverture par
compagnie
Fermé
état final
66
Michel Tollenaere
U.M.L. fondamentaux
Les réservations
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents.
4. Une réservation concerne un seul vol et un seul passager.
5. Une réservation peut être annulée ou confirmée.
Réservation
0..*
annuler ()
confirmer ()
concerne>
Vol
numéro
dateDépart
heureDépart
dateArrivée
1 heureArrivée
capacité
ouvrirRéservation ()
fermerRéservation ()
1
Passager
nom
prénom
téléphone
e-mail
num-carte
nb-pts
créditer-pts (res)
Michel Tollenaere
U.M.L. fondamentaux
67
Les réservations
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents.
Réservation
Client
date
0..*
effectue>
1
totalfacturé ()
0..*
annuler ()
confirmer ()
concerne>
nom
téléphone
e-mail
Fax
adresse
0..*
concerne>
Vol
numéro
dateDépart
heureDépart
dateArrivée
1 heureArrivée
capacité
ouvrirRéservation ()
fermerRéservation ()
1
Passager
nom
prénom
téléphone
e-mail
num-carte
nb-pts
créditer-pts (res)
Michel Tollenaere
U.M.L. fondamentaux
68
Lieu-geo
Récapitulons (2)
nom
pays
decalage-horaire
Compagnie
Vol
1
nom
affréteur
1 .. *
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
capacité
totalfacturé ()
date
1
0..*
Aeroport
Ville
1
0 .. *
*
faitEscale>
1.. *
*
{ordered}
0..*
effectue>
InfosEscale
annuler ()
confirmer ()
concerne>
nom
téléphone
e-mail
Fax
adresse
1
dessert>
ouvrirRéservation ()
fermerRéservation ()
Réservation
arrivée>
0 .. *
1
Client
départ>
0 .. *
heureDépart
heureArrivée
0..*
1
Passager
nom
prénom
téléphone
e-mail
num-carte
nb-pts
créditer-pts (res)
Michel Tollenaere
U.M.L. fondamentaux
Diagramme d’état – transition de la classe « Vol »
Fermeture par
compagnie
+
Fermé
Ouvert
état initial
Ouverture par
compagnie
état final
69
Dynamique de la réservation
Guichet aéroport
Vol
Délivrer carte
embarquement
Diagramme de séquences
1
ouvrirRéservation ()
fermerRéservation ()
Réservation
Liste passagers
date
Réservation
Vol
Passager
Passager
Guichet aéroport
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
capacité
0..*
annuler ()
confirmer ()
Passager-id
0..*
Présente identité
Liste passagers
(n° vol)
passagers
(etat =
confirmé)
Sélectionne
réservation
Si {état = attente
paiement ; Demande
paiement}
Passager-id
()
1
Passager
nom
prénom
téléphone
e-mail
num-carte
nb-pts
créditer-pts (res)
Passer (état = embarqué)
Délivrer carte
70
Michel Tollenaere
U.M.L. fondamentaux
Vol
Dynamique de la réservation
Etat – transition de « réservation »
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
capacité
1
Liste passagers ()
date
Réservation
Vol
Passager
ouvrirRéservation ()
fermerRéservation ()
Réservation
0..*
annuler ()
confirmer ()
Passager
Guichet aéroport
Passager-id
Présente identité
Liste passagers (n°
vol)
0..*
passagers
(etat =
confirmé)
Passager-id
()
1
Sélectionne
réservation
Passager
Si {état = attente
paiement ; Demande
paiement}
nom
prénom
téléphone
e-mail
num-carte
nb-pts
Passer (état = embarqué)
Délivrer carte
créditer-pts (res)
Diagramme d’état – transition de la classe « Réservation »
par
compagnie
Demandée
Confirmée
état initial
par
client
Payée
par
aéroport embarquée
état final
Jvol - 8
Annulée
71
Michel Tollenaere
U.M.L. fondamentaux
72
Michel Tollenaere
U.M.L. fondamentaux
Implémentation dans MSAccess
Notez les pertes sémantiques sur :
• les états – transitions,
• les associations {ordered},
• l’héritage ville-aéroport ……. etc
Michel Tollenaere
U.M.L. fondamentaux
73
Analyse de la classe « Vol »
•
•
•
•
comporte de nombreuses responsabilités
est elle en troisième forme normale ?
la clef primaire « Num-vol » est elle correcte ?
parle-t-on des vols « réguliers » ou affrétés ?
Compagnie
Vol
1
nom
affréteur
1 .. *
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
capacité
0 .. *
0 .. *
1
effectue>
1
totalfacturé ()
0..*
date
annuler ()
confirmer ()
Domaine des réservations
1
Michel Tollenaere
arrivée>
1
Aeroport
1
*
faitEscale>
*
{ordered}
0..*
concerne>
nom
téléphone
e-mail
Fax
adresse
ouvrirRéservation () 0 .. *
fermerRéservation ()
Réservation
Client
départ>
Passager
U.M.L. fondamentaux
InfosEscale
heureDépart
heureArrivée
Domaine de l’offre de vols
74
Analyse de la classe « Vol »
• Les éléments de l’offre sont plus stables que ceux des réservations
Vol-générique
Compagnie
1
nom
numéro
affréteur
0 .. *
heureDépart
1 .. *
heureArrivée
0 .. *
départ>
arrivée>
1
1
*
capacité
0 .. *
Domaine des réservations
1
Réservation
om
léphone
mail
ax
dresse
effectue>
1
talfacturé ()
0..*
date
1
Passager
Michel Tollenaere
*
{ordered}
Vol
1
dateDépart
InfosEscale
heureDépart
heureArrivée
dateArrivée
0..*
0..*
annuler ()
confirmer ()
faitEscale>
ouvrirRéservation ()
fermerRéservation ()
Domaine de l’offre de vols
concerne>
Client
Aeroport
nom
prénom
== > les responsabilités sont mieux établies
U.M.L. fondamentaux
75
Implémentation dans MSAccess
Reste à traiter l’aspect dynamique :
• les requètes,
• les formulaires et interfaces,
• ……. etc
Michel Tollenaere
U.M.L. fondamentaux
76
Vol
Traitement de l’embarquement
1
Réservatio
n
date
0..*
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
capacité
ouvrirRéservation ()
fermerRéservation ()
Liste passagers ()
annuler ()
confirmer ()
Réservation
Vol
Passager
Passager-id
Passager
Guichet aéroport
0..*
Présente identité
1
Liste passagers (n°
vol)
passagers
(etat =
confirmé)
Passager
nom
prénom
téléphone
e-mail
num-carte
nb-pts
créditer-pts (res)
Passager-id
()
Sélectionne
réservation
Diagramme d’état – transition
»
pa
par de la classe « Réservation
Si {état = attente
paiement ; Demande
paiement}
Passer (état = embarqué)
Délivrer carte
état
initial
Deman
dée
compag
nie
Jvol - 8
Confir
mée
r
cli
ent
Payée
par
aéro
port
embar
quée
état
final
Annulé
e
77
Michel Tollenaere
U.M.L. fondamentaux
Vol
Traitement de l’embarquement
1
Réservatio
n
date
0..*
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
capacité
ouvrirRéservation ()
fermerRéservation ()
Liste passagers ()
annuler ()
confirmer ()
Réservation
Vol
Passager
Passager-id
Passager
Guichet aéroport
0..*
Présente identité
1
Liste passagers (n°
vol)
passagers
(etat =
confirmé)
Passager
nom
prénom
téléphone
e-mail
num-carte
nb-pts
créditer-pts (res)
Passager-id
()
Sélectionne
réservation
Diagramme d’état – transition
»
pa
par de la classe « Réservation
Si {état = attente
paiement ; Demande
paiement}
Passer (état = embarqué)
Délivrer carte
état
initial
Deman
dée
compag
nie
Jvol - 8
Confir
mée
r
cli
ent
Payée
par
aéro
port
embar
quée
état
final
Annulé
e
78
Michel Tollenaere
U.M.L. fondamentaux
Guichet aéroport
Délivrer carte
embarquement
79
Michel Tollenaere
U.M.L. fondamentaux
Centrale Paris
ENSAM
ENS Cachan
Nord Pas de calais
Lorraine
Ile de France
Franche comté
Pays de Loire
Rhône Alpes Ouest
Auvergne
Dauphiné Savoie
Toulouse
80
Michel Tollenaere
U.M.L. fondamentaux