Reconceptualizing a Family of Heterogeneous Embedded Systems via Explicit Architectural Support

It has been widely advocated that software architecture provides an effective set of abstractions for engineering (families of) complex software systems. However, architectural concepts are seldom supported directly at the level of system implementation. In embedded environments in particular, developers are often forced to rely on low-level programming languages. While this is conducive to fine-grain control over the system, it does not lend itself to addressing larger issues such as ensuring architectural integrity or managing an application family. In this paper we describe our experience with fundamentally altering the manner in which a family of embedded applications is designed, analyzed, implemented, deployed, and evolved using explicit architectural constructs. We discuss our strategy, the challenges we faced in the course of our project, the lessons learned in the process, and several open issues that remain unresolved.

[1]  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.

[2]  Sam Malek,et al.  Improving Availability in Large, Distributed Component-Based Systems Via Redeployment , 2005, Component Deployment.

[3]  Marija Mikic-Rakic,et al.  A style-aware architectural middleware for resource-constrained, distributed systems , 2005, IEEE Transactions on Software Engineering.

[4]  Mary Shaw,et al.  Abstractions for Software Architecture and Tools to Support Them , 1995, IEEE Trans. Software Eng..

[5]  Marija Mikic-Rakic,et al.  A Family of Software Architecture Implementation Frameworks , 2002, WICSA.

[6]  David Garlan,et al.  Aura: an Architectural Framework for User Mobility in Ubiquitous Computing Environments , 2002, WICSA.

[7]  J. J. Whelan,et al.  5th international conference on software engineering , 1981, SOEN.

[8]  Alvin T. S. Chan,et al.  MobiPADS: A Reflective Middleware for Context-Aware Mobile Computing , 2003, IEEE Trans. Software Eng..

[9]  Sam Malek,et al.  A Tailorable Environment for Assessing the Quality of Deployment Architectures in Highly Distributed Settings , 2004, Component Deployment.

[10]  MalekSam,et al.  A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems , 2005 .

[11]  Alexander L. Wolf,et al.  Acm Sigsoft Software Engineering Notes Vol 17 No 4 Foundations for the Study of Software Architecture , 2022 .

[12]  Marija Mikic-Rakic,et al.  Software Architectural Support for Handheld Computing , 2003, Computer.

[13]  Cecilia Mascolo,et al.  XMIDDLE: A Data-Sharing Middleware for Mobile Computing , 2002, Wirel. Pers. Commun..

[14]  Wolfgang Emmerich,et al.  Engineering Distributed Objects , 2000, Lecture Notes in Computer Science.

[15]  David Notkin,et al.  ArchJava: connecting software architecture to implementation , 2002, ICSE '02.

[16]  Cecilia Mascolo,et al.  The RUNES middleware: a reconfigurable component-based approach to networked embedded systems , 2005, 2005 IEEE 16th International Symposium on Personal, Indoor and Mobile Radio Communications.