The premise behind the Reuse Model is that systems should be built using existing components, as opposed to custom-building new components. The Reuse Model is clearly suited to Object-Oriented computing environments, which have become one of the premiere technologies in today’s system development industry.
Within the Reuse Model, libraries of software modules are maintained that can be copied for use in any system. These components are of two types: procedural modules and database modules.
When building a new system, the developer will “borrow” a copy of a module from the system library and then plug it into a function or procedure. If the needed module is not available, the developer will build it, and store a copy in the system library for future usage. If the modules are well engineered, the developer, with minimal changes, can implement them.
The Reuse Model steps
The Reuse Model consists of the following steps:
– Definition of Requirements Initial system requirements are collected. These requirements are usually a subset of the complete system requirements.
– Definition of Objects The objects, which can support the necessary system components, are identified.
– Collection of Objects The system libraries are scanned to determine whether or not the needed objects are available. Copies of the needed objects are downloaded from the system.
– Creation of Customized Objects Objects that have been identified as needed, but that are not available in the library are created.
– Prototype Assembly A prototype version of the system is created and/or modified using the necessary objects.
– Prototype Evaluation The prototype is evaluated to determine if it adequately addresses customer needs and requirements.
– Requirements Refinement Requirements are further refined as a more detailed version of the prototype is created.
– Objects Refinement Objects are refined to reflect the changes in the requirements.
Problems/Challenges Associated with the Reuse Model
A general criticism of the Reuse Model is that it is limited for use in object-oriented development environments. Although this environment is rapidly growing in popularity, it is currently used in only a minority of system development applications.