190 likes | 290 Views
Software Reusability An efficient way in Software Development. By Tejaswi Peesapati www.tejaswi.co.nr. Re-Usability?. Building Software from reusable components. Components are not just “code” !!
E N D
Software ReusabilityAn efficient way in Software Development By Tejaswi Peesapati www.tejaswi.co.nr
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? • Increases Productivity • Increase Quality • Increases Reliability • Decreases Costs • Decreases Time
Types of Reusability.. • Horizontal Reusability • Vertical 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.. • 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 Software.. • Reusability don’t just happen !! It should be made. • Sometimes, it is more managerial than technical to implement reusabilty.
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 are • Collect and Maintain reusable components repository. • Using reusable components in new/existing systems.
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 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 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. 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.. • 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.. ;) } • 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.. • Increased Reliability Components exercised in working systems. • Reduced Process Risk Less Uncertainty in development costs.
Advantages.. • Effective Use of Specialists Reuse components, instead of people. • Accelerated Development Avoid original development, and hence speed-up production.
Sooooooo • Reusability :: Reduces the costs, time to a greater extent. :: Increases quality, reliability Reusability has a great “Road Ahead..” !!