Reuse Oriented methodology emphasises that an existing software system can be reused in the development of some other software application. This method helps to reduce the amount of work required in creating the whole process of developing a software component from the scratch.
This kind of method is adopted in case a software component to be developed has the similar functionality as that of the existing one. The same existing code is utilised with few necessary modifications in it.
This term is in common use in the software industry. Reusability is widely used for improvisation of a software product. It helps in the creation, management and use of high-quality software products.
Reuse of available code segments,use-cases,designs,architechture and specifications serves a useful purpose in solving or dealing with the development of a new software system.
There are several steps that one needs to go through to make this method a systematic one.
Following are the processess on which this methodology relies:
Requirement Specification - In this step, the key requirement specifications are noted .
Component Analysis - On the basis of the requirement specifications , those components that need to be put to use are identified and analysed .
Requirements modification - the next phase is about analysing the component's use in the prevailing situation, and necessary modifications are made. If it is observed that component does not serve any relevant purpose then the entire process is iterated to reach a valid solution.
System Design with Reuse - At this stage the system architects start designing a layout of how the reusable components should be integrated into the new system. They design a framework or use an existing framework .
Development and Integration - This is basically a part of system integration. The components are integrated with external components(also known as Commercially-off-the-shelf products).
Few areas where re-use approach is used :
Often used in the development of web services which are then available on the server side for remote method invocation.
Packages integrated with a framework for .NET or Java.
With this approach, definitely the time investment in the development process is minimum.
Possibility of errors is reduced to a great extent because it had already passed the testing phases previuosly.
If careful attention is not paid in the initial phase of requirements gathering whether the component suits our purpose or not, then it can mislead us into the development of a wrong product.
Not reliable at all times, as an existing system may not cater to our needs.