Download presentation
Presentation is loading. Please wait.
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 Reduced process risk
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.