Modélisation en UML : Diagramme des classes

Slides:



Advertisements
Présentations similaires
Outil de dérogation en ligne 2013
Advertisements

GiBii ou Gestion informatisée du brevet informatique et internet YVES FOUCAULT
Pré-requis avant toute réservation
Le modèle de communication
La lettre de motivation et l’entretien de recrutement
1 Modéliser Ou comment RE-présenter sa connaissance.
Génie Logiciel 2 Julie Dugdale
Module Systèmes dexploitation Chapitre 6 Communication Interprocessus Partie III École Normale Supérieure Tétouan Département Informatique
La Fonction « Réceptionniste »
Systèmes en temps réel Modélisation du comportement en temps réel avec UML.
UML - Présentation.
2nd thème : La notion de données à caractère personnel.
ANALYSE DES TRAITEMENTS
Le modèle de communication
ANALYSE DES TRAITEMENTS
Le Modèle Logique de Données
Cas d’utilisation Connaître la consommation
Introduction à la POO: Les classes vs les objets
Modélisation de S.I. Étude de cas Compagnie aérienne : CRM
Modélisation orientée objet UML
En vacances!.
PARTIE 3 : Le SYSTEME D’INFORMATION FUTUR
Cette présentation se passera en trois parties. Première partie : -Avantages et objectifs dexpédiweb*. Deuxième partie : -Utilisation du logiciel de prise.
Le Modèle Dynamique 1. EADS Matra Datavision - Confidentiel
Diagramme de Classes Bonjour,
Plan Présentation général du projet - Objectifs du projet.
Michel Tollenaere (INPG)
CaMELEON.
Villa Travel OÙ L ENGAGEMENT PARFAIT BIENVENUE A.
Modélisation orientée objet UML
L’aéroport et l’avion Le Vocabulaire de Ch. 8
le profil UML en temps réel MARTE
Analyse et Conception des Systèmes d’Informations
Analyse et Conception orientée objet
Modélisation des bases de données avec UML
1 Introduction : Management des systèmes dinformation version 1.1 du 13 Novembre 2001 Introduction : Management des systèmes dinformation ENSGI Cours MSI.
Conception des données
Classes abstraites et Interfaces
Vers la conception objet
Outils pour la modélisation des systèmes distribués
SYSTEMES D’INFORMATION
Exercices corrigés de schémas relationnels
Home Connect PUB Composez votre voyage : 1 – choisissez votre destination 2 – Ajoutez des voyageurs 3 – selectionnez votre vol 4 – selectionnez votre hotel.
Le langage ASP Les formulaires avec Request. Les formulaires sont employés pour transmettre des informations saisies par un client à une application Web.
GPA789 Analyse et conception orientées objet 1 Professeur: Tony Wong, Ph.D., ing. Chapitre 6 Correspondance UML et C++
Diagramme d’interaction
Le diagramme d’activités
Le diagramme de collaboration
UML (2) Modèle dynamique le diagramme de séquence
Michel Tollenaere (INPG)
Management des Systèmes d’Information (MSI)
Programmation objet La base.
Identification des Abonnés de Téléphonie Mobile. Identification les éléments suivants: 1.nom & prénom 2.Adresse 3.photocopie d'une pièce d'identité officielle.
Nouvelles Technologies Internet & Mobile
2 Processus de conception de BD
 Formulaires HTML : traiter les entrées utilisateur
Chapitre 5 Les diagrammes d’interaction (collaboration et séquence)
Machines à états finis.
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Chapitre 2 Rappels objet et Présentation des diagrammes UML
Conception d’une Base de Données Le Diagramme de Classes UML
Nouvelles Technologies Internet & Mobile
UML : DIAGRAMME D’OBJETS
UML : DIAGRAMME DE CLASSES
TP D’UML Groupe N° 3.
Diagramme de classe Classe Objet Associations Diagramme de classe.
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.
Les bases de données Séance 3 Construction du Modèle Conceptuel de Données.
Centre de Gestion de la Fonction Publique Territoriale de Loire-Atlantique «Net-Cotisations CdG»
Transcription de la présentation:

Modélisation en UML : Diagramme des classes Soit le cas ’’Réservation de vols dans une agence de voyage’’ 1° Des compagnies aériennes proposent différents vols. 2° Un vol est ouvert à la réservation et fermé 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

1° Des compagnies aériennes proposent différents vols. Modélisation de la phrase : 1° Des compagnies aériennes proposent différents vols. CompagnieAerienne et Vols sont 2 objets métiers : 2 classes CompagnieAerinne Vol Propose 1..* Un vol est réalisé par une seule compagnie mais partagé par plusieurs affréteurs CompagnieAerinne Vol Propose 1..* affréteur

Modélisation de la phrase : 2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie. CompagnieAerinne Propose 1..* affréteur Vol état (ouvert, fermé) Tout objet peut avoir un état (diagramme d’états). Dans un diagramme de classes tout concept dynamique est modélisé en opération. Il faut représenter la 2° phrase par 2 opérations : ouvrirReservation( ) et fermerReservation( ) Dans quelle classe ? Responsabilité d’une classe CompagnieAerinne Propose 1..* affréteur Vol ouvrirVol( ) fermerVol( ) Les opérations sont déclarées dans l’objet dans lequel elles doivent s’exécuter Les autres pourront déclencher ces opérations par envoi de messages Le classe CompagnieAerienne a une association avec la classe vol.

Modélisation des phrases : 7° Un vol a un jour et une heure de départ et un jour et une heure d’arrivée. Les dates et les heures de départ et d’arrivée ne représentent que des valeurs : attributs. CompagnieAerinne Propose 1..* affréteur Vol ouvrirVol( ) fermerVol( ) dateDepart heureDepart dateArrivee heureArrivee Pour savoir si un élément doit être représenté en attribut ou en objet : S’il n’ y a que sa valeur qui est intéressante : c’est plutôt un attribut. Si plusieurs questions peuvent concerner l’élément, alors il faut le représenter en objet.

6° Un vol a un aéroport de départ et un aéroport d’arrivée. Modélisation des phrases : 6° Un vol a un aéroport de départ et un aéroport d’arrivée. Par quoi peut-on représenter l’élément ‘’Aéroport’’ ? 3 réponses sont envisageables : Soit avec une classe et une association de multiplicité 2 { ordered} 2 Vol ouvrirVol( ) fermerVol( ) dateDepart heureDepart dateArrivee heureArrivee aeroportDepart aeroportArivvee Aéroport nom  Modélisation peu parlante.

6° Un vol a un aéroport de départ et un aéroport d’arrivée. Modélisation des phrases : 6° Un vol a un aéroport de départ et un aéroport d’arrivée. 2. Soit avec 2 classes 1 Vols ouvrirReservation( ) fermerReservation( ) dateDepart heureDepart dateArrivee heureArrivee aeroportDepartr aeroportArivvee Aéroport nom AeroportDepart AeroportArrivee  Modélisation non correcte. Tout aéroport peut être de départ et d’arrivée.

6° Un vol a un aéroport de départ et un aéroport d’arrivée. Modélisation des phrases : 6° Un vol a un aéroport de départ et un aéroport d’arrivée. 2. Soit avec 2 associations 1 Vol ouvrirVol( ) fermerVol( ) dateDepart heureDepart dateArrivee heureArrivee Aéroport Nom … Départ Arrivée  Le rôle de chaque association précise son sens.

10° Chaque aéroport dessert une ou plusieurs villes Modélisation des phrases : 10° Chaque aéroport dessert une ou plusieurs villes On ne peut pas savoir la multiplicité de ‘’Aéroport’’ Aéroport dessert 1..* Ville 0..* Si on considère que desservir une ville signifie l’aéroport le plus proche, il n’ en y a qu’un : la multiplicité est de 1 Si on considère que desservir une ville signifie les aéroports dans un rayon de 35 km : la multiplicité est de 0..*

Modélisation des phrases : 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. Une escale a les propriétés heure d’arrivée et heure de départ, c’est donc un objet. Vol ouvrirVol( ) fermerVol( ) dateDepart heureDepart dateArrivee heureArrivee Aéroport nom 1 Depart Arrivee Escale 0..* 0..* 1..* 1 Quelles sont alors les multiplicités entre ‘’Vols’’ et ‘’Escale’’, entre ‘’Escale’’ et ‘’Aeroport’’ et entre ‘’Aeroport’’ et ’Vols’’ ?

Modélisation des phrases : 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. ‘’Escale’’ a peu d’informations propres. Elle n’est qu’une partie de ’’Vol’’ . On peut la représenter comme une spécialisation de ’’Aéroport’’ . Mais elle n’est pas totalement un aéroport. La meilleure solution serait de la modéliser comme une classe d’association entre et ’Vols’’ et ‘’Aéroport’’. Vol ouvrirVol( ) fermerVol( ) dateDepart heureDepart dateArrivee heureArrivee Aéroport nom 1 Départ Arrivée Escale 0..* {Ordered}

Modélisation des phrases : 4° Une réservation concerne un seul vol, et un seul passager. 5° Une réservation peut être annulée ou confirmée. La réservation et le passager sont 2 concepts métier : 2 classes d’objets Un réservation concerne un seul vol et un seul passager: donc 2 associations entre ‘’Vol’’ et ’’Réservation’’ et entre ’’Réservation’’ et ‘’Passager’’. La 5° phrase se traduit par l’ajout de 2 opérations annuler( ) et confirmer( ) dans ‘’Reservation’’. Vol ouvrirVol( ) fermerVol( ) dateDepart heureDepart dateArrivee heureArrivee Passager 1 concerne Réservation Annuler( ) Confirmer( )

Modélisation des phrases : 3° Un client peut réserver un ou plusieurs vols, pour des passagers différents. Il faut discerner un client d’un passager a effectué 0..* Vol Passager 1 concerne Réservation Annuler( ) Confirmer( ) Client

Le diagramme des classe complet est : Vol ouvrirVol( ) fermerVol( ) dateDepart heureDepart dateArrivee heureArrivee Aéroport nom 1 départ arrivée InfosEscale escale 0..* {ordered} Ville Passager concerne Réservation Annuler( ) Confirmer( ) Client a effectué CompagnieAerinne Propose 1..* nom Prénom adresse téléphone e-mail date numéro

Diagramme des classe complet et annoté Vol ouvrirVol( ) fermerVol( ) dateDepart heureDepart dateArrivee heureArrivee Aéroport nom 1 départ arrivée escale 0..* {ordered} Ville Passager concerne Réservation Annuler( ) Confirmer( ) Client a effectué Propose 0..1 1..* nom Prénom adresse tél e-mail {frozen} CompagnieAerinne numéro {reservation.date <= vol.dateDepart} date InfosEscale heureArrivee heureDepart

Le diagramme des classe complet devient : InfosEscale heureArrivée heureDépart ‘’ métaclasse ‘’ VolGenerique ouvrirVol( ) fermerVol( ) jour /durée périodevalidité Aéroport nom 1 départ arrivée escale 0..* {ordered} Ville concerne Réservation Annuler( ) Confirmer( ) Client a effectué Propose 0..1 nom Prénom adresse téléphone e-mail Passager {frozen} CompagnieAérienne numéro {reservation.date <= vol.dateDepart} date Vol dateDépart dateArrivée {AddOnly} décrit 1..* propose Affréteur

Le diagramme des classes peut être réorganisé en packages InfosEscale heureArrivee heureDepart ‘’ metaclasse ‘’ VolGenerique ouvrirVol( ) fermerVol( ) jour /durée periodevalidite Aéroport nom 1 départ arrivée escale 0..* {ordered} Ville concerne Réservation Annuler( ) Confirmer( ) Client a effectué Propose 0..1 1..* nom Prénom adresse tééphonel e-mail Passager {frozen} CompagnieAerinne numéro {reservation.date <= vol.dateDepart} date numero Vol dateDepart dateArrivee {AddOnly} décrit propose Affréteur

0..* 1 concerne {frozen} Réservation Annuler( ) Confirmer( ) date numéro Réservations Vol ouvrirVol( ) fermerVol( ) dateDepart dateArrivee Réduire la dépendance mutuelle afin d’augmenter la modularité et l’évolutivité d’une application

Réservations Vol Réservation Annuler( ) Confirmer( ) Client a effectué 0..* 1 concerne nom Prénom adresse téléphone e-mail Passager {frozen} date numéro Vol InfosEscale heureArrivee heureDepart ‘’ metaclasse ‘’ VolGenerique ouvrirVol( ) fermerVol( ) jour /durée periodevalidite Aéroport nom 1 départ arrivée escale 0..* {ordered} Ville Propose 0..1 CompagnieAerinne numéro dateDepart dateArrivee {frozen} {AddOnly} decrit 1..* propose Affréteur 0..* 1 concerne {frozen}

Généralisation et réutilisation On veut élargir ce domaine aux voyages par bus que des transporteurs assurent. Un voyage en bus à une ville de départ et un ville d’arrivée avec des dates et des heures associées. Un trajet peut comporter des arrêts dans des villes intermédiaires. Un client peut réserver un ou plusieurs voyages pour un ou plusieurs passagers VoyageEnBus OuvrirVoyage( ) fermerVoyage( ) dateDepart dateArrivee VoyagesBus ReservationsBus ReservationBus Annuler( ) Confirmer( ) date numéro 0..* 1 concerne {frozen}

VoyagesBus ReservationsBus concerne Client nom Prénom adresse téléphone e-mail Voyagiste nom référence 1 a effectué 0..* 1 Propose {frozen} 0..1 départ VoyageEnBus ReservationBus Annuler( ) Confirmer( ) date numéro Ville nom concerne dateDepart heureDepart dateArrivee heureArrivee /durée 0..* 1 arrivée {frozen} 0..* 1 arrêt ouvrirVoyage( ) fermerVoyage( ) 0..* 1..* concerne 0..* 0..* {ordered} InfosArret heureArrivee heureDepart Passager nom Prénom

 Lieux Fusion des 2 modèles Il faut isoler les classes communes dans des packages Il faut factoriser les propriétés communes  AVION Vols ReservationVols BUS ReservationBus VoyagesBus Lieux

 Réservations Il faut isoler les classes communes dans des packages Classe abstraite Vol (from Vols) ReservationVol (from ReservationsVols) ReservationBus (from ReservationsBus) VoyageEnBus (from VoyagesBus) concerne {frozen} 1 Réservations 0..* Client nom Prénom adresse tél e-mail Passager Réservation Annuler( ) Confirmer( ) date numéro a effectué

Réservations Lieux Package généralisé Packages spécialisés ReservationsBus Réservations ReservationsVols Packages spécialisés Package généralisé Vols VoyagesBus Lieux Package réutilisable