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 :

classe / séquence / C++


Sujet :

Diagrammes de Classes

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut classe / séquence / C++
    bonjour,

    je souhaite traiter un petit problème en le modélisant en UML puis en l'implémentant en C++. J'utilise bouml pour ce faire. Je précide que je débute dans ce genre d'exercice.

    Le problème:
    le personnel d'une entreprise possède plusieurs niveaux d'accès aux différents site de celle-ci. Il possèdera donc un niveau. On lui attribuera également un nom et un prénom ainsi qu'un identificateur ID.
    J'ai donc créé une classe Personnel, dérivant d'une classe Personne.

    Ma base contiendra donc l'ensemble du personnel. J'ai une classe Base composée de Personnel. Le constructeur de la classe alimentera la base à partir d'un fichier disque alors que le destructeur sauvera la base dans le fichier.
    L'implémentation de la composition se fait à l'aide d'un vector.

    Pour l'instant, mon application est en mode console, donc l'interface est minimaliste. Il m'a semblé intéressant de créer une classe Interface afin d'assurer le dialogue avec l'administrateur.

    J'ai créé un scénario permettant de créer un nouveau personnel. Je joins le diagramme de séquence auquel j'ai pensé.

    Quelques question:
    - mon modèle est-il correct?
    - aurais-je du me passer de la classe interface?
    - dans la classe Interface, j'ai un attribut de type Personnel. cela pose-t-il problème au niveau du modèle?

    J'attends vos propositions avant de poser d'autres questions.

    Merci d'avance.
    Images attachées Images attachées   

  2. #2
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Dans le diagramme de séquence on ne voit aucun paramètre passer dans les méthodes comme le nom ou le niveau et du coup cela est aussi inexistant dans ton diagramme de classe. Je pense que tu peux enrichir ton diagramme en indiquant les paramètres dans ton diagramme de séquence.


    Pour l'interface je trouve que le nom est mal trouvé parce que c'est trop générique. Est-ce que tu pensais à une interface graphique si c'est le cas alors tu peux garder le nom mais ajoute un stéréotype boundary de tel façon à bien voir qu'il s'agit d'une interface graphique



    Et je ne vois pas trop comment tu pourrais te passer d'une classe interface

  3. #3
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    merci pour ta réponse.

    Dans le diagramme de séquence on ne voit aucun paramètre passer dans les méthodes comme le nom ou le niveau et du coup cela est aussi inexistant dans ton diagramme de classe. Je pense que tu peux enrichir ton diagramme en indiquant les paramètres dans ton diagramme de séquence.
    les paramètres apparaissent dans les classes. Dans le diagramme de séquence, j'ai pris l'option de ne pas les développer afin de ne pas trop alourdir.

    Est-ce que tu pensais à une interface graphique
    pour l'instant, comme je l'indiquais dans mon premier message je suis en mode console.

    En fait, je m'intéresse particulièrement à une utilisation pratique de l'uml, le code donc. J'ai quelques bouquins et des tutos trouvés sur le net et je trouve que cet aspect est trop peu développé.

    C'est en passant à l'implémentation que je suis rendu compte du manque de pertinence de ma modélisation.

  4. #4
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par jackk Voir le message

    les paramètres apparaissent dans les classes. Dans le diagramme de séquence, j'ai pris l'option de ne pas les développer afin de ne pas trop alourdir.
    Non cela n'alourdit pas cela l'enrichit il faut trouver le juste milieu mais n'en mettre aucun ce n'est pas un juste milieu. Cela permet de mieux spécifier les méthodes de tes classes sinon à quel moment tu fais ce travail ? Quand tu fais le diagramme de classe ? Ce choix n'est pas judicieux.

    En pratique une fois que mon diagramme de séquence est terminé alors le diagramme de classe est automatiquement déduit et complet c'est à dire avec les classes, les méthodes et leurs paramètres. En pratique il y a des allers retours entre séquence et classe pour améliorer l'ensemble

  5. #5
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 539
    Par défaut
    ok, j'ai fait quelques ajouts (voir fichiers joints).

    cependant, j'ai dans Base un méthode creeEmploye afin d'ajouter un employé dans la base qui ne me satisfait pas trop. Quelle est la meilleure façon pour ajouter une instance de la classe Employé dans mon vecteur?

    De plus, lorsque je génère le code C++, j'obtiens le message d'erreur ci-joint.

    A+
    Images attachées Images attachées    

  6. #6
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    C'est du design pattern (pattern créateur). Tu peux utiliser une Factory.

    Je te conseille aussi de regarder le pattern forte cohésion parce que ta classe base fait un peu tout et n'importe (elle crée des employés, elle affiche, elle tri, elle fait des vérifications etc...).

    Bref, cette classe Base n'a vraiment pas une forte cohésion il faut donc découper en d'autres classes. Regarde aussi le pattern de responsabilité unique.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2010, 09h26
  2. Réponses: 2
    Dernier message: 23/04/2010, 11h01
  3. Réponses: 0
    Dernier message: 14/04/2010, 01h03
  4. Réponses: 3
    Dernier message: 03/03/2009, 12h29
  5. Réponses: 1
    Dernier message: 11/11/2006, 09h36

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