Reuse Engineering
- Reuse Engineering
- the activity consisting of the cohesive collection of all
tasks that are primarily performed to increase the reuse
on endeavors of certified reusable work products
The typical goals of reuse engineering are to:
- Ensure that an optimal supply of high-quality reusable
work products are available within the development
organization
- Ensure that these reusable work products are available to
all project teams for reuse.
The typical objectives of reuse engineering are to:
- Ensure that the supply of reusable work products is
optimal in size, scope, and applicability.
- Ensure the quality of the reusable work products is high
enough to justify reuse.
- Ensure that the reusable work products are available to
all endeavor teams for reuse.
Typical examples of reuse engineering include:
- Project-internal reuse engineering (i.e., reuse
restricted to the scope of a single project).
- Organizational-internal reuse engineering (i.e., reuse
restricted to a single development organization).
- Organizational-external reuse engineering (i.e., reuse
that includes the development organization, its subcontractor
organizations, and potentially even its partner
organizations.
Additional examples of reuse engineering include:
- Reuse engineering using only COTS software
components.
- Reuse engineering using internally-developed work
products including documentation as well as software,
hardware, and data components.
Reuse engineering typically may begin when the following
conditions hold:
- The need for increasing reuse within the organization has
been recognized.
- Adequate funding and staffing to begin supporting the
reuse engineering activity has been allocated.
- The
reuse
team is adequately:
- Staffed.
- Trained or experienced in reuse engineering.
Although never truely finished as long as any endeavors are
underway, the majority of reuse engineering is typically
considered complete when the following postconditions hold:
- The reuse repository exists.
- The reuse repository contains many relevant, high
quality, and certified reusable work products.
- The reuse repository is being used heavily and
effectively by both the reuse team and endeavor teams.
- User satisfaction with the repository is high.
Reuse engineering typically involves the
reuse
team performing the following reuse tasks in an iterative,
incremental, and parallel manner:
Reuse engineering is typically performed using the following
environment(s) and associated tools:
-
Reuse Environment:
- Configuration management tools
- Knowledge management tools
- Documentation tools
- Test tools
Reuse engineering typically results in the production of the
following work products.
Reuse engineering tasks are typically performed during the
following phases:
- The reuse of previously developed, high-quality work
products:
- Increases the quality of applications, components, and
associated documentation.
- Decreases both development and maintenance costs.
- Decreases time to market.
- Decreases endeavor risks.
- Improves communication amongst endeavor
stakeholders.
- Improves training effectiveness.