A DSL for specifying run-time adaptations for embedded systems: an application to vehicle stereo navigation

The traditional approach for specifying adaptive behavior in embedded applications requires developers to engage in error-prone programming tasks. This results in long design cycles and in the inherent inability to explore and evaluate a wide variety of alternative adaptation behaviors, critical for systems exposed to dynamic operational and situational environments. In this paper, we introduce a domain-specific language (DSL) for specifying and implementing run-time adaptable application behavior. We illustrate our approach using a real-life stereo navigation application as a case study, highlighting the impact and benefits of dynamically adapting algorithm parameters. The experiments reveal our approach effective, as such run-time adaptations are easily specified in a higher level by the DSL, and thus at a lower programming effort than when using a general-purpose language such as C.

[1]  Michael Haupt,et al.  ContextJ: Context-oriented Programming with Java , 2011 .

[2]  Bradley R. Schmerl,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004, International Conference on Autonomic Computing, 2004. Proceedings..

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

[4]  Kim Mens,et al.  Subjective-C - Bringing Context to Mobile Platform Programming , 2010, SLE.

[5]  Judy M. Bishop Languages for configuration programming: a comparison , 1994 .

[6]  Vikram S. Adve,et al.  Program Control Language: a programming language for adaptive distributed applications , 2003, J. Parallel Distributed Comput..

[7]  David Garlan,et al.  Rainbow: architecture-based self-adaptation with reusable infrastructure , 2004 .

[8]  Diogo R. Ferreira,et al.  A Domain-Specific Language for the Specification of Adaptable Context Inference , 2011, 2011 IFIP 9th International Conference on Embedded and Ubiquitous Computing.

[9]  Thomas Leich,et al.  FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming , 2005, GPCE'05.

[10]  Diogo R. Ferreira,et al.  Specifying Adaptations through a DSL with an Application to Mobile Robot Navigation , 2013, SLATE.

[11]  Robert C. Bolles,et al.  Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography , 1981, CACM.

[12]  Manuel Jiménez Buendía,et al.  A framework for developing home automation systems: From requirements to code , 2011, J. Syst. Softw..

[13]  Diomidis Spinellis,et al.  Lightweight Languages as Software Engineering Tools , 1997, DSL.

[14]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[15]  C DinizPedro,et al.  Preprocessing techniques for context recognition from accelerometer data , 2010 .

[16]  Frank Eliassen,et al.  Using architecture models for runtime adaptability , 2006, IEEE Software.

[17]  Dejan S. Milojicic,et al.  Embedded systems , 2006, IEEE Concurr..

[18]  Diomidis Spinellis,et al.  Notable design patterns for domain-specific languages , 2001, J. Syst. Softw..

[19]  Stephen Kell,et al.  A Survey of Practical Software Adaptation Techniques , 2008, J. Univers. Comput. Sci..

[20]  Éric Rutten,et al.  A programming language for adaptation control: case study , 2009, SIGBED.

[21]  Gregor Kiczales Aspect-oriented programming , 2005, ICSE '05.

[22]  Darren Broemmer J2ee Best Practices: Java Design Patterns, Automation, and Performance , 2002 .

[23]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[24]  Daniel G. Bobrow,et al.  Representing design alternatives , 1980 .

[25]  Jatinder Pal Singh,et al.  Improving energy efficiency of location sensing on smartphones , 2010, MobiSys '10.

[26]  William G. Griswold,et al.  An Overview of AspectJ , 2001, ECOOP.

[27]  Matthias Baldauf,et al.  A survey on context-aware systems , 2007, Int. J. Ad Hoc Ubiquitous Comput..

[28]  Frances E. Allen,et al.  Control-flow analysis , 2022 .

[29]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[30]  Diogo R. Ferreira,et al.  Preprocessing techniques for context recognition from accelerometer data , 2010, Personal and Ubiquitous Computing.

[31]  Bradley R. Schmerl,et al.  Rainbow: Architecture-Based Self-Adaptation with Reusable Infrastructure , 2004, Computer.

[32]  Marius Mikalsen,et al.  Putting Context in Context: The Role and Design of Context Management in a Mobility and Adaptation Enabling Middleware , 2006, 7th International Conference on Mobile Data Management (MDM'06).

[33]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

[34]  Peter Marwedel,et al.  Embedded system design , 2010, Embedded Systems.

[35]  Olaf Spinczyk,et al.  AspectC++: An integrated approach for static and dynamic adaptation of system software , 2010, Knowl. Based Syst..

[36]  Christopher G. Harris,et al.  A Combined Corner and Edge Detector , 1988, Alvey Vision Conference.

[37]  Gwenn Englebienne,et al.  Accurate activity recognition in a home setting , 2008, UbiComp.

[38]  Hidehiko Masuhara,et al.  EventCJ: a context-oriented programming language with declarative event-based context transition , 2011, AOSD '11.

[39]  Andrew M. Kuhn,et al.  Code Complete , 2005, Technometrics.

[40]  Tong Zhou,et al.  Software design for reliability and reuse: a proof-of-concept demonstration , 1994, TRI-Ada '94.