Project

General

Profile

CdC » History » Version 19

Romain BOBO, 02/07/2013 06:33 PM

1 16 Guillaume Babin
h1. Dossier de Spécification Logicielle
2 1 Romain BOBO
3 5 Guillaume Babin
h2. Objectif général
4 2 Romain BOBO
5 19 Romain BOBO
L'objectif est de concevoir un éditeur textuel et graphique pour le langage de programmation Lustre sous une approche basée sur l'ingénierie des modèles, en utilisant l'outil ObeoDesigner.
6 5 Guillaume Babin
7 1 Romain BOBO
		
8 17 Guillaume Babin
h2. Fonctionnalités
9 10 Guillaume Babin
			
10 1 Romain BOBO
h3. Éditeur graphique 
11 1 Romain BOBO
12 15 Guillaume Babin
* LE-GRPH-001 : éditeur de type "boîtes et flèches"
13 14 Romain BOBO
L'éditeur graphique doit être un éditeur de type "boîtes et flèches", c'est à dire qu'il ne sera composé que de boîtes (noeuds, opérateurs élémentaires), et de flèches (entrées/sorties d'un noeud donné)
14 15 Guillaume Babin
* LE-GRPH-002 : utilisation de ObeoDesigner
15 14 Romain BOBO
L'éditeur graphique doit être développé grâce à ObeoDesigner, en adoptant une logique basée sur l'Ingéniérie des Modèles
16 15 Guillaume Babin
* LE-GRPH-003 : palette graphique pour les différents opérateurs
17 14 Romain BOBO
Il doit exister une palette graphique proposant l'utilisation de différents opérateurs élémentaires du langage Lustre (+, -, *, /, when, ...)
18 15 Guillaume Babin
* LE-GRPH-004 : palette graphique pour les nœuds du fichier en cours d'édition
19 14 Romain BOBO
La palette graphique doit également pouvoir fournir les différents noeuds qui sont déjà développés, ou qui sont actuellement développés dans l'éditeur
20 15 Guillaume Babin
* LE-GRPH-005 : un modèle Lustre doit être vu comme une librairie de nœuds
21 1 Romain BOBO
Le programme Lustre est une liste de noeuds, il peut (doit) donc être représenté comme une librairie de noeuds
22 14 Romain BOBO
* LE-GRPH-006 : possibilité d'ouvrir les différents nœuds pour les visualiser
23 15 Guillaume Babin
L'éditeur graphique doit permettre de visualiser en détail chaque noeud, et ce récursivement
24 1 Romain BOBO
* LE-GRPH-007 : possibilité de modifier les spécifications (entrées/sorties) d'un nœud donné
25 14 Romain BOBO
Il doit être possible de modifier la signature d'un noeud, supprimer/ajouter des entrées/sorties
26 1 Romain BOBO
* LE-GRPH-008 : possibilité d'afficher le code correspondant à un nœud donné
27 15 Guillaume Babin
Il doit être possible de visualiser le code Lustre correspondant au noeud sélectionné
28 1 Romain BOBO
* LE-GRPH-009 : placement automatique basique des nœuds à l'ouverture d'un fichier Lustre (un placement automatique très élégant des nœuds n'est pas un objectif du projet)
29 14 Romain BOBO
Lors de la génération de la vue graphique du programme, les noeuds doivent être placés automatiquement pour gagner en visibilité. Un placement parfait n'est pas nécessaire
30 15 Guillaume Babin
* LE-GRPH-010 : la modification du placement des nœuds doit être sauvegardée; en particulier pour les bibliothèques chargées
31 14 Romain BOBO
Les noeuds peuvent être déplacés par l'utilisateur. Le positionnement doit être conservé afin que l'utilisateur n'ait pas à refaire ce travail à chaque ouverture de l'éditeur graphique, surtout lorsque le nombre de noeuds devient important
32 1 Romain BOBO
* LE-GRPH-011: positionnement (si possible) des ports entrée/sortie (input à gauche, sortie à droite)
33 15 Guillaume Babin
Les ports des noeuds doivent être organisés, c'est à dire les entrées à gauche, et les sorties à droite
34 15 Guillaume Babin
			
35 19 Romain BOBO
h3. Synchronisation graphique-textuel
36 1 Romain BOBO
37 1 Romain BOBO
* LE-COM-001 : meta-modèle Ecore
38 19 Romain BOBO
L'éditeur graphique est basé sur le méta-modèle Ecore du langage Lustre. Le programme est défini par son modèle, défini par le méta-modèle Ecore précédent
39 14 Romain BOBO
* LE-COM-002 : chargement de fichiers Lustre (extension .lus)
40 19 Romain BOBO
L'éditeur graphique doit fonctionner avec des programmes Lustre (extension .lus) classiques à l'ouverture
41 15 Guillaume Babin
* LE-COM-003 : enregistrement de fichiers Lustre
42 19 Romain BOBO
L'éditeur gaphique doit enregistrer le programme comme un fichier Lustre (extension .lus) classique
43 14 Romain BOBO
* LE-COM-004 : possibilité de partir d'une feuille blanche
44 15 Guillaume Babin
Il doit être possible de créer un programme Lustre à partir de 0
45 14 Romain BOBO
* LE-COM-005 : éditeurs textuel et graphique synchronisés
46 19 Romain BOBO
L'éditeur graphique est synchronisé avec le fichier .lus, c'est à dire qu'une modification dans l'éditeur graphique doit être répercutée directement ou indirectement dans le fichier .lus, et inversement
47 14 Romain BOBO
* LE-COM-006 : le code Lustre doit être propre
48 1 Romain BOBO
Le code Lustre doit être le plus propre possible, c'est à dire qu'il ne doit pas y figurer les informations propres au placement des noeuds dans l'éditeur graphique
49 1 Romain BOBO
50 1 Romain BOBO
h3. De manière générale
51 1 Romain BOBO
52 15 Guillaume Babin
* LE-GEN-001 : conception modulaire
53 15 Guillaume Babin
La conception du projet doit permettre l'ajout futur d'extension au langage telles que les arguments const, les tableaux, les matrices et les informations de spécification
54 15 Guillaume Babin
* LE-GEN-002 : documentation
55 14 Romain BOBO
Le projet doit être documenté, afin de permettre l'amélioration future par d'autres équipes (méthode de construction, grammaire)
56 15 Guillaume Babin
* LE-GEN-003 : code de qualité
57 14 Romain BOBO
Le code doit être suffisamment clair pour permettre une bonne maintenabilité
58 15 Guillaume Babin
* LE-GEN-004 : licence EPL (Eclipse Public License)
59 14 Romain BOBO
Le projet doit à la fin être sous licence EPL, il doit donc être proprement conçu
60 15 Guillaume Babin
* LE-GEN-005 : le programme final sera reversé dans le marketplace Obeo http://marketplace.obeonetwork.com ou sur https://github.com/ObeoNetwork
61 1 Romain BOBO
62 1 Romain BOBO
h3. Éventuellement, les fonctionnalités suivantes pourront être envisagées
63 11 Pierre-Loïc Garoche
64 18 Guillaume Babin
* LE-GRPH-012 : éditeur graphique : palette graphique dynamique
65 14 Romain BOBO
Il peut y avoir la possibilité d'importer des nœuds depuis d'autres fichiers Lustre dans la palette graphique (chargement dynamique de bibliothèque)
66 18 Guillaume Babin
* LE-COM-007 : gestion de la spécification
67 14 Romain BOBO
Il peut être possible de gérer la spécification (préconditions, invariants et postconditions) des nœuds stockée en commentaire dans le fichier Lustre. On pourra s'inspirer à cet effet du langage de spécification ACSL pour le C http://frama-c.com/acsl.html