Page 52 -
P. 52
2.1 Software process models 35
Requirements Component Requirements System Design
Specification Analysis Modification with Reuse
Development System
Figure 2.3 Reuse-oriented and Integration Validation
software engineering
2.1.3 Reuse-oriented software engineering
In the majority of software projects, there is some software reuse. This often happens
informally when people working on the project know of designs or code that are
similar to what is required. They look for these, modify them as needed, and incor-
porate them into their system.
This informal reuse takes place irrespective of the development process that is
used. However, in the 21st century, software development processes that focus on the
reuse of existing software have become widely used. Reuse-oriented approaches rely
on a large base of reusable software components and an integrating framework for
the composition of these components. Sometimes, these components are systems in
their own right (COTS or commercial off-the-shelf systems) that may provide spe-
cific functionality such as word processing or a spreadsheet.
A general process model for reuse-based development is shown in Figure 2.3.
Although the initial requirements specification stage and the validation stage are
comparable with other software processes, the intermediate stages in a reuse-
oriented process are different. These stages are:
1. Component analysis Given the requirements specification, a search is made for
components to implement that specification. Usually, there is no exact match and
the components that may be used only provide some of the functionality required.
2. Requirements modification During this stage, the requirements are analyzed using
information about the components that have been discovered. They are then mod-
ified to reflect the available components. Where modifications are impossible, the
component analysis activity may be re-entered to search for alternative solutions.
3. System design with reuse During this phase, the framework of the system is
designed or an existing framework is reused. The designers take into account the
components that are reused and organize the framework to cater for this. Some
new software may have to be designed if reusable components are not available.
4. Development and integration Software that cannot be externally procured is
developed, and the components and COTS systems are integrated to create the
new system. System integration, in this model, may be part of the development
process rather than a separate activity.