Towards Component-Based Design and Verification of a µ-Controller

Model-driven and component-based software development seems to be a promising approach to handling the complexity and at the same time increasing the quality of software systems. Although the idea of assembling systems from pre-fabricated components is appealing, quality becomes a major issue, especially for embedded systems. Quality defects in one component might not affect the quality of the component but that of others. This paper presents an integrated, formal verification approach to ensure the correct behavior of embedded software components, as well as a case study that demonstrates its practical applicability. The approach is based on the formalism of abstract components and their refinements, with its focus being on interaction behavior among components. The approach enables the identification of unanticipated design errors that are difficult to find and costly to correct using traditional verification methods such as testing and simulation.

[1]  Steven D. Johnson Formal Methods in Embedded Design , 2003, Computer.

[2]  Wiebe van der Hoek,et al.  SOFSEM 2007: Theory and Practice of Computer Science , 2007 .

[3]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

[4]  Pao-Ann Hsiung Formal synthesis and code generation of embedded real-time software , 2001, CODES '01.

[5]  Amir Pnueli,et al.  The temporal logic of programs , 1977, 18th Annual Symposium on Foundations of Computer Science (sfcs 1977).

[6]  Ivana Černá,et al.  Component-interaction automata as a verification-oriented component-based system specification , 2006 .

[7]  Frantisek Plasil,et al.  Component composition errors and update atomicity: static analysis: Research Articles , 2005 .

[8]  Fei Xie,et al.  Verified systems by composition from verified components , 2003, ESEC/FSE-11.

[9]  Hassen Saïdi,et al.  Construction of Abstract State Graphs with PVS , 1997, CAV.

[10]  Gerard J. Holzmann,et al.  Implementing statecharts in PROMELA/SPIN , 1998, Proceedings. 2nd IEEE Workshop on Industrial Strength Formal Specification Techniques.

[11]  Yunja Choi,et al.  Checking Interaction Consistency in MARMOT Component Refinements , 2007, SOFSEM.

[12]  Ralf H. Reussner,et al.  Reasoning about Software Architectures with Contractually Specified Components , 2003, Component-Based Software Quality.

[13]  Jirí Adámek,et al.  Component composition errors and update atomicity: static analysis , 2005, J. Softw. Maintenance Res. Pract..

[14]  Gerard J. Holzmann,et al.  Design and validation of computer protocols , 1991 .

[15]  Gerard J. Holzmann,et al.  The SPIN Model Checker - primer and reference manual , 2003 .

[16]  Gregor Engels,et al.  Consistent Interaction of Software Components , 2002, Trans. SDPS.

[17]  Chong-Min Kyung,et al.  Current status and challenges of SoC verification for embedded systems market , 2003, IEEE International [Systems-on-Chip] SOC Conference, 2003. Proceedings..

[18]  Amel Mammar,et al.  A formal semantics of timed activity diagrams and its PROMELA translation , 2005, 12th Asia-Pacific Software Engineering Conference (APSEC'05).

[19]  Helmut Veith,et al.  25 Years of Model Checking - History, Achievements, Perspectives , 2008, 25 Years of Model Checking.

[20]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[21]  Mark R. Greenstreet,et al.  Formal verification in hardware design: a survey , 1999, TODE.

[22]  Ludovic Henrio,et al.  Behavioural Models for Hierarchical Components , 2005, SPIN.

[23]  João M. Fernandes,et al.  Model checking embedded systems with PROMELA , 2005, 12th IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'05).

[24]  Kristina Lundqvist,et al.  Component-based approach to run-time kernel specification and verification , 2005, 17th Euromicro Conference on Real-Time Systems (ECRTS'05).