TD : Modélisation Objet

On veut concevoir un logiciel permettant de gérer le parc de véhicules d'une société. La société pourra posséder divers types de véhicules : voiture, camion... On veut réaliser le logiciel en Delphi en utilisant la modélisation orientée objet.

Pour chaque véhicule, on connaît l'immatriculation, la marque, le modèle, la couleur, la date d'acquisition, un historique des maintenances, un historique des accidents, l'utilisateur principal, le numéro du contrat d'assurances. On associera un statut : en panne, en maintenance, en service, non affecté.

Pour une voiture, on connaît aussi le nombre de places assises (pour l'assurance) et le type d'activité (voiture allant sur les chantiers, voiture d'un personnel administratif...).

Pour un camion, on dispose du tonnage maximal et du numéro d'ordre de la mission actuelle.

Bien évidemment, le nombre de véhicules (total et par catégorie) est connu à tout instant.

Pour chaque maintenance, on connaît la date d'entrée en maintenance, la date de sortie, l'objet de la visite et le coût.

L'utilisateur est défini par la donnée de son nom, son prénom, un identifiant unique et son poste dans l'entreprise. Le nombre d'utilisateur total est connu.

Lorsqu'un accident se produit, on mémorise la date du sinistre, le nom du conducteur, sa responsabilité (aucune, partagée, complète) et toute autre information que l'on juge utile (rubrique "divers").

Vous ferez le modèle objet nécessaire à la réalisation du logiciel (et pas la programmation). Le travail est à rendre sur feuille pour le lundi 17 décembre.

(1) Il est très recommandé de représenter graphiquement les relations entres les différentes classes (héritage, agrégation, association). Faire une légende des symboles utilisés.

(2) Donner, pour chaque classe, la liste des attributs :

  • préciser le type (non informatique) : entier, réel, chaîne de caractères, ensemble prédéfini.
  • préciser la protection (public, privé ou protégé)
  • préciser la nature de l'attribut (de classe ou d'instance)

(3) Proposer quelques actions (méthodes) possibles pour les différentes classes. On ne se contentera pas des méthodes Lit/Donne. Le nom devra être explicite. Le code n'est pas demandé.

En particulier, il est très important de donner les constructeurs/destructeurs, les méthodes manipulant les attributs de classe. Pour chaque méthode, on donnera le type des paramètres : donnée, résultat ou donnée-résultat.

Une petite phrase d'explication par méthode sera la bienvenue (pour décrire la fonction de la méthode).