next up previous contents
Next: Conclusion Up: 3.6 Synthèse automatique des Previous: 3.6.2 Analyse syntaxique des   Table des matières

3.6.3 Synthèse des règles

Le générateur automatique dispose d'un modèle pour chaque type de règle, décrites page 3.3, que peut mettre en jeu l'exécutif.

Ces règles sont sélectionnées et instanciées selon les informations précédentes.

Le programme se charge ainsi de recréer les parties non génériques de quelques fichiers à partir du fichier contenant les informations quant aux services et modules qui seront utilisés, et de concaténer le tout avec les parties génériques.

Un exemple est visible annexe C.1.

Les noms de groupes sont représentés entre les signes $$ (comme par exemple $groupe$) afin de montrer que cette partie peut être remplacée par n'importe quel élément de même nature (nom de groupe, de service...).

Une des règles génériques de démarrage est la suivante :

$service$Wait:
        event == EventStart,
        service == "$service$",
        (@$groupe$State oneof [$services du groupe à attendre$] |
         @$autregroupe$State oneof [$services de ce groupe à attendre$] |
         ...)
==>
        restrict status == StatusWait;

Pour le service S2 cette règle serait instanciée de la façon suivante :

S2Wait:
        event == EventStart,
        service == "S2",
        (@groupeAState oneof [S1, S2, S3])
==>
        restrict status == StatusWait;

La partie faisant référence à un autre groupe a été inutile puisque ce service n'a à attendre aucun service d'un autre groupe. Simplement $service$ a été remplacé par S1, $groupe$ par groupeA et $services du groupe à attendre$ par S1, S2, S3.


next up previous contents
Next: Conclusion Up: 3.6 Synthèse automatique des Previous: 3.6.2 Analyse syntaxique des   Table des matières
Thomas Nemeth
1999-10-03