Engineering Adaptive Embedded Software: Managing Complexity and Evolution

Software plays an increasingly important role in the development of electronic systems. In particular, software is used to control the behaviour of systems in advanced ways that enable system features that would not be feasible otherwise. Making such an embedded system adaptive can improve its performance in certain situations, or extend its applicability to a broader range of situations. In this chapter we explain why this is the case, and how adaptivity can provide a competitive advantage. However, realising and maintaining adaptive embedded software brings its own challenges, sometimes even so prohibitive that the benefits of adaptivity are given up. We explain how adaptivity compromises the ability to manage software complexity and the ability to maintain evolving embedded software. To improve on this, we present our approach of a systematic method towards the development of adaptive embedded software. Two case studies explain two concrete applications of this approach: The first application is a method and corresponding tool set for developing flexible (adaptive) schedulers. It is shown how to use this method to develop application-specific schedulers in a modular way, exploiting a domain-specific language for concisely describing schedulers. We demonstrate that evolving requirements can be handled conveniently. The second application is a method that supports the development of Multi-Objective Optimisations, especially for physical control problems. We discuss the software engineering challenges involved in developing such systems, and explain the various steps and domain-specific languages of the method. Then we illustrate how this method was applied to an industrial case.

[1]  Xavier Gandibleux,et al.  Multiple Criteria Optimization: State of the Art Annotated Bibliographic Surveys , 2013 .

[2]  Eric R. Zieyel Operations research : applications and algorithms , 1988 .

[3]  Krzysztof Czarnecki,et al.  Overview of Generative Software Development , 2004, UPP.

[4]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[5]  David Garlan,et al.  Documenting software architectures: views and beyond , 2002, 25th International Conference on Software Engineering, 2003. Proceedings..

[6]  Hasan Sözer,et al.  Runtime Verification of Domain-Specific Models of Physical Characteristics in Control Software , 2011, 2011 Fifth International Conference on Secure Software Integration and Reliability Improvement.

[7]  Tzilla Elrad,et al.  Aspect-oriented programming: Introduction , 2001, CACM.

[8]  Christoph Bockisch,et al.  A feature model and development approach for schedulers , 2011, MISS@AOSD.

[9]  R. L. Keeney,et al.  Decisions with Multiple Objectives: Preferences and Value Trade-Offs , 1977, IEEE Transactions on Systems, Man, and Cybernetics.

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

[11]  Richard N. Taylor,et al.  ArchStudio 4: An Architecture-Based Meta-Modeling Environment , 2007, 29th International Conference on Software Engineering (ICSE'07 Companion).

[12]  Robert E. Filman,et al.  What Is Aspect-Oriented Programming , 2001 .

[13]  Hasan Sözer,et al.  An architectural style for optimizing system qualities in adaptive embedded systems using Multi-Objective Optimization , 2009, 2009 Joint Working IEEE/IFIP Conference on Software Architecture & European Conference on Software Architecture.

[14]  Arjan J. de Roo,et al.  Managing Software Complexity of Adaptive Systems , 2012 .

[15]  Pascal Fradet,et al.  Unconventional Programming Paradigms, International Workshop UPP 2004, Le Mont Saint Michel, France, September 15-17, 2004, Revised Selected and Invited Papers , 2005, UPP.

[16]  Peter Brucker,et al.  Scheduling Algorithms , 1995 .

[17]  Bran Selic,et al.  Using UML for Modeling Complex Real-Time Systems , 1998, LCTES.

[18]  Charles Gide,et al.  Cours d'économie politique , 1911 .

[19]  F. Y. Edgeworth Mathematical Psychics: An Essay on the Application of Mathematics to the Moral Sciences , 2007 .

[20]  Christian Glaßer,et al.  Approximability and Hardness in Multi-objective Optimization , 2010, CiE.

[21]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[22]  Derek J. Hatley,et al.  Strategies for Real-Time System Specification , 1987 .

[23]  P. Siarry,et al.  Multiobjective Optimization: Principles and Case Studies , 2004 .

[24]  Teade Punter,et al.  Views on Evolvability of Embedded Systems , 2010 .

[25]  Rajiv D. Banker,et al.  Software complexity and maintenance costs , 1993, CACM.

[26]  Johannes F. Broenink,et al.  Modelling, Simulation and Analysis with 20-Sim , 1997 .