Component-Based Synthesis of Dependable Embedded Software

Standardized and reusable software (SW) objects (or SW components - in-house or pre-fabricated) are increasingly being used to reduce the cost of software (SW) development. Given that the basic components may not have been developed with dependability as primary driver, these components need to be adapted to deal with errors from their environment. To achieve this, error containment wrappers are added to increase the reliability of the components. In this paper, we first present a modular specification approach using fault intolerant components, based on the concepts of category theory. We further introduce the concept of wrapper consistency, based upon which, we present an algorithm that systematically generates globally consistent fault containment wrappers for each component, to make them fault tolerant. Subsequently, we enhance the initial modular specification to deal with the wrapped components, and show that safety properties of the system are preserved under composition only if the wrappers are globally consistent.

[1]  Bowen Alpern,et al.  Defining Liveness , 1984, Inf. Process. Lett..

[2]  Jim Woodcock,et al.  Using Z - specification, refinement, and proof , 1996, Prentice Hall international series in computer science.

[3]  Anish Arora,et al.  Detectors and correctors: a theory of fault-tolerance components , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[4]  Patrick Cousot,et al.  Static determination of dynamic properties of programs , 1976 .

[5]  Frank Tip,et al.  A survey of program slicing techniques , 1994, J. Program. Lang..

[6]  Jean Arlat,et al.  MetaKernels and fault containment wrappers , 1999, Digest of Papers. Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing (Cat. No.99CB36352).

[7]  Graeme Smith,et al.  The Object-Z Specification Language , 1999, Advances in Formal Methods.

[8]  Neeraj Suri,et al.  An approach for analysing the propagation of data errors in software , 2001, 2001 International Conference on Dependable Systems and Networks.

[9]  Timothy Fraser,et al.  Hardening COTS software with generic software wrappers , 1999, Proceedings of the 1999 IEEE Symposium on Security and Privacy (Cat. No.99CB36344).

[10]  Daniel Le Métayer,et al.  Verification of control flow based security properties , 1999, Proceedings of the 1999 IEEE Symposium on Security and Privacy (Cat. No.99CB36344).

[11]  Jan Gustafsson,et al.  Deriving Annotations for Tight Calculation of Execution Time , 1997, Euro-Par.

[12]  Nancy G. Leveson,et al.  The Use of Self Checks and Voting in Software Error Detection: An Empirical Study , 1990, IEEE Trans. Software Eng..

[13]  Anish Arora,et al.  Automating the Addition of Fault-Tolerance , 2000, FTRTFT.

[14]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[15]  Fabrice Kordon,et al.  A Modular Approach to the Specification and Validation of an Electrical Flight Control System , 2001, FME.

[16]  Virginie Wiels Modularité pour la conception et la validation formelles de systèmes , 1997 .

[17]  Neeraj Suri,et al.  On systematic design of globally consistent executable assertions in embedded software , 2002, LCTES/SCOPES '02.

[18]  Hartmut Ehrig,et al.  Fundamentals of Algebraic Specification 2: Module Specifications and Constraints , 1990 .

[19]  Mathai Joseph,et al.  Verification of fault tolerance and real time , 1996, Proceedings of Annual Symposium on Fault Tolerant Computing.

[20]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .