Michel Tollenaere (INPG)

Slides:



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

Le Nom L’adjectif Le verbe Objectif: Orthogram
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Distance inter-locuteur
Génie Logiciel 2 Julie Dugdale
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.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
UML (Unified Modeling Langage)
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
Modélisation orientée objet UML
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.
UML : Unified Modelling Language
Modélisation des bases de données avec UML
Modélisation en UML : Diagramme des classes
Le Concours de Conaissance Francais I novembre 2012.
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.
LES NOMBRES PREMIERS ET COMPOSÉS
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
UML : Unified Modelling Language
Démarche de développement
UML (2) Modèle dynamique le diagramme de séquence
Michel Tollenaere (INPG)
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.
Sensibilisation a la modelisation
MAGIE Réalisé par Mons. RITTER J-P Le 24 octobre 2004.
Modélisation Objet UML avec Rational Rose 2000
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
Nom:____________ Prénom: ___________
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)
Le contenu est basé aux transparents du 7 ème édition de «Software Engineering» de Ian Sommerville«Software Engineering» de Ian Sommerville B.Shishedjiev.
Unified Modeling Langage
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) 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

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)

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.0 UML 1.3 UML 1.1 UML 1.0 UML 0.9 OOSE 2003 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

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

Description UML des 9 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 : 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. Cas d’utilisation une fonctionnalité attendue du système (VEGA2) par les différents acteurs. 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 ’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). 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 virement « extend »

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

Objets et classes MaVoiture : Voiture marque = Renault Modèle = Nevada Immatriculation = 648ADX38 AnnéeModele = 1992 Kilométrage = 285 000 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) AnnéeModele : date Age_moyen : entier Rouler ( ) Kilometrage_annuel_moyen ( )

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

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 Généralisation : factorisation des éléments communs d’un ensemble de classes dits sous-classes 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 classe 4 classe 3 classe 2 classe 1 agrégation association généralisation spécialisation 1 1..* 1 1..* constructeur véhicule moteur voiture camion avion

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

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

Arité des associations Association d’arité 3 Salle lieu Etudiant Cours Enseignant Début Fin

Placement des attributs et des associations Etudiant Travail 1 Réalise > 0..* 0..* 0..* 1 Diplôme Note 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 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