Pattern-based reverse-engineering of design components
Many reverse-engineering tools have been developed to derive abstract representations from source code. Yet, most of these tools completely ignore recovery of the all-important rationale behind the design decisions that have lead to its physical shape. Design patterns capture the rationale behind pr...
Gespeichert in:
Hauptverfasser: | , , , |
---|---|
Format: | Tagungsbericht |
Sprache: | eng |
Schlagworte: |
Software and its engineering
> Software creation and management
> Software post-development issues
> Software reverse engineering
Software and its engineering
> Software notations and tools
> General programming languages
> Language features
> Patterns
Software and its engineering
> Software notations and tools
> General programming languages
> Language types
> Object oriented languages
Software and its engineering
> Software organization and properties
> Software system structures
> Distributed systems organizing principles
> Client-server architectures
|
Online-Zugang: | Volltext bestellen |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Zusammenfassung: | Many reverse-engineering tools have been developed to derive abstract representations from source code. Yet, most of these tools completely ignore recovery of the all-important rationale behind the design decisions that have lead to its physical shape. Design patterns capture the rationale behind proven design solutions and discuss the trade-offs among their alternatives. We argue that it is these patterns of thought that are at the root of many of the key elements of large-scale software systems, and that, in order to comprehend these systems, we need to recover and understand the patterns on which they were built. In this paper, we present our environment for the reverse engineering of design components based on the structural descriptions of design patterns. We give an overview of the environment, explain three case studies, and discuss how pattern-based reverse-engineering helped gain insight into the design rationale of some of the pieces of three large-scale C++ software systems. |
---|---|
ISSN: | 0270-5257 1558-1225 |
DOI: | 10.1145/302405.302622 |