• Aucun résultat trouvé

Chapitre 5. Intégration du flot de données: modèle d’exécution et générateur de code

5.4 Fonctionnalités principales de l'éditeur de script

5.4.2 Vue flot de données

5.4.2.2 Les paramètres

La manipulation de paramètre ne peut être faite qu'en mode flot de données. Les paramètres des nœuds de données sont créés automatiquement lors de leur création, donc la création de paramètres est désactivée pour ces types de nœuds. Certains nœuds d'activités sont censés ne pas utiliser des données, les traitements des paramètres seront donc désactivés pour ces types de nœud (Documentation, Etiquette).

Figure 5.6 Cascade de boites de test avec deux paramètres d'entrée

Les nœuds Test d'une même cascade ont les mêmes paramètres d'entrées. Leur création est seulement activée sur la première nœud de la cascade et le paramètre créé est partagé par tous les nœuds du cascade.

Par exemple, supposons que dans la cascade de boîtes de test de la Figure 5.6 le premier nœud Test a deux paramètres, le premier nommé nb est de type entier et le deuxième nommé ok est de type booléen. Les deux autres nœuds Test de la cascade ont aussi le même couple de paramètres d'entrée.

Seuls les noms et les types sont demandés pour la création de paramètres de sortie (voir Figure 5.7), tandis que pour les paramètres d'entrée (Figure 5.8), l'utilisateur doit aussi spécifier si le paramètre à créer est déclenchant ou non et peut fournir les éventuelles valeurs par défaut (Figure 5.9). Ces dernières sont obligatoires si le paramètre est non-déclenchant.

Figure 5.7 Création paramètre de sortie

Figure 5.8 Création paramètre d'entrée: nom et type

5.4 Fonctionnalités principales de l'éditeur de script 127

5.4.2.3 Les arcs de flot de données

La vue de flot de données permet à l’utilisateur de créer des chemins de circulation de données entre les différents nœuds d'activité qui avaient été créés dans la vue de flot de contrôle.

Comme pour le flot de contrôle, la création des arcs de flot de données nécessite l’existence du nœud de départ et du nœud d’arrivée. Pour la version actuelle, cette création peut seulement se faire depuis un nœud ayant au moins un terminal de sortie (c'est-à-dire un paramètre de sortie). Le système demande alors à l'utilisateur de choisir le nœud de destination qui, à son tour, doit aussi avoir au moins un paramètre d'entrée.

Une fenêtre à double entrée (Figure 5.10) est affichée pour permet à l'utilisateur de choisir les paramètres à relier et de donner aussi les autres caractéristiques de l'arc comme le code à la source et le code à la destination. Dans la partie gauche de la fenêtre est affichée l'identification du nœud de départ de l'arc. Tandis que dans la partie droite est affichée l'identification du nœud d'arrivée. Chaque identification est suivi de la liste des paramètres du nœud en question. Pour le nœud de départ, il s'agit de la liste des paramètres de sortie, et pour le nœud d'arrivée, il s'agit de la liste des paramètres d'entrée.

Figure 5.10 Création d'un arc de flot de données

Si le type du paramètre choisi n'est pas un type simple. Le système propose à l'utilisateur de choisir le code de sélection du paramètre. La valeur par défaut est "Whole". Dans la figure le

paramètre de sortie choisi est de type enregistrement ce qui entraîne l'affichage du choix de code à la source.

Figure 5.11 Création d'un arc de flot de données: choix du code à la source

Si l'utilisateur choisit le code "Part", le système lui demande de fournir le type et le nom de l'élément choisi. Ceci pourrait donc concerner les deux parties de la fenêtre de création (Figure 5.12) c'est-à-dire les deux bouts de l'arc à créer.

Figure 5.12 Création d'un arc de flot de données: choix du type des données élémentaires Les types des données reliées par un arc doivent être les mêmes. Ils sont donc contrôlés lors de la création de l'arc. La création de l’arc sera refusée si les deux types sont différents. La

5.4 Fonctionnalités principales de l'éditeur de script 129

création échoue aussi si l'utilisateur a choisi deux nœud de données comme source et destination de l'arc.

En résumé

Dans ce chapitre, nous avons mis en évidence que la sémantique associée aux éléments visuels utilisés dans notre formalisme pour intégrer le flot de données modifie énormément le modèle d'exécution des applications créées avec l'environnement DIVA-cd par rapport à l'ancien système.

Cela modifie aussi le générateur de code et définit clairement les caractéristiques du langage cible: modulaire, supporte les types de données abstraits et la programmation concurrente. Ce qui a guidé notre choix vers le langage Ada. En plus, notre groupe a des expériences sur ce langage, qui est déjà largement utilisé pour l'implémentation de système DIVA.

En résumé, l’intégration du flot de données a comme conséquence d’élargir le champ d’application de notre méthodologie. Ceci fournira un plus dans le développement d’application pour l’enseignement assisté par ordinateur, et permettra une ouverture vers d’autres domaines, par exemple les systèmes réactifs qui utilisent surtout les données. Cette intégration fournira donc une flexibilité d’utilisation de la méthodologie.

131

Implémentation

L'intégration du flot de données dans le système DIVA touche surtout les composants suivants: éditeur synchrone et générateur automatique de code (voir Figure 3.1 du chapitre 3). Ainsi les tâches d'implémentation sont divisées en deux grandes parties plus ou moins indépendantes.

Comme nous avons expliqué dans le chapitre 3, l'éditeur synchrone est composé de deux éléments, l'éditeur de script et l'éditeur de programme. L'intégration du flot de données concerne plutôt l'éditeur de script. Tous les nouveaux éléments de notre formalisme doivent être pris en compte par cet éditeur. Puisque ces nouveaux éléments font partie des côtés formels de notre formalisme, leur code d'implémentation est produit entièrement par le générateur et est censé ne pas être modifié manuellement, même s'il se trouve dans le module à coder manuellement (fichier XxxTC.IMP).

Il y a en fait deux impacts de cette intégration du flot de données dans le module manuel. Le premier est l'ajout des paramètres formels aux déclarations des procédures et fonctions, le deuxième c'est le chargement explicite de données depuis un ADT si nécessaire. A priori ces deux choses ne doivent pas être modifiées. Le fonctionnement de l'éditeur de programme n'est donc pas modifié. En ce qui concerne le générateur du code, tous les modifications et les ajouts nécessaires ont été effectués.

Nous allons donc décrire les différents modules nécessaires et les structures de données utilisées, surtout pour la représentation des scripts. Nous avons aussi établi un heuristique de dessin du graphe que nous allons décrire dans ce chapitre.