Reliability and Safety of Critical Device Software Systems Neeraj Kumar Singh
Total Page:16
File Type:pdf, Size:1020Kb
Reliability and Safety of Critical Device Software Systems Neeraj Kumar Singh To cite this version: Neeraj Kumar Singh. Reliability and Safety of Critical Device Software Systems. Other [cs.OH]. Université Henri Poincaré - Nancy 1, 2011. English. NNT : 2011NAN10129. tel-01746287 HAL Id: tel-01746287 https://hal.univ-lorraine.fr/tel-01746287 Submitted on 29 Mar 2018 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. AVERTISSEMENT Ce document est le fruit d'un long travail approuvé par le jury de soutenance et mis à disposition de l'ensemble de la communauté universitaire élargie. Il est soumis à la propriété intellectuelle de l'auteur. Ceci implique une obligation de citation et de référencement lors de l’utilisation de ce document. D’autre part, toute contrefaçon, plagiat, reproduction illicite encourt une poursuite pénale. ➢ Contact SCD Nancy 1 : [email protected] LIENS Code de la Propriété Intellectuelle. articles L 122. 4 Code de la Propriété Intellectuelle. articles L 335.2- L 335.10 http://www.cfcopies.com/V2/leg/leg_droi.php http://www.culture.gouv.fr/culture/infos-pratiques/droits/protection.htm UFR STMIA École Doctorale IAEM Lorraine Fiabilité et Sûreté des Systèmes Informatiques Critiques Thèse présentée et soutenue publiquement le 15 novembre 2011 pour l’obtention du Doctorat de l’Université Henri Poincaré - Nancy 1 (Mention : informatique) par Neeraj Kumar SINGH Composition du jury : Rapporteurs : Prof. Yamine AIT-AMEUR - IRIT, ENSEIHT,Université de Toulouse Prof. John FITZGERALD - Newcastle University Examinateurs : Prof. Catherine DUBOIS - ENSIEE Dr. Yann GUERMEUR - DR CNRS LORIA Prof. Dominique MÉRY - Université Henri Poincaré Nancy 1 Dr. Isabelle PERSEIL - Ingénieur de Recherche, INSERM Prof. Olivier ROUX - Ecole Centrale de Nantes Invité : Prof. Dr. Etienne ALIOT - C.H.U de Nancy Laboratoire Lorrain de Recherche en Informatique et ses Applications — UMR 7503 Dedicated to Lord Krishna, and My Loving Parents Résumé Les systèmes informatiques envahissent notre vie quotidienne et sont devenus des éléments essentiels de chacun de nos instants de vie. La technologie de l’information est un secteur d’activités offrant des opportunités considérables pour l’innnovation et cet aspect paraît sans limite. Cependant, des systèmes à logiciel intégré ont donné des résultats décevants. Selon les constats, ils étaient non fiables, parfois dangereux et ne fournissaient pas les résultats attendus. La faiblesse des pratiques de développement constitue la principale rai- son des échecs de ces systèmes. Ceci est dû à la complexité des logiciels modernes et au manque de connaissances adéquates et propres. Le développement logiciel fournit un cadre contribuant à simplifier la conception de systèmes complexes, afin d’en obtenir une meilleure compréhension et d’assurer une très grande qualité à un coût moindre. Dans les domaines de l’automatique, de la surveillance médicale, de l’avionique..., les systèmes embarqués hautement critiques sont candidats aux erreurs pouvant conduire à des con- séquences graves en cas d’échecs. La thèse vise à résoudre ce problème, en fournissant un ensemble de techniques, d’outils et un cadre pour développer des systèmes hautement critiques, en utilisant des techniques formelles à partir de l’analyse des exigences jusqu’à la production automatique de code source, en considérant plusieurs niveaux intermédiaires. Elle est structurée en deux par- ties: d’une part des techniques et des outils et d’autre part des études de cas. La partie concernant des techniques et des outils présente une structure intégrant un animateur de modèles en temps-réel, un cadre de correction de modèles et le concept de charte de raf- finement, un cadre de modélisation en vue de la certification, un modèle du coeur pour la modélisation en boucle fermée et des outils de générations automatiques de code. Ces cadres et outils sont utilisés pour développer les systèmes critiques à partir de l’analyse des exigences jusqu’à la production du code, en vérifiant et en validant les étapes intermédiaires en vue de fournir un modèle formel correct satisfaisant les propriétés souhaitées attendues au niveau le plus concret. L’introduction de nouveaux outils concourent à améliorer la véri- fication des propriétés souhaitées qui sont cachées aux étapes initiales du développement du système. Nous évaluons les propositions faites au travers de cas d’études du domaine médical et du domaine des transports. De plus, le travail de cette thèse a étudié la représentation formelle des protocoles médicaux, afin d’améliorer les protocles existants. Nous avons complétement formalisé un protocole réel d’interprétation des ECG en vue d’analyser si la formalisation était conforme à certaines propriétés relevant du protocole. Le processus de vérification formelle a mis en évidence des anaomalies dans les protocoles existants. Nous avons aussi découvert une structure hiérarchique pour une interpétation efficace permettant de découvrir un ensemble de conditions qui peuvent être utiles pour diagnostiquer des maladies particulières à un stade précoce. L’objectif principal du formalisme développé est de tester la correction et la consistance du protocole médical. Abstract Software systems are pervasive in all walks of our life and have become an essential part of our daily life. Information technology is one major area, which provides powerful and adaptable opportunities for innovation, and it seems boundless. However, systems devel- oped using computer-based logic have produced disappointing results. According to stake- holders, they are unreliable, at times dangerous, and fail to provide the desired outcomes. Most significant reasons of system failures are the poor development practices for system development. This is due to the complex nature of modern software and lack of adequate and proper understanding. Software development provides a framework for simplifying a complex system to get a better understanding and to develop the higher fidelity quality sys- tems at lower cost. Highly embedded critical systems, in areas such as automation, medical surveillance, avionics, etc., are susceptible to errors, which can lead to grave consequences in case of failures. This thesis intends as a contribute to further the use of formal techniques for the de- velopment computing systems with high integrity. Specifically, it addresses the issue that formal methods are not well integrated into established critical systems development pro- cesses by defining a new development life-cycle, and a set of associated techniques and tools to develop highly critical systems using formal techniques from requirements analy- sis to automatic source code generation using several intermediate layers with a rigorous safety assessment approach. The approach has been realised using the Event-B formalism. This thesis has mainly two parts: techniques & tools and case studies. The techniques and tools section consists of a development life-cycle methodology, a framework for real-time animator, refinement chart, a set of automatic code generation tools and formal logic based heart model for close loop modeling. A new development methodology, and a set of asso- ciated techniques and tools are used for developing the critical systems from requirements analysis to code implementation, where verification and validation tasks are used as in- termediate layers for providing a correct formal model with desired system behavior at a concrete level. We introduce new tools to help to verify desired properties, which are hid- den at the early stage of the system development. We also critically evaluate the proposed development methodology and developed techniques and tools through case studies in the medical and automotive domains. In addition, the thesis addresses the formal representation of medical protocols, which is useful for improving the existing medical protocols. We have fully formalised a real- world medical protocol (ECG interpretation) to analyse whether the formalisation complies with certain medically relevant protocol properties. The formal verification process has discovered a number of anomalies in the existing protocols. We have also discovered a hierarchical structure for efficient ECG interpretation that helps to find a set of conditions that can help to diagnose particular diseases at an early stage. The main objective of the developed formalism is to test correctness and consistency of the medical protocol. Acknowledgments This thesis would not have been written without a number of people. I would like to express my deep and sincere gratitude to my supervisor Prof. Dominique Méry for his day-to- day guidance, inspiring discussions, enduring supervision and encouragement. His wide knowledge and his logical way of thinking have been of great value for me. His extensive discussions, critical suggestions and interesting explorations around my work have been very helpful for this study. He has also been a kind and effective advisor, allowing me a great amount of freedom while being actively involved in my research