Software Reusability An efficient way in Software Development By Tejaswi Peesapati

Preview:

Citation preview

Software ReusabilitySoftware Reusability An efficient way in Software An efficient way in Software

DevelopmentDevelopment

ByTejaswi Peesapatiwww.tejaswi.co.nr

Re-Usability?Re-Usability?Building Software from reusable

components.Components are not just

“code” !!Components include all the

products in the SDLC, i.e., Requirements and proposals, specifications and designs, etc.,

Why Reusability?Why Reusability?Increases ProductivityIncrease QualityIncreases ReliabilityDecreases CostsDecreases Time

Types of Reusability..Types of Reusability..Horizontal ReusabilityVertical Reusability

Horizontal Reusability..Horizontal Reusability..Refers to Software Components

having wide variety of applications.

For example, in Code, it can be Libraries, or any GUI functions.

Using Commercial Off-the-Shelf(COTS) or third party applications , falls under this category.

Vertical Reusability..Vertical Reusability..Neglected, but more potential.Basic idea is to reuse system’s

functional areas, or domains in other similar functional system.

Here, it can be a like a steering mechanism in cars [:p], for different models of same make.

Creating Reusable Creating Reusable Software..Software..Reusability don’t just happen !! It

should be made.Sometimes, it is more managerial

than technical to implement reusabilty.

Development Process..Development Process..Reusable components should be

designed in a way that they can be used in future.

Typical ‘Contract Projects’ are built for one time use.

Here Key Abilities areCollect and Maintain reusable

components repository.Using reusable components in

new/existing systems.

Organizational Abilities..Organizational Abilities..Resources and funding for Reuse

Tasks.Training on Reusable

components to members.Tech & Non Tech Aspects to

Managers.One should take responsibility to

maintain repository.

Technical ProficiencyTechnical Proficiency ....Should be more than that of ordinary

development.Along with OOPS, Layered Archic.,

should be familiar with ‘Domain Analysis’(DA).

DA involves the identification of components in the variations of a common component.

Standard Coding Practices, Code Documentation also plays an Imp role.

The Capital for The Capital for Reusability..Reusability..The costs are higher than regular

one.But is always advantage in long

run of a component.Initial capital may be Technical ,

Organizational and process changes, Cost of tools to support changes, training staff members, etc.,

Domain Analysis & Sys. Domain Analysis & Sys. Arch..Arch..A group of experts are formed to

implement Product Line Approach.Domain is partitioned into

individually developable components.

After DA, in System Architecture, a group creates interfaces in a way that they can be modified later without disturbing rest of the system

Clear & Complete Documentation of Arch. And Design is proposed and scrutinized by experts.

Tools Required..Tools Required..Repositories should be

maintained.Tools should be developed to

assist in integration of arch, design and products.

Configuration mgmt. tools should be used to track evolution of product line.

People.. { We.. ;) }People.. { We.. ;) }Most important part of Reusability

process.They should understand the reusablilty

concept, and benefits for best results.Training programs to Staff members.Takes twice the time to that of

regular., so, mgmnt. Should encourage and reward.

Then importance & +ves of ReUse become popular.

Advantages..Advantages..Increased Reliability

Components exercised in working systems.

Reduced Process Risk

Less Uncertainty in development costs.

Advantages..Advantages..Effective Use of Specialists

Reuse components, instead of people.

Accelerated Development

Avoid original development, and hence speed-up production.

SoooooooSoooooooReusability:: Reduces the costs, time to a

greater extent.:: Increases quality, reliability

Reusability has a great “Road Ahead..” !!

Questions..???Questions..???

Thank You Thank You !!!!

<<exit>><<exit>>

Recommended