Modern Software Architecture for Embedded Real-Time Devices: High Value, Little Overhead

Embedded devices are often tightly constrained by CPU power and memory size. As a consequence, developers of embedded software avoid any kind of design abstractions, thinking that they imply large overhead. This results in complex designs with high coupling between the individual entities. The code of such designs is then difficult to maintain or reuse. This article presents FASAlight, a component-based software architecture for embedded devices with a focus on three main quality attributes that support maintenance and reuse: modularity, reusability, and portability. This architecture can be effectively implemented even for low-end embedded devices and only implies at worst a 14% on CPU and small overhead on memory on a device with a 120MHz ARM CPU and 128 kB of RAM.

[1]  Teera Phatrapornnant,et al.  Reducing jitter in embedded systems employing a time-triggered software architecture and dynamic voltage scaling , 2006, IEEE Transactions on Computers.

[2]  Thomas A. Henzinger,et al.  The embedded machine: predictable, portable real-time code , 2002, PLDI '02.

[3]  Ole Agesen,et al.  A comparison of software and hardware techniques for x86 virtualization , 2006, ASPLOS XII.

[4]  Joseph W. Yoder,et al.  Big Ball of Mud , 1997 .

[5]  Sebastian Altmeyer,et al.  Lean Model-Driven Development through Model-Interpretation: the CPAL design flow , 2016 .

[6]  Christo Angelov,et al.  COMDES-II: A Component-Based Framework for Generative Development of Distributed Real-Time Control Systems , 2007, 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA 2007).

[7]  Bruce Powel Douglass Real-Time UML , 2002, FTRTFT.

[8]  Aloysius Ka-Lau Mok,et al.  Fundamental design problems of distributed systems for the hard-real-time environment , 1983 .

[9]  Sébastien Gérard,et al.  An Execution Framework for MARTE-Based Models , 2008, 13th IEEE International Conference on Engineering of Complex Computer Systems (iceccs 2008).

[10]  Jukka Mäki-Turja,et al.  The Rubus component model for resource constrained real-time systems , 2008, 2008 International Symposium on Industrial Embedded Systems.

[11]  Helmut Seidl,et al.  Static analysis of interrupt-driven programs synchronized via the priority ceiling protocol , 2011, POPL '11.

[12]  Alessandro Orso,et al.  Automated support for development, maintenance, and testing in the presence of implicit flow control , 2004, Proceedings. 26th International Conference on Software Engineering.

[13]  Manuel Oriol,et al.  FASA: A software architecture and runtime framework for flexible distributed automation systems , 2015, J. Syst. Archit..

[14]  Ivica Crnkovic,et al.  Building Reliable Component-Based Software Systems , 2002 .

[15]  Alessandro Orso,et al.  Automated Support for Development, Maintenance, and Testing in the Presence of Implicit Control Flow , 2004, ICSE.

[16]  Luiz André Barroso,et al.  Web Search for a Planet: The Google Cluster Architecture , 2003, IEEE Micro.

[17]  Paul Clements,et al.  Software Architecture Documentation in Practice: Documenting Architectural Layers , 2000 .

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

[19]  Moris Behnam,et al.  PASA: Framework for partitioning and scheduling automation applications on multicore controllers , 2014, Proceedings of the 2014 IEEE Emerging Technology and Factory Automation (ETFA).

[20]  AgesenOle,et al.  A comparison of software and hardware techniques for x86 virtualization , 2006 .

[21]  Jan Bosch,et al.  Architecture level prediction of software maintenance , 1999, Proceedings of the Third European Conference on Software Maintenance and Reengineering (Cat. No. PR00090).

[22]  Mary Shaw,et al.  Global variable considered harmful , 1973, SIGP.

[23]  Matthias Damm,et al.  OPC Unified Architecture , 2009, Autom..

[24]  C. Douglas Locke,et al.  Software architecture for hard real-time applications: Cyclic executives vs. fixed priority executives , 1992, Real-Time Systems.

[25]  Keith H. Bennett,et al.  Software maintenance and evolution: a roadmap , 2000, ICSE '00.

[26]  Jun Liu,et al.  Real-time network traffic handling in FASA , 2015, 10th IEEE International Symposium on Industrial Embedded Systems (SIES).

[27]  Thomas A. Henzinger,et al.  Giotto: a time-triggered language for embedded programming , 2001, Proc. IEEE.

[28]  Steve Vestal,et al.  The SAE Architecture Analysis & Design Language (AADL) a standard for engineering performance critical systems , 2006, 2006 IEEE Conference on Computer Aided Control System Design, 2006 IEEE International Conference on Control Applications, 2006 IEEE International Symposium on Intelligent Control.