Introduction & SDLC · Software Engineering

Software Reuse

Watch lectures

Software Reuse

Definition

Software Reuse is the practice of using existing software artifacts (code, designs, components, documentation, test cases) to build new software, instead of developing everything from scratch.

Types of Reusable Artifacts

  • Source code modules/functions/classes
  • Design patterns and architectures
  • Libraries and frameworks
  • Documentation and test plans
  • Domain knowledge / requirement templates

Levels of Reuse

Level Description Example
Code reuse Reusing functions, classes, modules Utility libraries, data structures
Design reuse Reusing architecture/design patterns MVC pattern, design patterns (Singleton, Observer)
Component reuse Reusing pre-built components Third-party UI components, plugins
Application/System reuse Reusing whole systems/frameworks ERP frameworks, COTS (Commercial Off-The-Shelf) software

Approaches to Reuse

  1. Black-box reuse — using a component without modification (e.g., library function)
  2. White-box reuse — modifying/adapting existing source code to fit new needs

Advantages

  • Reduces development time and cost
  • Improves reliability (reused components are already tested)
  • Increases productivity
  • Promotes standardization across projects

Disadvantages / Challenges

  • Reused components may not perfectly fit new requirements (adaptation needed)
  • Licensing and compatibility issues
  • Maintenance dependency on third-party components
  • Requires investment in building reusable, well-documented components initially

Relation to Software Crisis

Reuse is one of the key strategies (along with better process models) proposed to combat the software crisis by reducing redundant effort.


Exam tip: Be ready to distinguish Black-box vs White-box reuse and list 2–3 levels of reuse with examples.

Official AppAndroid App

PYQDeck for Android

Solve BEU previous-year exam papers anywhere, anytime. Fast search, offline paper viewing, and step-by-step solutions designed specifically for your phone.

← All Software Engineering modules