Recovering Multi-Dimensionality From Legacy Software
نویسندگان
چکیده
Even in the most well-designed systems, some modules are difficult to maintain due to tangling of multiple concerns within a single monolithic codebase. Software plans have been proposed as an alternative multi-dimensional representation of software in which the programmer can implement independent concerns in separate views of the code. This reduces the difficulty of maintenance by allowing the programmer to view, reason about, and edit the software in a multidimensional manner, where each dimension corresponds to a concern of interest. As promising as this approach may be, there remains a large amount of legacy code that was developed using the traditional monolithic representation. We present an approach for reverse engineering software plans from existing monolithic code using static and dynamic feature location techniques. To evaluate our approach, we applied it to GNU gcc, extracting software plans that separate previously tangled code into multiple concern dimensions.
منابع مشابه
A Graph Pattern Matching Approach to Software Architecture Recovery
This paper presents a technique for recovering the high level design of legacy software systems based on pattern matching and user defined architectural patterns. Architectural patterns are represented using a description language that is mapped to an attributed relational graph and allows to specify the legacy system components and their data and control flow interactions. Such pattern descrip...
متن کاملPattern-based Software Architecture Recovery
This paper presents a technique for recovering the high level design of legacy software systems based on pattern matching and user defined architectural patterns. Architectural patterns are represented using a description language that is mapped to an attributed relational graph and allows to specify the legacy system components and their data and control flow interactions. Such pattern descrip...
متن کاملRecovering Rationale
Understanding the rationale of the architectural decisions supports software evolution: when developers add functionality, the explicit rationale helps them to track which decisions need to be revisited and which alternatives have already been evaluated. Unfortunately, architectural rationale is hardly ever documented for existing legacy systems. Is there any chance we can recover the architect...
متن کاملRequirements Reengineering from Legacy Information Systems Using Semiotic Techniques
Recovering users and systems requirements from existing information systems can be valuable in legacy systems reengineering. AMBOLS, a semiotic approach to requirements reengineering, considers recovering the requirements of an existing (legacy) system under the restriction that only the operational system and its current stakeholders are accessible, while the original system documentation may ...
متن کاملReclipse – A Reverse Engineering Tool Suite
Design pattern detection is a reverse engineering methodology that helps software engineers to analyze and understand legacy software by recovering design decisions and thereby providing deeper insight into software. In this report we present Reclipse, a reverse engineering tool suite based on Fujaba. Reclipse provides static and dynamic design pattern detection in combination with a pattern ra...
متن کامل