• Aucun résultat trouvé

0.6 Conclusion et Perspectives

0.6.2 Perspectives

Cette thèse propose des travaux liés au développement d’une méthodologie de cycle de développement, avec des techniques et des outils associés, pour le développement de sys-tèmes critiques et présente une évaluation à travers le traitement complet du stimulateur cardiaque et le système de contrôle de la vitess. Dans cette section, nous décrivons des s extensions possibles de notre travail présenté dans cette thèse.

Dans le chapitre 4, nous avons présenté la méthodologie du cycle de vie de développe-ment de systèmes critiques, en utilisant des méthodes formelles. Dans cette thèse, nous avons présenté deux études de cas significatives liées au domaines médical et à celui de l’automobile, pour montrer l’efficacité de la l’approche proposée, sans appliquer les tech-niques d’évaluation de la sécurité. L’approche d’évaluation de la sécurité est également une partie importante de cette méthodologie de développement proposé. C’est notre tra-vail à venir pour appliquer les approches d’évaluation de la sécurité à chaque niveau de la méthodologie du cycle de vie de développement en vue de concevoir un système critique.

Dans le chapitre 5, nous avons présenté une architecture temps réel animateur et de développer un prototype pour tester l’efficacité de l’étude de cas stimulateur cardiaque. L’architecture proposée n’est pas encore complet en raison de certaines limitations, les dispositifs d’acquisition, les algorithmes d’extraction des caractéristiques et ainsi de suite. À l’avenir cela devrait utiliser la même architecture dans le domaine multi, l’architecture a proposé d’utiliser les données en temps réel mis pour valider toute spécification du modèle formel dans le stade précoce de développement. Manuel d’application de cette architecture à appliquer en temps réel des données défini dans le modèle formel est fastidieuse, lourde et peut être source d’erreurs si elle n’est pas appliquée avec soin. Par conséquent, afin de développer une interface de programmation d’application (API) qui peut servir d’interface des composants automatiquement différents de l’architecture.

Dans le chapitre 6, nous avons donné l’idée de tableau de raffinement, ce qui est utile pour concevoir le système modal selon les modes de fonctionnement grâce à l’approche

1

0.6. Conclusion et Perspectives 19

de raffinement. En conséquence, nous avons utilisé développement manuel de la carte de raffinement dans notre stimulateur cardiaque et régulateur de vitesse adaptatif (ACC) des études de cas. Comme un travail futur, nous prévoyons de développer un environnement de développement intégré (IDE) pour la conception d’un système critique avec la charte de raffinement et la formalisation automatique du système critique.

Au chapitre 7, nous avons présenté un outil de EB2ALL [EB2ALL 2011], qui génère des codes source en C, C++, Java et des langages de programmation C# automatiquement. Cet outil est mis en œuvre avec succès, sauf le code de vérification étape généré. Nous travaillons sur notre outil de traduction et maintenant nous mettons en œuvre la dernière étape de notre chaîne d’outils, la vérification du code généré. C’est la tâche importante et difficile dans le développement de l’outil. La raison en est que la préservation au niveau du code des propriétés prouvé au niveau architectural est garanti seulement si - la plate-forme sous-jacente est correcte et - bien-fondé de finale du système lors du remplissage dans les talons pour des actions internes dans le code généré automatiquement. Il est de notre projet en cours, nous sommes donc poursuivre l’extension de cet outil pour soutenir toutes les autres restant B événementiel symboles formels, qui garantit la liberté pour un développeur d’un système formalisé critique et de génération automatique de code source d’un modèle développé dans n’importe quelle langue cible. À l’avenir, nous avons prévu d’étendre cet outil de traduction du langage de programmation d’autres types cibles tels que langage de programmation API, de sorte que cet outil de traduction [EB2ALL 2011;Méry 2010a] peut être utilisée par tous les secteurs industriels, alors que formelle vérification et la validation des techniques primaires de développer un système.

Au chapitre 8, nous présentons un modèle d’environnement pour le système cardiaque, que nous utilisons pour intégrer ma spécification formelle du pacemaker [Méry 2011g] et la spécification formelle du cœur pour modéliser en boucle fermée et pour vérifier le comportement souhaité du stimulateur cardiaque en vue de sa certification. Comme travaux futurs, nous avons besoin de tester un tel type de modèle de l’environnement pour tester d’autres systèmes médicaux liés aux systèmes cardiaque.

Au chapitre 9, l’objectif le plus important est que le modèle formel développé permet d’obtenir une certification pour le stimulateur cardiaque. Notre objectif est de créer le simulateur du stimulateur cardiaque qui repose sur ces modèles formels et qui peuvent être utilisés par le médecin pour analyser en temps réel les signaux du cœur et pour prédire les modes de fonctionnement. Il peut être également utilisé comme un outil de diagnostic pour diagnostiquer le patient et l’aider à prendre la meilleure la décision d’implantation d’un stimulateur cardiaque [Writing Committee 2008].

Au chapitre 10, nous avons présenté une nouvelle approche de modélisation pour la modélisation de systèmes hybrides. Nous avons montré un développement réussi formel de système ACC en utilisant des méthodes formelles. Nous avons terminé l’ensemble du processus de modélisation et de formalisation du système ACC et les propriétés, et nous nous sommes acquittés de toutes les obligations de preuve générées. À l’avenir on devrait utiliser la même approche du développement formel de système de contrôle très complexes hybrides dans plusieurs domaines où les contrôleurs hybrides sont utilisées. Nous avons trouvé des futurs possibles travaux connexes à notre approche sont:

20 Chapter 0. Présentation de la thèse en français

• Utiliser différents types de régulation PID (P, PI, PD, PID)

• Vérification de propriétés complexes comme la composition de chaque contrôleur • Composition parallèle, série et en parallèle la composition et la composition

com-binée série de contrôleurs

• Identification et utilisation des modèles dans la conception du contrôle et la transfor-mation automatique de modèles Event B en modèles Simulink.

Dans le chapitre 11, nous nous concentrons sur quelques défis futurs liés à l’application des techniques formelles pour améliorer le protocole médical. Nous avons montré que la mise en œuvre réussie d’amélioration du protocole médical, en utilisant des méthodes formelles, où nous avons terminé la totalité du processus de modélisation et de formalisa-tion du protocole d’interprétaformalisa-tion d’ECG et les propriétés, et nous nous sommes acquittés de toutes les obligations de preuve générées. Une structure hiérarchique pour le diagnostic ECG est découvert, ce qui contribue à améliorer le protocole de l’ECG. Comme un tra-vail futur, il est possible d’utiliser la même technique pour enquêter sur d’autres types de protocoles médicaux utilisant notre approche de modélisation basée sur le raffinement.

C

HAPTER

1

Introduction

“The man of science has learned to believe in justification, not by faith, but by verification.” (Thomas Huxley)

The primary goal of the thesis is to advance the use of formal techniques for the devel-opment computing systems with high integrity. Specifically, the thesis makes an analysis of critical system software that formal methods are not well integrated into established critical systems development processes. The thesis work suggests a formalism for a new development life-cycle, and proposes a set of associated techniques and tools to develop highly critical systems using formal techniques from requirements analysis to automatic source code generation using several intermediate layers with rigorous safety assessment approach. The approach has been verified using the Event-B formalism, and tools, with the addition of the following quite a few new aspects of real-time animator, refinement chart, a set of automatic code generation tools, and critical system development methodology, have been added. The efficacy of formalism has been evaluated by means of case studies in the area of medical and automotive domains. In this chapter, we present the motivation of this work and main concepts of our proposed approach for developing a new methodology for system development, and associated techniques and tools.

1.1 Motivation

Nowadays, software systems have penetrated into our daily life in many ways. Information technology is one major area, which provides powerful, and adaptable opportunities for innovation. However, sometimes computer-based developed systems are producing disap-pointed results and fail to produce the desired results according to work requirements and stakeholder needs. They are unreliable, and eventually dangerous. As a cause of system failure, poor developments practices [Leveson 1993;Zhang 2010;Gibbs 1994;Price 1995;

Yeo 2002] are one of the most significant. This is due to the complex nature of modern

software and lack of understanding. Software development provides a framework for sim-plifying a complex system to get a better understanding and to develop the higher-fidelity system at a lower cost. Highly embedded critical systems, such as automotive, medical, and avionic, are susceptible to errors, which are not sustainable in case of failure. Any fail-ure in these systems may to two types of consequences: direct consequences and indirect

22 Chapter 1. Introduction

consequences. Direct consequences lead to finance, property losses, and personal injuries, while indirect consequences lead to income lost, medical expenses, time to retain another person, and decrease employee moral, etcetera. Additionally, and most significantly poten-tial loss is customer trust for a product failure. In this context, a high degree of safety and security is required to make amenable to the critical systems. A system is considered to accomplish the current task safely in case of a system failure. A formal rigorous reasoning about algorithms and mechanisms beneath such a system is required to precisely under-stand the behavior of systems at the design level. However, to develop a reliable system is a significantly complicated task, which affects the reliability of a system.

Formal methods-based development [Woodcock 2007;Gaudel 1996;Jetley 2006] is a very standard and popular approach to deal with the increasing complexity of a system with assurance of correctness in the modern software engineering. Formal methods-based tech-niques increasingly control safety-critical functionality in the development of the highly critical systems. These techniques are also considered as a way to meet the requirements of the standardize certificates [ISO;IEEE-SA;CC;FDA] to evaluate a critical system before use in practice. Furthermore, critical systems can be effectively analysed at early stages of the development, which allows to explore conceptual errors, ambiguities, re-quirements correctness, and design flaws before implementation of the actual system. This approach helps to correct errors more easily and with less cost. We formulate following objectives related to a critical system development, and propose formal methods-based development methodology and a new set of associated techniques and tools to meet the following objectives:

• Establishing a unified theory for the critical system development.

• Building a comprehensive and integrated suite of tools for the critical systems that support verification activities, including formal specification, model validation, real-time animation and automatic code generation.

• Environment modeling for closed-loop system development for verification purposes. • Refinement-based formal development to achieve less error-prone models, easier specification for the critical systems and reuse of such specification for further de-signs.

• Decomposition of the complex system into different independent subsystems and re-composition after validation.

• Model-based development and component-based design frameworks.

• System integration of critical infrastructure. Possibility of annotating models for different purposes, (e.g., directing the synthesis or hooking to verification tools). • Evidence-based certification through animation.

Documents relatifs