The C-Method, a software engineering method for avionic real-time systems - Isabelle Perseil
The C-Method, a software engineering method for avionic real-time systems
![]()
Auteur : Isabelle Perseil
Thèse de l'ENST
Département Informatique et Réseaux
Résumé :
La conception des architectures DRE de systèmes critiques complexes comportant des exigences de sûreté de fonctionnement, vivacité, ponctualité et de sécurité, impose un recours aux langages formels. Nous avons par conséquent concentré nos efforts sur la mise au point d’une méthodologie qui permette d’intégrer au mieux les aspects formels de la conception d’architectures DRE (traditionnellement basée sur l’utilisation d’ADLs semi-formels) et qui garantisse la preuve des propriétés sensibles de ces systèmes de bout en bout de leur réalisation (par assemblage de composants).
Mot-Clés :
Real-time, embedded systems, MDE, MDA, UML, MARTE, AADL, +CAL, TLA+, PVS, ATL, ANTLR, Methods
Directeur de la thèse : Laurent Pautet
Thèse Soutenue
Date de soutenance : 29/09/2009
Title : Méthode C, une méthode de génie logiciel pour les systèmes temp-réel avioniques
Abstract :
We present here a software engineering method for avionic fault-tolerant distributed, real-time and embedded (DRE) systems which covers the whole software lifecycle thanks to a seamless process. We have called this method the “C-Method” as C stands for the main notion of “continuum” that we have introduced between each phase of the lifecycle. The lifecycle of Method C is mainly composed of an “abstraction” ascending phase which leads to the most abstracts models of the system and an implemen- tation descending phase which automatically leads to the code production. Because these “DRE” systems have safety critical concerns, they require the use of formal languages (that allow non ambiguous and rigorous specifications) in order to be able to prove their non functional properties. Therefore, the “Method C” relies on the use of formal languages in the earliest steps of the system specification and on the use of semi-formal languages in the analysis, design and programming steps. Our process steps are categorized as having different abstraction levels and not by the traditional engineering techniques (waterfall V) which target the code phase as the ultimate one. Therefore, the highest level of abstraction is found in the analysis phase (visually on the top of the lifecycle), which is performed using the standard UML diagrams, the +CAL action language and the UML profile for MARTE. The progress is that the main objective is not to obtain the code but to define complete analysis models, as we aim at mechanizing the code generation. The fundamental question is how to integrate several languages with different levels of formalization and abstraction. The previous software engineering methods where based on a single language or notation, so they did not address this issue. Here we propose to “navigate” from one language to another one thanks to model transformations techniques at the analysis step and code generation at the design step, when a full mechanization of the process is required. In order to make the transitions more continuous between semi-formal and formal specifications, we have introduced in the development process what we call “intermediate” languages (+CAL and Why), that are easy to manipulate but directly linked to a formal language (TLA+ for +CAL, Why for PVS). Once the modeling language has been unified (the UML), then the trend became to unify the software developement process too. But a process cannot be unified for all types of development, in particular, because systems with safety critical concerns are much more complex than business information systems. So we provide guidelines to reach the optimal process that leads to the development of a complete avionic software system. As the systems that we are studying are complex systems, and also because they need modularity, change management (these systems have a long duration), reuse, to be taken into account, the model-driven approach is the most appropriate to start with. Considering the previous arguments, the “C-Method” is founded upon the cooperation of models and languages, in a way that enables continuity. Finally, for normative needs, the “C-Method” follows the DO-178B/C and ARP4754.
Pour me contacter, envoyez-moi un
mail
... si vous voulez voir ma page