Skip to main content
Log in

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

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  • 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.

    Article  Google Scholar 

  • Blair, G.S., Coulson, G., Andersen, A., and etc. 2001. The Design and Implementation of Open ORB 2. IEEE Distributed Systems Online, 2(6).

  • 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.

    Article  Google Scholar 

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • Gosling, J., Joy, B., Steele, G., and Bracha, G. 2000. The Java Language Specification, Second Edition.

  • 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.

  • Hofmeister, C., Nord, R., and Soni, D. 2000. Applied Software Architecture.Addison-Wesley.

  • 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 

  • 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 

  • 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.

  • 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 

  • 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.

  • Kruchten, P. 1995. The 4+1 View Model of Architecture. IEEE Software, 12(6):42–50.

    Article  Google Scholar 

  • 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.

    Article  Google Scholar 

  • 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.

  • Mei, H. 2000. A Complementary Approach to Requirements Engineering–Software Architecture Orientation. ACM SIGSOFT Software Engineering Notes, 25(2):40–45.

    Article  Google Scholar 

  • 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.

  • 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.

  • 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.

  • 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 

  • 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 

  • 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.

  • 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.

  • OMG (Object Management Group). 2002a. The Common Object Request Broker: Architecture and Specification, Version 3.0.

  • OMG (Object Management Group). 2002b. CORBA Components, Version 3.0.

  • 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.

  • Riva, C. 2000. Reverse architecting: An industrial experiencereport. In Proceedings 7th Working Conference on Reverse Engineering, pp. 42–51.

  • Rosenblum, D.S. and Natarajan, R. 2000. Supporting Architectural Concerns in Component Interoperability Standards, IEE Proceedings—Software, 147(6):215–223.

    Google Scholar 

  • Shaw, M. and Garlan, D. 1996. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall.

  • 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.

  • SUN Microsystems. 2001a. Java 2 Platform Enterprise Edition Specification, Version 1.3.

  • SUN Microsystems. 2001b. Enterprise JavaBeans Specification, Version 2.0.

  • SUN Microsystems. 2002a. Java Management Extensions Instrumentation and Agent Specification, v1.1.

  • SUN Microsystems. 2002b. Java 2 Platform Enterprise Edition Management Specification, v1.0.

  • 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 

  • 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.

  • 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.

  • 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.

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gang Huang.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Huang, G., Mei, H. & Yang, FQ. Runtime recovery and manipulation of software architecture of component-based systems. Autom Software Eng 13, 257–281 (2006). https://doi.org/10.1007/s10515-006-7738-4

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10515-006-7738-4

Keywords

Navigation