Automated Software Engineering

, Volume 13, Issue 2, pp 257–281 | Cite as

Runtime recovery and manipulation of software architecture of component-based systems

Abstract

Recently, more attention is paid to the researches and practices on how to use software architecture in software maintenance and evolution to reduce their complexity and cost. The key in such architecture-based maintenance and evolution is to recover software architecture from existing systems. Almost all studies on architecture recovery focus on analyzing the source code and other documents. Such recovered software architecture can hardly capture runtime states and behaviors of the system. At the same time, current work pays little attention on how to change the system directly via manipulating the recovered software architecture. This paper presents a novel approach to recovering software architecture from component based systems at runtime and changing the runtime systems via manipulating the recovered software architecture. Containing much more details than the designed software architecture, the recovered software architecture can accurately and thoroughly describe the actual states and behaviors of the runtime system. It can be described formally with the extension of traditional architecture description language, which enables the recovered software architecture to absorb the semantics embedded in the designed software architecture. The recovered software architecture can be represented as multiple views so as to help different users to control the complexity from different concerns. Based on the reflective ability of the component framework, the recovered software architecture is up-to-date at any time and changes made on it will immediately lead to the corresponding changes in the runtime system. The approach presented in this paper is demonstrated on PKUAS, a reflective J2EE (Java 2 Platform Enterprise Edition) application server, and the performance is also evaluated.

Keywords

Software architecture recovery Runtime system Reflection Component framework 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Banker, R.D., Datar, S.M., Kemerer, C.F., and Zweig, D. 1993. Software Complexity and Maintenance Costs. Communications of ACM, 36(11):81–94.CrossRefGoogle Scholar
  2. Blair, G.S., Coulson, G., Andersen, A., and etc. 2001. The Design and Implementation of Open ORB 2. IEEE Distributed Systems Online, 2(6).Google Scholar
  3. Bril, R.J., Feijs, L.M.G., Glas, A., Krikhaar, R.L., and Winter, R.M. 2000. Maintaining a legacy: Towards support at the architectural level. Journal of Software Maintenance:Research And Practice, 12:143– 170.CrossRefGoogle Scholar
  4. Cazzola, W., Savigni, A., Sosio, A., and Tisato, F. 1998. Architectural Reflection:Bridging the Gap Between a Running System and its Architectural Specification. In Proceedings of 6th Reengineering Forum.Google Scholar
  5. Chen, F., Wang, Q.X., Mei, H., and Yang, F.Q. 2002. An Architecture-based Approach forComponent-Oriented Development. In Proceedings of COMPSAC'2002, pp. 136–151.Google Scholar
  6. Dowling, J. and Cahill, V. 2001. The K-Component Architecture Meta-Model for Self-Adaptive Software. In Proceedings of Reflection, LNCS 2192, pp. 81–88.Google Scholar
  7. Feng, Y., Huang, Gang, Zhu, Yali, and Mei, Hong. 2005. Exception Handling in Component Composition with the Support of Middleware. In Fifth International Workshop on Software Engineering and Middleware (SEM 2005), co-located with ESEC-FSE'05, Lisbon,Portugal, September 5–6, ACM Press, pp. 90–97.Google Scholar
  8. Garlan, D. 2000. Software Architecture: A Roadmap. In The Future of Software Engineering 2000 in Proceedings of 22nd International Conference on Software Engineering, pp. 91–101.Google Scholar
  9. Garlan, D., Schmerl, B., and Chang, J.C. 2001. Using Gauges for Architecture-Based Monitoring and Adaptation. In Proceedings of Conference on Complexand Dynamic Systems Architecture.Google Scholar
  10. Gosling, J., Joy, B., Steele, G., and Bracha, G. 2000. The Java Language Specification, Second Edition.Google Scholar
  11. Hassan, A.E. and Holt, R.C. 2002. Architecture Recovery of Web Applications. In Proceedings of 24th International Conference on Software Engineering, pp.19–25.Google Scholar
  12. Hofmeister, C., Nord, R., and Soni, D. 2000. Applied Software Architecture.Addison-Wesley.Google Scholar
  13. Huang, G., Mei, H., and Yang, F.Q. 2004. Runtime Software Architecture Based On Reflective Middleware. Science in China (Series F), 47(5):555–576.Google Scholar
  14. Huang, G., Mei, H., Wang, Q.X., and Yang, F.Q. 2003. A Systematic Approach to Composing Heterogeneous Components. Chinese Journal of Electronics, 12(4):499–505.Google Scholar
  15. Huang, G., Liu, Tiancheng, Mei, Hong, Zheng, Zizhan, Liu, Zhao, and Fan, Gaig. 2004. Towards Autonomic Computing Middleware via Reflection. In Proceedings of 28th Annual International Computer Software and Applications Conference (COMPSAC), Hongkong, China, September 28–30, pp. 122–127.Google Scholar
  16. Kazman, R. and Carriere, S.J. 1999. Playing Detective: Reconstructing Software Architecture from Available Evidence. Journal of Automated Software Engineering,6(2):107–138.Google Scholar
  17. Kiczales, G., Lamping, J., Mendhekar, A., and et al. 1997. Aspect-Oriented Programming. In Proceedings of the European Conference on Object-OrientedProgramming, pp. 220–242.Google Scholar
  18. Kruchten, P. 1995. The 4+1 View Model of Architecture. IEEE Software, 12(6):42–50.CrossRefGoogle Scholar
  19. Medvidovic, N. and Taylor, R.N. 2000. A Classification and Comparison Framework for Software Architecture Description Languages. IEEE Transactions on SoftwareEngineering, 26(1):70–93.CrossRefGoogle Scholar
  20. Liu, T., Gang, HUANG, Gang, FAN, and Hong, MEI. The Coordinated Recovery of Data Service and Transaction Service in J2EE, In Proceedings of 29th Annual International Computer Software and Applications Conference (COMPSAC05), pp. 485–490.Google Scholar
  21. Mei, H. 2000. A Complementary Approach to Requirements Engineering–Software Architecture Orientation. ACM SIGSOFT Software Engineering Notes, 25(2):40–45.CrossRefGoogle Scholar
  22. Mei, H., Chen, F., Wang, Q.X., and Feng, Y.D. 2002. ABC/ADL: An ADL Supporting ComponentComposition. In Proceedings of 4th International Conference on Formal EngineeringMethods, pp. 38–47.Google Scholar
  23. Mei, H. and Huang, G. 2004. PKUAS: An Architecture-based Reflective Component Operating Platform. Invited paper of 10th IEEE International Workshop onFuture Trends of Distributed Computing Systems.Google Scholar
  24. Mei, H., HUANG, Gang, and TSAI, W.T. 2005. Towards Self-Healing Systems via Dependable Architecture and Reflective Middleware. 10th IEEE International Workshopon Object-oriented Real-time Dependable Systems (WORDS), Arizona, pp. 337–346.Google Scholar
  25. Mei, H., Chang J.C., and Yang F.Q. 2001. Software component composition based on ADL and middleware. Science in China (Series F), 44(2):136–151.Google Scholar
  26. Mendonça, N.C. and Kramer, J. 2001. An approach for recovering distributed systemarchitectures. Journal of Automated Software Engineering, 8(3/4):311–354.Google Scholar
  27. Moreira, R.S., Blair, G.S., and Carrapatoso, E. 2001. A Reflective Component-Based & Architecture Aware Framework to Manage Architecture Composition. 3rd InternationalSymposium on Distributed Objects and Applications (DOA). pp. 187–196.Google Scholar
  28. Okamura, H., Ishikawa, Y., and Tokoro, M. 1992. AL-1/D: A Distributed Programming System with Multi-Model Reflection Framework. In Proc. Int'l Workshop onReflection and Meta-level Architectures, Tokyo, Japan. pp. 36–47.Google Scholar
  29. OMG (Object Management Group). 2002a. The Common Object Request Broker: Architecture and Specification, Version 3.0.Google Scholar
  30. OMG (Object Management Group). 2002b. CORBA Components, Version 3.0.Google Scholar
  31. Oreizy, P., Medvidovic, N., and Taylor, R.N. 1998. Architecture-Based Runtime SoftwareEvolution. In Proceedings of the 20th International Conference on SoftwareEngineering, pp. 177–186.Google Scholar
  32. Riva, C. 2000. Reverse architecting: An industrial experiencereport. In Proceedings 7th Working Conference on Reverse Engineering, pp. 42–51.Google Scholar
  33. Rosenblum, D.S. and Natarajan, R. 2000. Supporting Architectural Concerns in Component Interoperability Standards, IEE Proceedings—Software, 147(6):215–223.Google Scholar
  34. Shaw, M. and Garlan, D. 1996. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall.Google Scholar
  35. Shen, J., Sun, Xi, Huang, Gang, Jiao, Wenpin, Sun, Yanchun, and Mei, Hong. 2005. Towards aUnified Formal Model for Supporting Mechanisms of Dynamic Component Update,The fifth joint meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC-FSE'05), Lisbon, Portugal,September 5–9.Google Scholar
  36. SUN Microsystems. 2001a. Java 2 Platform Enterprise Edition Specification, Version 1.3.Google Scholar
  37. SUN Microsystems. 2001b. Enterprise JavaBeans Specification, Version 2.0.Google Scholar
  38. SUN Microsystems. 2002a. Java Management Extensions Instrumentation and Agent Specification, v1.1.Google Scholar
  39. SUN Microsystems. 2002b. Java 2 Platform Enterprise Edition Management Specification, v1.0.Google Scholar
  40. Van Deursen, A. 2002. Software Architecture Recovery and Modeling: [WCRE 2001 discussion forum report]. ACM SIGAPP Applied Computing Review, 10(1):4–7.Google Scholar
  41. Yeh, A.S., Harris, D.R., and Chase, M.P. 1997. Manipulating Recovered SoftwareArchitecture Views. In Proceedings of the 19th International Conference on SoftwareEngineering, pp. 184–194.Google Scholar
  42. Zhu, Y., Huang, Gang, and Mei, Hong. 2004. Quality Attribute Scenario Based Architectural Modeling for Self-Adaptation Supported by Architecture-based Reflective Middleware, In Proceedings of 11th Asia Pacific Software EngineeringConference (APSEC), pp. 2–9.Google Scholar
  43. Zhu, Y., HUANG, Gang, and MEI, Hong, Modeling Diverse and Complex Interactions Enabled byMiddleware as Connectors in Software Architectures, Accepted by the 10th IEEEInternational Conference on the Engineering of Complex Computer Systems (ICECCS2005), pp. 37–46.Google Scholar

Copyright information

© Springer Science + Business Media, Inc. 2006

Authors and Affiliations

  1. 1.Institute of Software, School of Electronics Engineering and Computer SciencePeking UniversityBeijingChina

Personalised recommendations