Reuse-Oriented Model

Reuse-Oriented Model

Software reuse commonly occurs informally in many projects, where existing designs or code are adapted to meet project requirements. Reuse-oriented approaches rely on a repository of reusable components and an integrating framework for their composition.

This reuse-oriented model has two main subtypes of use. These reuses are-

  1. Informal Reuse: Occurs spontaneously within a project. Developers identify and modify existing designs or code to fit project needs.

  2. Formal Reuse: Involves a structured process and a repository of reusable components. Emphasizes the use of existing components and frameworks.

Reuse-Oriented Process Model has mainly four stages. Now let us understand about these stages in detail-

  1. Software specification:

    • Defining what services are required from the system and identifying the constraints on the operation and development of the system.

    • This involves gathering and finalizing the requirements and all the statistical data required for the development of the software.

  2. Component Analysis:

    • Search for components that can implement specified requirements.

    • Components may not provide exact matches, requiring modifications or alternative solutions.

  3. Requirements Modification:

    • Analyze requirements based on discovered components.

    • Modify requirements to align with available components.

    • Re-enter component analysis if modifications are impossible.

  4. System Design with Reuse:

    • Design or reuse a framework, considering the components to be reused.

    • New software design may be necessary if reusable components are unavailable.

  5. Development and Integration:

    • Develop software that cannot be externally procured.

    • Integrate components and Commercial Off-The-Shelf (COTS) systems to create the new system.

    • System integration may be integrated into the development process.

  6. Requirement validation:

    • The developed software is thoroughly checked to ensure that it aligns with the specified requirements and meets customer expectations.

    • Here the software is checked to ensure that it is what the customer requires.

Types of Reusable Components:

  1. Web Services: Developed according to service standards and available for remote invocation.

  2. Collections of Objects: Developed as a package for integration with component frameworks like .NET or J2EE.

  3. Stand-Alone Software Systems: Configured for use in a specific environment.

Now let us understand the Advantages and Disadvantages ReuseOriented model:

Advantages:

  • Reduces development effort and costs.

  • Accelerates software delivery.

Disadvantages:

  • Inevitable requirements compromises may lead to a system not fully meeting user needs.

  • Some control over system evolution is lost as updates to reusable components are not under the user organization's control.

Reuse-oriented software engineering offers efficiency gains through the use of existing components but poses challenges in managing compromises and maintaining control over system evolution.