Software Reuse in Software Engineering

Dec, 09 2020, 01:17 pm [IST]
Software Reuse in Software Engineering

Software Reuse

Building software from reusable components.

  • To illustrate the benefits of software reuse and some reuse difficulties
  • To define different types of reusable components and processes for reuse.
  • To introduce application families as a route to reuse.

Reuse based software engineering

Application system reuse

The bulk of an application system may be reused either by consolidating it without change into other systems are by generating application families.

Component reuse

Components of an application from sources to single objects may be reused.

Function reuse

Software components that execute a single well-defined function may be reused.

Benefits of reuse

Increased reliability - components exercised in working systems.
Reduced process risk - less uncertainty development costs
Effective use of specialists - reuse components instead of people.
Standards compliance - embedded standards in reusable components.
Accelerated development - avoid original development and hence speed up production.

Requirements for design reuse

  • It must be achievable to find suitable reusable components.
  • The reuser of the component must be sure that the compounds will be stable and will act as specified.
  • The components need to be documented so that they can be recognized and appropriate, modified.

Reuse problem

  • Increased maintenance costs
  • Lack of tool support
  • Not invented here syndrome
  • Maintaining a component library
  • Finding and adapting reusable components

Design for reuse

  • Reusable components tend to be general.
  • The designer must be able to find out what services module to be reused provides.
  • Reuse consideration leads to the development of families of related components.

Generator based reuse

Program generators include the reuse of standard models and algorithms.

These are set in The generator and parameterized by necessary commands a program is then automatically created.

Generator-based reuse is possible when domain abstractions and their mapping to executable code can be identified.

A domain-specific language is used to design and manage these abstractions.

Program generators

Types of the program generator

  • Application generators for business data processing.
  • parser and lexical analyzer dynamos for language processing.
  • Code generator in CASE tools.

Generator-based reuse is quite cost-effective but its applicability is restricted to a relatively small number of application domains. It is simpler for end-users to generate programs using generators compared to other compound based plans to reuse.

Component development for reuse

Components we use may be specially constructed by generalizing existing components.

Component reusability

  • Should reflect stable domain abstractions
  • Should hide state presentation
  • Should be as independent as possible
  • Should publish exceptions through the component interface.

The major general the interface, the greater the reusability but it is made more Difficult and so less usable.

Reusable component

The construction cost of reusable components is more expensive than the cost of particular equivalents. This more reusability improvement cost should be an organization rather than a project cost. Generic components may be larger and slower than their specific equivalents.

Reusability enhancement

Name generalization

Names in a component may be changed so that they are not yet managing the production of a particular application entity.

Operation generalization

Operations may be appended to produce additional functionality and application-specific operations may be removed.

Exception generalization

Application-specific exceptions are removed and exception management is added to increase the robustness of the component.

Component certification

The component is certified as reusable.

Application families

An application product line is a similar set of applications that has a well-known domain-specific design. The general core of the application family is normally each time a new application is needed. All Applications specialized in some way. Application family architectures must be structured in a way that separates different subsystems and allows them to be modified.

Application families specialization

Platform socialization

A different version of the application and development of different platforms.

Configuration specialization

Various versions of the application are designed to handle different external devices.

Functional specialization

Different versions of the application are all created for the customer with different requirements.

Key points

  • Design with reuse includes designing software about good design and existing components.
  • Benefits are lower costs, faster software development under lower risks.
  • Software components for reuse should be autonomous, indicate steady domain abstractions, and give access to the state through interface operations.
  • Application families are related to application development around a common Core.




Details About Software Quality Assurance

Dec, 16 2020, 12:02 pm [IST]
Details About Software Quality Assurance


Software quality assurance Software quality is described as conformance to explicitly state functional and performance requirements, explicitly documented standards and implicit features that are anticipated of all professionally developer software ... Read More

Details About Tunnelling and Encapsulation in Mobile IP

Dec, 10 2020, 02:19 pm [IST]
Details About Tunnelling and Encapsulation in Mobile IP


A tunnel establishes a virtual pipe for data packets between a tunnel entry and a tunnel endpoint. Packets entering a tunnel are forwarded inside the tunnel leave the tunnel unchanged. Tunneling, that is, sending a packet through a tunnel, is achieved by using encapsulation ... Read More

Details About Software Architecture

Dec, 06 2020, 12:17 pm [IST]
Details About Software Architecture


The overall structure of the software components and how the success provides a conceptual integrated file system. In other words, architecture is the hierarchical structure of program components, how these components interact, and the structure of data that are used by the components ... Read More

Details About Real-Time And Distributed System Design

Dec, 04 2020, 01:28 pm [IST]
Details About Real-Time And Distributed System Design


Real-time and distributed system design The real-time system is a software system the correct functioning of the system depends on the results produced by the system the time at which these results are produced ... Read More

Explanation About Software Project Lifecycle Model

Dec, 02 2020, 12:39 pm [IST]
Explanation About Software Project Lifecycle Model


Waterfall Model The waterfall model also called classic life cycle requirements is well defined and stable. It suggests a systematic, sequential approach to software development. It begins with customer specification of requirements and processes through planning, modeling, instruction, and deployment ... Read More

Software Design Concepts in Software Engineering

Dec, 13 2020, 12:01 pm [IST]
Software Design Concepts in Software Engineering


Software Design A software design is an essential engineering description of some software product that is to be established. A design can be determined to the customer's requirements and can be assessed for quality against predefined patterns ... Read More

Go to Top


About Us | Contact Us | Disclaimer | Privacy Policy | Sitemap | Terms and Conditions

Copyright © 2021 TeluguAsami. All rights reserved.