II.7.4.2.1. La redondance des opérations de ciblage
:
Il y a redondance dans les informations : très souvent
une même information se trouve présente dans plusieurs endroits
dans les entrées du flot de ciblage ; par exemple le format de
données dans un protocole de communication peut se trouve dans la
description de l'architecture et
Chapitre II conception des logiciels embarqués
dans les spécifications ou même le code de
l'application à cibler. Il y a aussi redondance dans les
fonctionnalités des éléments logiciels : il est
fréquent que deux éléments logiciels aient des
fonctionnalités communes, ce qui fait que s'ils sont tous les deux
sélectionnés pour le ciblage, il y aura du code inutile.
Cette redondance est source de conception lors d'un ciblage
manuel, mais elle peut être un avantage pour l'automatisation, car elle
peut permettre certaines factorisations.
II.7.4.2.2. Le problème des choix à effectuer
lors d'un ciblage :
Nous avons vu précédemment qu'il fallait faire
un certain nombre de choix lors du ciblage : il faut par exemple choisir des
éléments logiciels en fonction des fonctionnalités
requises, des contraintes et des performances. Il faut aussi choisir les
valeurs de paramètres de configuration des éléments
logiciels (par exemple la taille des mémoires tampons), en fonction des
contraintes et des performances.
Si le choix en fonction des fonctionnalités requises
peut être effectué automatiquement par simple gestion de
dépendances (comme par exemple dans Tornado de Windriver), le choix de
fonctions de contrainte et de critères de performance (vitesse, taille,
ou consommation) est plus délicat. Dans ce dernier cas, il est
nécessaire d'avoir une évaluation des conséquences des
choix sue les performances, ce qui peut être d'autant plus difficile
à obtenir si les éléments logiciels possèdent de
nombreux paramètres. Dans tous les cas le résultat est rarement
certain, et il est donc préférable de laisser à
l'utilisateur la possibilité d'influencer ces choix.
II.7.4.2.3. Ce qui est systématique dans le flot de
ciblage :
Pour automatiser le flot de ciblage, il est intéressant de
repérer les actions systématiques, c'est-à-dire les
actions qui ne demandent pas d'intelligence.
Dans le cas du ciblage, les actions suivantes sont directement
systématiques :
- l'acquisition des informations : cette action consiste juste
en la lecture des entrées du flot avec extraction des informations. A
partir du moment où les entrées sont bien définies (par
exemple des fichiers sous un format connu), les techniques de base d'analyse
syntaxique peuvent être utilisées ;
- la mise en place des paramètres : en supposant que
les divers éléments logiciels pour le ciblage sont décrits
suivant un formalisme connu et que les paramètres sont directement
accessibles, cela revient à effectuer des opérations d'expansion
de macro ;
- la compilation et l'édition de liens : les
compilations et éditeurs de liens existent déjà et sont
automatiques, il suffit juste d'automatiser leur appel dans le bon ordre.
Il existe aussi d'autres actions qui peuvent devenir en partie
systématiques :
- le choix des éléments logiciels
nécessaires : si tous les choix ne sont pas systématiques, un
certain nombre peut l'être, comme la détection de tous les
éléments ayant une certaine fonctionnalité, et le choix
des éléments compatibles avec une certaine architecture
matérielle. Cela suppose que le flot de ciblage dispose de descriptions
des fonctionnalités de ces éléments ainsi que de leur
compatibilités ;
- l'adaptation du code de l'application peut elle aussi
être en partie systématique : cela concerne notamment les appels
de communications qui peuvent être remplacés par les bons appels
au système d'exploitation.
|