A Family of Software Architecture Implementation Frameworks
2002, Software Architecture
https://doi.org/10.1007/978-0-387-35607-5_14Abstract
Software architectures provide high-level abstractions for representing the structure, behavior, and key properties of software systems. Various architecture description languages, styles, tools, and technologies have emerged over the past decade. At the same time, there has been comparatively little focus on techniques and technologies for transforming architectural models into running systems. This often results in significant differences between conceptual and concrete architectures, rendering system evolution and maintenance difficult. Furthermore, it calls into question the ability of developers to consistently transfer the key architectural properties into system implementations. One solution to this problem is to employ architectural frameworks. Architectural frameworks provide support for implementing, deploying, executing, and evolving software architectures. This paper describes the design of and our experience with a family of architectural frameworks that support implementation of systems in a specific architectural style-C2. These frameworks have been implemented in different programming languages and used on different hardware platforms, including resource constrained (e.g., hand held) devices. The frameworks are lightweight and extensible, and allow application monitoring and analysis at run time. To date, the C2 frameworks have been used in the development of over 100 applications by several academic and industrial organizations. The paper discusses the issues we have encountered in implementing and using the frameworks, as well as the approaches adopted to resolve these issues.
References (35)
- A. Birrell, B. Nelson. Implementing Remote Procedure Calls. ACM Transactions on Computer Systems, 2(1):39-59, Febru- ary 1984.
- E.M. Dashofy, N. Medvidovic, R.N. Taylor, Using off-the- shelf middleware to implement connectors in distributed soft- ware architectures. In Proceedings of the 1999 International Conference on Software Engineering, Los Angeles, CA, pp 3- 12.
- F. DeRemer and H. H. Kron, Programming-in-the-Large ver- sus Programming-in-the-Small. IEEE Transactions on Soft- ware Engineering, June 1976.
- E. Di Nitto, D. S. Rosenblum. Exploiting ADLs to Specify Architectural Styles Induced by Middleware Infrastructures. 21 st International Conference on Software Engineering, Los Angeles, CA, May 1999.
- G. Fregonese, A. Zorer; G. Cortese. Architectural framework modeling in telecommunication domain. Proceedings of the 1999 International Conference on Software Engineering, Los Angeles CA 1999.
- A. Goldberg. Smalltalk-80: The Language, Addison-Wesley, 1989.
- M.M. Gorlick, R.R. Razouk, Using Weaves for Software Con- struction and Analysis. In Proceedings of International Con- ference on Software Engineering (ICSE '91), IEEE CS Press, Los Alamitos, Calif.,1991, pp. 23-34.
- I. F. Haddad. X/Motif Programming. Linux Journal. Issue 73 May 2000.
- R.E. Johnson. Documenting Frameworks as Patterns. In Pro- ceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA '92), Van- couver, BC, Canada, 1992.
- T. Lindholm, F. Yellin. The Java Virtual Machine Specifica- tion. 2nd Edition Java Series. Addison Wesley 1999.
- M. Maybee, D. Heimbigner, L.J. Osterweil. Multilanguage Interoperability in Distributed Systems: Experience Report. In Proceedings of the 18th International Conference on Software Engineering, Berlin, Germany, March 1996.
- N. Medvidovic, P. Oreizy, R.N. Taylor. Reuse of Off-the- Shelf Components in C2-Style Architectures. In Proceedings of the 1997 International Conference on Software Engineer- ing, 1997. pp 692 -700.
- N. Medvidovic, M. Rakic. Exploiting Software Architecture Implementation Infrastructure in Facilitating Component Mo- bility. In Proceedings of the Software Engineering and Mobil- ity Workshop, Toronto, Canada, May 2001.
- N. Medvidovic, D. S. Rosenblum, D. F. Redmiles, J. E. Rob- bins. Modeling Software Architectures in the Unified Model- ing Language. ACM Transactions on Software Engineering and Methodology. To appear, December 2001.
- N. Medvidovic, D. S. Rosenblum, R. N. Taylor. A Language and Environment for Architecture-Based Software Develop- ment and Evolution. In Proceedings of the 1999 International Conference on Software Engineering, pp.44-53, 1999.
- N. Medvidovic, R.N. Taylor. A classification and comparison framework for software architecture description languages. IEEE Transactions on Software Engineering, Jan. 2000, vol 26(1), p. 70-93.
- N.R. Mehta, N. Medvidovic, S. Phadke. Towards a Taxonomy of software connectors, 2000 International Conference on Software Engineering, 2000, Limerick, Ireland.
- R. Orfali, D. Harkey, J. Edwards. The Essential Distributed Objects Survival Guide. John Wiley & Sons, Inc. 1996.
- P. Oreizy, N. Medvidovic, R. N. Taylor. Architecture-Based Runtime Software Evolution. In Proceedings of the 20th In- ternational Conference on Software Engineering, pp.177-186, Kyoto, Japan, April 1998.
- D.E. Perry, A.L. Wolf. Foundations for the Study of Software Architectures. ACM SIGSOFT Software Engineering Notes, vol. 17, no. 4, pp. 40-52, October1992.
- J. Prosise. Programming Windows with MFC. Microsoft Press, 2nd Edition. 1999.
- J. Purtilo. The Polylith Software Bus. ACM Transactions on Programming Languages and Systems, January 1994.
- M. Rakic, N. Medvidovic. Increasing the Confidence in Off- the-Shelf Components: A Software Connector-Based Ap- proach. Proceedings of the 2001 Symposium on Software Re- usability, Toronto, Canada, May 2001.
- H.C. Rao. Distributed application framework for large-scale distributed systems, Proceedings the 13th International Con- ference on Distributed Computing Systems, 1993. pp 31 -38.
- S. P. Reiss. Connecting Tools Using Message Passing in the Field Environment. IEEE Software, 1990.
- J.E. Robbins, N. Medvidovic, D.F. Redmiles, D.S. Rosen- blum. Integrating Architecture Description Languages with a Standard Design Method. In 20th International Conference on Software Engineering, April 1998, pp. 209-218.
- B. Shannon, M. Hapner, V. Matena, et al. Java 2 Platform, Enterprise Edition: Platform and Component Specifications (The Java Series) by Addison Wesley 2000.
- M. Shaw et al. Abstractions for Software Architecture and Tools to Support Them. IEEE Transactions on Software Engi- neering. Vol. 21, no. 4, pp 314-335, April 1995.
- M. Shaw, D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice-Hall, 1996.
- B. Spitznagel, D. Garlan. A Compositional Approach for Con- structing Connectors. Submitted to The Working IEEE/IFIP Conference on Software Architecture, The Netherlands, Au- gust 28-31, 2001.
- R.N. Taylor, et al. A Component-and Message-Based Archi- tectural Style for GUI Software. IEEE-TSE. 22(6), 1996.
- S. Williams, C. Kindel. The Component Object Model: Tech- nical Overview. Dr. Dobbs Journal, December 1994. http://msdn.microsoft.com/library/default.asp?URL=/library/te chart/msdn_comppr.htm.
- Sun Microsystems Inc. Remote Method Invocation. http://java.sun.com/docs/books/tutorial/rmi/index.html
- Case studies of IBM San Francisco usage (http://www- 4.ibm.com/software/ad/sanfrancisco/casestudies.html).
- A Discussion of the Object Management Architecture (OMA) Guide, OMG, 1997.