Using Software Evolution to Focus Architectural Recovery (2005)
| Venue: | Automated Software Engineering |
| Citations: | 13 - 4 self |
BibTeX
@ARTICLE{Medvidovic05usingsoftware,
author = {Nenad Medvidovic and Vladimir Jakobac},
title = {Using Software Evolution to Focus Architectural Recovery},
journal = {Automated Software Engineering},
year = {2005},
volume = {13},
pages = {225--256}
}
OpenURL
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







