A component-based process with separation of concerns for the development of embedded real-time software systems

Abstract Numerous component models have been proposed in the literature, a testimony of a subject domain rich with technical and scientific challenges, and considerable potential. Unfortunately however, the reported level of adoption has been comparatively low. Where successes were had, they were largely facilitated by the manifest endorsement, where not the mandate, by relevant stakeholders, either internal to the industrial adopter or with authority over the application domain. The work presented in this paper stems from a comprehensive initiative taken by the European Space Agency (ESA) and its industrial suppliers. This initiative also enjoyed significant synergy with interests shown for similar goals by the telecommunications and railways domain, thanks to the interaction between two parallel project frameworks. The ESA effort aimed at favouring the adoption of a software reference architecture across its software supply chain. The center of that strategy revolves around a component model and the software development process that builds on it. This paper presents the rationale, the design and implementation choices made in their conception, as well as the feedback obtained from a number of industrial case studies that assessed them.

[1]  Kung-Kiu Lau,et al.  Software Component Models , 2006, IEEE Transactions on Software Engineering.

[2]  Tullio Vardanega,et al.  A Metamodel-Driven Process Featuring Advanced Model-Based Timing Analysis , 2007, Ada-Europe.

[3]  Thomas A. Henzinger,et al.  From control models to real-time code using Giotto , 2003 .

[4]  Carlo Rossi,et al.  Giotto a time-triggered language for embedded programming , 2011 .

[5]  Jukka Mäki-Turja,et al.  Deployment Modelling and Synthesis in a Component Model for Distributed Embedded Systems , 2010, 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications.

[6]  Edward A. Lee,et al.  Overview of the Ptolemy project , 2001 .

[7]  Edsger W. Dijkstra,et al.  The humble programmer , 1972, CACM.

[8]  Arvinder Kaur,et al.  Component Based Software Engineering , 2010 .

[9]  Tullio Vardanega,et al.  Correctness by Construction for High-Integrity Real-Time Systems: A Metamodel-Driven Approach , 2007, Ada-Europe.

[10]  Douglas C. Schmidt,et al.  Model-Driven Engineering , 2006 .

[11]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[12]  Andrea Bondavalli,et al.  Dependability Concerns in Model-Driven Engineering , 2011, 2011 14th IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing Workshops.

[13]  Alan Burns,et al.  Guide for the use of the Ada Ravenscar Profile in high integrity systems , 2004, ALET.

[14]  Michael González Harbour,et al.  Schedulability analysis for tasks with static and dynamic offsets , 1998, Proceedings 19th IEEE Real-Time Systems Symposium (Cat. No.98CB36279).

[15]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[16]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[17]  Joseph Sifakis,et al.  Composition for component-based modeling , 2002, Sci. Comput. Program..

[18]  Joseph Sifakis A framework for component-based construction , 2005, Third IEEE International Conference on Software Engineering and Formal Methods (SEFM'05).

[19]  Douglas C. Schmidt,et al.  Guest Editor's Introduction: Model-Driven Engineering , 2006, Computer.

[20]  Tullio Vardanega,et al.  Property Preservation and Composition with Guarantees: From ASSERT to CHESS , 2009, 2009 IEEE International Symposium on Object/Component/Service-Oriented Real-Time Distributed Computing.

[21]  Roderick Chapman Correctness by construction: a manifesto for high integrity software , 2006 .

[22]  Jakob Engblom,et al.  The worst-case execution-time problem—overview of methods and survey of tools , 2008, TECS.

[23]  Nenad Medvidovic,et al.  Towards a taxonomy of software connectors , 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium.

[24]  E. Dijkstra On the Role of Scientific Thought , 1982 .

[25]  Tullio Vardanega,et al.  A Component Model for On-board Software Applications , 2010, 2010 36th EUROMICRO Conference on Software Engineering and Advanced Applications.

[26]  Federico Ciccozzi,et al.  Generation of correct-by-construction code from design models for embedded systems , 2011, 2011 6th IEEE International Symposium on Industrial and Embedded Systems.

[27]  Johan J. Lukkien,et al.  A Component Framework for Consumer Electronics Middleware , 2005, Component-Based Software Development for Embedded Systems.

[28]  Hans van Vliet,et al.  Software engineering - principles and practice , 1993 .

[30]  Séverine Sentilles,et al.  A Classification Framework for Software Component Models , 2011, IEEE Transactions on Software Engineering.

[31]  Tullio Vardanega,et al.  Toward Correctness in the Specification and Handling of Non-Functional Attributes of High-Integrity Real-Time Embedded Systems , 2010, IEEE Transactions on Industrial Informatics.

[32]  Tullio Vardanega,et al.  Ada Ravenscar Code Archetypes for Component-Based Development , 2012, Ada-Europe.

[33]  David Garlan,et al.  A compositional approach for constructing connectors , 2001, Proceedings Working IEEE/IFIP Conference on Software Architecture.

[34]  Tullio Vardanega,et al.  Fitting Schedulability Analysis Theory into Model-Driven Engineering , 2008, 2008 Euromicro Conference on Real-Time Systems.

[35]  Mathai Joseph,et al.  Finding Response Times in a Real-Time System , 1986, Comput. J..

[36]  Raimund Kirner,et al.  Towards Composable Timing for Real-Time Software ∗ , 2009 .

[37]  Joseph Sifakis,et al.  Modeling Heterogeneous Real-time Components in BIP , 2006, Fourth IEEE International Conference on Software Engineering and Formal Methods (SEFM'06).

[38]  Tullio Vardanega,et al.  On Software Reference Architectures and Their Application to the Space Domain , 2013, ICSR.

[39]  J. Javier Gutiérrez,et al.  MAST: Modeling and Analysis Suite for Real Time Applications , 2001, ECRTS.

[40]  Ivica Crnkovic,et al.  SaveCCM - a component model for safety-critical real-time systems , 2004 .