Modeling multiple views of common features in software reengineering for reuse (original) (raw)
Common objectives of software reengineering are to improve program maintainability, to port programs into new platforms or to support new functions. To meet reengineering objectives, sometimes it is necessary to substantially re-deign programs; then, reengineering becomes an opportune moment to address reusability. In the "reengineering for reuse" scenario, a reusability framework is built prior to reengineering efforts. Within the framework, potentially reusable features are modeled and representation structures for capturing reusable features are built. The core of the framework is a family of domain models. Domain models are built in the course of both reverse engineering of existing programs and independent domain analysis. Domain models consist of documentation templates, organized in Object-Oriented way, that describe common (therefore reusable) features and their implementation. Often we find that, apart from similarities, there are also some variations in feature specifications and implementation from one system to another. Modeling reusable features and capturing variations in feature specification is the topic of this paper.