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

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.

[1]  Feng Chen,et al.  ABC/ADL: An ADL Supporting Component Composition , 2002, ICFEM.

[2]  Mario Tokoro,et al.  Al-1/d: a distributed programming system with multi-model reflection framework , 1992 .

[3]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[4]  Wei-Tek Tsai,et al.  Towards self-healing systems via dependable architecture and reflective middleware , 2005, 10th IEEE International Workshop on Object-Oriented Real-Time Dependable Systems.

[5]  E. Carrapatoso,et al.  A reflective component-based and architecture aware framework to manage architecture composition , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[6]  Hong Mei,et al.  A complementary approach to requirements engineering—software architecture orientation , 2000, SOEN.

[7]  Peyman Oreizy,et al.  Architecture-based runtime software evolution , 1998, Proceedings of the 20th International Conference on Software Engineering.

[8]  Gang Huang,et al.  PKUAS: an architecture-based reflective component operating platform , 2004, Proceedings. 10th IEEE International Workshop on Future Trends of Distributed Computing Systems, 2004. FTDCS 2004..

[9]  Yali Zhu Modeling diverse and complex interactions enabled by middleware as connectors in software architectures , 2005, 10th IEEE International Conference on Engineering of Complex Computer Systems (ICECCS'05).

[10]  Rajiv D. Banker,et al.  Software complexity and maintenance costs , 1993, CACM.

[11]  Gang Huang,et al.  Towards a unified formal model for supporting mechanisms of dynamic component update , 2005, ESEC/FSE-13.

[12]  Claudio Riva,et al.  Reverse architecting: an industrial experience report , 2000, Proceedings Seventh Working Conference on Reverse Engineering.

[13]  Yali Zhu,et al.  Exception handling in component composition with the support of middleware , 2005, SEM '05.

[14]  David S. Rosenblum,et al.  Supporting architectural concerns in component interoperability standards , 2000, IEE Proc. Softw..

[15]  Gordon S. Blair,et al.  The Design and Implementation of Open ORB 2 , 2001, IEEE Distributed Syst. Online.

[16]  James Gosling,et al.  The Java Language Specification, 3rd Edition , 2005 .

[17]  Richard N. Taylor,et al.  A Classification and Comparison Framework for Software Architecture Description Languages , 2000, IEEE Trans. Software Eng..

[18]  Zhao Liu,et al.  Towards autonomic computing middleware via reflection , 2004, Proceedings of the 28th Annual International Computer Software and Applications Conference, 2004. COMPSAC 2004..

[19]  Jeff Kramer,et al.  An Approach for Recovering Distributed System Architectures , 2001, Automated Software Engineering.

[20]  Guy L. Steele,et al.  The Java Language Specification , 1996 .

[21]  David Garlan,et al.  Using Gauges for Architecture-Based Monitoring and Adaptation , 2001 .

[22]  Gang Huang,et al.  A Systematic Approach to Composing Heterogeneous Components , 2003 .

[23]  A. Watson,et al.  OMG (Object Management Group) architecture and CORBA (common object request broker architecture) specification , 2002 .

[24]  Jim Dowling,et al.  The K-Component Architecture Meta-model for Self-Adaptive Software , 2001, Reflection.

[25]  Walter Cazzola,et al.  Architectural Reflection: Bridging the Gap Between a Running System and its Architectural Specification , 2008 .

[26]  Arie van Deursen Software architecture recovery and modelling: [WCRE 2001 discussion forum report] , 2002 .

[27]  Richard C. Holt,et al.  Architecture recovery of web applications , 2002, ICSE '02.

[28]  Jichuan Chang,et al.  Software component composition based on ADL and Middleware , 2007, Science in China Series : Information Sciences.

[29]  Rick Kazman,et al.  Playing Detective: Reconstructing Software Architecture from Available Evidence , 1999, Automated Software Engineering.

[30]  Guy L. Steele,et al.  Java Language Specification, Second Edition: The Java Series , 2000 .

[31]  Tiande Shou,et al.  The responses to illusory contours of neurons in cortex areas 17 and 18 of the cats , 2001, Science in China Series C: Life Sciences.

[32]  Robert L. Nord,et al.  Applied Software Architecture , 1999, Addison Wesley object technology series.

[33]  David Garlan,et al.  Software architecture: a roadmap , 2000, ICSE '00.

[34]  Reinder J. Bril,et al.  Maintaining a legacy: towards support at the architectural level , 2000 .

[35]  Melissa P. Chase,et al.  Manipulating Recovered Software Architecture Views , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[36]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[37]  Yali Zhu,et al.  Quality attribute scenario based architectural modeling for self-adaptation supported by architecture-based reflective middleware , 2004, 11th Asia-Pacific Software Engineering Conference.

[38]  Mary Shaw,et al.  Software architecture - perspectives on an emerging discipline , 1996 .

[39]  HUANGGang,et al.  Runtime software architecture based on reflective middleware , 2004 .

[40]  Feng Chen,et al.  An architecture-based approach for component-oriented development , 2002, Proceedings 26th Annual International Computer Software and Applications.