Projet IPA 2001 Java : Véhicules

I. Présentation du contexte

But du projet

Ce projet a comme but de spécifier en Java un certain nombre d'objets et de comportements de la vie réelle. Le domaine choisi est celui des véhicules, des composants d'un véhicule et des conducteurs. Il s'agit avant tout d'un travail de conception de classes (spécification dans un modèle objet) pour représenter ces entités de la vie réelle.

Contenu

L'application n'effectuera aucun dessin, seule la représentation mémoire des entités sera prise en compte. Il faut concevoir le projet comme la réalisation de classes représentant les entités et d'une classe utilisatrice permettant de simuler la conduite des véhicules. En aucun cas, vous ne serez amené à employer les classes Java permettant de faire du dessin en 2D et 3D.

II. Contenu du projet

Il est impératif de bien relire vos notes de cours et les exemples associés concernant l'héritage, les classes abstraites, les interfaces et les implémentations.

Dans un premier temps, le travail consiste à définir les classes ou interfaces obéissant aux spécifications suivantes. Si d'autres membres que ceux proposés dans l'enoncé vous semblent intéressants, n'hésitez pas à les ajouter mais justifiez leur ajout. Vous devrez définir les constructeurs qui vous semblent indispensables. Il en faut au moins un par classe. En justifiant votre point de vue, vous devrez également qualifier chaque classe comme étant soit une classe "normale", soit une classe abstraite, soit une interface. Chaque classe devra contenir la méthode toString().

  1. La classe ou interface Vehicule représente un véhicule se déplaçant. Attention, à vous de déterminer le type exact des champs et le prototype exact des méthodes.
  2. La classe ou interface VehiculeAMoteur représente un véhicule qui possède un moteur et une boîte de vitesses. ce véhicule peut avancer, reculer, augmenter (en accélérant) ou diminuer (en décélerant ou en freinant) sa vitesse, caler. En outre, il indique continuellement sa vitesse.
  3. La classe ou interface Moteur représente un moteur. On peut :
    demarrer, arrêter un moteur ;
    augmenter ou diminuer le régime du moteur.
    Le moteur peut caler et indique continuellement son régime. Il est en surchauffe si son régime est trop important.
  4. La classe ou interface BoiteDeVitesses représente la boîte de vitesses d'un véhicule à moteur. Elle possède un ensemble de rapports (vitesses). On peut changer de vitesse, débrayer et la boîte indique le rapport sélectionné.
  5. La classe ou interface Conducteur représente le conducteur d'un véhicule à moteur. Il agit sur ce véhicule par les actions suivantes : débrayer, embrayer, accelerer ou décélerer, freiner, démarrer ou arrêter le moteur.
  6. La classe ou interface Voiture représente un type particulier de véhicule à moteur qui possède un nombre de sièges inférieur à 10.
  7. La classe ou interface Camion représente un type de véhicule à moteur qui possède un poids total en charge et un poids total roulant ne pouvant dépasser une limite imposée par la loi.
  8. La classe ou interface TransportEnCommun représente un type de véhicule à moteur possédant plus de 9 sièges. Ce véhicule contient un contrôleur qui demande le titre de transport des passages.
  9. La classe ou interface Bus est un type particulier de transport en commun dont vous préciserez la spécificité.
  10. La classe ou interface Car est un type particulier de transport en commun dont vous préciserez la spécificité.
  11. La classe ou interface VoitureDeCourse représente un type de véhicule à moteur dont vous fixerez raisonnablement les caractéristiques.

Les méthodes que vous êtes amené à écrire devront simuler le comportement désiré. Soit elles modifient l'état (les variables) de l'objet, soit elles simulent l'action par un affichage à l'écran, soit elles réalisent les deux opérations.
Il faut évidemment que vous disposiez de classes permettant de créer des objets qui seront utilisés dans le programme de test suivant.

Dans un second temps, vous écrirez un programme utilisant les classes que vous avez définies précédemment et permettant ainsi de les tester. Vous pouvez tester progressivement vos classes pour mieux y cerner d'éventuels problèmes.

Commencez par définir les liens entre les différentes classes que vous créerez avant d'écrire le code de leurs méthodes. Seulement ensuite, vous écrire l'implantation de chaque classe, c'est-à-dire le code des méthodes.

L'achèvement du projet donne une bonne vision de ce qu'est la spécification en java à travers l'héritage et l'implantation d'interfaces.

III. Soutenance et Compte-rendu

Vous devrez rendre un compte-rendu contenant :

La soutenance consiste en :