This paper presents a technique for recovering the high level design of legacy software systems according to user defined architectural plans. Architectural plans are represented...
Object-oriented programming is about the creation of reusable classes that are to be extended to capture the specific requirements of the application at hand. However, instead of...
In practice, a pure top-down and refinement-based development process is not applicable. A more iterative and incremental approach is usually applied with respect to changing req...
In this paper we introduce the evolution tree - a software life-cycle model that describes software development as the continuous evolution of a software product. That is, we view...
Better understanding manual reverse engineering can make it and any associated systems reengineering more effective. We reverse engineered a version of a system (referred to as &q...
Dave Swafford, Diana Elman, Peter Aiken, Jeff Merh...