Outils pour le Model Checking d'applications Java


La vérification de propriétés de programmes est un domaine de recherche en pleine expansion, en particulier dans le domaine des applications pour l'Internet, d'une part à cause de la difficulté de programmer correctement des applications distribuées ou mobiles, d'autre part de part l'apparition de domaines d'applications sensibles comme le commerce électronique, où la sécurité jour un role de plus en plus important.

Il existe quelques outils logiciels expérimentaux permettant de calculer des modèles mathématiques représentant le comportement d'applications Java, et d'en prouver des propriétés logiques. Parmi ces logiciels, nous nous intéressons à Bandera, conçu à Kansas University, qui extrait des modèles finis de programmes Java, et à nuSMV, développé à l'ITC-IRST à Trente (Italie), qui permet la verification de propriétés sur ces modèles (Model Checking).

Le stage consistera à tester l'usage de ces logiciels pour analyser des propriétés de sécurité ou de comportement distribués, pour des applications Java. Le but à moyen terme étant de développer une plateforme d'analyse et de vérification pour ces applications.


Nous présentons maintenant en détail le cadre et les objectifs de ce sujet de DEA.

Nous avons développé ProActive, une bibliothèque 100% Java, qui fournit : des objets distants, des appels asynchrones, de la migration d'objets actifs (mobilité), le tout offrant des mécanismes de synchronisation de haut niveau qui simplifient la programmation répartie.

D'autre part nous avons étudié la vérification formelle par Model Checking de propriété de sécurité "à la Java2", ainsi que de propriétés de comportement de systèmes à objets répartis ProActive. Ces travaux ont été menés avec nos propres outils de vérification.

Le stage consistera à expérimenter l'application aux mêmes exemples des outils Bandera et nuSMV. Il sera nécessaire d'adapter les analyses fournies par Bandera à nos besoins propres en adaptant ou en développant de nouveaux modules d'analyse (Bandera et nuSMV sont fournis en Open-Source).

Ces travaux pourront éventuellement se poursuivre en Thèse de Doctorat.


Encadrement :    Eric Madelaine
Téléphone : 04 92 38 78 07
Email : Eric.Madelaine@sophia.inria.fr
Laboratoire ou équipe : INRIA Sophia Antipolis -- I3S-CNRS, Projet OASIS
 
Prérequis : Java, sémantique des langages de programmation des bases en logique
Matériel et logiciels utilisés : Stations de travail

Lieu du stage: INRIA Sophia Antipolis, Nice, France
 
Références:
  • Towards Seamless Computing and Metacomputing in Java, D. Caromel, W. Klauser, J. Vayssiere,
    pp. 1043--1061 in Concurrency Practice and Experience, September-November 1998, 10(11--13), Editor Geoffrey C. Fox, Published by Wiley & Sons, Ltd.
  • Tools for Process Algebras, E. Madelaine and D. Vergamini, 4th FORTE conférence, North-Holland, Sydney 1991
  • Bandera: Extracting Finite-state Models from Java Source Code, J.C. Corbett et all., ICSE 2000
  • NUSMV: a new symbolic model checker, A. Cimatti, E. Clarke, F. Giunchiglia, M. Roveri, Int. Journal on Software Tools for Technology Transfer, Vol. 2/4, 2000