Project

General

Profile

Maintenance odesign » History » Version 6

Version 5 (Guillaume DIEP, 03/13/2013 03:27 PM) → Version 6/10 (Guillaume DIEP, 03/13/2013 04:58 PM)

h1. Maintenance odesign

h2. Organisation du fichier Lustre.odesign

Dans le fichier Lustre.odesign, il y a les descriptions de deux diagrammes :
* Le "Program Diagram" qui correspond au diagramme général d'un fichier .lus.
* Le "Node Diagram" qui correspond au diagramme d'un noeud.

Ces deux diagrammes sont construits de la même manière. On y trouve dans un première partie, tous les éléments graphiques qui seront visualisés (les noeuds, les relations, les conteneurs). Dans chacun des conteneurs, il est possible de créer des conteneurs et des sous-noeuds qui n'apparaîtront qu'à l'intérieur de ces conteneurs.

Dans une seconde partie, il y a différentes sections.
On trouve dans la section "Tool" trois sous-sections :
* "Edit" où sont situés tous les éléments permettant de modifier les labels (noms des variables, valeurs des constantes, commentaires...).
* "Delete" où sont situés tous les éléments permettant d'obtenir le comportement souhaité de l'éditeur lors de la suppression d'un élément.
* "Double Clic" qui permet de définir des actions se produisant lors d'un double clic sur un élément graphique.

Ensuite, il y a différentes sections, que l'on retrouve dans la palette, concernant la création dynamique d'éléments.

Les requêtes Acceleo utilisées dans le Odesign sont implémentées dans le fichier LustreQueries.mtl. h2.

h2. Modification de "Node Diagram"

"Node Diagram" a été construit à partir de "Program Diagram". Pour effectuer une modification du fichier Lustre.odesign, nous commençons par modifier "Program Diagram" puis nous repercutons les modifications dans "Node Diagram" afin que les diagrammes des noeuds correspondent au diagramme général du fichier contenant le code lustre.

Actuellement, nous effectuons les modifications suivantes :
* supprimer tous les éléments que contient "Node Diagram"
* copier coller le contenu de "Program Diagram" dans "Node Diagram"
Dans "Node Diagram" :
* supprimer "Node_Include", "Node_Variable_*Declaration"
* couper coller les éléments présents dans "Container_Node" dans "Default" et supprimer "Container_Node"
* dans Container_Inputs->Container_VariablesList->Advanced->Precondition Expression, changer "preconditionVariablesList" en "preconditionVariablesList_Node"
de même dans Container_Outputs et Container_Locals
* Dans Container_Body->Container_Equation->Node_VariableLocal_*Declaration->Square White->Label->Label Expression, changer "self.eGet('variable').name" par "self.eGet('variable').label_var_*Declaration()"
* dans Section "Containers", supprimer "Container Creation Description Container_Node"
* dans Section "Declarations / Include / Specifications", renommer "Declarations / Include / Specifications" en "Specifications"
puis supprimer "Node Creation Description Node_Variable_*Declaration" et "Node Creation Description Node_Include"
* dans Section "Edit", supprimer "Edit_variableLocal_Declaration" et "Edit_include"
puis changer pour "Edit_*value" :
# "Edit_*value" par "Edit_VariableLocal_*value"
# "Node_Variable_*Declaration" par "Node_VariableLocal_*Declaration"
# "self.declaration()" par "self.eGet('variable').declaration()"

h2. Informations sur le comportement actuel de l'éditeur graphique

* Les équations de type out=in ou out2=out1, sont représentés par une flèche allant de la variable en lecture à celle en écriture. Un conteneur équation vide est visible dans le conteneur Body.
* impossibilité de supprimer directement les flèches vers tuple, vers un appel d'un noeud car dans la gestion des suppressions on a accès aux tuples ou aux appels d'un noeud qui comporte des listes d'expressions associées et pas à la source de la flèche. Il n'est donc pas possible de distinguer quelle flèche ayant pour cible le tuple ou l'appel d'un noeud il faut supprimer.
Pour supprimer la flèche, il faut donc supprimer la source.
* impossibilité de supprimer directement les flèches d'une variable vers une variable (input->output ou output->output) car une variable peut être
Pour supprimer ces flèches il suffit de supprimer l'équation vide associée à cette flèche.
* L'enregistrement des modifications sur l'éditeur textuel apparaissant lors du double clic ne fonctionne pas systématiquement.

h2. Quoi modifier ?

* Afin de simplifier la création des flèches et de diminuer le nombre d'opérations lors du rafraîchissement de l'éditeur, la plupart des flèches sont dessinées de la cible vers la source. Les équations sont donc représentées de la droite vers la gauche. Il serait donc possible de les recréer afin que les équations soient représenter dans le bon sens.
* Possibilité de diminuer le nombre de noeuds et de flèches.
* Voir les candidats sémantiques possibles plutôt qu'utiliser des préconditions car elles sont plus coûteuses.
* Utiliser le langage java.