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 :

comment exprimer cette règle au niveau de diagramme de classe ?


Sujet :

Diagrammes de Classes

  1. #1
    Membre régulier Avatar de spring.time
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 294
    Points : 84
    Points
    84
    Par défaut comment exprimer cette règle au niveau de diagramme de classe ?
    Salut
    est ce vous pourriez m'aider concernant mon diagramme de classes:
    un utilisateur de mon application crée un nouveau projet, lui assigne des utilisateurs, pour chaque utilisateur, il doit mentionner son rôle.
    alors il crée un nouveau rôle (role 1) et il mentionne les permissions relatives aux projets :
    par exemple:
    -permission 1: ajouter un produit.
    -permission 2: éditer un produit.

    puis il mentionne les permissions relatives aux tâches:
    -permission 1: créer une tache.

    j'ai pensé à ceci :

    classe<utilisateur>1..*_____0..*classe<rôle>0..*____0..*classe<Permission>

    classe<Permission>1..* ________ 0..*classe<Projet>

    classe<Permission>1..* ________0..* classe<tâche>

    que vous en pensez ?

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 534
    Points : 6 723
    Points
    6 723
    Par défaut
    Bonjour,

    je ne suis pas trop d'accord avec vos relations entre Permission et Projet/Tache, surtout que celles-ci sont bidirectionnelles. Dans votre logique je comprends qu'on ai Permission --> Projet et Permission --> Tache, mais je ne vois pas l'intérêt d'avoir aussi pour les classes Projet et Tache d'avoir une relation vers Permission.

    Pour le coup je verrais plutôt une classe-relation.

    J'ai laissé une relation bidirectionnelle entre Utilisateur et Role, mais a priori je ne pas pas trop l'intérêt qu'a Role de connaitre les Utilisateurs

    Vos multiplicités 1..* (au lieu de 0..*) sont douteuses, elles imposent trop de contraintes
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  3. #3
    Membre régulier Avatar de spring.time
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 294
    Points : 84
    Points
    84
    Par défaut
    Je vous remercie beaucoup pour cet éclaircissement
    pour l'association Role 1..* _____ 0..*Utilisateur
    l'utilisateur au moment de sa création, il est obligatoirement, de lui assigner un rôle, d'ou' la présence de la multiplicité 1..*

    la classe Permission est une classe d'association, et elle contient une énumeration comme attribut, est ce bien correct ?

    la traduction de ce que vous m'avez montré en code java:
    classe Utilisateur contient une liste de Role
    classe Role contient une liste de Utilisateur
    il existe une relation many to many entre Role et Utilisateur.

    la meme chose entre Projet et Role

    aussi entre Tache et Role

    la classe d'association Permission contiendra
    une instance de :
    - Role
    - Tache
    - Projet

    est ce correct ?

  4. #4
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 534
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : ingénieur informaticien à la retraite
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 3 534
    Points : 6 723
    Points
    6 723
    Par défaut
    Dans mon diagrammes il y a deux classes-associations, et non une seule. Mon diagramme était au niveau conceptuel, l'implémentation en Java peut être faite de différentes façons. Mais je me rends compte maintenant qu'une unique classe Role comme je l'ai présenter ne convient peut être pas sauf s'il y a une corrélation entre ce que l'on peut faire au niveau Tache et au niveau Projet. Par exemple un rôle d'administrateur permettrai de créer des taches et des projets, alors qu'un rôle de secrétariat ne permettrait que de les modifier. Si par contre il n'y a pas de lien au niveau permission au niveau tache et projet alors la classe Role me parait trop artificielle, car il y a un Role vis à vis des taches et un autre vis à vis des projets (se qui se résout élégamment en C++ via une classe paramétrée, mais on est an Java), il faudrait deux classes ou aucune.

    Comme je ne sais pas s'il y a corrélation je vais simplifier en ne considérant que les Taches, il y a plusieurs façon d'implémenter la classe-association entre Role et Tache, par exemple :

    - via une map, la clef est la permission, la valeur est une collection (list,vector,array, et ...) de taches (*)
    - si les seules permission sont creer et modifier, et qu'on peut modifier dés qu'on a le droit de créer, alors un simple booleen peut l'indiquer et il n'y a pas de classe Permission, il faut simplement ce booleen et la collection de taches (*)

    (*) Il me parait bizarre qu'un role puisse gerer plusieurs taches et/ou projets, et non un seul
    Bruno Pagès, auteur de Bouml (freeware), mes tutoriels sur DVP (vieux, non à jour )

    N'oubliez pas de consulter les FAQ UML et les cours et tutoriels UML

  5. #5
    Membre régulier Avatar de spring.time
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 294
    Points : 84
    Points
    84
    Par défaut
    Merci encore une fois
    pour que vous puissiez comprendre, veuillez vous connecter à cette application en ligne Gestion des projets
    , là Gestion des roles et là Gestion des taches
    la gestion est relative au projet' projetDeveloppez'.

Discussions similaires

  1. Comment exprimer les clés étrangères dans un diagramme de classe?
    Par si-a7med dans le forum Diagrammes de Classes
    Réponses: 2
    Dernier message: 08/11/2016, 19h36
  2. comment exprimer une règle de gestion au niveau du MCD?
    Par spring.time dans le forum Merise
    Réponses: 11
    Dernier message: 14/06/2013, 16h36
  3. Bloqué au niveau du diagramme de classe
    Par houmane dans le forum Diagrammes de Classes
    Réponses: 6
    Dernier message: 14/06/2011, 20h16
  4. Réponses: 5
    Dernier message: 29/08/2010, 15h48
  5. [débutant][JSci][Matrix]comment utiliser cette classe
    Par Clark dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 10/05/2005, 10h40

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