Université Bordeaux I MIAGE 3ième année – 6 Mars 2001. Travaux pratiques Module UML- Modélisation Objet.

Ce TP est à rendre pour le vendredi 30 Mars 2001

Votre chef de projet a décidé pour une fois de suivre les règles du manuel du “parfait concepteur” et vous charge de réaliser avec les outils les plus évolués du marché (freeware évidemment) l’analyse et le modèle de conception du nouveau projet : “Des vacances à la carte pour tous les goûts et les budgets”.

Votre client est une agence de voyage qui, toujours soucieuse de proposer plus de services à ses clients, veut diversifier son offre. En clair, cela signifie pour vous que le programme de réservation va devenir très compliqué, que bien sûr votre client ne sait pas très bien ce qu’il désire in fine et donc que vous devrez souvent modifier les modules de traitements.

Comme vous n’êtes jamais pris au dépourvu, vous allez satisfaire votre chef de projet car vous avez mis la main, pour le prix d’un FTP à l’adresse : http://argouml.tigris.org, sur ArgoUML un logicel d’aide à la conception orienté objet. Avec un design objet réussi, vous pourrez modifier votre modèle aussi souvent que votre client en exprimera le caprice et ceci sans effort.... enfin, il paraît!

Voici les premières demandes de votre client, tel qu’il les a formulées pendant votre entretien :

– Nous avons 2 grands types d’offres : les voyages sans prestation ou avec prestations.

1. Sans prestations signifie : un billet d’avion A/R uniquement.

2. Avec prestations signifie : une proposition de séjour dans un hôtel et la possibilité de louer une voiture.

Le tableau ci-dessous contient les différentes destinations et les villes de départ possibles.

Départ  Destinations
Pointe à Pitre Fort de France Tombouctou Dakar Casablanca
Paris  X  X  X  X  X
Bordeaux  X  X  X
Marseille  X  X  X
Lille  X  X
Lyon  X  X  X

Afin de couvrir le maximum de destinations, l’agence propose également des billets relais entre Pointe à Pitre et Fort de France (dans les deux sens). Ainsi même si une des deux destinations n’est pas accessible au départ de chaque ville, il est possible de l’atteindre avec une escale. Les mêmes possibilités sont offertes pour relier les 3 autres villes (Tombouctou, Dakar et Casablanca) les unes aux autres.

Pour chaque destination, l’agence dispose d’un réservoir de places à prix réduit (20 % du prix de base). Quand ce solde est épuisé, elle vend les billets au tarif normal. Toutefois, si le client le désire, il peut voyager en 1ière classe avec un supplément de 30 %.

Les séjours sont répartis en deux catégories :

– Séjour simple : chambre d’hôtel et éventuellement voiture, sans changement de lieu de séjour.

– Séjour itinérant : chambre d’hôtel et éventuellement voiture puis déplacement par avion vers une autre destination pour laquelle il faut aussi un hôtel et éventuellement une voiture. Ces déplacements ne peuvent se faire qu’entre les destinations pour lesquelles l’agence dispose de liaisons relais : Pointe à Pitre et Fort de France ou bien Tombouctou, Dakar et Casablanca.

Pour chaque destination, l’agence propose un hôtel, chaque hôtel offrant une prestation dîte standard et une prestation de luxe avec une majoration de 20% du prix de la prestation standard.

NB : Pour chaque vol, on dispose d’un calendrier de dates possibles, les prix des hôtels (et des locations de voitures) sont donnés par jour. Vous devez donc calculer pour chaque réservation le prix du séjour à l’hôtel.

Travail à réaliser Vous rendrez un cahier d’analyse pour cette application dans lequel vous exposerez et justifierez vos choix de modélisation : identification et rôle des objets et des modules retenus. Pour illustrer votre propos vous fournirez :

1. les diagrammes de classes et d’association de l’ensemble des objets nécessaires à cette application,

2. le diagramme des cas d’utilisation de l’application,

3. un diagramme de séquence pour la réservation d’un séjour sans prestation,

4. un diagramme de séquence pour la réservation d’un séjour simple avec prestation,

5. un diagramme de séquence pour la réservation d’un séjour itinérant avec prestation,

6. le diagramme d’états d’une réservation d’un séjour itinérant avec prestation.

7. un des diagrammes d’activités significatif de votre application.

Vous fournirez également le code Java des objets appartenant au modèle avec leurs attributs et leurs méthodes. Toutefois l’objectif n’est pas de rendre un programme Java “qui tourne” mais le squelette d’une application qui doit être cohérent avec votre analyse. Pour cela il est indispensable d’expliciter très clairement les paramètres de chaque méthode, les appels internes à d’autres procédures et les valeurs de retour. Vous concluerez avec une critique des avantages et inconvénients de vos choix.

Question subsidiaire : votre client vient d’avoir une idée géniale, il va proposer à ses clients des vols relais entre les villes de départ. Evaluer les conséquences sur votre modèle d’une telle modification : ajout, suppression de traitements? d’objets?