3 research outputs found

    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

    Get PDF
    With Model Driven Engineering models are the heart of software development. Thesemodels evolve through transformations. In this thesis our interest was the validationfor these model transformations by testing, and more precisely the test oracles. Wepropose 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 modelproduced 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 andhow to test a transformation in this context. We developed a tool implementing thisproposal, and ran experiments with it. With the second approach, we provide a moreactive assistance about test oracles’ quality. We study the quality of a set of modeltransformation test oracles. We consider that the quality of a set of oracles is linkedto its ability to detect faults in the transformation under test. We show the limits ofmutation analysis which is used for this purpose, then we propose a new approach thatcorrects part of these drawbacks. We measure the coverage of the output meta-modelby the set of oracles we consider. Our approach does not depend on the language usedfor the transformation under test’s implementation. It also provides the tester withhints on how to improve her oracles. We defined a process to evaluate meta-modelcoverage and qualify test oracles. We developed a tool implementing our approach tovalidate it through experimentations.L'utilisation croissante des composants et des services logiciels dans les différents secteursd'activité (télécommunications, transports, énergie, finance, santé, etc.) exige desmoyens (modèles, méthodes, outils, etc.) rigoureux afin de maîtriser leur production etd'évaluer leur qualité. En particulier, il est crucial de pouvoir garantir leur bon fonctionnementen 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 construiredes composants logiciels et des assemblages prouvés corrects. Trois objectifs principauxsont 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écificationet de vérification. Le deuxième vise l'élaboration d'un cadre de développement fondé sur lanotion de contrats multi-niveaux. L'intérêt de tels contrats est de maîtriser la constructionprogressive 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 fonctionnelsen utilisant la méthode B. Le troisième objectif est l'instrumentation de notre approchedans la plate-forme COSTO/Kmelia. Nous avons implanté un prototype permettant deconnecter COSTO aux différents outils associés à la méthode B. Ce prototype permet deconstruire 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 desspécifications Kmelia de départ. Les illustrations basées sur l'exemple CoCoME confortentnos propositions

    Conception et vérification d'exigences de sûreté temporisées à base de contrats dans les modèles SysML

    Get PDF
    De nos jours, les systèmes informatiques croissent en taille et en complexité. Intégrés dans des dispositifs de différents domaines tels que l'avionique, l'aéronautique, l'électronique grand public, etc., ils sont souvent considérés comme critiques à l'égard de la vie humaine, des coûts et de l'environnement. Concevoir des systèmes embarqués temps-réel critiques sûrs et fiables est une tâche difficile, étant donné que leurs modèles sont souvent source d'erreurs. Une façon pour les concepteurs de contourner cette difficulté consiste à s'appuyer sur la modélisation compositionnelle de composants logiciels pilotée par les exigences. Le raisonnement à base de contrats permet de construire des composants sûrs à partir des exigences globales du système en interposant des spécifications abstraites et partielles entre les besoins du système et les composants eux-mêmes. Informellement, un contrat modélise le comportement abstrait d'un composant du point de vue de l'exigence à satisfaire (c.a.d garantie) dans un contexte donné (c.a.d. hypothèse). Les contrats peuvent être exploités pour décomposer et tracer les exigences au cours d'un développement itératif, mais aussi pour effectuer une vérification compositionnelle de la satisfaction des exigences. Dans cette thèse, nous présentons une méthodologie de raisonnement à base de contrats pour la conception et la vérification de systèmes sûrs développés en SysML. Ainsi, nous définissons en UML/SysML la syntaxe des contrats et des relations de raffinement entre contrats et/ou composants qui sont utilisées pour prouver la correction du système par rapport aux exigences. Ensuite, nous proposons un cadre formel qui modélise la sémantique d'un modèle UML/SysML étendu par des contrats selon une variante d'automates temporisés entrée/sortie et nous définissons la correspondance entre ces concepts. Nous formalisons les relations de raffinement par la relation d'inclusion de traces et nous prouvons leurs propriétés compositionnelles ce qui assure la correction de la méthodologie. L'approche est instanciée pour le profil OMEGA et la boîte à outils IFx2 qui génère partiellement les obligations de preuve. Finalement, plusieurs études de cas dont une issue de l'industrie complètent la théorie pour évaluer l'approche à base de contrats et ses résultats et les comparer aux méthodes classiques de model-checking.Nowadays computer systems grow larger in size and more complex. Embedded in devices from different domains like avionics, aeronautics, consumer electronics, etc., they are often considered critical with respect to human life, costs and environment. A development that results in safe and reliable critical real-time embedded systems is a challenging task, considering that errors are accidentally inserted in the design. A way for system designers to tackle this issue is to use a compositional design technique based on components and driven by requirements: it allows to infer from global requirements, component properties that must locally hold. Contract-based reasoning allows to compositionally derive correct components from global system requirements by interposing abstract and partial specifications for components. Informally, a contract models the abstract behavior a component exhibits from the point of view of the requirement to be satisfied (i.e. guarantee) in a given context (i.e. assumption). Contracts can be used to decompose and trace requirements during iterative design, but also to perform compositional verification of requirement satisfaction. In this thesis, we present a methodology for reasoning with contracts during system design and verification within SysML. Thus, we define the syntax for contracts in UML/SysML, as well as a set of refinement relations between contracts and/or components in order to prove the system's correctness with respect to requirements. Next, we provide a formal framework that models the semantics of a UML/SysML model extended with contracts as a mapping of the language concepts to a variant of Timed Input/Output Automata. The refinement relations are formalized based on the trace inclusion relation and compositional properties are proved to hold which ensures the soundness of the methodology. The approach is instantiated for the OMEGA Profile and IFx2 toolset with partial automatic generation of proof obligations. Finally, the approach is applied on several case studies, including an industry-grade system model, which show its efficiency by comparative verification results
    corecore