La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Michel Tollenaere (INPG)

Présentations similaires


Présentation au sujet: "Michel Tollenaere (INPG)"— Transcription de la présentation:

1 Michel Tollenaere (INPG) http://www.g-scop.fr/~tollenam/Ipro3
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)

2 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 : site en français en France Pierre Alain Muller (U-Mulhouse) et Valtech Outils : StarUML 5.0 Objecteering Rational ROSE , plus de 30 outils de modélisation et de CASE (Computer Aided Software Engineering)

3 Architecture Technologie UML modelling information systems
propriétés Constituant UML modelling information systems at conceptual level at logical level : acteur (intéragissant avec VEGA2) Système (VEGA2) message Technologie Architecture

4 Creating the UML UML 2.2 UML 2.0 UML 0.9 UML 1.3 UML 1.1 UML 1.0 OOSE
2005 2009 OOSE Other methods UML 0.9 Web - June ´96 UML 1.3 Final submission to OMG, Sep ‘97 First submission to OMG, Jan ´97 UML 1.1 OMG Acceptance, Nov 1997 public feedback UML 1.0 UML partners Unified Method 0.8 OOPSLA ´95 Booch method OMT

5 Contributions to the UML
Harel Statecharts Meyer Before and after conditions Gamma, et al Frameworks and patterns, HP Fusion Operation descriptions and message numbering Booch Booch method Embley Singleton classes and high-level view Rumbaugh OMT Wirfs-Brock Responsibilities Jacobson OOSE Shlaer - Mellor Object lifecycles Odell Classification

6 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) Fonctionnel (ce que le système FAIT) diagramme de séquence diagramme de collaboration diagramme d’états-transitions diagramme d’activités diagramme de cas d’utilisation diagramme de collaboration

7 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

8 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

9 Description UML des diagrammes UML
Ceci est un commentaire Cas d ’utilisation Cas d ’utilisation Classes Etats Transitions Séquence Classes Etats Transitions Séquence Collaboration Composants Déploiement Activité Objets

10 Exemples : Quelques diagrammes
Cas d’utilisation une fonctionnalité attendue du système par les différents acteurs. : acteur (intéragissant avec VEGA2) Système (VEGA2) 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

11 Modèle Fonctionnel Use Cases = cas d’utilisation
diagramme de collaboration

12 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 Ceci est une relation un acteur relation Acteur Cas d ’utilisation 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

13 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. client Déclencher 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). Déclencher virement identification « use » 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). Virement par Internet Déclencher virement « extend »

14 Source http://uml.free.fr/

15 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 Récupère les schémas Exemple Gestion des schémas Récupère les Développeur contraintes Définit les contraintes mécaniques Gestion des contraintes Responsable CFAO Responsable Gestion des jobs Gère la création et les révisions d ’un job BE <<dépend>> Gère la création et les révisions des dossiers variantes Gestion des dossiers

16 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 : cabine : porte : lumière 1 : monter 3 : fermer 2 : allumer Objet 1 1 : message 2 : message Objet 2 4 : message 5 : message 3 : message Objet 3

17 Modèle Statique diagramme d ’objets Diagramme de classes

18 AutreVoiture : Voiture
Objets et classes TaVoiture : Voiture Marque = Renault Modèle = Megane Immatriculation = 648DBX38 1re immatriculation = 16 sept 2009 Kilométrage = Kilométrage-annuel ? () AutreVoiture : Voiture Marque = Renault Modèle = Megane Immatriculation = 648DBX38 1re immatriculation = 16 sept 2007 Kilométrage = Kilométrage-annuel ? () MaVoiture : Voiture Marque = Renault Modèle = Megane Immatriculation = 648DBX38 1re immatriculation = 16 sept 1997 Kilométrage = Kilométrage-annuel ? () 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. 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 ( )

19 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 Personne âge : entier collaborateur * Etienne : personne âge = 35 Jean-Luc : personne âge = 25 patron Diagramme d ’objets collaborateur 1 patron emploie> Concrétisation Abstraction Diagramme de classes

20 Diagramme de classes exemple :
Structure statique d’un système, en termes de classes et de relations entre ces classes. Voiture Couleur Cylindrée Vitesse max Démarrer () Accélérer () Freiner () Nom de classe Attributs Opérations () exemple : Syntaxe: 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

21 Nommage des associations
constructeur véhicule Construire> produit fabricant <construit par <Transporte passager véhicule personne véhicule Conduit> conducteur véhicule Possède> propriétaire véhicule <Emploie employé employeur personne entreprise Dirige> directeur société Possède> société actionnaire

22 Multiplicité des associations
1 0 .. 1 m .. n * ou 0 .. * 1 .. * Un et un seul (obligatoire) Zéro ou un (optionnel) De m à n (entiers) quelconque Au moins 1 Personne Société Employeur Employé 1 0..*

23 Associations Agrégation: Rôle et multiplicité :
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..*

24 Classe-association Permet de «qualifier» plus finement une association

25 Placement des attributs et des associations
Etudiant Travail 1 Réalise > 0..* 0..* 0..* 1 Diplôme Note - valeur Mention 0..1 Chambre Numéro

26 Contraintes personne compte Est_titulaire> {Ordonnée} personne
0 .. * 1 {Ordonnée} 0 .. * personne classe Parent d ’élève {Sous ensemble} 0 .. * Délégués 0 .. * personne université Enseignants {Ou-exclusif} 0 .. * Etudiants

27 Agrégation Livre Chapitre {Ordonnée} {Ordonnée} Paragraphe 1 .. * 1

28 La composition traduit une dépendance existentielle forte.
Homme Tête 1 1 La composition traduit une dépendance existentielle forte.

29 Exemple de diagramme de classes
Outil Simulation 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() 1..* Projet NomProjet NuméroPDM DateDebutProjet Projet() Tes_infos?() Nouv_Paramètres() Problème Titre_Problème Objectif Delai Prix NiveauPriorite FicheEtude Conclusion Problème() Nou_Paramètres() Etude Titre_Etude NomPièce ButEtude TypeEtude Etude() Tes_infos() Ajouter_Conclusion() 1 1..* 1..* 1 Induit 1..* 1..* 1..* LesProjets LesProblèmes 1 1 EstResoluPar 0..* 0..* 0..1 0..1 0..1 0..1 Suivant ComplétéePar 0..* 0..* 0..* 0..* LesEtudes 1..* 1..*

30 Modèle Statique Passage d’un diagramme de classe UML à un modèle relationnel pour SGBD

31 Passage du modèle statique UML au relationnel :
Règle 0 & 1: attribut et classe Passage du modèle statique UML au relationnel : les associations produit Réf-produit Libellé-p Prix-vente-p fournisseur Code-fournisseur Adresse Téléphone Classe Relation / Table Produit (Réf-produit, Libellé-p, Prix-vente-p) Fournisseur (Code-fournisseur, Adresse, Téléphone)

32 Passage du modèle statique UML au relationnel :
Règle 2 : relation de multiplicité (1) Passage du modèle statique UML au relationnel : les associations Classe produit Réf-produit Libellé-p Prix-vente-p fournisseur Code-fournisseur Adresse Téléphone < fournir 1 Remise - valeur Produit (Réf-produit, Libellé-p, Prix-vente-p, Code-fournisseur, remise) Fournisseur (Code-fournisseur, Adresse, Téléphone) Relation / Table

33 Passage du modèle statique UML au relationnel :
Règle 3 : relation de multiplicité (0-1) Passage du modèle statique UML au relationnel : les associations Classe produit Réf-produit Libellé-p Prix-vente-p fournisseur Code-fournisseur Adresse Téléphone * < fournir 0-1 Remise - valeur Produit (Réf-produit, Libellé-p, Prix-vente-p, remise, Code-fournisseur) Fournisseur (Code-fournisseur, Adresse, Téléphone) Relation / Table

34 Passage du modèle statique UML au relationnel :
Règle 4 : relation de multiplicité (0..*) (1..*) Passage du modèle statique UML au relationnel : les associations Classe produit Réf-produit Libellé-p Prix-vente-p fournisseur Code-fournisseur Adresse Téléphone 0..* ou 1..* < fournir Remise - valeur Produit (Réf-produit, Libellé-p, Prix-vente-p) Fournisseur (Code-fournisseur, Adresse, Téléphone) Relation / Table Fournir (Réf-produit, Code-fournisseur, remise)

35 Passage du modèle statique UML au relationnel :
Règle 5 : relation réflexive orientée Passage du modèle statique UML au relationnel : les associations Père (nom-fils, nom-père) Relation / Table Classe Personne nom 0..* 1 père de >

36 Passage du modèle statique UML au relationnel :
Règle 6 relation réflexive symétrique Passage du modèle statique UML au relationnel : les associations 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

37 Modèle Dynamique Diagramme d’état transition Diagramme de séquences

38 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 action do:opération Etat B Evénement [garde] / Action …. état initial état final

39 Diagramme d ’états-Transition Diagramme d ’états-transitions
Exemple En activité do: travailler Au chômage A la retraite Perte d ’emploi Embauche Plus de 60 ans Personne age Société 0..1 1..* Diagramme de classes 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é.

40 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.

41 Diagramme de Séquences
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 3 3 : message de création 5 : message 8 : message de destruction Période d’activité de l’objet

42 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 »)

43 Diagramme de Séquences
Exemple Appelant Ligne téléphonique Appelé décroche tonalité numérotation sonnerie indication de sonnerie allô

44 Gestion des composants externes: Création composant constance

45 Gestion des composants externes: Mise à jour composant constance
Solution N°1 (non retenue): Avec validation par l’opérateur

46 Gestion des composants externes: Mise à jour composant constance
Solution N°2 (retenue): avec validation par l’opérateur

47 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 ?)

48

49

50 Diagramme de Classes Métier
comp. externe plan CIP <<rep>> plan mécanique comp. interne CdC structure schema plan CIM composant Spec de test Accessoires sous-ensemble EM comp. mécanique caractéristiques plan-mécanique CIP plan conditionnement Master soft étiquette vierge etiquette comp. électronique Micro-processeur Carte electronique Diagramme de Classes Métier Documentation <<rep>> notice

51 Modélisation de S.I. Étude de cas Compagnie aérienne : CRM
ENSGI – MSI 2ème année Michel Tollenaere Inspiré de UML par la pratique 2ème Edition Pascal Roque Groupe Eyrolles, 2003 ISBN :

52 É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.

53 Fonctions et acteurs : Cas d’utilisation
« extend » réserver Réserver par Internet Hôtesse d’agence « extend » Client et passager Consulter disponibilités Consulter disponibilités par Internet Délivrer carte embarquement Guichet aéroport Consulte tableaux de bord Responsable agence Compagnie Ouvrir et fermer des vols 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 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.

54 Modèle statique : classes et objets
Compagnie Vol nom numéro 1.. ? propose> 1 .. * 1. Des compagnies aériennes proposent différents vols.

55 Modèle statique : classes et objets
Compagnie Vol nom Numéro État : (ouvert, fermé) 1 propose> 1 .. * affréteur 2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie.

56 Modèle statique : classes, états - transitions
Compagnie Vol nom Numéro État : (ouvert, fermé) Diagramme de classes Ouvert état initial Fermé Ouverture par compagnie état final Fermeture par compagnie Diagramme d’état – transition de la classe « Vol » Diagramme d’état – transition 1 propose> 1 .. * affréteur OuvrirRéservation () FermerRéservation () 2. Un vol est ouvert à la réservation et refermé sur ordre de la compagnie.

57 Modèle dynamique : diagramme de collaboration
Compagnie Vol nom Numéro Diagramme de classes 1 propose> 1 .. * affréteur ouvrirRéservation () fermerRéservation () AF506 : Vol 1 : ouvrirRéservation () 2 : fermerRéservation () AirFrance : Compagnie AF519 : Vol Diagramme de collaboration 3 : ouvrirRéservation () AF714 : Vol

58 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 numéro dateDépart heureDépart dateArrivée heureArrivée nom 1 .. * 1 propose> affréteur ouvrirRéservation () fermerRéservation () Diagramme d’état – transition de la classe « Vol » Fermeture par compagnie Ouvert Fermé état initial Ouverture par compagnie état final

59 Les aéroports Vol Aeroport
6. Un vol a un aéroport de départ et un aéroport d’arrivée. Vol utilise> Aeroport nom pays numéro dateDépart heureDépart dateArrivée heureArrivée aeroportdépart aeroportArrivée 1 .. * 2 {ordered} ouvrirRéservation () fermerRéservation ()

60 Les aéroports (suite) Aeroport Vol
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 .. * Aeroportdépart part-de> 1 1 .. * AeroportArrivée arrive-à> ouvrirRéservation () fermerRéservation () 1

61 Les aéroports (fin) Vol Aeroport
6. Un vol a un aéroport de départ et un aéroport d’arrivée. Vol Aeroport numéro dateDépart heureDépart dateArrivée heureArrivée départ> 1 .. * 1 nom pays arrivée> 1 .. * 1 ouvrirRéservation () fermerRéservation ()

62 Les villes Vol Aeroport Ville
10. Chaque aéroport dessert une ou plusieurs villes. Vol Aeroport Ville numéro dateDépart heureDépart dateArrivée heureArrivée départ> 1 .. * 1 nom pays nom pays dessert> ? 1.. * arrivée> 1 .. * 1 ouvrirRéservation () fermerRéservation ()

63 Association « dessert » (multiplicité)
10. Chaque aéroport dessert une ou plusieurs villes. Aeroport Ville nom pays nom pays dessert> * 1.. * Paris :Ville Charles de Gaulle : Aeroport Orly : Aeroport Metz :Ville Passage par les diagrammes d’objets Metz-nancy-lorraine : Aeroport Nancy :Ville

64 ou…. factorisation des attributs
Lieu-geo nom pays decalage-horaire Affiche(carte) Aeroport Ville dessert> * 1.. * Affiche(carte) Affiche(carte)

65 Les escales Vol Aeroport InfosEscale numéro dateDépart heureDépart
dateArrivée heureArrivée départ> 0 .. * 1 nom pays arrivée> 0 .. * 1 faitEscale> 0 .. * ouvrirRéservation () fermerRéservation () * {ordered} InfosEscale heureDépart heureArrivée

66 Ouverture par compagnie Fermeture par compagnie
Récapitulons (1) Vol Aeroport Ville départ> numéro dateDépart heureDépart dateArrivée heureArrivée 0 .. * 1 nom pays Compagnie nom pays nom dessert> 1 propose> arrivée> 0 .. * 1 * 1.. * affréteur 1 .. * faitEscale> 0 .. * ouvrirRéservation () fermerRéservation () * {ordered} InfosEscale heureDépart heureArrivée Ouvert état initial Fermé Ouverture par compagnie état final Fermeture par compagnie Diagramme d’état – transition de la classe « Vol » +

67 Les réservations Vol Réservation Passager
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. Vol Réservation numéro dateDépart heureDépart dateArrivée heureArrivée capacité concerne> 0..* 1 annuler () confirmer () ouvrirRéservation () fermerRéservation () concerne> 1 Passager nom prénom téléphone num-carte nb-pts créditer-pts (res)

68 Les réservations Vol Client Réservation Passager
3. Un client peut réserver un ou plusieurs vols, pour des passagers différents. Vol Client Réservation numéro dateDépart heureDépart dateArrivée heureArrivée capacité nom téléphone Fax adresse date concerne> 0..* effectue> 1 1 0..* annuler () confirmer () 0..* ouvrirRéservation () fermerRéservation () totalfacturé () concerne> 1 Passager nom prénom téléphone num-carte nb-pts créditer-pts (res)

69 Ouverture par compagnie Fermeture par compagnie
Lieu-geo Récapitulons (2) nom pays decalage-horaire Compagnie Vol 1 départ> nom numéro dateDépart heureDépart dateArrivée heureArrivée capacité 0 .. * 1 Aeroport propose> Ville affréteur arrivée> 0 .. * 1 1 .. * dessert> * 1.. * 1 faitEscale> ouvrirRéservation () fermerRéservation () 0 .. * concerne> * Client Réservation {ordered} nom téléphone Fax adresse date effectue> 0..* InfosEscale 1 0..* annuler () confirmer () heureDépart heureArrivée 0..* totalfacturé () concerne> 1 Passager nom prénom téléphone num-carte nb-pts Ouvert état initial Fermé Ouverture par compagnie état final Fermeture par compagnie Diagramme d’état – transition de la classe « Vol » + créditer-pts (res)

70 Dynamique de la réservation
Vol Guichet aéroport Délivrer carte embarquement numéro dateDépart heureDépart dateArrivée heureArrivée capacité Diagramme de séquences 1 ouvrirRéservation () fermerRéservation () Réservation concerne> Liste passagers () date 0..* Vol Réservation Passager annuler () confirmer () Passager Guichet aéroport Passager-id 0..* Présente identité concerne> Liste passagers (n° vol) passagers (etat = confirmé) 1 Passager-id () Passager nom prénom téléphone num-carte nb-pts Sélectionne réservation Si {état = attente paiement ; Demande paiement} créditer-pts (res) Passer (état = embarqué) Délivrer carte

71 Dynamique de la réservation
Vol numéro dateDépart heureDépart dateArrivée heureArrivée capacité ouvrirRéservation () fermerRéservation () Réservation concerne> 0..* 1 annuler () confirmer () Passager nom prénom téléphone num-carte nb-pts créditer-pts (res) date Passager-id Dynamique de la réservation Etat – transition de « réservation » Liste passagers () Guichet aéroport Liste passagers (n° vol) Passager Vol Réservation Présente identité passagers (etat = confirmé) Délivrer carte Si {état = attente paiement ; Demande paiement} Passager-id () Passer (état = embarqué) Sélectionne réservation Diagramme d’état – transition de la classe « Réservation » par compagnie par client par aéroport Demandée embarquée Confirmée Payée état initial état final Jvol - 8 Annulée

72

73 Implémentation dans MSAccess
Notez les pertes sémantiques sur : les états – transitions, les associations {ordered}, l’héritage ville-aéroport ……. etc

74 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 ? Vol 1 0 .. * numéro dateDépart heureDépart dateArrivée heureArrivée capacité ouvrirRéservation () fermerRéservation () départ> Aeroport arrivée> * faitEscale> InfosEscale Compagnie propose> 1 .. * nom affréteur Réservation concerne> 0..* annuler () confirmer () Passager prénom téléphone num-carte nb-pts créditer-pts (res) Client Fax adresse totalfacturé () effectue> date {ordered} Domaine des réservations Domaine de l’offre de vols

75 Analyse de la classe « Vol »
Les éléments de l’offre sont plus stables que ceux des réservations Compagnie Vol-générique 1 départ> nom numéro heureDépart heureArrivée capacité 0 .. * 1 Aeroport propose> affréteur arrivée> 0 .. * 1 1 .. * * faitEscale> Domaine des réservations 0 .. * * {ordered} Vol 1 dateDépart dateArrivée 1 InfosEscale Est-décrit-par> Client Réservation concerne> heureDépart heureArrivée nom téléphone Fax adresse 0..* date effectue> 0..* ouvrirRéservation () fermerRéservation () Domaine de l’offre de vols 1 0..* annuler () confirmer () totalfacturé () concerne> == > les responsabilités sont mieux établies 1 Passager nom prénom téléphone num-carte nb-pts créditer-pts (res)

76 Implémentation dans MSAccess
Reste à traiter l’aspect dynamique : les requètes, les formulaires et interfaces, ……. etc

77 Traitement de l’embarquement
Vol numéro dateDépart heureDépart dateArrivée heureArrivée capacité ouvrirRéservation () fermerRéservation () Réservation concerne> 0..* 1 annuler () confirmer () Passager nom prénom téléphone num-carte nb-pts créditer-pts (res) date Passager-id Liste passagers () Traitement de l’embarquement Guichet aéroport Liste passagers (n° vol) Passager Vol Réservation Présente identité passagers (etat = confirmé) Délivrer carte Si {état = attente paiement ; Demande paiement} Passager-id () Passer (état = embarqué) Sélectionne réservation Demandée état initial Confirmée par client état final par compagnie Diagramme d’état – transition de la classe « Réservation » Payée par aéroport embarquée Annulée Jvol - 8

78 Traitement de l’embarquement
Vol numéro dateDépart heureDépart dateArrivée heureArrivée capacité ouvrirRéservation () fermerRéservation () Réservation concerne> 0..* 1 annuler () confirmer () Passager nom prénom téléphone num-carte nb-pts créditer-pts (res) date Passager-id Liste passagers () Traitement de l’embarquement Guichet aéroport Liste passagers (n° vol) Passager Vol Réservation Présente identité passagers (etat = confirmé) Délivrer carte Si {état = attente paiement ; Demande paiement} Passager-id () Passer (état = embarqué) Sélectionne réservation Demandée état initial Confirmée par client état final par compagnie Diagramme d’état – transition de la classe « Réservation » Payée par aéroport embarquée Annulée Jvol - 8

79 Guichet aéroport Délivrer carte embarquement

80 Pays de Loire ENS Cachan ENSAM Ile de France Auvergne Toulouse Rhône Alpes Ouest Lorraine Nord Pas de calais Dauphiné Savoie Franche comté Centrale Paris


Télécharger ppt "Michel Tollenaere (INPG)"

Présentations similaires


Annonces Google