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

UML Discussion :

Contrôle de cohérence


Sujet :

UML

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Points : 35
    Points
    35
    Par défaut Contrôle de cohérence
    Bonjour à tous le monde,

    Je ne vois pas très bien comment faire un contrôle de cohérence en UML. Par exemple, comment Visual Studio fait pour vérifier que une classe ou un bout de code possède une erreur. Je pense qu'on doit passé par une interface qui permettrait à chaque classe de s'autovérifier, mais c'est qu'une supposition. D'où l'ouverture de ce sujet, quelqu'un aurait-il une idée (diagramme de classe) pour réaliser un contrôle d'erreur ?

    Merci d'avance à ceux qui me répondront .

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Contrôle de cohérence de quoi ?
    Les éditeurs de code s'appuient sur une grammaire pour vérifier que le code est correct ou non.

    Toi tu veux faire quoi ?

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Merci ego pour ta réponse, je vais apporter un peu plus de précisions à mes besoins. En fait, actuellement je programme un logiciel pour faire des séquences.

    Voici le diagramme UML acutuel :

    Nom : uml1.png
Affichages : 176
Taille : 12,6 Ko

    Donc la classe Verificateur permet de vérifier chaque éléments des classes. L'interface Verification permet à chaque étape de s'auto-vérifier. Donc, j'aimerais bien savoir comment améliorer ce digramme UML, pour que ça soit plus facile à implémenter. Surtout que le code commence à devenir n'importe quoi et que ça va dans tous les sens. J'ai besoin de vérifier :

    - les fichiers de séquence en intégralité pour voir si il n y a les mêmes noms de séquences utilisées
    - chaque séquence pour voir si il n y a pas d'erreur du type même nom de variable, if mal placé etc...
    - chaque étape pour voir si les noms sont bons, si il n y a pas d'erreurs de saisies etc...

    Merci d'avances

  4. #4
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Ben déjà je ne mélangerai pas la structure de tes données et la notion de vérification.
    Je ne mettrai pas de méthode "vérifier" dans les classes "Sequence", "SubSequence",...

    J'essayerai plutôt d'implémenter le principe du Visiteur. Tu aurais une Interface Visitor et une classe implémentant cette interface VerificationVisitor

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2011
    Messages : 62
    Points : 35
    Points
    35
    Par défaut
    Hello ego,

    Merci pour ta réponse, je pense que tu veux parler du design pattern Visitors ? J'ai regardé un peu, mais je ne comprend pas bien comment l’implémenter avec mon diagramme UML. En fait, dans mon cas chaque étape pouvait s'auto-vérifié, donc pour la vérification je regarde juste les étapes que j'ai besoins. Mais l'idée est intéressante, je ne vois juste pas trop comment l'implémenter à mon diagramme . J'ai pas très bien compris le concept du accept dans l'exemple suivant : http://pcaboche.developpez.com/artic...e/?page=page_5.

    Merci pour ta réponse ego .

  6. #6
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    tu enlèves les opérations Verification de tes classes
    Tu créés une Interface Visitor avec les opérations suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void visit(FileSequence fileSequence)
    void visit(Variable variable)
    void visit(SubSequence subSequence)
    ...
    Un visit pour chaque type de classe

    Ensuite dans tes classes FileSequence, Variable, SubSequence,...tu ajoutes une opération accept(Visitor visitor). Cette opération ne fait que faire l'appel visitor.visit(this), qui va donc appeler la méthode visit correspondant à l'objet sur lequel le visitor se trouve.

    Ensuite tu créés une classe AbstractVisitor qui extends l'interface Visitor et qui pour chaque méthode visit, parcours les éléments qu'il faut pour chaque type de classe, par exemple, pour FileSequence tu auras un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if fileSequence.getVariables()!=null)
      (for (Variable v : fileSequence.getVariables())
        v.accept(this);
    Enfin tu créés la classe Verification qui extends AbstractVisitor et tu redéfinis les opérations visit en faisant d'abord le test que tu doit faire et ensuite tu rappelles le visit de AbstractVisitor :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Tester, par exemple que 2 variables n'ont pas le même nom
    ...blabla...blabla
    
    // Rappel du visit du parent
    super.visit(fileSequence);

Discussions similaires

  1. Contrôle de cohérence des <summary>
    Par sierramike dans le forum C#
    Réponses: 2
    Dernier message: 12/03/2012, 12h50
  2. [AC-2003] Contrôle de cohérence
    Par flomen dans le forum VBA Access
    Réponses: 9
    Dernier message: 11/05/2011, 10h38
  3. Réponses: 9
    Dernier message: 26/01/2011, 09h56
  4. Contrôle de cohérence de balise
    Par tanche dans le forum Langage
    Réponses: 1
    Dernier message: 25/09/2008, 21h57
  5. Réponses: 2
    Dernier message: 26/11/2005, 16h17

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