Using software evolution to focus architectural recovery |
| |
Authors: | Nenad Medvidovic Vladimir Jakobac |
| |
Affiliation: | (1) Computer Science Department, University of Southern California, Los Angeles, CA 90089-0781, USA |
| |
Abstract: | 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. |
| |
Keywords: | Software architecture Architecture recovery Architecture erosion Evolution Architectural style Focus |
本文献已被 SpringerLink 等数据库收录! |
|