Formal methods integration in software engineering

This paper presents an extract from our works on a software engineering method for avionic real-time systems [3], the C-Method, which covers the whole software lifecycle thanks to a seamless process, and integrates formal methods in its process. Because distributed, real-time and embedded (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 “C-Method” 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. The fundamental question is how to integrate several languages with different levels of formalization and abstraction. The previous software engineering methods were based on a single language or notation, so they did not address this issue. 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).

[1]  Richard F. Paige,et al.  A Meta-Method for Formal Method Integration , 1997, FME.

[2]  Peter H. Feiler,et al.  The SAE AADL Standard: an Architecture Analysis & Design Language for Embedded Real-time Systems, Part 2 , 2004 .

[3]  L. Pautet,et al.  Co-Modeling Methodology Designed for RT Architecture Models Integration , 2007, 12th IEEE International Conference on Engineering Complex Computer Systems (ICECCS 2007).

[4]  Laurent Pautet,et al.  A Concrete Syntax for UML 2.1 Action Semantics Using +CAL , 2008, 13th IEEE International Conference on Engineering of Complex Computer Systems (iceccs 2008).

[5]  Laurent Pautet,et al.  UML&AADL '2007 grand challenges , 2007, SIGBED.

[6]  Ivar Jacobson,et al.  Excerpt from "The Unified Software Development Process": The Unified Process , 1999, IEEE Softw..

[7]  Ivar Jacobson,et al.  The Unified Software Development Process , 1999 .

[8]  Soumitra Dutta,et al.  Software Engineering in Europe: A Study of Best Practices , 1999, IEEE Softw..

[9]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[10]  Laurent Pautet,et al.  Foundations of a new software engineering method for real-time systems , 2008, Innovations in Systems and Software Engineering.

[11]  Richard F. Paige Case Studies in Using a Meta-Method for Formal Method Integration , 1997, AMAST.

[12]  Leslie Lamport,et al.  Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers [Book Review] , 2002, Computer.

[13]  Leslie Lamport The +CAL Algorithm Language , 2006, NCA.

[14]  Claude Marché,et al.  The Why/Krakatoa/Caduceus Platform for Deductive Program Verification , 2007, CAV.

[15]  Ivar Jacobson,et al.  The Unified Process , 1999 .

[16]  Sébastien Gérard,et al.  MARTE: Also an UML Profile for Modeling AADL Applications , 2007, 12th IEEE International Conference on Engineering Complex Computer Systems (ICECCS 2007).