COLA -- The component language

In this paper we introduce the component language COLA for the design and development of embedded systems. We present the formal syntax and semantics of COLA which is based upon synchronous data?ow. Utilizing the abstraction provided by this paradigm, the designer is freed from implementation details and is able to focus on the core-functionality to be modeled and implemented. Due to the well-founded semantics of the language, it is possible to establish an integrated development process, the artifacts of which can be formally reasoned about and are dealt with in automated tools such as model checkers or model-based test case generators. Since COLA has been developed in the context of an industrial cooperation, the main rationale in the design of COLA is its industrial applicability: Thus, the language must provide a well-de?ned semantical foundation which is accessible to today’s tools and techniques and which is also able to capture today’s industrial applications. To this end, we extend the data?ow approach with automata to model operating modes concisely as well as with a hierarchical decomposition to facilitate reuse e?ciently. We designed a textual and an equivalent graphical representation of COLA models to meet the need of our industrial collaborators. Finally, we demonstrate the viability of our approach with a case study from the automotive domain where we design an adaptive cruise control (ACC) unit.

[1]  Stephan Merz,et al.  Model Checking , 2000 .

[2]  Ingo Stürmer,et al.  Overview of existing safeguarding techniques for automatically generated code , 2005, ACM SIGSOFT Softw. Eng. Notes.

[3]  A. Church Edward F. Moore. Gedanken-experiments on sequential machines. Automata studies , edited by C. E. Shannon and J. McCarthy, Annals of Mathematics studies no. 34, litho-printed, Princeton University Press, Princeton1956, pp. 129–153. , 1958, Journal of Symbolic Logic.

[4]  Edward F. Moore,et al.  Gedanken-Experiments on Sequential Machines , 1956 .

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

[6]  강문설 [서평]「The Unified Modeling Language User Guide」 , 1999 .

[7]  Jan Romberg,et al.  Loose synchronization of event-triggered networks for distribution of synchronous programs , 2004, EMSOFT '04.

[8]  Thierry Gautier,et al.  Programming real-time applications with SIGNAL , 1991, Proc. IEEE.

[9]  Joycee Mekie,et al.  Reasoning about synchronization in GALS systems , 2006, Formal Methods Syst. Des..

[10]  Daniel Marcos Chapiro,et al.  Globally-asynchronous locally-synchronous systems , 1985 .

[11]  Stavros Tripakis,et al.  From simulink to SCADE/lustre to TTA: a layered approach for distributed embedded applications , 2003 .

[12]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[13]  Paul Le Guernic,et al.  SIGNAL: A declarative language for synchronous programming of real-time systems , 1987, FPCA.

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

[15]  Manfred Broy,et al.  AutoMoDe - Notations, Methods, and Tools for Model-Based Development of Automotive Software , 2005 .

[16]  Jan Romberg,et al.  Synthesis of distributed systems from synchronous dataflow programs , 2006 .

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

[18]  Florence Maraninchi,et al.  Mode-Automata: a new domain-specific construct for the development of safe critical systems , 2003, Sci. Comput. Program..

[19]  Luciano Lavagno,et al.  Metropolis: An Integrated Electronic System Design Environment , 2003, Computer.

[20]  Manfred Broy,et al.  AutoFocus– Ein Werkzeugprototyp zur Entwicklung eingebetteter Systeme , 1999, Informatik Forschung und Entwicklung.

[21]  Steve Vestal,et al.  The SAE Avionics Architecture Description Language (AADL) Standard: A Basis for Model-Based Architecture-Driven Embedded Systems Engineering , 2003 .

[22]  Andreas Bauer,et al.  Compatibility and reuse in component-based systems via type and unit inference , 2007, 33rd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO 2007).

[23]  Fiona A. C. Polack,et al.  Comparison of Formalisation Approaches of UML Class Constructs in Z and Object-Z , 2003, ZB.

[24]  Bernhard Rumpe,et al.  The UML as a formal modeling notation , 1998, Comput. Stand. Interfaces.

[25]  Ronald L. Rivest,et al.  Introduction to Algorithms, Second Edition , 2001 .

[26]  Jonathan Streit,et al.  SALT - Structured Assertion Language for Temporal Logic , 2006, ICFEM.

[27]  Ingolf Krüger,et al.  A Verification Approach for GALS Integration of Synchronous Components , 2005, FMGALS@MEMOCODE.

[28]  Manfred Broy,et al.  Specification and development of interactive systems: focus on streams, interfaces, and refinement , 2001 .

[29]  Ronald L. Rivest,et al.  Introduction to Algorithms , 1990 .