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)
Michel Tollenaere (INPG)
http://www.g-scop.fr/~tollenam/mastergi/CoursUML-exemples.ppt
Master GI cours UML
1
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
Outils :
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)
Master GI cours UML
2
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
Master GI cours UML
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
Creating the UML
UML 2.0
2003
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
OOPSLA ´95
Other methods
Unified Method 0.8
Booch method
Master GI cours UML
OMT
OOSE
4
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
Master GI cours UML
5
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
Master GI cours UML
6
Les 9 diagrammes UML
• 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
Master GI cours UML
7
Description UML des 9 diagrammes UML
Diagramme
Ceci est
un commentaire
Cas d ’utilisation
Collaboration
Classes
Composants
Master GI cours UML
Séquence
Etats Transitions
Déploiement
Activité
Objets
8
Exemples : Quelques diagrammes
Système
(VEGA2)
cas d'utilisation
: acteur (intéragissant
avec VEGA2)
Cas d’utilisation
message
une fonctionnalité attendue du système
(VEGA2) par les différents acteurs.
message
message
Diagramme de Classes
message
objet 1
Diagramme de séquence
lien exprimant que "objet 2 est une sorte de objet 1"
objet 2
lien exprimant que "objet 2
a une relation avec objet 4"
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"
objet 3
Master GI cours UML
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.
9
Modèle Fonctionnel
• Use Cases : cas d ’utilisation
• diagramme de collaboration
Master GI cours UML
10
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
Master GI cours UML
11
Relations entre cas d ’utilisations
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éclenche
client
virement
• 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 »
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
Master GI cours UML
virement
12
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
Master GI cours UML
Gestion des jobs
<<dépend>>
Responsable
CFAO
Gère la création et
les révisions d ’un job
Gestion des dossiers
13
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
2 : allumer
Objet 3
: lumière
Master GI cours UML
14
Modèle Statique
• diagramme d ’objets
• Diagramme de classes
Master GI cours UML
15
Objets et classes
MaVoiture : Voiture
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 = Renault
Modèle = Nevada
Immatriculation = 648ADX38
AnnéeModele = 1992
Kilométrage = 285 000
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 ».
Master GI cours UML
Voiture
marque : chaîne
Modèle : chaîne
Immatriculation : chaîne (8)
AnnéeModele : date
Age_moyen : entier
Rouler ( )
Kilometrage_annuel_moyen ( )
16
Diagramme d’Objets
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
Master GI cours UML
17
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
Master GI cours UML
18
Diagramme de classes : Relations entre classes
Agrégation : quand une classe fait partie d’une autre classe (agrégat - composant)
Association : toute relation structurelle entre classes, autre que l ’agrégation et la
généralisation
classe 1
généralisation
classe 2
spécialisation
Généralisation : factorisation des éléments communs d’un ensemble de classes dits sousclasses dans une classe plus générale dite super-classe. Elle signifie que la sous-classe est
un ou est une sorte de la super-classe. Le lien inverse est appelé spécialisation
constructeur
1
1..*
véhicule
1
1..*
moteur
classe 3
agrégation
classe 4
Master GI cours UML
voiture
camion
avion
19
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 : une fonction peut être composée d ’autres
fonctions
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..*
Master GI cours UML
20
Nommage des associations
constructeur
fabricant
personne
personne
Construire>
<construit par
produit
<Transporte
véhicule
conducteur
Conduit>
véhicule
propriétaire
Possède>
véhicule
employé
<Emploie
employeur
directeur
Dirige>
société
actionnaire
Possède>
passager
Master GI cours UML
véhicule
véhicule
entreprise
société
21
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
Master GI cours UML
Société
22
Arité des associations
Association d’arité 3
Salle
lieu
Etudiant
Cours
Enseignant
Début
Fin
Master GI cours UML
23
Placement des attributs et des associations
Etudiant
1
0..*
Diplôme
Mention
Réalise >
0..*
0..*
Travail
1
Note
0..1
Chambre
Numéro
Master GI cours UML
24
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
Master GI cours UML
25
Agrégation
Livre
Chapitre
1 .. *
1
{Ordonnée}
{Ordonnée}
1 .. *
Paragraphe
Master GI cours UML
26
Composition
Homme
1
1
Tête
La composition traduit une dépendance existentielle forte.
Master GI cours UML
27
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
LesProjets
0..1
Suivant
0..*
Etude()
Tes_infos()
Nouv_Paramètres()
Créer_Cycle()
Ajouter_Conclusion()
Master GI cours UML
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()
28
Modèle Dynamique
• Diagramme d’état transition
• Diagramme de séquences
Master GI cours UML
29
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
Master GI cours UML
Etat B
….
état final
30
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é.
Master GI cours UML
31
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.
Master GI cours UML
32
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
Master GI cours UML
8 : message de destruction
33
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 »)
Master GI cours UML
34
Diagramme de Séquences
Exemple
Ligne
téléphonique
Appelant
Appelé
décroche
tonalité
numérotation
indication de sonnerie
sonnerie
décroche
allô
Master GI cours UML
35
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
Master GI cours UML
36
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
Master GI cours UML
37
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
Master GI cours UML
enregistrer les modifications
dans un fichier Log
38
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 ?)
Master GI cours UML
39
Master GI cours UML
40
Master GI cours UML
41
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
Master GI cours UML
<<rep>>
plan CIP
<<rep>>
plan-mécanique
<<rep>>
notice
<<rep>>
caractéristiques
<<rep>>
plan
<<rep>>
Master
42
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
Master GI cours UML
43
É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.
Master GI cours UML
44
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
Responsable
agence
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.
Master GI cours UML
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
45
Modèle statique : classes et objets
Compagnie
Vol
numéro
nom
1.. ?
propose>
1 .. *
1. Des compagnies aériennes proposent différents vols.
Master GI cours UML
46
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.
Master GI cours UML
47
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.
Master GI cours UML
48
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
Master GI cours UML
49
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
Master GI cours UML
Ouvert
Ouverture par
compagnie
Fermé
état final
50
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 ()
Master GI cours UML
51
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 ()
Master GI cours UML
1
52
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 ()
Master GI cours UML
53
Les villes
10. Chaque aéroport dessert une ou plusieurs villes.
Vol
Aeroport
1 .. * départ>
numéro
dateDépart
heureDépart
dateArrivée
heureArrivée
1
Ville
nom
pays
nom
pays
dessert>
?
1 .. * arrivée>
1.. *
1
ouvrirRéservation ()
fermerRéservation ()
Master GI cours UML
54
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
Master GI cours UML
55
ou…. factorisation des attributs
Lieu-geo
nom
pays
decalage-horaire
Affiche(carte)
Aeroport
Ville
dessert>
Affiche(carte)
Master GI cours UML
*
1.. *
Affiche(carte)
56
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
Master GI cours UML
57
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 »
+
Master GI cours UML
Fermeture par
compagnie
état
initial
Ouvert
Ouverture par
compagnie
Fermé
état final
58
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)
Master GI cours UML
59
Les réservations
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents.
Réservation
Client
nom
téléphone
e-mail
Fax
adresse
date
0..*
effectue>
totalfacturé ()
0..*
annuler ()
confirmer ()
concerne>
1
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)
Master GI cours UML
60
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)
Master GI cours UML
Diagramme d’état – transition de la classe « Vol »
Fermeture par
compagnie
+
Fermé
Ouvert
état initial
Ouverture par
compagnie
état final
61
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
Master GI cours UML
62
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
Master GI cours UML
Annulée
63
Master GI cours UML
64
Implémentation dans MSAccess
Notez les pertes sémantiques sur :
• les états – transitions,
• les associations {ordered},
• l’héritage ville-aéroport ……. etc
Master GI cours UML
65
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
totalfacturé ()
effectue>
1
0..*
date
arrivée>
1
Aeroport
1
*
faitEscale>
*
{ordered}
0..*
annuler ()
confirmer ()
concerne>
nom
téléphone
e-mail
Fax
adresse
ouvrirRéservation () 0 .. *
fermerRéservation ()
Réservation
Client
départ>
Domaine des réservations
1
Master GI Passager
cours UML
InfosEscale
heureDépart
heureArrivée
Domaine de l’offre de vols
66
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é
Domaine des réservations
1
Réservation
om
léphone
mail
ax
dresse
talfacturé ()
effectue>
1
0..*
date
*
{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
0 .. *
Aeroport
1
== > les responsabilités sont mieux établies
67
Master GI cours UML
Passager
nom
prénom
Implémentation dans MSAccess
Reste à traiter l’aspect dynamique :
• les requètes,
• les formulaires et interfaces,
• ……. etc
Master GI cours UML
68
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
Master GI cours UML
Confir
mée
r
cli
ent
Payée
par
aéro
port
embar
quée
état
final
Annulé
e
69
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
Master GI cours UML
Confir
mée
r
cli
ent
Payée
par
aéro
port
embar
quée
état
final
Annulé
e
70
Guichet aéroport
Master GI cours UML
Délivrer carte
embarquement
71
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
Master GI cours UML
72