Foundations for the study of software architecture
ACM SIGSOFT Software Engineering Notes
Software architecture: perspectives on an emerging discipline
Software architecture: perspectives on an emerging discipline
ArchJava: connecting software architecture to implementation
Proceedings of the 24th International Conference on Software Engineering
XMIDDLE: A Data-Sharing Middleware for Mobile Computing
Wireless Personal Communications: An International Journal
Aura: an Architectural Framework for User Mobility in Ubiquitous Computing Environments
WICSA 3 Proceedings of the IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on Software Architecture: System Design, Development and Maintenance
A Style-Aware Architectural Middleware for Resource-Constrained, Distributed Systems
IEEE Transactions on Software Engineering
MobiPADS: A Reflective Middleware for Context-Aware Mobile Computing
IEEE Transactions on Software Engineering
Adaptable architectural middleware for programming-in-the-small-and-many
Proceedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware
GLIDE: a grid-based light-weight infrastructure for data-intensive environments
EGC'05 Proceedings of the 2005 European conference on Advances in Grid Computing
JTRES '07 Proceedings of the 5th international workshop on Java technologies for real-time and embedded systems
Hi-index | 0.00 |
Embedded systems are rapidly growing in size, complexity, distribution, and heterogeneity. As a result, the traditional practice of developing one-off embedded applications that are often rigid and unmanageable is no longer acceptable. Recent studies have suggested that an effective approach to developing software systems in this domain is to employ the principles of software architecture. However, for software architectural concepts to be truly useful in a development setting, they must be accompanied by support for their implementation and evolution. This has motivated our work over the past several years on an architectural middleware, called Prism-MW, that provides implementation-level support for the development of software systems in terms of the software architectural constructs (e.g., components, connectors). Prism-MW was initially developed in Java and used in several domains. Recently, as part of an on-going project, we were required to implement Prism-MW in ANSI C++. This experience proved to be more challenging than we initially anticipated, mainly due to the inherent heterogeneity of the computing substrate. As a result of this experience, we had to reconsider some of our earlier assumptions of what constitutes an architectural middleware and its role in the software development process. In this paper, we provide an overview of our experience and the lessons we have learned along the way.