Contribution to Specifying and Verifying Component-based Software: enrichment of the Kmelia data language and contract verification
Contribution à la spécification et à la vérification des logiciels à base de composants : enrichissement du langage de données de Kmelia et vérication de contrats
Résumé
With Model Driven Engineering models are the heart of software development. These
models evolve through transformations. In this thesis our interest was the validation
for these model transformations by testing, and more precisely the test oracles. We
propose two approaches to assist the tester to create these oracles. With the first ap-
proach this assistance is passive; we provide the tester with a new oracle function.
The test oracles created with this new oracle function control only part of the model
produced by the transformation under test. We defined the notion of partial verdict,
described the situations where having a partial verdict is beneficial for the tester and
how to test a transformation in this context. We developed a tool implementing this
proposal, and ran experiments with it. With the second approach, we provide a more
active assistance about test oracles’ quality. We study the quality of a set of model
transformation test oracles. We consider that the quality of a set of oracles is linked
to its ability to detect faults in the transformation under test. We show the limits of
mutation analysis which is used for this purpose, then we propose a new approach that
corrects part of these drawbacks. We measure the coverage of the output meta-model
by the set of oracles we consider. Our approach does not depend on the language used
for the transformation under test’s implementation. It also provides the tester with
hints on how to improve her oracles. We defined a process to evaluate meta-model
coverage and qualify test oracles. We developed a tool implementing our approach to
validate it through experimentations.
L'utilisation croissante des composants et des services logiciels dans les différents secteurs
d'activité (télécommunications, transports, énergie, finance, santé, etc.) exige des
moyens (modèles, méthodes, outils, etc.) rigoureux afin de maîtriser leur production et
d'évaluer leur qualité. En particulier, il est crucial de pouvoir garantir leur bon fonctionnement
en amont de leur déploiement lors du développement modulaire de systèmes logiciels.
Kmelia est un modèle à composants multi-services développé dans le but de construire
des composants logiciels et des assemblages prouvés corrects. Trois objectifs principaux
sont visés dans cette thèse. Le premier consiste à enrichir le pouvoir d'expression du mod
èle Kmelia avec un langage de données afin de satisfaire le double besoin de spécification
et de vérification. Le deuxième vise l'élaboration d'un cadre de développement fondé sur la
notion de contrats multi-niveaux. L'intérêt de tels contrats est de maîtriser la construction
progressive des systèmes à base de composants et d'automatiser le processus de leur véri-
fication. Nous nous focalisons dans cette thèse sur la vérification des contrats fonctionnels
en utilisant la méthode B. Le troisième objectif est l'instrumentation de notre approche
dans la plate-forme COSTO/Kmelia. Nous avons implanté un prototype permettant de
connecter COSTO aux différents outils associés à la méthode B. Ce prototype permet de
construire les machines B à partir des spécifications Kmelia en fonction des propriétés à vé-
rifier. Nous montrons que la preuve des spécifications B générées garantit la cohérence des
spécifications Kmelia de départ. Les illustrations basées sur l'exemple CoCoME confortent
nos propositions.
Loading...