Architecture for embedded open software ecosystems

Software is prevalent in embedded products and may be critical for the success of the products, but manufacturers may view software as a necessary evil rather than as a key strategic opportunity and business differentiator. One of the reasons for this can be extensive supplier and subcontractor relationships and the cost, effort or unpredictability of the deliverables from the subcontractors are experienced as a major problem. The paper proposes open software ecosystem as an alternative approach to develop software for embedded systems, and elaborates on the necessary quality attributes of an embedded platform underlying such an ecosystem. The paper then defines a reference architecture consisting of 17 key decisions together with four architectural patterns, and provides the rationale why they are essential for an open software ecosystem platform for embedded systems in general and automotive systems in particular. The reference architecture is validated through a prototypical platform implementation in an industrial setting, providing a deeper understanding of how the architecture could be realised in the automotive domain. Four potential existing platforms, all targeted at the embedded domain (Android, OKL4, AUTOSAR and Robocop), are evaluated against the identified quality attributes to see how they could serve as a basis for an open software ecosystem platform with the conclusion that while none of them is a perfect fit they all have fundamental mechanisms necessary for an open software ecosystem approach.

[1]  Fredrik Törner,et al.  Actuator Based Hazard Analysis for Safety Critical Systems , 2004, SAFECOMP.

[2]  Gernot Heiser,et al.  The role of virtualization in embedded systems , 2008, IIES '08.

[3]  Petra Bosch-Sijtsema,et al.  From integration to composition: On the impact of software product lines, global development and ecosystems , 2010, J. Syst. Softw..

[4]  Luís Nogueira,et al.  Evaluating Android OS for Embedded Real-Time Systems , 2010 .

[5]  Slinger Jansen,et al.  Shades of gray: Opening up a software producing organization with the open software enterprise model , 2012, J. Syst. Softw..

[6]  Jan Bosch,et al.  The changing industry structure of software development for consumer electronics and its consequences for software architectures , 2012, J. Syst. Softw..

[7]  Marjo Kauppinen,et al.  Software Ecosystems: A Set of Management Practices for Platform Integrators in the Telecom Industry , 2011, ICSOB.

[8]  Jan Bosch,et al.  Introducing Software Ecosystems for Mass-Produced Embedded Systems , 2012, ICSOB.

[9]  Manfred Broy,et al.  Challenges in automotive software engineering , 2006, ICSE.

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

[11]  Jan Bosch,et al.  From software product lines to software ecosystems , 2009, SPLC.

[12]  Wolfgang Stolz,et al.  Introducing PLA at Bosch Gasoline Systems: Experiences and Practices , 2004, SPLC.

[13]  Clemens Szyperski,et al.  Component software , 1997 .

[14]  James E. Smith,et al.  The architecture of virtual machines , 2005, Computer.

[15]  Xavier Franch,et al.  How do software architects consider non-functional requirements: An exploratory study , 2012, 2012 20th IEEE International Requirements Engineering Conference (RE).

[16]  Jesper Andersson,et al.  Issues and challenges in ecosystems for federated embedded systems , 2013, SESoS.

[17]  R.R. Tummala Moore's law meets its match (system-on-package) , 2006, IEEE Spectrum.

[18]  Manish Agrawal,et al.  Software Effort, Quality, and Cycle Time: A Study of CMM Level 5 Projects , 2007, IEEE Transactions on Software Engineering.

[19]  James C. Dager,et al.  Cummins's experience in developing a software product line architecture for real-time embedded diesel engine controls , 2000, SPLC.

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

[21]  Anandasivam Gopal,et al.  Research Note - The Role of Organizational Controls and Boundary Spanning in Software Development Outsourcing: Implications for Project Performance , 2010, Inf. Syst. Res..

[22]  Jan Bosch,et al.  Using architecture for multiple levels of access to an ecosystem platform , 2012, QoSA '12.

[23]  Håkan Gustavsson,et al.  Architecting automotive product lines: Industrial practice , 2010, Sci. Comput. Program..

[24]  Robert Mores,et al.  FlexRay - The Communication System for Advanced Automotive Control Systems , 2001 .

[25]  Lucienne Blessing,et al.  DRM, a Design Research Methodology , 2009 .

[26]  Per Runeson,et al.  Adopting a Component-Based Software Architecture for an Industrial Control System - A Case Study , 2005, Component-Based Software Development for Embedded Systems.

[27]  Ryan McGee,et al.  Stakeholder identification and quality attribute prioritization for a global Vehicle Control System , 2010, ECSA '10.

[28]  Muhammad Ali Babar,et al.  Software Architecture Knowledge Management: Theory and Practice , 2009 .

[29]  Yuval Elovici,et al.  Google Android: A Comprehensive Security Assessment , 2010, IEEE Security & Privacy.

[30]  Manfred Broy,et al.  Software Engineering for Automotive Systems: A Roadmap , 2007, Future of Software Engineering (FOSE '07).

[31]  Alan R. Hevner,et al.  Design Science in Information Systems Research , 2004, MIS Q..

[32]  Slinger Jansen,et al.  A sense of community: A research agenda for software ecosystems , 2009, 2009 31st International Conference on Software Engineering - Companion Volume.

[33]  Capers Jones,et al.  Embedded Software: Facts, Figures, and Future , 2009, Computer.

[34]  Klaus Marius Hansen,et al.  Software ecosystems - A systematic literature review , 2013, J. Syst. Softw..

[35]  Jan Bosch,et al.  Archetypical Approaches of Fast Software Development and Slow Embedded Projects , 2013, 2013 39th Euromicro Conference on Software Engineering and Advanced Applications.

[36]  Sune Dueholm Müller,et al.  Managing Cultural Variation in Software Process Improvement: A Comparison of Methods for Subculture Assessment , 2008, IEEE Transactions on Engineering Management.