Options Analysis for Reengineering (OAR): A Method for Mining Legacy Assets
John Bergey
Liam O’Brien
Dennis Smith
June 2001
Product Line Practice InitiativeUnlimited distribution subject to the copyright.
[Title Page] [Abstract] [Figures]
The Software Engineering Institute is a federally
funded research and development center sponsored by
the U.S. Department of Defense.
Copyright 2001 by Carnegie Mellon University.
NO WARRANTY
THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE
ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN
"AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO
WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO,
WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY,
EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE
MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE
ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM
PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT.
Use of any trademarks in this report is not
intended in any way to infringe on the rights of the
trademark holder.
Internal use. Permission to reproduce this
document and to prepare derivative works from this
document for internal use is granted, provided the
copyright and "No Warranty" statements are included
with all reproductions and derivative works.
External use. Requests for permission to reproduce
this document or prepare derivative works of this
document for external and commercial use should be
addressed to the SEI Licensing Agent.
This work was created in the performance of
Federal Government Contract Number F19628-00-C-0003
with Carnegie Mellon University for the operation of
the Software Engineering Institute, a federally
funded research and development center. The
Government of the United States has a royalty-free
government-purpose license to use, duplicate, or
disclose the work, in whole or in part and in any
manner, and to have or permit others to do so, for
government purposes pursuant to the copyright license
under the clause at 52.227-7013.
For information about purchasing paper copies of
SEI reports, please visit the publications portion of
our Web site (http://www.sei.cmu.edu/publications/pubweb.html).
[Title Page] [Abstract] [Figures]
1 Introduction
Options Analysis for Reengineering (OAR) is a systematic, architecture-centric, decision-making method for identifying and mining software components within large, complex software systems. Mining involves rehabilitating parts of an old system for reuse. OAR identifies potentially relevant architectural components and analyzes the changes required to use them in a software product line or new software architecture. In essence, OAR provides a set of mining options along with estimates of the cost, effort, and risks associated with those options.
1.1 Need for OARMany organizations have undertaken efforts to update their software intensive systems and to establish more efficient ways of developing software. One emerging trend has been the implementation of software product lines to realize economies of scale and greater efficiencies in software development [Clements 01].
Since most organizations have a substantial legacy base of existing software assets, few product line development or migration efforts start from "green fields." However until now, there has been no systematic way to identify components for reuse and to understand the types of changes required to insert legacy system components into a software product line or a new software architecture [Muller 00]. In most cases, the options have been to either undergo the costly and high-risk process of reengineering an entire system or to simply build the required components or systems from scratch.
Component mining has often been discussed as an alternative, but requires understanding what types of components are worth extracting and how to extract them. The following issues add to the challenge:
- Existing components are often poorly structured and poorly documented.
- Existing components differ in levels of granularity.
- There is no clear guidance on how to salvage components.
OAR provides a systematic approach to addressing these issues and to making the decisions required to cost-effectively and efficiently mine legacy system components.
1.2 Structure of This Technical NoteThis technical note provides a brief overview of OAR. Section 2 outlines the activities of OAR and provides a brief summary of the purpose and tasks of each activity. Section 3 describes how each activity is structured according to an EITVOX (Entry Criteria, Inputs, Tasks, Validation, Outputs, Exit Criteria) format. It describes one activity "Establish Mining Context" to demonstrate how this format is followed. Section 4 provides an example of how OAR has been used. Section 5 provides a summary of OAR, its status and potential. Bergey et al., provide additional details on OAR in their OAR tutorial [Bergey 01].
[Title Page] [Abstract] [Figures]
2 The OAR Method
The OAR method consists of five major activities with scalable tasks. These tasks are depicted in Figure 1 and summarized in the following subsections:
|
Figure 1: Overview of OAR Activities Figures and some tables in this file are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows. |
It is important for the OAR team to understand the context for the mining effort. As a result, the first activity of OAR involves interviewing stakeholders and studying the organization’s product line or new system requirements, legacy base, and expectations for mining legacy components. This effort establishes a baseline set of goals, expectations, and component needs. It also uncovers the program and technical drivers for making decisions.
2.2 Inventory ComponentsNext, the OAR team identifies the legacy system components that potentially can be mined for use in a product line or new software architecture.
During this activity, team members identify product line component needs and evaluate the legacy components based on these criteria. Those that don’t meet the criteria are screened out. This activity results in an inventory of candidate legacy components.
The Inventory Components activity has six tasks:
- Identify Characteristics of Component Needs:
- Identify Components Satisfying Characteristics:
- Match Components to Needs:
- Inventory Candidate Components:
- Elicit Mining Issues:
- Review OAR Schedule:
• Determine required characteristics of potential legacy components.
• Create a Component Table of the legacy components with details of these
characteristics.
• Screen components that do not satisfy the required characteristics.
• Match legacy components to product line component needs.
• Update the Component Table with more details about those candidate legacy components chosen.
• Review any mining issues and concerns that were identified during the activity.
• Update the OAR Schedule, if necessary.
Next, team members analyze the candidate set of legacy components for the types of changes that are required to mine. This activity has six tasks:
- Select Desirable Components:
- Identify As Is & Black-Box Components:
- Identify White-Box Components:
- Determine Required Changes:
- Elicit Mining Issues:
- Review OAR Schedule:
• Determine desirability criteria for each legacy component.
• Screen out those that do not satisfy these criteria.
• Determine those components that can be wrapped or used "as is."
• Determine those components that will need to be modified.
• Determine the types of changes that each component will need,
the cost and effort involved, the level of difficulty and risk, and the
comparative cost and effort of developing components from scratch.
• Review mining issues and concerns that were identified during the activity.
• Update the OAR Schedule, if necessary.
Given the set of analyzed candidate components, the team next develops alternatives to mining based on schedule, cost, effort, risk, and resource considerations. The OAR team also screens candidate components one more time and analyzes the impact of different component aggregations.
The Plan Mining Options activity has seven tasks:
- Select Favorable Components:
- Perform Component Tradeoffs:
- Form Component Options:
- Determine Comparative Cost and Effort:
- Analyze Difficulty and Risk:
- Elicit Mining Issues:
- Update OAR Schedule:
• Develop criteria, such as cost or effort levels required.
• Screen components that do not satisfy the criteria.
• Identify one component (or combination) per product line component need.
• Develop criteria for aggregating, and aggregate components.
• Compare the cost of each aggregation with the cost of developing it from scratch.
• Determine the level of difficulty and the risks involved for each aggregation.
• Review mining issues and concerns identified during the activity.
• Update the OAR Schedule, if necessary.
Finally, team members select the best mining option or combination of options by balancing program and technical considerations. After evaluating each mining option, they prepare a summary report that presents and justifies their selections.
The Select Mining Option activity has five tasks:
- Choose Best Option:
- Verify Option:
- Identify Component Needs Satisfied:
- Present Findings:
- Produce Summary:
• Determine the drivers for selecting from among the options
• Select an option or combination of them.
• Record all the details about each of the options chosen.
• Complete the final list of component needs satisfied and not satisfied through the
options selected.
• Prepare findings presentation that provides details about the options selected.
• Produce a final report detailing the options chosen and the rationales for their
selection.
Each activity also has a set of potential specialized tasks to address circumstances that may otherwise preclude completing the activity. These tasks may apply under the following conditions:
- The exit criteria for the prescribed activity have not been satisfied.
- More work is required than can reasonably be accomplished in the activity wrap-up tasks.
- Additional data is needed to complete a particular task or to address special customer needs.
- There is a need to supplement standard OAR tasks to enhance decision-making and reduce risk.
Section 3 includes examples of specialized tasks.
[Title Page] [Abstract] [Figures]
3
Structure of Activities
Each activity is composed of tasks and sub-tasks
designed to answer a set of activity-specific
questions. These questions will define the activity
and will also serve as a checklist to be included in
the exit criteria for each activity. The activities are structured according to an EITVOX (Entry Criteria, Inputs, Tasks, Validation, Outputs, Exit Criteria) format as follows:
At the end of each activity, examples are given of the specialized tasks that may need to be performed before continuing. The following sub-sections show how the first activity, Establish Mining
Context, is structured according to the EITVOX format. Each of the other activities follows this format. Bergey et al., provide this level of detail
[Bergey 01]. The purpose of Establish Mining Context is to understand the organization’s product line or new single system needs, legacy base, and expectations for mining legacy components. The tasks of Establish Mining Context were developed to address a set of underlying questions that include The complete set of underlying questions is revisited during validation to make sure they were answered satisfactorily. The following entry criteria are examined to determine if there is sufficient data and expertise available to perform the activity successfully. The entry criteria for this activity are If the entry criteria are not satisfied, a specialized task may need to be developed. Each activity relies on a set of support artifacts. The following artifacts are required for Establish Mining Context: The Establish Mining Context activity is divided into 10 tasks. These tasks are executed in order. Several of the tasks are further divided into subtasks. To help OAR team members perform tasks and sub-tasks, the SEI developed execution and data templates. Execution templates outline the steps, rationale, and assumptions for the task or sub-task. Data templates provide example topics and often serve as a starting point for eliciting information from a customer. The tasks accomplish the following: • Determine stakeholder goals and objectives for the mining effort. • Identify product line or new system requirements. • Identify component needs that will be addressed by mining. • Review the legacy systems and component documentation available. • Identify programmatic and technical drivers. • Determine compatibility of mining drivers with goals and objectives. • Determine criteria for high-value legacy components. • Select a set of candidate components. • Review any mining issues and concerns that were identified during the activity. • Determine the organization’s level of preparedness. • Update the OAR Schedule, if necessary.
Table 1. EITVOX Structure of OAR Activities
Figures and some tables in this file are displayed in a separate browser
window. This window will remain open to display figures in this file,
although it might be hidden behind other browser windows.
3.1.4  
Task Structure
Some tasks have sub-tasks. Task 4, for example, is subdivided into:
- Review Legacy Systems.
- Review Component Documentation.
The execution template, illustrated in Table 2, specifies how to perform Review Component Documentation (sub-task 4.2).
Table 2. Task Execution Template: EMC-4.2-DT
|
Task ID: |
EMC Task 4.2 |
|
Name: |
Review Component Documentation. |
|
Description: |
As a precursor to mining, review what type of documentation is available at the component level. |
|
Steps: |
Key topics that should be addressed include: What is the level of granularity for legacy components? How does this level of granularity compare to product line needs? What component documentation is typically available at that level of granularity?
|
|
Rationale: |
There is a need for the two parties to establish beforehand what documentation is available to support inventory and analysis. If documentation is lacking, determine the potential impact on the mining effort. |
|
Assumptions: |
Refer to the assumptions under Establish Mining Context Task 7.3 for specific courses of action to compensate for documentation deficiencies. If particular subsystems are poorly documented, the mining team may want to eliminate the components of those subsystems from further consideration. This is in keeping with the underlying concept of the OAR "bridging" scenario; i.e., quickly identify those systems and subsystems that have the most potential for mining, and select high value components from them. |
The data template "EMC-4.2-DT" suggests that the following type of data be collected:
- list of legacy components
- component documentation (i.e., functionality and interface descriptions)
- source code for legacy components
- maintenance history for legacy components (e.g., cost, modification, timeframe, resource utilization)
3.1.6   Validation
After the tasks are completed, the underlying questions for the activity are reviewed. The following are some of the validation criteria for Establish Mining Context:
- Expectations are outlined and understood.
- All relevant legacy systems are identified.
- A set of 10 to 20 product line component needs have been selected with high potential to be satisfied through mining.
- Drivers and priorities are identified and understood.
- A set of 15 to 30 legacy components have been selected as mining candidates.
- The level of mining preparedness has been evaluated.
Establish Mining Context produces the following output artifacts:
- a set of relevant legacy systems and documentation
- a set of selected product line component needs
- major program and technical drivers
- a set of selected legacy components and associated component documentation
- preparedness evaluation
- list of mining issues and concerns
- revised OAR Scheduling Profile
Before completing the Establish Mining Context, the following exit criteria need to be satisfied:
- The mining team has identified a reasonable set of product line needs and candidate components.
- The organization’s expectations are consistent with its level of preparedness.
- The OAR Scheduling Profile has been reviewed and any needed changes have been accepted.
- All output artifacts of this activity have been produced.
- All underlying questions for this activity have been answered satisfactorily.
If the exit criteria are not satisfied, a specialized task may be appropriate. Examples of specialized tasks for the Establish Mining Context activity follow:
- Further identifying mining effort drivers and resolving programmatic and technical issues.
- Further defining product line requirements and component needs in terms of functionality and interfaces.
- Isolating and identifying the functionality and interfaces of legacy components.
- Developing the required level of documentation for legacy components.
[Title Page] [Abstract] [Figures]
4 An Example of an Application of OAR
OAR was used to explore component mining for a Satellite Tracking Agency. This agency supports efforts to develop, acquire, and deploy satellite tracking systems. The agency had an urgent need to mine components from an existing Satellite Tracking System (STS) for the architecture in their Improved Satellite System (ISS). ISS will integrate space assets with a consolidated ground segment. ISS requires some of the capabilities of STS. Because STS already has a set of reliable and validated models, the agency decided to mine and reuse selected components in ISS.
Members of the technical staff at the SEI and agency representatives formed an OAR team to identify relevant components and to estimate the cost and effort required to rehabilitate them for the ISS. The team first established a set of drivers for making decisions on candidate components. These drivers included flexibility of interfaces, satisfaction of real-time constraints, portability and interoperability, and high level of code quality (i.e., high cohesion, low coupling). After examining the STS system, the team selected six legacy system components as mining candidates: two simulation gateways, a message gateway, two truth model components, and a theater event sub-system. The Component Table that appears in Appendix A describes each component.
Three potential wrapping components were identified (the two simulation gateways and the message gateway). These components would not require modifying their internal programs. The other three components (the two truth model components and the theater event sub-system) were identified as potential white box components that would require changes.
Next, the team estimated the basic types of changes required to rehabilitate these components. The OAR team also estimated the effort and cost to develop candidate components from scratch and compared these figures to the cost of mining them. However, since the interfaces for the new system had not yet been fully defined, the cost estimates were preliminary. Once the ISS interface specifications are complete, the cost estimates will need to be reviewed.
Three options for aggregation were developed. The gateway and message components were aggregated as one option. However, since these components all depend on the interfaces that are still undefined, this aggregation may change. The other two components represent coarse-grained groupings of self-contained functionality. They were each treated as separate options. The team then calculated the comparative cost and effort of each aggregation based on the information captured in the Component Table. The team also determined the aggregated level of difficulty and risk for each option. The Options Table in Appendix B presents this data.
[Title Page] [Abstract] [Figures]
5 Conclusion
OAR is a systematic, architecture-centric, decision-making method for mining existing components. It identifies software product line or new system architecture component needs that can be satisfied through mining, as well as those that cannot be satisfied. Candidate components are screened based on criteria that are relevant for the organization. OAR provides management visibility into this highly complex analysis activity. It also provides insights into implicit stakeholder assumptions, constraints, and other major drivers that impact the mining of components. OAR determines the feasibility of mining components at an early stage of a reengineering project. OAR provides insight into technical issues as well as cost and effort estimates and helps to address the problem that many reengineering projects fail due to lack of early insight into the magnitude of an effort.
As a first step OAR establishes the component needs, identifies candidate legacy components and their related documentation, and determines other aspects that define the mining context. Next it inventories the legacy components that can potentially fill identified product line needs, and identifies their characteristics, types of changes needed, and estimated cost and effort. OAR reflects the elicited needs, priorities and concerns of the organization. Its final outputs are a mining option or combination of options that an organization may pursue and a list of product line component needs that can and cannot be satisfied through mining.
OAR has been applied successfully at the Satellite Tracking Agency, and lessons learned from this effort led to the current Version 2. We are planning to apply OAR on other projects and continue to refine and improve the method. We are currently seeking organizations interested in applying the method. In the near future, we will develop a handbook to accompany the method. Eventually, we plan to transition the method to other organizations.
|
[Title Page] [Abstract] [Figures]
References | |
| [Bergey 01] |
Bergey, J.; O’Brien, L. & Smith, D. Options Analysis for Reengineering (OAR). Tutorial presented at ICSE 2001. Toronto, Ontario: May 2001. |
| [Clements 01] |
Clements, P. & Northrop, L. Software Product Lines: Practice and Patterns. Boston, MA: Addison Wesley Longman, Inc., 2001. |
| [Muller 00] |
Muller, H.; Jahnke, J.; Smith, D.; Storey, M.; Tilley, S. & Wong, K. "Reverse Engineering: A Roadmap." 47-60. The Future of Software Engineering. New York, NY: ACM, 2000 . |
[Title Page] [Abstract] [Figures]
|
REPORT DOCUMENTATION PAGE |
Form Approved |
|||||
|
Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden, to Washington Headquarters Services, Directorate for information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302, and to the Office of Management and Budget, Paperwork Reduction Project (0704-0188), Washington, DC 20503. |
||||||
|
1. agency use only (Leave Blank) |
2. report date June 2001 |
3. report type and dates covered Final |
||||
|
4. title and subtitle Options Analysis for Reengineering (OAR): A Method for Mining Legacy Assets |
5. funding numbers F19628-00-C-0003 |
|||||
|
6. author(s) John Bergey, Liam O’Brien, Dennis Smith |
||||||
|
7. performing organization name(s) and address(es) Software Engineering Institute |
8. performing organization CMU/SEI-2001-TN-013 |
|||||
|
9. sponsoring/monitoring agency name(s) and address(es) HQ ESC/XPK |
10. sponsoring/monitoring agency report number |
|||||
|
11. supplementary notes |
||||||
|
12a distribution/availability statement Unclassified/Unlimited, DTIC, NTIS |
12b distribution code |
|||||
|
13. abstract (maximum 200 words) Options Analysis for Reengineering (OAR) is a systematic, architecture-centric means for mining existing components for use in a product line or new software architecture. OAR’s five activities identify potential components, estimate the mining cost, and evaluate the effort required to reuse legacy components in a new software architecture. OAR reveals implicit stakeholder assumptions, constraints, and other major drivers that affect the component mining, thereby giving managers insight into this complex task. |
||||||
|
14. subject terms software architecture, reengineering, mining, software components, reuse, software product lines, evaluation |
15. number of pages 35 |
|||||
|
16. price code |
||||||
|
17. security classification of report Unclassified |
18. security classification of this page Unclassified |
19. security classification of abstract Unclassified |
20. limitation of abstract UL |
|||
|
NSN 7540-01-280-5500 |
Standard Form 298 (Rev. 2-89) Prescribed by ANSI Std. Z39-18 298-102 |
|||||
[Title Page] [Abstract] [Figures]
| 1 | The OAR Scheduling Profile is a template provided by the SEI. |