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>>