Using software evolution to focus architectural recovery

被引:27
作者
Nenad Medvidovic
Vladimir Jakobac
机构
[1] University of Southern California,Computer Science Department
关键词
Software architecture; Architecture recovery; Architecture erosion; Evolution; Architectural style; Focus;
D O I
10.1007/s10515-006-7737-5
中图分类号
学科分类号
摘要
Ideally, a software project commences with requirements gathering and specification, reaches its major milestone with system implementation and delivery, and then continues, possibly indefinitely, into an operation and maintenance phase. The software system's architecture is in many ways the linchpin of this process: it is supposed to be an effective reification of the system's technical requirements and to be faithfully reflected in the system's implementation. Furthermore, the architecture is meant to guide system evolution, while also being updated in the process. However, in reality developers frequently deviate from the architecture, causing architectural erosion, a phenomenon in which the initial, “as documented'' architecture of an application is (arbitrarily) modified to the point where its key properties no longer hold. Architectural recovery is a process frequently used to cope with architectural erosion whereby the current, “as implemented” architecture of a software system is extracted from the system's implementation. In this paper we propose a light-weight approach to architectural recovery, called Focus, which has three unique facets. First, Focus uses a system's evolution requirements to isolate and incrementally recover only the fragment of the system's architecture affected by the evolution. In this manner, Focus allows engineers to direct their primary attention to the part of the system that is immediately impacted by the desired change; subsequent changes will incrementally uncover additional parts of the system's architecture. Secondly, in addition to software components, which are the usual target of existing recovery approaches, Focus also recovers the key architectural notions of software connector and architectural style. Finally, Focus does not only recover a system's architecture, but may in fact rearchitect the system. We have applied and evaluated Focus in the context of several off-the-shelf applications and architectural styles to date. We discuss its key strengths and point out several open issues that will frame our future work.
引用
收藏
页码:225 / 256
页数:31
相关论文
共 25 条
[1]  
Krasner G.E.(1988)A Cookbook for Using theModel-View Controller User Interface Paradigm in Smalltalk-80 JOOP 1 26-49
[2]  
Pope S.T.(2000)A Classification andComparison Framework for Software Architecture DescriptionLanguages IEEE Transactions on Software Engineering 26 70-93
[3]  
Medvidovic N.(1993)Areverse engineering approach to subsystem structureidentification Journal of Software Maintenance: Research andPractice 5 181-204
[4]  
Taylor R.N.(2001)Software ReflexionModels: Bridging the Gap Between Design and Implementation IEEE Transactions on Software Engineering 27 364-380
[5]  
MÜller H.A.(1996)AComponent and Message-Based Architectural Style for GUI Software IEEE Trans. on Software Engineering 22 390-406
[6]  
Orgun M.A.(1995)Chiron-1: A SoftwareArchitecture for User Interface Development, Maintenance, andRun-Time Support ACM Trans. on CHI 2 105-144
[7]  
Tilley S.R.(undefined)undefined undefined undefined undefined-undefined
[8]  
Uhl J.S.(undefined)undefined undefined undefined undefined-undefined
[9]  
Murphy G.C.(undefined)undefined undefined undefined undefined-undefined
[10]  
Notkin D.(undefined)undefined undefined undefined undefined-undefined