Michel Tollenaere (INPG)

Slides:



Advertisements
Présentations similaires
Mais vous comprenez qu’il s’agit d’une « tromperie ».
Advertisements

ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Distance inter-locuteur
1 Plus loin dans lutilisation de Windows Vista ©Yves Roger Cornil - 2 août
Génie Logiciel 2 Julie Dugdale
International Telecommunication Union Accra, Ghana, June 2009 Relationship between contributions submitted as input by the African region to WTSA-08,
Les numéros 70 –
Les numéros
XML - Henry Boccon-Gibod 1 XML, Langage de description La question du choix de formalismes Les entités et leur représentations modalités de modèles et.
Les cas d’utilisation (use cases)
ANALYSE DES TRAITEMENTS
Architecture de réseaux
Introduction à la logique
UML (2) Rappel sur le modèle statique : classe / objet
LES TRIANGLES 1. Définitions 2. Constructions 3. Propriétés.
Introduction à UML NFE108 CNAM – LILLE Madame DELECLUSE
UML (Unified Modeling Langage)
La législation formation, les aides des pouvoirs publics
Modélisation de S.I. Étude de cas Compagnie aérienne : CRM
1 7 Langues niveaux débutant à avancé. 2 Allemand.
1 5 octobre 2011 / paw Présentation du 7 octobre 2011.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
La méthodologie………………………………………………………….. p3 Les résultats
UML (2) Rappel sur le modèle statique : classe / objet
UML (2) Rappel sur le modèle statique : classe / objet
Michel Tollenaere (INPG)
1 Cours MSI, modélisation de SI : livraison journaux version 1 du 8 février 2005 Modélisation de S.I. Livraison de journaux ENSGI – MSI 2ème année Michel.
Principes de la technologie orientée objets
Analyse et Conception des Systèmes d’Informations
Le soccer & les turbans Sondage mené par lAssociation détudes canadiennes 14 juin 2013.
Présentation générale
UML : Unified Modelling Language
Modélisation des bases de données avec UML
Modélisation en UML : Diagramme des classes
1 Introduction : Management des systèmes dinformation version 1.1 du 13 Novembre 2001 Introduction : Management des systèmes dinformation ENSGI Cours MSI.
Static modeling, Thu G. Falquet, L. Nerima.
UML : Unified Modelling Language
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
Outils pour la modélisation des systèmes distribués
Management des systèmes d’information Conclusion
SYSTEMES D’INFORMATION
Logiciel gratuit à télécharger à cette adresse :
Les chiffres & les nombres
Année universitaire Réalisé par: Dr. Aymen Ayari Cours Réseaux étendus LATRI 3 1.
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1 INETOP
Le diagramme de séquences
Portée, arrimages et intervenants Évolution des méthodes
UML : Unified Modelling Language
Démarche de développement
UML (2) Modèle dynamique le diagramme de séquence
Introduction : Management des systèmes d ’information
Michel Tollenaere SQL et relationnel ENSGI Cours MSI 2A Relationnel et SQL version 1.4 du 25 septembre 2007 (ajout jointures) 1 Modèle relationnel Historique.
Aire d’une figure par encadrement
Sensibilisation a la modelisation
Les fondements constitutionnels
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
La formation des maîtres et la manifestation de la compétence professionnelle à intégrer les technologies de l'information et des communications (TIC)
Management des Systèmes d’Information (MSI)
Nouvelles Technologies Internet & Mobile
Unified Modeling Language
Chapitre 5 Les diagrammes d’interaction (collaboration et séquence)
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Michel TOLLENAERE 1 Cours MSI 2A ICL session automne 2015 Management des Systèmes d’Information (MSI) Cours : chapitre 3 UML Etude de cas Implémentation.
Diagrammes de comportement Présentation. Diagramme de séquence  Permet de modéliser les envois de messages entre objets chronologiquement.  Modélisation.
UML Unified Modeling Language. UML : 8 diagrammes 1.Classes 2.Activités 3.Séquences 4.Collaboration 5.Etats transition 6.Cas d’utilisation 7.Composants.
Transcription de la présentation:

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

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)

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

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

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

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

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

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

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

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

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

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

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 »

Source http://uml.free.fr/

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

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

Modèle Statique diagramme d ’objets Diagramme de classes

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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)

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 >

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

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

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

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

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.

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

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

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

Gestion des composants externes: Création composant constance

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

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

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

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

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

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

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.

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

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.

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.

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

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

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 ()

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

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 ()

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 ()

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

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

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

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 » +

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 e-mail num-carte nb-pts créditer-pts (res)

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 e-mail 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 e-mail num-carte nb-pts créditer-pts (res)

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 e-mail 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 e-mail 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)

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 e-mail num-carte nb-pts Sélectionne réservation Si {état = attente paiement ; Demande paiement} créditer-pts (res) Passer (état = embarqué) Délivrer carte

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 e-mail 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

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

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 e-mail 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

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 e-mail 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 e-mail num-carte nb-pts créditer-pts (res)

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

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 e-mail 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

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 e-mail 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

Guichet aéroport Délivrer carte embarquement

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