accueil

carte
anim les activités scientifiques  
-
recherche

aide
 

projets de recherche / congrès, colloques, conférences / produits et démonstrations

-

Projet LANDE

Le site

Rapport d'activité 2004
Uniquement en anglais



-image
 

Conception et validation de logiciel

Présentation du projet

Projet commun avec l'INSA de Rennes, l'Université de Rennes 1 et le CNRS.

Le thème de recherche central du projet Lande est la conception d'outils d'aide au développement
et à la validation de logiciels. Notre approche est fondée sur une collection de méthodes
formelles permettant de spécifier ou d'extraire une vue partielle de l'architecture et du
comportement d'un logiciel. Cette approche nous a amenés à étudier deux types de problèmes.
D'une part, la spécification d'un logiciel en vues partielles nécessite une vérification de la
cohérence entre plusieurs vues afin que celles-ci puissent être synthétisées. D'autre part,
l'extraction d'une vue demande des techniques d'analyse statique et dynamique précises. Nous
insistons sur la nécessité que les réponses apportées à ces problèmes reposent sur des bases
formelles (sémantique du langage étudié, définitions de propriétés à vérifier dans des logiques
formelles) afin d'obtenir une garantie sur les résultats produits. De plus, il est important que les
outils construits soient le plus automatiques possible car les utilisateurs visés ne sont pas
nécessairement des experts en méthodes formelles.

Axes de recherche

La description multi-vues de l'architecture de gros logiciels a comme objectif de spécifier
l'organisation globale de systèmes afin d'améliorer la maîtrise de leur développement
(spécification, analyse, programmation, test, maintenance, etc.). Une ambition majeure dans ce
domaine est le passage à l'échelle de techniques comme l'analyse, le raffinement ou la vérification
de programmes. Nos travaux visent à assurer une forme de cohérence de ces descriptions
hétérogènes. Le défi principal est de trouver comment mettre en relation des vues qui mettent en
jeu des propriétés de nature très différentes ou qui se situent à des niveaux d'abstraction
différents. Une fois les vues mises en relation, il devient possible d'utiliser des techniques
standards d'analyse statique ou de vérification afin d'assurer des propriétés de cohérence.

La nouvelle technique de programmation appelée « programmation par aspects » consiste à
décrire un logiciel comme un ensemble formé d'un composant principal et d'une collection de
vues ou d'aspects décrivant des tâches comme la gestion mémoire, la synchronisation, les
optimisations, etc. Un outil, appelé tisseur, est chargé de produire automatiquement un programme
intégrant les différents aspects au composant principal. L'intérêt de cette approche est de localiser
(dans les aspects) des choix de mise en oeuvre qui seraient sinon dispersés dans le code source.
Après avoir proposé un aspect dédié à la sécurisation de code mobile, nous avons étudié les
problèmes d'interactions qui se posent lorsque l'on doit tisser plusieurs aspects. En effet, comme
pour les vues, les aspects ne sont pas obligatoirement orthogonaux et des conflits ou ambiguïtés
peuvent apparaître lors du tissage. Nous travaillons également sur un langage d'aspect dédié à la
composition de composants.

Pour faciliter la navigation et l'organisation de logiciels de taille importante nous cherchons à
définir un cadre logique pour les systèmes d'information qui décrit uniformément la navigation,
l'interrogation et l'analyse des données. Ce cadre est générique par rapport à la logique utilisée
pour naviguer et interroger ; en particulier il peut être appliqué à plusieurs types de logiques de
programme, comme les types ou des propriétés statiques. Ces travaux se basent sur une extension
de la théorie de l'analyse de comcepts.

La validation d'un logiciel utilisent des méthodes d'analyses et de test de programmes. Nous
nous intéressons à différents aspects de l'analyse statique de programmes, aussi bien sur le plan
des fondements (spécification d'analyses à partir de règles d'inférence) que des applications
(détection des pointeurs pendants pour l'aide à la mise au point de programmes C, analyse de flot
de données et de contrôle dans des programmes Java et Java Card, analyse de protocoles
cryptographiques) et à la mise en oeuvre d'analyses statiques par des techniques de résolution
itérative de systèmes d'équations et de réécriture d'automates d'arbres.

Pour faciliter l'analyse dynamique de programmes, nous développons un outil d'analyse de traces
d'exécution permettant à l'utilisateur d'exprimer des requêtes dans un langage de programmation
logique. Ces requêtes peuvent être traitées à la volée, ce qui permet d'analyser des traces de
grande taille. L'outil peut être utilisé pour le débogage de programmes séquentiels et nous
étudions maintenant son application au problème de la détection d'intrusion.

En collaboration avec la société AQL nous poursuivons le développement de l'outil casting dont
le noyau utilise une méthode de génération de suites de tests. L'outil peut prendre des entrées
dans des formats variés et produit des suites de tests selon des stratégies spécifiées par
l'utilisateur. Nous adaptons actuellement casting pour la génération de suites de test à partir de
spécifications UML.

La sécurité logicielle constitue un domaine d'application privilégié pour le projet. Nous
élaborons un cadre pour la définition de propriétés de sécurité et une technique pour leur
vérification automatique. Cette technique intègre des techniques d'analyses statiques et de
vérification de modèle (« model checking »). Ce cadre a été appliqué à la formalisation et la
vérification de politiques de sécurité d'applications programmées avec la nouvelle architecutre de
sécurité de Java 2 et à la vérification de propriétés de sécurité des cartes à puce
multi-applicatives programmées avec le langage Java Card.

Responsable scientifique

Thomas Jensen
+33 2 99 84 74 78
Thomas.Jensen@irisa.fr
Secrétariat : +33 2 99 84 25 77

Les projets du même thème

up

 
dernière mise à jour : 18 02 2004

-- english version --- webmaster@irisa.fr --- ©copyright --


accueil
 

w3c-html4