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

Eclipse Modeling Discussion :

Simuler automate avec Eclipse


Sujet :

Eclipse Modeling

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    J'ai pour mission de créer un automate simulant le fonctionnement des méthodes d'une classe.
    J'ai pensé utiliser GEF pour créer les arcs et les noeuds mais pour simuler le fonctionnement de cet automate après l'avoir créer.

    Quelqu'un saurait-il m'indiquer comment procéder ?

    Merci d'avance pour votre aide.

  2. #2
    Membre régulier Avatar de CORTEZ
    Profil pro
    Dev : Java/J2EE
    Inscrit en
    Juillet 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Dev : Java/J2EE
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2007
    Messages : 59
    Points : 82
    Points
    82
    Par défaut
    bonjour,

    -Premièrement il faut expliquer quelle est la nature de simulation que tu dois réaliser.

    -Deuxièmement, à mon avis, la bibliothèque Jgraph sera une solution plus simple pour toi que GEF.

    ATTENTION: GMF est un framework avec un aspect générative ==> tu dois spécifier tes composants graphiques à l'avance.
    ==> tu ne peux pas ajouter des composants au éditeur en cliquant sur un bouton .

    il a une alternative qui est en état de développement qui s'appelle Graphiti dans les labos de SAP mais elle est n'est pas suffisamment documentée .

    pour l'automate, il existe sur internet des implémentations mais à toi de décider si elles répondent à ton besoin.

    -----
    Cordialement.

  3. #3
    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
    As-tu une contrainte sur la "rédaction" de l'algorithme des opérations ?
    Tu peux aussi passer par des outils UML et le diagramme d'activités mais il s'agit ici simplement de la représentation de l'algorithme, pas de sa simulation.
    Et puis que veut dire simulation ? Si tu écris ton algo en Java, la JVM est un bon outil de simulation

  4. #4
    Nouveau membre du Club Avatar de Vincent Z.
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 29
    Points
    29
    Par défaut
    Bonjour.

    Citation Envoyé par fattouch_squall Voir le message
    J'ai pensé utiliser GEF pour créer les arcs et les noeuds mais pour simuler le fonctionnement de cet automate après l'avoir créer.
    Pour ça, il y a aussi ZEST, beaucoup plus simple à utiliser que GEF.
    C'est la solution que j'adopterais si je devais faire de l'Eclipse.
    Si c'est pour une application graphique en Java (pas Eclipse), JGraph me semble une bonne solution.
    Mécanicien en chef sur Roboconf.
    Et il y a encore du boulot...

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 68
    Points
    68
    Par défaut
    Merci pour vos réponses,je vais m'expliquer un peu plus.Bon pour commencer, mon application une application RCP, et elle contient un MultipageEditor, dans la page 0, il y a la possibilité de créer un diagramme de classe, et la page 1 pour un éditeur textuelle du code OAL, et une dernière page qui doit contenir une interface avec palette pour construire l'automate associé à chacune des méthodes de chaque classe crée dans la page 0.
    pour ce qui est de la simulation, je dois simuler le fonctionnement des méthodes (changement des états des objets...) seulement pas en ligne de code mais avec un automate graphique.

  6. #6
    Nouveau membre du Club Avatar de Vincent Z.
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par fattouch_squall Voir le message
    Merci pour vos réponses,je vais m'expliquer un peu plus.Bon pour commencer, mon application une application RCP, et elle contient un MultipageEditor, dans la page 0, il y a la possibilité de créer un diagramme de classe, et la page 1 pour un éditeur textuelle du code OAL, et une dernière page qui doit contenir une interface avec palette pour construire l'automate associé à chacune des méthodes de chaque classe crée dans la page 0.
    pour ce qui est de la simulation, je dois simuler le fonctionnement des méthodes (changement des états des objets...) seulement pas en ligne de code mais avec un automate graphique.
    S'il faut impérativement un éditeur avec une palette, GEF est la meilleure option.

    ZEST se passe de palette. C'est plutôt de la visualisation. Mais on peut l'utiliser en mode édition en l'associant à des commandes (+ handlers) et des actions / clic droits.

    GMF pourrait être une solution si le modèle est basé sur EMF. Il faut alors créer un éditeur GMF, l'embarquer dans l'éditeur multi-pages, puis gérer la synchronisation entre les pages. Si l'architecture sous-jacente est bonne (genre MVC), ça passe.

    Sinon, en GEF pur. Il faut implémenter un IEditorPart, directement, qui charge votre modèle et l'affiche sous la forme de figures GEF. Pas besoin d'enregistrer cet éditeur dans Eclipse. Vous l'utiliserez directement dans votre éditeur multi-pages.
    Mécanicien en chef sur Roboconf.
    Et il y a encore du boulot...

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 68
    Points
    68
    Par défaut
    pour ce qui est de la création de l'automate avec GMF, c'est déjà réussi, mais le problème vient lors de la simulation? qu'elles sont les classes que je dois toucher pour faire la simulation?

  8. #8
    Nouveau membre du Club Avatar de Vincent Z.
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 29
    Points
    29
    Par défaut
    Déjà, il va falloir un déclencheur, comme un menu ou un raccourci clavier.
    Puis il va y avoir le code à exécuter. Et là, ça dépend de la simulation.

    Est-ce que c'est simplement changer la couleur d'un noeud ?
    Il faut trouver alors l'edit part de ce noeud et modifier la couleur ou l'image de la figure associée.

    Est-ce que c'est aussi bouger des noeuds ?
    Pareil qu'avant, sauf que l'on modifiera la location de la figure.

    Est-ce que c'est faire apparaître une flèche sur le diagramme ?
    Il faut alors modifier le modèle via une commande (GMF ici). Ca, c'est si le modèle connaît le concept de "flèche". Sinon, il est possible de directement dessiner la flèche, mais sa suppression sera aussi manuelle.

    Dans tous les cas, il faudra sans doute passer par une commande (GMF, voire GEF). En regardant dans l'éditeur qui a été généré, vous en trouverez quelques-unes qui pourront vous aider à créer la vôtre.
    Mécanicien en chef sur Roboconf.
    Et il y a encore du boulot...

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 68
    Points
    68
    Par défaut
    Merci pour votre réponse, c'est seulement pour changer la couleur d'un noeud à chaque clique du bouton.

    J'ai réussi à intégrer mon éditeur GMF dans un MultiPageEditor, grâce à ceci, http://eclipser-blog.blogspot.com/20...ge-editor.html

    Ce que je me demande maintenant, c'est s'il possible d'ajouter un menu avec un clique droit sur chaque noeud créé de l'automate ?

  10. #10
    Nouveau membre du Club Avatar de Vincent Z.
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par fattouch_squall Voir le message
    Ce que je me demande maintenant, c'est s'il possible d'ajouter un menu avec un clique droit sur chaque noeud créé de l'automate ?
    Je vois deux options.
    La première, c'est de passer par le point d'extension org.eclipse.ui.menus.
    La deuxième, c'est d'aller modifier le code généré par GMF pour ajouter un MenuManager sur le graphical viewer de l'éditeur graphique (il y a une méthode setMenuManager( ... )). Après, il suffit de peupler ce gestionnaire de menus avec des sous-classes de Action.
    Mécanicien en chef sur Roboconf.
    Et il y a encore du boulot...

  11. #11
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 68
    Points
    68
    Par défaut
    Merci pour la réponse mais je n'ai pas trouvé cette méthode setmenumanger.

    Par contre, j'ai trouvé la méthode setcontextmenu(provider) dans la méthode configureGraphicalViewer(). Est-ce la bonne ?

  12. #12
    Nouveau membre du Club Avatar de Vincent Z.
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 29
    Points
    29
    Par défaut
    Bonjour.

    Citation Envoyé par fattouch_squall Voir le message
    Par contre, j'ai trouvé la méthode setcontextmenu(provider) dans la méthode configureGraphicalViewer(). Est-ce la bonne ?
    Oops ! Effectivement, je me suis trompé dans le nom. C'est bien setContextMenu.
    Je pense que la javadoc de la méthode vous aura de toute façon éclairé.
    Mécanicien en chef sur Roboconf.
    Et il y a encore du boulot...

  13. #13
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 68
    Points
    68
    Par défaut
    Merci pour vote réponse,

    J'ai réussi finalement à créer mon automate mais comment faire en sorte que cet automate simule le fonctionnement d'une méthode ? Je suis vraiment à court d'idée sur ce sujet.

    J'ai pensé faire en sorte que chaque noeud soit l'objet courant (le this) et quand l'utilisateur crée un nouveau noeud, il aura la main pour changer les états de son objet.

    Est-ce une bonne idée selon vous pour simuler le fonctionnement une méthode ?

  14. #14
    Nouveau membre du Club Avatar de Vincent Z.
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 18
    Points : 29
    Points
    29
    Par défaut
    Bonjour.

    Citation Envoyé par fattouch_squall Voir le message
    Merci pour vote réponse,

    J'ai réussi finalement à créer mon automate mais comment faire en sorte que cet automate simule le fonctionnement d'une méthode ? Je suis vraiment à court d'idée sur ce sujet.

    J'ai pensé faire en sorte que chaque noeud soit l'objet courant (le this) et quand l'utilisateur crée un nouveau noeud, il aura la main pour changer les états de son objet.

    Est-ce une bonne idée selon vous pour simuler le fonctionnement une méthode ?
    Là, vous raisonnez avec votre modèle, avec lequel je ne suis pas familier (même si j'ai crû comprendre que c'était du Java). Essayons de rester dans la technique.

    Je verrais 2 étapes :
    • D'abord, implémenter la simulation sans interaction utilisateur.
    • Et enfin, éventuellement supporter des actions utilisateurs durant la simulation.


    Pour le premier cas, je vous suggère de créer une commande GEF. Cette commande sera par exemple appelée depuis votre menu manager. Lorsqu'elle s'exécute, elle modifie le modèle (ou bien directement la figure - même si c'est moins propre). Et vous faites un parcours de votre diagramme selon la simulation. Enfin, entre chaque changement de couleur, vous laissez un petit temps d'attente, pour que l'utilisateur puisse suivre les changements d'état.
    Mécanicien en chef sur Roboconf.
    Et il y a encore du boulot...

  15. #15
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 68
    Points
    68
    Par défaut
    Merci pour vote réponse encore une fois,

    J'ai compris votre raisonnement concernant la simulation et je vais y voir comment procéder, mais mon problème c'est l'idée à part le côté technique de la chose.

    Ce que je veux c'est qu'un utilisateur au lieu d'écrire le corps d'une méthode à la main dans un langage tel que JAVA, je lui donne seulement les moyens de créer un automate qui représente le corps de chaque méthode figurant dans mon diagramme de classe.Par la suite, je simule l'automate qu'il vient de créer.

    Le modèle que j'ai créé est celui d'automate basique, avec états et transitions, mais si je veux créer un modèle qui représente le corps d'une méthode, je dois prendre en considération les paramètres, les variables locaux, les attributs de la classe, les conditions...

    Quelqu'un saurait-il m'expliquer comment intégrer tout cela dans un automate ?

    Merci d'avance pour votre réponse.

  16. #16
    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 les diagrammes d'activités UML sont fait pour ça

  17. #17
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 68
    Points
    68
    Par défaut
    je le sais.

    Mais les diagrammes d'activité UML sont seulement pour comprendre le comportement, ils ne peuvent agir sur des objets.

    Moi ce que je veux, c'est à chaque fois que j'appelle une méthode sur un objet, l'automate correspondant fait la simulation, et les changements nécessaires s'effectuent.

  18. #18
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 120
    Points : 68
    Points
    68
    Par défaut
    Bonjour à tous,

    Puisque je suis arrivé à ajouter un menu contextuel dans mon éditeur graphique, il suffisait d'ajouter dans le menu généré par GMF dans les extensions de plugins une commande avec une condition de visibilité, sans oublier de définir la commande dans la liste des extensions.

    Je suis toujours bloqué quant à la simulation des méthodes...

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/07/2004, 21h53
  2. Travailler sur des sources distantes avec Eclipse
    Par El Saigneur dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 12/07/2004, 09h40
  3. [Eclipse 2.1.3]pb de compilation avec eclipse 2.1.3
    Par ruppert62 dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 06/05/2004, 09h27
  4. projet .war avec Eclipse
    Par CapToMatteo dans le forum Eclipse Java
    Réponses: 6
    Dernier message: 20/04/2004, 14h38
  5. [CVS] Développer en équipe avec Eclipse et CVS
    Par ledoc_01 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 16/12/2003, 14h01

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