The Design Recovery Process (3)


© Faisal Bin Bashir

In this article I shall briefly discuss the remaining two steps of the design recovery process.

Step two: supporting population of reuse and recovery libraries. How might we productively use the recovered design components? Populating the component library of a reuse is an obvious and valuable use, but that requires further steps to generalize the components to enhance their reusability. Generalization makes the components applicable to a wider spectrum of applications, but it can require that we factor them to uncouple independent design aspects. For example, an independent process-management component (for the example, refer to the article published two weeks before) might apply far more widely than one that is tightly coupled to window management.

The final step in this process integrates the new abstractions into the reuse library and the recovery knowledge base (the domain model). Thus, we expect to reuse their recovered information to help build similar new components and to recover similar components from other systems.

Step three: applying the results of design recovery. The final step of the process cycle applies the newly populated domain model to design recovery. The abstract design components stored in the domain model now become the starting point for discovering candidate concrete realizations of themselves in a new system's code. Once the software engineer determines that the candidate is truly a concrete realization of the abstract design component, the design recovery system records the finding. For example, domain model information about the expected kinds of functions in the process management example might provide a skeleton for that module and even provide some semantic clues about the names of the various routines in the module.

Of course, the expectations in the domain model will seldom be an exact match of the design structures in the source code, and the software engineer will likely have to edit the design abstraction to synchronize it with the code, but even a partial match reduces the overall work. Further, each significant mismatch provides new expectations that help the domain model grow and evolve.

Go To Page: 1


The copyright of the article The Design Recovery Process (3) in Software Re-engineering is owned by . Permission to republish The Design Recovery Process (3) in print or online must be granted by the author in writing.

Post this Article to facebook Add this Article to del.icio.us! Digg this Article furl this Article Add this Article to Reddit Add this Article to Technorati Add this Article to Newsvine Add this Article to Windows Live Add this Article to Yahoo Add this Article to StumbleUpon Add this Article to BlinkLists Add this Article to Spurl Add this Article to Google Add this Article to Ask Add this Article to Squidoo