Votre client, une agence de voyages, souhaite proposer la possibilité de réserver en ligne des billets d'avion à leurs clients.
Votre mission est de concevoir à l'aide du standard UML la modélisation de la plateforme.
Afin de mener à bien notre conception d'application, nous adpotons une stratégie en différentes étapes :
- Réalisation des règles de gestion
- Réalisation du diagramme des cas d'utilisation (use case diagram)
- Réalisation d'un diagramme d'activité
- Réalisation d'un Diagramme de séquence
- Réalisation d'un diagramme de classe
- Rédaction du dictionnaire de donnée
- Réalisation du MCD
- Transformation du MCD en MLD
- Transformation du MLD en MPD
Les règles de gestion sont au plus haut de l'abstraction. La définition des règles de gestion est une étape nécessaire avant toute chose car elle permet de définir les règles que suit le métier qui sera conceptualisé dans notre application.
L'application finale devra respecter toutes ces règles de gestion et celles-c serviront de règles directrices dans l'élaboration de notre application.
Le client consulte l'agence de voyage.
- Le client est constitué d'un nom, d'un prénom, d'un numéro de téléphone, d'une adresse mail. Celui-ce peut s'authentifier ou non.
- Le client renseigne ses souhaits : aéroport de départ souhaitée, aéroport d'arrivée souhaitée, date de départ, date d'arrivée souhaitée.
- Le client peut réserver plusieurs vols.
- Le client peut réserver pour des passagers.
- Le client choisit son numéro de siège.
- Le client paie sa réservation.
- Le client reçoit une facture/confirmation par mail.
- Le client peut annuler sa réservation.
L'agence de voyage consulte les différents compagnies afun de proposer des solutions au client.
- Récupère les infomations du client.
- Récupère les informations de vols auprès des différentes compagnies.
- L'agence calcule les potentielles escales.
- Propose au client les différents vols disponibles.
- Récupère le choix du client et confirme la réservation auprès de la compagnie.
- La compagnie définit un numéro de réservation.
- La réservation peut être composée d'un ou plusieurs vols (escales) et est composée des informations de vols pour chacun.
- L'agence de voyage définit un prix composé du prix des places additionné à sa commission.
La compagnie est le festionnaire des différents vols.
- Définit en amont les informations de vol.
- La compagnie valide ou refuse la réservation.
- La compagnie peut annuler le vol.
- La compagnie aérienne fournit les informations nécessaire en cas d'escale : aéroport d'escale, heure d'arrivée, heure de départ.
Le vol est défini par la compagnie.
- Une place réservé devient occupée, sinon elle est libre.
- Un vol a un prix, un numéro de vol, un horaire de départ (date + heure) et un horaire d'arrivée.
- Un vol est composé de places, disponibles ou non.
- Une ville peut posséder un ou plusieurs aéroport.
La deuxième étape de notre projet de conceptualisation d'application passe par un autre niveau d'abstraction: le diagramme des cas d'utilisation ou use case.
Le diagramme des cas d'utilisation est une représentation graphique des besoins de l'utilisateur et des différentes actions des acteurs.
Le use case diagram nous sert ici à décrire les fonctionnalités de notre application.
Un diagramme d'activité dans sa forme la plus épurée est réalisé afin de représenter le parcours client.
4 diagrammes de séquence ont étés réalisés suivant les principales activités impliquant le client et notre application :
- Cas d'une simple visite sans achat
- Cas d'une visite avec achat
- Cas d'une demande d'annulation par le client
-
- Cas d'une annulation par la compagnie de vol
Le diagramme de classe permet de représenter les différents acteurs de notre application selon les principes de l'orienté Objet. Sa forme est volontairement complexe de façon à ce que l'ajout de fonctionnalités ou d'acteurs à l'avenir soit aisé.
Une première version a été réalisée, suivant nos séquences : Cependant, celui-ci n'est pas orienté objet et ne suit pas les formes normales. L'ajout de classes abstraites nous permet d'obtenir ce diagramme :
Ce diagramme s'approche de notre version finale. L'ajout d'une classe passager était nécessaire à la bonne communication entre nos classes.
La version finale, propre:
Une première version du dictionnaire a été esquissée lors de notre modélisation du diagramme de séquence, puis progressivement modifiée lors de notre modélisation du diagramme de classe :
Nom de la donnée | Description | Format | Type | Règles de calcul | |
---|---|---|---|---|---|
Elementaire | Calculée | ||||
Client | |||||
client_firstname | First name of the client | string | x | ||
client_lastname | Last name of the client | string | x | ||
client_mail | mail of the client | string | x | ||
client_phone | client phone number | string | x | ||
Réservation | |||||
desired_departure | desired departure city | string | x | ||
desired_arrival | desired departure city | string | x | ||
date_of_departure | Desired departure date | date | x | ||
date_of_arrival | Desired arrival date | date | x | ||
isConfirmed | Booking reservation | bool | x | ||
passenger | |||||
passenger_name | name of the passenger | string | x | ||
passport_number | number of the passport | num | x | ||
ticket_number | number of the ticket | string | x | ||
Agency | |||||
commission | price of the agency commission | string | x | ||
agency_name | name of the agency | string | x | ||
total_price | price of the booking | num | x | seat_price + commission | |
airplane | |||||
flight_number | Number of the flight | num | x | ||
company_name | name of the company | string | x | ||
departure_hour | hour of departure for the flight | date | x | ||
arrival_hour | hour of arrival for the flight | date | x | ||
departure_date | date of the departure | date | x | ||
arrival_date | date of the departure | date | x | ||
departure_airport | airport of departure | string | x | ||
arrival_airport | airport of arrival | string | x | ||
seat | |||||
seat_number | number of the seat | num | |||
isAvailable ? | is the seat available ? | bool | x | ||
seat_price | price for the seat | num | x |
Dans la continuité du diagramme de classe et à partir du du dictionnaire de donnée. Une représentation simplifiée des données est proposée à travers notre MCD (modèle conceptuel des données) construit selon la méthode Merise