IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Diagrammes de Classes Discussion :

modélisation de véhicules


Sujet :

Diagrammes de Classes

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Points : 5
    Points
    5
    Par défaut modélisation de véhicules
    bonjour,
    j'énonce le problème:
    On veut créer des véhicules. On peut alors créer une moto, une voiture ou même un 4x4. Ces véhicules ont des points communs comme par exemple avancer ou freiner. Cependant ils peuvent faire des choses spéciales. Par exemple une moto peut faire un wheeling, un 4x4 peut faire du tout terrain... Aussi, les véhicules sont classés par marque de fabriquant (ex: suzuki, ford etc..). Deux véhicules de marques différentes, auront par exemple un sigle différent, un type de moteur différent, des options différentes ou des fonctionnalité spéciales. A partir de ça j'aimerais construire un diagramme de classe.
    La première idée (la plus simple) qui me vient est celle-ci (j'ai volontairement omis les méthodes et attributs qui ne nous intéresse pas vraiment):
    https://www.dropbox.com/s/fpbp0xjvw7...diagramme1.png
    Mais c'est pas top car beaucoup de redondances, et si on veut ajouter des marques il faut à nouveau créer des classe voiture, moto etc..
    La deuxième solution que j'ai trouvé est d'ajouter une classe abstraite pour gérer les marques. Chacun des véhicules va instancier un objet héritant de la classe marque et va leur permettre d'avoir les caractéristiques d'une marque(je sais pas si je suis très clair ):
    https://www.dropbox.com/s/e5z03y3q3b...diagramme2.png
    Est-ce une solution convenable? y a t-il des solutions plus appropriées?
    Merci pour vos réponses.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    personne pour donner son avis?

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 89
    Points : 86
    Points
    86
    Par défaut
    Salut Camarcus26,

    ton idee est pas tres claire.

    Personnellement, je pense pas qu il faille un lien direct entre une marque et un type de moteur.

    Un vehicule a une marque, et un moteur si tu veux, et le moteur a lui-meme une marque generalement (qui n'est pas necessairement la meme que celle du vehicule dans lequel il est installe).

    A partir de la, un vehicule aurait donc bien les procedures/fonctions freiner/avancer etc..., et aurait un attribut une marque (qui correspond a un nom, et a un sigle ?) et un moteur, non correle directement a la marque - perso je vois les choses comme ca
    [bien sur, la liste ci dessus n'est pas du tout exhaustive].

    Bonne continuation,

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Merci pour ton avis.
    En faite c'est pas vraiment le moteur ou autre qui m’intéresse (ce ne sont que des exemples) mais surtout le lien entre véhicule, les types de véhicules et les marques. Ton idée d'argument serait intéressante si il n'y avait que des arguments du genre couleur, type de moteur etc... mais la les marques doivent permettre de faire des actions supplémentaire. Je pourrait appeler par exemple la méthode "actionSpecicale()" dans la classe véhicule et que celle-ci soit exécuter par la classe marque. Un véhicule d'une marque peut faire des chose ou fournir des services que les autres marque ne font pas. Je vais re développer mon exemple:
    - une voiture peut aller à 180km.
    - une voiture de chez Peugeot peut faire des drifts et peut être remplacé en cas de casse moteur.
    - un 4x4 peut aller dans la terre.
    - un 4x4 de chez Toyota peut faire du rockrolling.
    - un véhicule peut avancer.

    Voila peut être que ce sera plus claire avec ces phrases... Après peut être que j'ai pas bien compris ton idée, ce qui est probable

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 89
    Points : 86
    Points
    86
    Par défaut
    Hello,

    je comprends ton idee.
    Mais je pense que la marque peut pas apporter une methode sur le moteur .. En quoi une voiture Peugeot et un bateau Peugeot (s'ils ont des bateaux.. supposons) auraient la meme methode "speciale" relie a leur marque ?

    - une voiture de chez Peugeot peut faire des drifts et peut être remplacé en cas de casse moteur.
    Tu veux pas, par exemple, dans la classe Vehicule, faire ta methode remplacerMoteur(Moteur moteur), et checker la marque dans cette methode, et lancer une exception si ton vehicule est pas Peugeot [par exemple] ?
    Si ta methode de faireDrift est si specifique a voiture Peugeot, tu peux t'en sortir avec des exceptions et check juste si la marque de ton vehicule est Peugeot, et sinon lancer une exception (ou juste ne rien faire hein).
    Ca peut etre une idee.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //dans la classe vehicule
    void drift ()
    {
        if (this.marque == Peugeot)
        {
            // do something
        }
        else
        {
            // nothing to do
        }
    }
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (this.marque == Peugeot)
    {
        // do something
    }
    else
    {
        // to be handled in control
        throw (new Exception("Not implemented"));
    }
    et tu geres l'exception depuis le niveau "au-dessus"

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    C'est vrai qu'un bateau qui fait du drift... le problème c'est que mon sujet réel est différent (normalement il s'agit de personnage classé par famille elf, orc humain... et chaque famille a des types de personnage comme des guerriers, des archer etc..) j'ai voulu prendre une situation différente pour éviter de mettre le sujet sur le forum et pour que ce soit plus clair mais finalement j'ai des exemple pas cohérents...
    Pour ton idée c'est bien quelque chose que je ferais en tant normal, mais j'ai peur qu'après en ajoutant des choses, il y est des "if" de partout et que du coup on perde les avantages du OO. De plus on a pour consigne vraiment de classer les véhicules (type de personnage en réalité) par marque...

Discussions similaires

  1. Quels logiciels de modélisation pour une base de données ?
    Par octopus dans le forum Décisions SGBD
    Réponses: 7
    Dernier message: 11/06/2023, 16h20
  2. Question sur la modélisation du problème de tournées de véhicules
    Par laureat dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 26/01/2011, 00h07
  3. Réponses: 12
    Dernier message: 10/11/2010, 09h15
  4. [MCD] Modéliser fabrication de véhicule
    Par tetsuo34 dans le forum Schéma
    Réponses: 2
    Dernier message: 24/09/2009, 21h52
  5. Réponses: 0
    Dernier message: 09/03/2009, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo