U M L Modlisation en UML Diagramme des

  • Slides: 23
Download presentation
U. M. L. Modélisation en UML : Diagramme des classes Soit le cas ’’Réservation

U. M. L. 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 O. BOUSSAID Page : 1

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation de la

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation de la phrase : 1° Des compagnies aériennes proposent différents vols. Compagnie. Aerienne et Vols sont 2 objets métiers : 2 classes Compagnie. Aerinne Propose 1. . * Vol • Un vol est réalisé par une seule compagnie mais partagé par plusieurs affréteurs Compagnie. Aerinne O. BOUSSAID 1. . * affréteur Propose 1. . * Vol Page : 2

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation de la

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation de la phrase : 2° Un vol est ouvert à la réservation et fermé sur ordre de la compagnie. Compagnie. Aerinne 1. . * affréteur Propose 1. . * 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 : ouvrir. Reservation( ) et fermer. Reservation( ) Ø Dans quelle classe ? Responsabilité d’une classe Compagnie. Aerinne 1. . * affréteur Propose Vol 1. . * ouvrir. Vol( ) fermer. Vol( ) Ø 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 Compagnie. Aerienne a une association avec la classe vol. O. BOUSSAID Page : 3

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation des phrases

U. M. L. Modélisation en UML : Diagramme des classes Ø 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 : Compagnie. Aerinne 1. . * affréteur Propose 1. . * attributs. Vol date. Depart heure. Depart date. Arrivee heure. Arrivee ouvrir. Vol( ) fermer. Vol( ) Ø 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. O. BOUSSAID Page : 4

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation des phrases

U. M. L. Modélisation en UML : Diagramme des classes Ø 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 : 1. Soit avec une classe et une association de multiplicité 2 Vol date. Depart heure. Depart date. Arrivee heure. Arrivee aeroport. Depart aeroport. Arivvee 2 { ordered} Aéroport nom ouvrir. Vol( ) fermer. Vol( ) O. BOUSSAID Modélisation peu parlante. Page : 5

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation des phrases

U. M. L. Modélisation en UML : Diagramme des classes Ø 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 Vols date. Depart heure. Depart date. Arrivee heure. Arrivee aeroport. Departr aeroport. Arivvee 1 Aeroport. Depart Aéroport 1 nom Aeroport. Arrivee ouvrir. Reservation( ) fermer. Reservation( ) O. BOUSSAID Modélisation non correcte. Tout aéroport peut être de départ et d’arrivée. Page : 6

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation des phrases

U. M. L. Modélisation en UML : Diagramme des classes Ø 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 Vol date. Depart heure. Depart date. Arrivee heure. Arrivee Départ 1 Arrivée Aéroport Nom … 1 ouvrir. Vol( ) fermer. Vol( ) O. BOUSSAID Le rôle de chaque association précise son sens. Page : 7

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation des phrases

U. M. L. Modélisation en UML : Diagramme des classes Ø 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 Ville dessert 0. . * 1. . * Ø 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. . * O. BOUSSAID Page : 8

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation des phrases

U. M. L. Modélisation en UML : Diagramme des classes Ø 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 date. Depart heure. Depart date. Arrivee heure. Arrivee Depart 0. . * 1 1 0. . * 1. . * O. BOUSSAID nom Arrivee ouvrir. Vol( ) fermer. Vol( ) Ø Quelles sont alors les multiplicités entre ‘’Vols’’ et ‘’Escale’’, entre ‘’Escale’’ et ‘’Aeroport’’ et entre ‘’Aeroport’’ et ’Vols’’ ? Aéroport 1 Escale 0. . * heure. Arrivee heure. Depart 0. . * Page : 9

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation des phrases

U. M. L. Modélisation en UML : Diagramme des classes Ø 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 date. Depart heure. Depart date. Arrivee heure. Arrivee Départ 0. . * 1 Arrivée 0. . * 1 ouvrir. Vol( ) fermer. Vol( ) Aéroport nom Escale 0. . * {Ordered} Escale heure. Arrivee heure. Depart O. BOUSSAID Page : 10

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation des phrases

U. M. L. Modélisation en UML : Diagramme des classes Ø 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’’. Réservation Vol concerne Annuler( ) Confirmer( ) concerne 1 date. Depart heure. Depart date. Arrivee heure. Arrivee ouvrir. Vol( ) fermer. Vol( ) 1 Passager O. BOUSSAID Page : 11

U. M. L. Modélisation en UML : Diagramme des classes Ø Modélisation des phrases

U. M. L. Modélisation en UML : Diagramme des classes Ø 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 Réservation Client 1 a effectué 0. . * Annuler( ) Confirmer( ) concerne 0. . * 1 Vol 0. . * concerne 1 Passager O. BOUSSAID Page : 12

U. M. L. Modélisation en UML : Diagramme des classes Ø Le diagramme des

U. M. L. Modélisation en UML : Diagramme des classes Ø Le diagramme des classe complet est : Client nom Prénom adresse téléphone e-mail 1 Compagnie. Aerinne nom 1. . * Propose a effectué 0. . * 1. . * date numéro Annuler( ) Confirmer( ) 0. . * concerne 1 Passager nom Prénom O. BOUSSAID départ Vol Réservation concerne 0. . * 1 date. Depart heure. Depart date. Arrivee heure. Arrivee ouvrir. Vol( ) fermer. Vol( ) 0. . * 1 arrivée 0. . * 1 Aéroport nom escale 0. . * {ordered} Infos. Escale heure. Arrivee heure. Depart Ville nom Page : 13

U. M. L. Modélisation en UML : Diagramme des classes Ø Diagramme des classe

U. M. L. Modélisation en UML : Diagramme des classes Ø Diagramme des classe complet et annoté Client {frozen} 1 numéro 1. . * Propose 0. . 1 concerne date numéro 0. . * Annuler( ) Confirmer( ) concerne 1 Passager départ Vol Réservation nom Prénom O. BOUSSAID Compagnie. Aerinne nom a effectué 0. . * {reservation. date <= vol. date. Depart} nom Prénom adresse tél e-mail 1 {frozen} date. Depart heure. Depart date. Arrivee heure. Arrivee ouvrir. Vol( ) fermer. Vol( ) 0. . * 1 arrivée 0. . * Aéroport nom 1 escale 0. . * {ordered} Infos. Escale heure. Arrivee heure. Depart Ville nom Page : 14

U. M. L. Modélisation en UML : Diagramme des classes Ø Le diagramme des

U. M. L. Modélisation en UML : Diagramme des classes Ø Le diagramme des classe complet devient : {reservation. date <= vol. date. Depart} Client nom Prénom adresse téléphone e-mail 1. . * Affréteur {frozen} 1 a effectué 0. . * Annuler( ) Confirmer( ) 0. . * concerne 1 Passager nom Prénom O. BOUSSAID nom numéro 1 Propose propose 0. . 1 Réservation date numéro Compagnie. Aérienne ‘’ métaclasse ‘’ Vol. Generique jour heure. Départ heure. Arrivée /durée périodevalidité ouvrir. Vol( ) fermer. Vol( ) 0. . * concerne Vol 0. . * 1 date. Départ {frozen} date. Arrivée ouvrir. Vol( ) fermer. Vol( ) {Add. Only} {frozen} 0. . * décrit 1 départ 0. . * 1 arrivée 0. . * 1 Aéroport nom escale 0. . * {ordered} Infos. Escale heure. Arrivée heure. Départ Ville nom Page : 15

U. M. L. Modélisation en UML : Diagramme des classes ØLe diagramme des classes

U. M. L. Modélisation en UML : Diagramme des classes ØLe diagramme des classes peut être réorganisé en packages {reservation. date <= vol. date. Depart} Client nom Prénom adresse tééphonel e-mail 1. . * Affréteur {frozen} 1 a effectué 0. . * date numero Annuler( ) Confirmer( ) 0. . * concerne 1 Passager nom Prénom O. BOUSSAID numéro 1. . * Propose propose Réservation 0. . 1 ‘’ metaclasse ‘’ Vol. Generique jour heure. Depart heure. Arrivee /durée periodevalidite ouvrir. Vol( ) fermer. Vol( ) 0. . * concerne Vol 0. . * 1 date. Depart {frozen} date. Arrivee ouvrir. Vol( ) fermer. Vol( ) {Add. Only} Compagnie. Aerinne nom {frozen} 0. . * décrit 1 départ 0. . * 1 arrivée 0. . * 1 Aéroport nom escale 0. . * {ordered} Infos. Escale heure. Arrivee heure. Depart Ville nom Page : 16

U. M. L. Modélisation en UML : Diagramme des classes Vol Réservations Réservation date

U. M. L. Modélisation en UML : Diagramme des classes Vol Réservations Réservation date numéro Annuler( ) Confirmer( ) Ø O. BOUSSAID Vol date. Depart date. Arrivee concerne 0. . * 1 {frozen} ouvrir. Vol( ) fermer. Vol( ) Réduire la dépendance mutuelle afin d’augmenter la modularité et l’évolutivité d’une application Page : 17

U. M. L. Modélisation en UML : Diagramme des classes Réservations Vol Client nom

U. M. L. Modélisation en UML : Diagramme des classes Réservations Vol Client nom Prénom adresse téléphone e-mail 1. . * Affréteur Réservation date numéro Annuler( ) Confirmer( ) 0. . * concerne 1 Passager nom Prénom O. BOUSSAID concerne 0. . 1 ‘’ metaclasse ‘’ Vol. Generique jour heure. Depart heure. Arrivee /durée periodevalidite ouvrir. Vol( ) fermer. Vol( ) 0. . * Vol 1 0. . * date. Depart {frozen} date. Arrivee ouvrir. Vol( ) fermer. Vol( ) {Add. Only} nom numéro 1 Propose propose {frozen} 1 a effectué 0. . * Compagnie. Aerinne 0. . * {frozen} decrit 1 départ 0. . * 1 arrivée 0. . * 1 Aéroport nom escale 0. . * {ordered} Infos. Escale heure. Arrivee heure. Depart Ville nom Page : 18

U. M. L. Modélisation en UML : Diagramme des classes Généralisation et réutilisation Ø

U. M. L. Modélisation en UML : Diagramme des classes 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 Reservations. Bus Voyages. Bus Reservation. Bus date numéro Annuler( ) Confirmer( ) O. BOUSSAID Voyage. En. Bus concerne 0. . * 1 {frozen} date. Depart date. Arrivee Ouvrir. Voyage( ) fermer. Voyage( ) Page : 19

U. M. L. Modélisation en UML : Diagramme des classes Voyages. Bus Reservations. Bus

U. M. L. Modélisation en UML : Diagramme des classes Voyages. Bus Reservations. Bus Client nom Prénom adresse téléphone e-mail {frozen} référence 1 Propose 0. . 1 1 a effectué 0. . * Reservation. Bus date numéro Annuler( ) Confirmer( ) 0. . * concerne 1. . * Passager nom Prénom O. BOUSSAID Voyagiste nom départ Voyage. En. Bus concerne {frozen} date. Depart heure. Depart date. Arrivee heure. Arrivee /durée ouvrir. Voyage( ) fermer. Voyage( ) 0. . * 1 arrivée 0. . * 1 Ville nom arrêt 0. . * {ordered} Infos. Arret heure. Arrivee heure. Depart Page : 20

U. M. L. Modélisation en UML : Diagramme des classes Fusion des 2 modèles

U. M. L. Modélisation en UML : Diagramme des classes Fusion des 2 modèles 1. Il faut isoler les classes communes dans des packages 2. Il faut factoriser les propriétés communes AVION BUS Reservation. Bus Reservation. Vols Voyages. Bus Lieux O. BOUSSAID Page : 21

U. M. L. Modélisation en UML : Diagramme des classes Il faut isoler les

U. M. L. Modélisation en UML : Diagramme des classes Il faut isoler les classes communes dans des packages Classe abstraite Réservations Client nom Prénom adresse tél e-mail a effectué 1 0. . * {frozen} Reservation. Vol (from Reservations. Vols) 1 concerne 0. . * date numéro {frozen} (from Vols) 1 Passager nom Prénom Annuler( ) Confirmer( ) Reservation. Bus (from Reservations. Bus) concerne Vol O. BOUSSAID Réservation 1 concerne {frozen} Voyage. En. Bus (from Voyages. Bus) Page : 22

U. M. L. Modélisation en UML : Diagramme des classes Package généralisé Réservations Packages

U. M. L. Modélisation en UML : Diagramme des classes Package généralisé Réservations Packages spécialisés Reservations. Bus Reservations. Vols Voyages. Bus Package réutilisable O. BOUSSAID Vols Lieux Page : 23