The OAR Method
The Options Analysis for Reengineering (OAR) method is a systematic, architecture-centric approach for identifying and mining reusable software components within large, complex software systems. OAR addresses the following questions:
- How does one 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?
The OAR method consists of five major activities with scalable tasks:
These activities have the following goals:
- 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
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
For additional documentation, see:
-
Bergey, John; O'Brien, Liam; Smith, Dennis. Options Analysis for Reengineering (OAR): A Method for Mining Legacy Assets (CMU/SEI-2001-TN-013).
-
Bergey, John; O'Brien, Liam; Smith, Dennis. OAR: Options Analysis for Reengineering: Mining Components for a Product Line or New Software Architecture, presented at International Conference on Software Engineering, 2001 (ICSE, 2001); Toronto, Canada, May, 2001.



