Options Analysis for Reengineering (OAR) Method
Challenges:
How do you make the best use of legacy
software when migrating to a software product line or new single system?
- How do you efficiently and cost-effectively rehabilitate legacy software?
- Which legacy components are worth extracting for reuse in a new software product line or with a new architecture?
- What types of changes need to be made to the components?
- What are the risks and costs involved in identifying and reusing legacy components?
Overview:
The Options Analysis for Reengineering (OAR)
method is a systematic, architecture-centric approach for identifying and
mining reusable software components. Mining involves rehabilitating parts of an
old system for use in a new system or software product line.
Benefits:
The Options Analysis for Reengineering (OAR)
method enables users to obtain maximum value from legacy assets by determining
the cost, effort, benefits, and risk of mining software components.
Who Would Benefit:
Software product or project
managers, software product line managers, software reengineering specialists,
software architects.
Example Use:
During a recent initial three-day OAR
working session, the SEI and a customer team identified and processed six
candidate components out of a potential million lines of code. The team
developed initial cost, schedule, and risk estimates for mining the components.
The team looked at alternative scenarios for obtaining the software
capabilities required and identified a set of mining issues and concerns.
Description:
The OAR method consists of five activities
with scalable tasks:

- Establish Mining Context: understand the organization's product line* needs, legacy base, and expectations for mining legacy components
- Inventory Components: identify the legacy system components that can potentially be mined for use as product line* components in core asset base
- Analyze Candidate Components: analyze a candidate set of legacy components to evaluate their potential for use as product line* components
- Plan Mining Options: develop alternative plans for mining based on schedule, cost, effort, risk, and resource considerations
- Select Mining Option: select which mining option or combination of options can best satisfy the organization's mining goals by balancing the programmatic and technical considerations
* Note: Every place the term "product line" appears you can easily substitute "new software architecture" if a product line is not the immediate goal.
OAR enables users to screen candidate software components; identify the best candidates for reuse; analyze, isolate and aggregate candidate components; and estimate the level of difficulty, cost, and effort required to mine and rehabilitate the software components selected. Using OAR results, a reengineering team can focus its efforts on those high-value components that meet the technical and programmatic needs of the software product line or the new single system architecture.
Outputs of OAR include:
- Inventory of existing legacy components and related documentation
- Component Table identifying reusable components, their characteristics, estimates of changes needed, level of difficulty, estimated effort and cost
- Options Table that identifies a set of mining options that reflects the organization's elicited needs, priorities, and concerns
- List of product line or new single system components that can, and cannot, be satisfied by mining
Availability:
SEI staff will work with a customer
reengineering team to apply the OAR method.
Additional Information:
- For additional information or to arranging OAR services: Linda Northrop
Related SEI Products and Services:
Migration
Planning
Architecture
Reconstruction
Mining Architectures for
Product Line Evaluation (MAP)
Framework for
Software Product Line Practice
Product Line Quick Look (PLQL)
Product Line
Technical Probe (PLTP)
Keywords:
Reverse engineering, reengineering, component
mining, legacy software reuse, software product lines, mining, and legacy
systems.