software reusability ajayinder singh csc - 532. what is software reuse software reuse is the process...

10
SOFTWARE SOFTWARE REUSABILITY REUSABILITY AJAYINDER SINGH AJAYINDER SINGH CSC - 532 CSC - 532

Upload: roy-walker

Post on 31-Dec-2015

216 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SOFTWARE REUSABILITY AJAYINDER SINGH CSC - 532. What is Software Reuse Software reuse is the process of implementing or updating software systems using

SOFTWARE SOFTWARE REUSABILITYREUSABILITY

AJAYINDER SINGHAJAYINDER SINGH

CSC - 532CSC - 532

Page 2: SOFTWARE REUSABILITY AJAYINDER SINGH CSC - 532. What is Software Reuse Software reuse is the process of implementing or updating software systems using

What is Software ReuseWhat is Software Reuse

• Software reuse is the process of implementing or updating software systems using existing software components.

Page 3: SOFTWARE REUSABILITY AJAYINDER SINGH CSC - 532. What is Software Reuse Software reuse is the process of implementing or updating software systems using

Types of Reuse Types of Reuse

• Horizontal Reuse

• Vertical Reuse

Page 4: SOFTWARE REUSABILITY AJAYINDER SINGH CSC - 532. What is Software Reuse Software reuse is the process of implementing or updating software systems using

HORIZONTAL REUSE AND HORIZONTAL REUSE AND VERTICAL REUSEVERTICAL REUSE

• Horizontal reuse to software components used across a wide variety of applications.

• Vertical Reuse the reuse of system functional areas, or domains, that can be used by a family of systems with similar functionality .

Page 5: SOFTWARE REUSABILITY AJAYINDER SINGH CSC - 532. What is Software Reuse Software reuse is the process of implementing or updating software systems using

Organization and Process Organization and Process

• Reusable components should be designed and built in a clearly defined, open way, with concise interface specifications, understandable documentation, and an eye towards future use.

Page 6: SOFTWARE REUSABILITY AJAYINDER SINGH CSC - 532. What is Software Reuse Software reuse is the process of implementing or updating software systems using

CHALLENGES IN SOFTWARE CHALLENGES IN SOFTWARE REUSEREUSE

• Defining an organizational structure for maintaining the product line, including core assets and the customer specific products with special non-core functionality

• Defining a process for producing a new member of the product line (or upgrading an old one) from the core assets with customer specific requirements

• Defining a process for adding functionality to the core product line assets based on new customer requirements

• Instituting a training program for reuse strategies in management, design, implementation, test-all phases of the development process.

Page 7: SOFTWARE REUSABILITY AJAYINDER SINGH CSC - 532. What is Software Reuse Software reuse is the process of implementing or updating software systems using

REUSE COSTSREUSE COSTS

• It is costly

• It involves spans organizational, technical, and process changes, as well as the cost of tools to support those changes, and the cost of training people on the new tools and changes.

Page 8: SOFTWARE REUSABILITY AJAYINDER SINGH CSC - 532. What is Software Reuse Software reuse is the process of implementing or updating software systems using

REUSE PROCEDUREREUSE PROCEDURE

• Component Evaluation

• Component Certification

• Reuse Implementation

Page 9: SOFTWARE REUSABILITY AJAYINDER SINGH CSC - 532. What is Software Reuse Software reuse is the process of implementing or updating software systems using

TOOLS USED IN REUSETOOLS USED IN REUSE

• Component management tools, such as repositories, for architectures, designs, documentation, and code must be developed and maintained

• Domain analysis tools and procedures for the development and maintenance of a domain architecture

Page 10: SOFTWARE REUSABILITY AJAYINDER SINGH CSC - 532. What is Software Reuse Software reuse is the process of implementing or updating software systems using

Reuse Advantages Reuse Advantages

• Higher quality products

• Less development time

• Higher scheduling accuracy

• Reliability