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 :

[DC] Relation <<uses>>


Sujet :

Diagrammes de Classes

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 244
    Par défaut [DC] Relation <<uses>>
    Voici le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package dao.requete;
    
    
    public class HibernateDaoFactory
    {
       
        public static IDaoEngin getDaoEngin()
        {
            return new DaoEngin();
        }
    
      // suite du code ...
    }
    Le (pseudo) diagramme de classe suivant traduit-il la fonction getDaoEngin() ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
                             <<use>>       <<interface>>
    HibernateDaoFactory -----------------> IDaoEngin <|-------DaoEngin
    Merci.

  2. #2
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 551
    Par défaut
    non, HibernateDaoFactory dépend de DaoEngin

    HibernateDaoFactory ---<<use>>---> DaoEngin <|----- IDaoEngin
    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 extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 244
    Par défaut
    Citation Envoyé par bruno_pages Voir le message
    non, HibernateDaoFactory dépend de DaoEngin

    HibernateDaoFactory ---<<use>>---> DaoEngin <|----- IDaoEngin
    Le type de relation que j'ai utilisé est bon.

    Par contre, je ne suis pas d'accord avec toi : La fonction renvoi un IDaoEngin et en plus c'est DaoEngin qui implémente l'interface IDaoEngin et non le contraire comme tu l'as modélisé.

    Dis-moi ce que tu en penses.

    A+

  4. #4
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 551
    Par défaut
    tu as raison, DaoEngin <|----- IDaoEngin est à l'envers

    par contre le fait que le profile de l'opération retourne un IDaoEngin n'a aucune importance : getDaoEngin() créé un DaoEngin, donc
    HibernateDaoFactory ---<<use>>---> DaoEngin
    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 extrêmement actif Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 244
    Par défaut
    Citation Envoyé par bruno_pages Voir le message
    tu as raison, DaoEngin <|----- IDaoEngin est à l'envers

    par contre le fait que le profile de l'opération retourne un IDaoEngin n'a aucune importance : getDaoEngin() créé un DaoEngin, donc
    HibernateDaoFactory ---<<use>>---> DaoEngin
    Tu es sûr de cela ? Cela m'étonne car cela signifie que le jour ou le IDaoEngin retourné devient un DaoEngin2 au lieu du DaoEngin alors le modèle doit-être modifié. Pourtant un des buts de modéliser est d'obtenir une abstraction la plus grande possible par rapport au système.

    A+

  6. #6
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 551
    Par défaut
    Citation Envoyé par Mister Nono Voir le message
    un des buts de modéliser est d'obtenir une abstraction la plus grande possible par rapport au système.
    de façon générale le but de la modélisation est de montrer ce qui est, pas d'induire le lecteur en erreur

    Mais en fait il y a juste un quiproquo sur le but. Pour moi, lorsque tu fais un schéma montrant les dépendances de la classe HibernateDaoFactory celle-ci est une boite blanche, et donc tu décrits son implémentation (qui utilise DaoEngin). Toi tu voulais rester au niveau interface en considérant que ta classe est une boite noire, mais dans ce cas il ne faut pas faire cette dépendance, le fait que l'opération rendre un IDaoEngin suffit à lui même

    [edit]
    le 'bon' diagramme de classes boite noire contenant HibernateDaoFactory est un diagramme indiquant ses opérations publiques avec leur profile

    un diagramme de classes boite blanche sur I]HibernateDaoFactory[/I] aura la dépendance vers DaoEngin car l'implémentation des opérations n'y étant pas visible l'utilisation de DaoEngin ne peut être déduite

    par contre, si tu fais des diagrammes de composants et que l'un d'eux provide d'une façon ou d'une autre HibernateDaoFactory, alors il faudra que ce même composant require IDaoEngin
    [/edit]
    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

  7. #7
    Membre expérimenté Avatar de ze_corsaire
    Inscrit en
    Décembre 2007
    Messages
    240
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2007
    Messages : 240
    Par défaut
    Citation Envoyé par bruno_pages Voir le message
    tu as raison, DaoEngin <|----- IDaoEngin est à l'envers

    par contre le fait que le profile de l'opération retourne un IDaoEngin n'a aucune importance : getDaoEngin() créé un DaoEngin, donc
    HibernateDaoFactory ---<<use>>---> DaoEngin
    Ce n'est pas un petit HibernateDaoFactory ---<<instanciate>>---> DaoEngin dans ce cas ?

    _______________

  8. #8
    Modérateur
    Avatar de bruno_pages
    Homme Profil pro
    ingénieur informaticien à la retraite
    Inscrit en
    Juin 2005
    Messages
    3 551
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 551
    Par défaut
    Citation Envoyé par ze_corsaire Voir le message
    Ce n'est pas un petit HibernateDaoFactory ---<<instanciate>>---> DaoEngin dans ce cas ?
    si on ne regarde que le fait qu'il y est un new DaoEngin c'est oui

    mais malgré le nom (factory) et ce new il est difficile de savoir si c'est effectivement le rôle premier de la classes car seule une opération à été dévoilée
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. relation entre diagramme d'objet et use case
    Par meryDev dans le forum Cas d'utilisation
    Réponses: 0
    Dernier message: 09/01/2011, 19h30
  2. Use Case: relation d'association
    Par hammag dans le forum Cas d'utilisation
    Réponses: 5
    Dernier message: 13/09/2006, 12h14
  3. Problème avec mes tables de relation...
    Par mmike dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/06/2003, 15h16
  4. "use may clash"
    Par Jibees dans le forum Modules
    Réponses: 4
    Dernier message: 15/05/2003, 16h27
  5. Connaitre l'unitée à ajouter dans USES
    Par DelphiCool dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2002, 13h48

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