1 / 12

Software Reuse

Software Reuse. Objectives To explain the software reuse, its benefits and some reuse problems To describe different types of software reuse and how they can be incorporated into the software development at various levels. Reuse-based software engineering. Application system reuse

trubin
Download Presentation

Software Reuse

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Reuse • Objectives • To explain the software reuse, its benefits and some reuse problems • To describe different types of software reuse and how they can be incorporated into the software development at various levels

  2. Reuse-based software engineering • Application system reuse • The whole of an application system may be reused either by incorporating it without change into other systems or by developing application families • Component reuse • Components of an application from sub-systems to single objects may be reused • Function reuse • Software components that implement a single well-defined function may be reused

  3. Types of Software Reuse • Ad-hoc reuse • Intra-Project reuse • Inter-Project reuse • Enterprise-level reuse • Horizontal Reuse • Vertical Reuse

  4. Component development for reuse • Components for reuse may be specially constructed by generalising existing components • Component reusability • Should reflect stable domain abstractions • Should hide state representation • Should be as independent as possible • The more general the interface, the greater the reusability

  5. Reusable components • The development cost of reusable components is higher than the cost of specific equivalents. • This extra reusability enhancement cost should be an organization rather than a project cost • Generic components may be larger and slower than their specific equivalents

  6. Reusability standards • Name generalisation • Operation generalisation • Exception generalisation • Component certification

  7. Reusable Component Design

  8. Application families • An application family or product line is a related set of applications that has a common, domain-specific architecture • The common core of the application family is reused each time a new application is required • Each specific application is specialised in some way • Application family architectures must be structured in a way that separates different sub-systems and allows them to be modified

  9. Application family specialisation • Platform specialisation • Different versions of the application are developed for different platforms • Configuration specialisation • Different versions of the application are created to handle different peripheral devices • Functional specialisation • Different versions of the application are created for different customers

  10. Training and incentives for reuse • Specialized training of the staff is very essential • People should be convinced about the concept behind reuse and its benefits • Providing incentives to the individuals who contribute to the reuse initiative • Long term vs. short term benefits

  11. Benefits of reuse • Increased reliability • Components already tested • Reduced process risk • Less uncertainty in development costs • Effective use of specialists • Reuse of components instead of people • Standards compliance • Accelerated development

  12. Reuse problems • Lack of tool support • Maintaining a component library • Finding and adapting reusable components • No planning for reuse • Reuse confined to an individual or within one system • Limited to code-level reuse • No or negative reuse incentives • Cost of reuse is too high • Inability to recognize what has high potential for reuse • No reuse activities defined as part of the software life cycle process

More Related