Software reuse and software reuse oriented software engineering

What is software reuse?

Software reuse is a term used for developing the software by using the existing software components. Some of the components that can be reuse are as follows;

What are the advantages of software reuse?

  • Less effort: Software reuse requires less effort because many components use in the system are ready made components.
  • Time-saving: Re-using the ready made components is time saving for the software team.
  • Reduce cost: Less effort, and time saving leads to the overall cost reduction.
  • Increase software productivity: when you are provided with ready made components, then you can focus on the new components that are not available just like ready made components.
  • Utilize fewer resources: Software reuse save many sources just like effort, time, money etc.
  • Leads to a better quality software: Software reuse save our time and we can consume our more time on maintaining software quality and assurance.

What are Commercial-off-the-shelf and Commercial-off-the-shelf components?

Commercial-off-the-shelf is ready-made software. Commercial-off-the-shelf software components are ready-made components that can be reused for a new software.

What is reuse software engineering?

Reuse software engineering is based on guidelines and principles for reusing the existing software.

What are stages of reuse-oriented software engineering?

Requirement specification:

First of all, specify the requirements. This will help to decide that we have some existing software components for the development of software or not.

Component analysis

Helps to decide that which component can be reused where.

Requirement updations / modifications.

If the requirements are changed by the customer, then still existing components are helpful for reuse or not.

Reuse System design

If the requirements are changed by the customer, then still existing system designs are helpful for reuse or not.


Existing components are matching with new software or not.


Can we integrate the new systems with existing components?

System validation

To validate the system that it can be accepted by the customer or not.

software reuse
Figure: reuse-oriented software engineering

software reuse success factors

  1. Capturing Domain Variations
  2. Easing Integration
  3. Understanding Design Context
  4. Effective Teamwork
  5. Managing Domain Complexity

How does inheritance promote software re-usability?

Inheritance helps in the software re-usability by using the  existing components of the software to create new  component.

In object oriented programming protected data members are accessible in the child and so we can say that yes inheritance promote software re-usability.

Reuse of software helps reduce the need for testing?
This statement is true just for those components that are ready made and are ready to be reuse. New components must be test.

Frequently Asked Questions (FAQ)

Design patterns does not follow the concept of software reuse.
a) True
b) False
Answer: b
Explanation: Design patterns allow the system designer to create the architecture of the system by integrating the reusable components of the system.

What parts of a software project can be reuse?

All parts of the project with your own property ownership or free to use source codes and documents etc.

A ______ is a set of premade software that you can reuse and reapply.
Answer: The standard library is a set of premade software that you can reuse and reapply.