Reengineering
In developing a product line or migrating to a modern software architecture, it is often unrealistic to start with a "green field" development effort. A realistic approach can start by analyzing legacy systems to understand the current architecture and developing a strategy for mining and reusing existing assets. Mining involves rehabilitating parts of an old system for use in a new system.
Mining software assets is crucial because of the large number of legacy systems in production as well as budgetary cutbacks. We capture and improve best practices and demonstrate how these approaches can be used in the migration to a product line practice. Our work focuses on the technical aspects of mining software assets, an integrated approach to migration planning, and conceptual understanding of basic reengineering principles.
The technical approaches focus on two aspects of mining assets for a product line: 1) mining components for a product line through Options Analysis for Reengineering (OAR), and 2) mining existing systems at an architectural level through Mining Architectures for Product line (MAP) evaluation.
OAR identifies potential reusable components and analyzes the changes that would be needed to rehabilitate them for reuse within a software product line or new software architecture. OAR provides a set of mining options and the cost, effort and risks associated with the options. It provides insights into implicit stakeholder assumptions, constraints, and other major drivers that impact the mining of components. OAR has also been customized for working within an acquisition context.
MAP performs architecture analyses of multiple systems in a similar domain. It determines the potential for moving to a common product line architecture, and identifies commonalities, variabilities, risks, and sensitivity points across the systems. MAP relies on architecture reconstruction techniques to gain an understanding of the architectures of the current systems. It then evaluates the potential of the existing architectures to form the basis for a software product line architecture.
Migration planning is required when an organization faces the challenge of migrating from legacy systems to new target systems. The migration plan addresses issues associated with phasing out the legacy systems and moving to the new system. These issues include user interface compatibility, database compatibility, transition support, system interface compatibility, and training. Using a migration plan, a development organization can help a user community make the transition in an orderly fashion.
We have contributed to conceptual issues in reengineering, through a "horseshoe" model in which reengineering and architectural views of software analysis and evolution are combined. This view represents an approach that unifies the reengineering work at different levels of abstraction: source code, functions, and architecture. The horseshoe is not a replacement for other reengineering or architectural analysis techniques, but rather a description of how they are complementary in the process of controlled software evolution.
|
SEI Reengineering Resources
|
Other Reengineering Resources
|


