Executable Contracts for Incremental Prototypes of Embedded Systems

In this paper, we advocate for a seamless design-flow for embedded reactive programs. We particularly concentrate on the use of assume-guarantee contracts (as a form of non-deterministic specification) and present how these can be used for early execution of reactive specifications. We illustrate the approach on a case-study taken from an avionic application, trying to show the implications of this simulation method on the design-flow.

[1]  Raimund Kirner,et al.  Measurement-Based Worst-Case Execution Time Analysis using Automatic Test-Data Generation ∗ , 2004 .

[2]  Florence Maraninchi,et al.  Step-wise + Algorithmic debugging for Reactive Programs: Ludic, a debugger for Lustre , 2000, AADEBUG.

[3]  Andreas Metzger,et al.  Early Prototyping of Reactive Systems Through the Generation of SDL Specifications from Semi-formal Development Documents , 2002 .

[4]  Yvan Roux Description et simulation de systèmes réactifs non-déterministes , 2004 .

[5]  Nicolas Halbwachs,et al.  Synchronous Modelling of Asynchronous Systems , 2002, EMSOFT.

[6]  Lionel Morel,et al.  Logical-time contracts for reactive embedded components , 2004 .

[7]  BerryGérard,et al.  The ESTEREL synchronous programming language , 1992 .

[8]  Henrik Theiling,et al.  Convenient User Annotations for a WCET Tool , 2003, WCET.

[9]  Stefan M. Petters Comparison of Trace Generation Methods for Measurement Based WCET Analysis , 2003, WCET.

[10]  Ralf H. Reussner,et al.  Reliability prediction for component-based software architectures , 2003, J. Syst. Softw..

[11]  Jan Gustafsson,et al.  Automatic Derivation of Path and Loop Annotations in Object-Oriented Real-Time Programs , 1998, Scalable Comput. Pract. Exp..

[12]  Henrik Theiling,et al.  Combining abstract interpretation and ILP for microarchitecture modelling and program path analysis , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[13]  Nicolas Halbwachs,et al.  Automatic testing of reactive systems , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[14]  David B. Whalley,et al.  Bounding Pipeline and Instruction Cache Performance , 1999, IEEE Trans. Computers.

[15]  Steffen Becker,et al.  Parametric Performance Contracts for Software Components and their Compositionality , 2004 .

[16]  Pascal Sainrat,et al.  Difficulties in Computing the WCET for Processors with Speculative Execution , 2002 .

[17]  Jan Gustafsson,et al.  A Prototype Tool for Flow Analysis of C Programs , 2002 .

[18]  Douglas R. Smith Constructing Specification Morphisms , 1993, J. Symb. Comput..

[19]  Jan Gustafsson Analyzing execution-time of object-oriented programs using abstract interpretation , 2000 .

[20]  Jan Gustafsson,et al.  A tool for automatic flow analysis of C-programs for WCET calculation , 2003, Proceedings of the Eighth International Workshop on Object-Oriented Real-Time Dependable Systems, 2003. (WORDS 2003)..

[21]  Stephan Wilhelm Efficient Analysis of Pipeline Models for WCET Computation , 2005, WCET.

[22]  Pascal Raymond,et al.  Case studies with Lurette V2 , 2004, International Journal on Software Tools for Technology Transfer.

[23]  Stephen A. Edwards,et al.  The synchronous languages 12 years later , 2003, Proc. IEEE.

[24]  Jeannette M. Wing,et al.  Specification matching of software components , 1995, TSEM.

[25]  Bernd J. Krämer,et al.  Predictable Component Architectures Using Dependent Finite State Machines , 2002, RISSEF.

[26]  Tulika Mitra,et al.  A Framework to Model Branch Prediction for WCET Analysis , 2002 .

[27]  Nicolas Halbwachs,et al.  Automatic discovery of linear restraints among variables of a program , 1978, POPL.

[28]  Edward A. Lee,et al.  Heterogeneous Concurrent Modeling and Design in Java (Volume 1: Introduction to Ptolemy II) , 2008 .

[29]  Gérard Berry,et al.  The Esterel Synchronous Programming Language: Design, Semantics, Implementation , 1992, Sci. Comput. Program..

[30]  Paulo Abadie Guedes,et al.  On the Design of an Extensible Platform for Flow Analysis of Java using Abstract Interpretation , 2003, WCET.

[31]  Jörgen Hansson,et al.  Aspect-Level WCET Analyzer: A Tool for Automated WCET Analysis of the Real-Time Software Composed Using Aspect and Components , 2003, WCET.

[32]  Stefan M. Petters How much Worst Case is Needed in WCET Estimation ? , 2009 .

[33]  Jens Happe,et al.  Predicting Mean Service Execution Times of Software Components Based on Markov Models , 2005, QoSA/SOQUA.

[34]  Nicolas Halbwachs,et al.  Synchronous Observers and the Verification of Reactive Systems , 1993, AMAST.

[35]  Marc Pouzet,et al.  ReactiveML: a reactive extension to ML , 2005, PPDP.

[36]  Lionel Morel,et al.  Logical-time contracts for reactive embedded components , 2004, Proceedings. 30th Euromicro Conference, 2004..

[37]  Nicolas Halbwachs,et al.  Generating Efficient Code From Data-Flow Programs , 1991, PLILP.

[38]  Sharad Malik,et al.  Performance estimation of embedded software with instruction cache modeling , 1995, ICCAD.

[39]  Hartmut Ehrig,et al.  A Generic Framework for Connector Architectures based on Components and Transformations , 2004, FESCA@ETAPS.

[40]  M. Campoy,et al.  Static Use of Locking Caches in Multitask Preemptive Real-Time Systems , 2001 .

[41]  Lionel Morel Efficient Compilation of Array Iterators for Lustre , 2002, Electron. Notes Theor. Comput. Sci..

[42]  Jens Happe,et al.  Using Stochastic Petri Nets to Predict Quality of Service Attributes of Component-Based Software Architectures , 2005 .

[43]  Amir Pnueli,et al.  On the Development of Reactive Systems , 1989, Logics and Models of Concurrent Systems.

[44]  Bernd J. Krämer,et al.  Modelling Predictable Component-Based Distributed Control Architectures , 2003, 2003 The Ninth IEEE International Workshop on Object-Oriented Real-Time Dependable Systems.

[45]  Reinhard Wilhelm,et al.  Pipeline behavior prediction for superscalar processors , 1999 .

[46]  Raimund Kirner,et al.  Classification of Code Annotations and Discussion of Compiler-Support for Worst-Case Execution Time Analysis , 2005, WCET.

[47]  Sylvain Boulmé,et al.  Adaptable Translator of B Specifications to Embedded C Programs , 2003, FME.

[48]  David B. Whalley,et al.  Bounding loop iterations for timing analysis , 1998, Proceedings. Fourth IEEE Real-Time Technology and Applications Symposium (Cat. No.98TB100245).

[49]  Alexander Brodsky,et al.  CoJava: a unified language for simulation and optimization , 2005, OOPSLA '05.

[50]  Lionel Morel,et al.  Arrays and contracts for the specification and analysis of regular systems , 2004, Proceedings. Fourth International Conference on Application of Concurrency to System Design, 2004. ACSD 2004..

[51]  Günter Kniesel Type-Safe Delegation for Run-Time Component Adaptation , 1999, ECOOP.

[52]  Dipl.-Inform. Karl-Heinz John,et al.  IEC 61131-3: Programming Industrial Automation Systems , 2001, Springer Berlin Heidelberg.

[53]  Edward A. Lee,et al.  Design and Simulation of Heterogeneous Systems using Ptolemy , 1994 .

[54]  Pascal Raymond,et al.  The Lucky language Reference Manual , 2004 .

[55]  Guillem Bernat,et al.  pWCET: a Tool for Probabilistic Worst-Case Execution Time Analysis of Real-Time Systems , 2003 .

[56]  Pascal Raymond,et al.  The synchronous data flow programming language LUSTRE , 1991, Proc. IEEE.

[57]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[58]  Thomas Nolte,et al.  Using Components to Facilitate Stochastic Schedulability Analysis , 2003 .

[59]  Jörn Schneider,et al.  Pipeline behavior prediction for superscalar processors by abstract interpretation , 1999, LCTES '99.

[60]  Paul Whitaker,et al.  The Simulation of Synchronous Reactive Systems In Ptolemy , 2001 .