Results 1 -
5 of
5
Pattern-based reverse-engineering of design components
- In Proceedings of the 21st International Conference on Software Engineering (ICSE
, 1999
"... 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 led to its physical shape. Design patterns capture the rationale behind pro ..."
Abstract
-
Cited by 65 (6 self)
- Add to MetaCart
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 led 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. Keywords Reverse-engineering, design recovery, design component,
ET++SwapsManager: Using Object Technology in the Financial Engineering Domain
, 1992
"... Providing the financial engineering community with adequate software tools presents several challenges to application developers. Experience shows that reusability-oriented software development as supported by object technology has the potential to meet these challenges. To back the argument, a proj ..."
Abstract
-
Cited by 17 (2 self)
- Add to MetaCart
Providing the financial engineering community with adequate software tools presents several challenges to application developers. Experience shows that reusability-oriented software development as supported by object technology has the potential to meet these challenges. To back the argument, a project of building a pilot implementation of a swap valuation system using a comprehensive class library including an application framework is reported. As a novelty the project emphasized the use of so-called design patterns. The project experience suggests that the use of design patterns significantly eases the application of a large class library and facilitates the reuse of design.
Bridging Program Comprehension Tools by Design Navigation
- IEEE International Conference on Software Maintenance
, 2000
"... Source code investigation is one of the most time consuming activities during software maintenance and evolution, yet currently available tool support suffers from several shortcomings. Browsing is typically limited to low-level elements, investigation is only supported as a one-way activity, and to ..."
Abstract
-
Cited by 15 (5 self)
- Add to MetaCart
Source code investigation is one of the most time consuming activities during software maintenance and evolution, yet currently available tool support suffers from several shortcomings. Browsing is typically limited to low-level elements, investigation is only supported as a one-way activity, and tools provide little help in getting an encompassing picture of the system under examination. In our research, we have developed tool support for design navigation that addresses these shortcomings. A Design Browser allows for flexible browsing of a system's design level representation and for information exchange with a suite of program comprehension tools. The browser is complemented with a Retriever supporting full-text and structural searching. In this paper, we detail these tools and their integration into a reverse engineering environment, present three case studies, and put them into perspective. . 1. Introduction Understanding source code plays a prominent role during software maint...
Hot spot recovery in object-oriented software with inheritance and composition template methods
- In Proceedings of the International Conference on Software Maintenance (ICSM’99
, 1999
"... The success of an object-oriented software development project highly depends on how well the designers can capture the Hot Spots of the application domain, that is, those aspects that should be kept flexible to accommodate reuse and change. Yet, all too often, Hot Spots are hardly documented, and o ..."
Abstract
-
Cited by 7 (4 self)
- Add to MetaCart
The success of an object-oriented software development project highly depends on how well the designers can capture the Hot Spots of the application domain, that is, those aspects that should be kept flexible to accommodate reuse and change. Yet, all too often, Hot Spots are hardly documented, and over years of software evolution, the source code that reifies them becomes increasingly entangled with the application specific code. This blurring of the flexible with the rigid parts makes an application hard to maintain, prone to unexpected change impact, and immobile for reuse in related areas. In this paper, we apply SPOOL, our prototype environment for reverse engineering, to the recovery of Hot Spots in C++ software. We base the technique for Hot Spot recovery on the design concept of template methods. We present the approach and the interactive analysis capabilities
Program Comprehension by . . .
, 2002
"... To make program comprehension more effective, the analyst needs high-level information about the software under investigation, in particular information at the structure and the design levels. Visualization in Contexts allows the analyst to investigate software in terms of various contexts at diffe ..."
Abstract
- Add to MetaCart
To make program comprehension more effective, the analyst needs high-level information about the software under investigation, in particular information at the structure and the design levels. Visualization in Contexts allows the analyst to investigate software in terms of various contexts at different levels of abstraction and to form a variety of mental models of the software at hand. Moreover, the analyst can mentally integrate disparate mental models by cross-referencing. In this paper, the Visualization in Contexts strategy is introduced. Then, the Context Viewer, a prototype tool supporting the strategy within the SPOOL reverse engineering environment, is detailed. Three usage scenarios illustrate the approach. The scenarios, complemented by an informal evaluation and comparison, suggest the usefulness of the tool and the underlying strategy.

