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

被引:60
作者
Gang Huang
Hong Mei
Fu-Qing Yang
机构
[1] Peking University,Institute of Software, School of Electronics Engineering and Computer Science
关键词
Software architecture recovery; Runtime system; Reflection; Component framework;
D O I
10.1007/s10515-006-7738-4
中图分类号
学科分类号
摘要
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.
引用
收藏
页码:257 / 281
页数:24
相关论文
共 30 条
  • [1] Banker R.D.(1993)Software Complexity and Maintenance Costs Communications of ACM 36 81-94
  • [2] Datar S.M.(2000)Maintaining a legacy: Towards support at the architectural level Journal of Software Maintenance:Research And Practice 12 143-170
  • [3] Kemerer C.F.(2004)Runtime Software Architecture Based On Reflective Middleware Science in China (Series F) 47 555-576
  • [4] Zweig D.(2003)A Systematic Approach to Composing Heterogeneous Components Chinese Journal of Electronics 12 499-505
  • [5] Bril R.J.(1999)Playing Detective: Reconstructing Software Architecture from Available Evidence Journal of Automated Software Engineering 6 107-138
  • [6] Feijs L.M.G.(1995)The 4+1 View Model of Architecture IEEE Software 12 42-50
  • [7] Glas A.(2000)A Classification and Comparison Framework for Software Architecture Description Languages IEEE Transactions on Software Engineering 26 70-93
  • [8] Krikhaar R.L.(2000)A Complementary Approach to Requirements Engineering–Software Architecture Orientation ACM SIGSOFT Software Engineering Notes 25 40-45
  • [9] Winter R.M.(2001)Software component composition based on ADL and middleware Science in China (Series F) 44 136-151
  • [10] Huang G.(2001)An approach for recovering distributed system architectures Journal of Automated Software Engineering 8 311-354