Project

General

Profile

CdC » History » Version 11

Pierre-Loïc Garoche, 01/28/2013 04:41 PM

1 1 Romain BOBO
h1. Cahier des charges
2 1 Romain BOBO
3 5 Guillaume Babin
h2. Objectif général
4 2 Romain BOBO
5 3 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. Les deux vues du programme édité doivent être synchronisées.
6 5 Guillaume Babin
7 1 Romain BOBO
		
8 5 Guillaume Babin
h2. Fonctionnalités
9 1 Romain BOBO
10 5 Guillaume Babin
h3. Éditeur textuel
11 5 Guillaume Babin
12 5 Guillaume Babin
* A.1 : projet xText
13 5 Guillaume Babin
* A.2 : coloration syntaxique adaptée au langage Lustre
14 5 Guillaume Babin
* A.3 : auto indentation
15 5 Guillaume Babin
* A.4 : auto complétion
16 5 Guillaume Babin
* A.5 : gestion des imports de bibliothèques
17 1 Romain BOBO
			
18 10 Guillaume Babin
h3. Éditeur graphique 
19 1 Romain BOBO
20 10 Guillaume Babin
* B.1 : éditeur de type ``boîtes et flèches''
21 10 Guillaume Babin
* B.2 : utilisation de ObeoDesigner
22 10 Guillaume Babin
* B.3 : palette graphique pour les différents opérateurs
23 10 Guillaume Babin
* B.4 : palette graphique pour les nœuds du fichier en cours d'édition
24 11 Pierre-Loïc Garoche
* -B.5 : un modèle Lustre doit pouvoir être vu comme un programme avec un nœud principal- (Non, uniquement comme une librairie, cf B.6 - PLG)
25 10 Guillaume Babin
* B.6 : un modèle Lustre doit pouvoir être vu soit comme une librairie de nœuds
26 10 Guillaume Babin
* B.7 : possibilité d'ouvrir les différents nœuds pour les visualiser
27 10 Guillaume Babin
* B.8 : possibilité de modifier les spécifications (entrées/sorties) d'un nœud donné
28 10 Guillaume Babin
* B.9 : possibilité d'afficher le code correspondant à un nœud donné
29 1 Romain BOBO
* B.10 : 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)
30 11 Pierre-Loïc Garoche
31 11 Pierre-Loïc Garoche
*Rajout - PLG*
32 11 Pierre-Loïc Garoche
* *B.10 bis: la modification du placement des nœuds doit être sauvegardée; en particulier pour les bibliothèques chargées*
33 11 Pierre-Loïc Garoche
* *B.11: positionnement (si possible) des ports entrée/sortie (input à gauche, sortie à droite)*
34 1 Romain BOBO
			
35 7 Guillaume Babin
h3. Éditeurs textuel et graphique
36 7 Guillaume Babin
37 7 Guillaume Babin
* C.1 : basés sur un meta-modèle Ecore du langage Lustre
38 7 Guillaume Babin
* C.2 : chargement de fichiers Lustre (extension .lus)
39 7 Guillaume Babin
* C.3 : enregistrement de fichiers Lustre
40 7 Guillaume Babin
* C.4 : possibilité de partir d'une feuille blanche
41 7 Guillaume Babin
* C.5 : toute modification du code dans l'éditeur textuel doit être répercutée dans l'éditeur graphique, et vice versa (synchronisation)
42 8 Guillaume Babin
* C.6 : le code Lustre doit être le plus propre possible (notamment, les informations relatives au placement graphique des nœuds ne doivent pas s'y trouver)
43 7 Guillaume Babin
44 6 Guillaume Babin
45 6 Guillaume Babin
h3. De manière générale
46 1 Romain BOBO
47 1 Romain BOBO
* D.1 : documentation de qualité permettant l'amélioration future par d'autres équipes (méthode de construction, grammaire)
48 7 Guillaume Babin
* D.2 : code de qualité permettant une bonne maintenabilité
49 11 Pierre-Loïc Garoche
* D.3 : conception permettant d'ajout futur d'extension au langage telles que les arguments const, les tableaux, les matrices *et les informations de spécification (PLG)*
50 8 Guillaume Babin
* D.4 : licence EPL (Eclipse Public License)
51 6 Guillaume Babin
* D.5 : le programme final sera reversé dans le marketplace Obeo http://marketplace.obeonetwork.com ou sur https://github.com/ObeoNetwork
52 1 Romain BOBO
53 1 Romain BOBO
h3. Éventuellement, les fonctionnalités suivantes pourront être envisagées
54 1 Romain BOBO
55 11 Pierre-Loïc Garoche
* E.1 : -éditeur textuel : l'enroulage de code (folding)- (inutile - PLG)
56 7 Guillaume Babin
* E.2 : éditeur graphique : la possibilité d'importer des nœuds depuis d'autres fichiers Lustre dans la palette graphique (chargement dynamique de bibliothèque)
57 9 Guillaume Babin
* E.3 : gestion de 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
58 1 Romain BOBO