Thursday 29 December 2011

Examples of Software Reuse:


Example: 1 . ENGINEER'S TASKS
Reuse requires new job roles and different tasks for the engineer. This will be illustrated with an analogy to the task of home construction. The advent of prefabricated parts for home construction has provided home builders with a less costly alternative to construction from scratch. Home builders can rely upon standard parts which may be used to construct homes in a much shorter time than historically possible. However before such prefabricated parts are made available to the home builder, they must be specified, designed and created.

Analogously, one of the roles necessary with reuse is the producer engineer who creates the reusable assets. Among, the changes that the producer engineer will find in the task of creating reusable software relative to regular software product development are:
* Increased design time
In constructing prefabricated home parts, designing a door for a single instance of use is generally less complex than designing one that would accommodate usage for several rooms in a home or in several types of homes. Likewise, designing software for a one time use generally takes less time than that required to make the software reusable. The new challenge lies in designing the software for multiple products. New roles created include the domain expert and domain analyst who perform analyses to specify the requirements prior to the design of the assets. A is a domain expert person who is very knowledgeable about a particular domain. This person will generally be aware of existing and planned products in the domain. A domain analyst extracts and analyzes information about a domain from existing components, product plans, domain experts and other sources to produce domain models.
* Understanding of multiple contexts of use
Just as a home parts builder anticipates the conditions and contexts of how a door will be used (e.g. weather conditions), the producer engineer needs to anticipate how the asset will be used in future reuses.


* Reallocation of time
Without reuse, the engineers' time is spent developing software from scratch. With reuse, user engineers spend more of their time locating, understanding and integrating reusable components.
* Increased documentation
In order to facilitate understanding and therefore reuse of software, adequate documentation is required for the user.
The consumer engineer employs the reusable assets. Just as a home builder designs a home with the knowledge of what prefabricated parts are available, the user engineer practices asset-centered design, designing a product which takes advantage of the available reusable assets. Among the changes that the user engineer will find in the task of reusing software relative to regular software product development are:
Example 2 . MANAGER'S TASKS
New tasks and roles will also be created for the managers. All managers will need to focus not just their own projects but also on how they can contribute to the success of the organization's portfolio of projects. An essential aspect of this view is to understand that reuse is a strategic investment requiring long term commitment which will pay back in the long run.
The new roles of reuse sponsor, champion, or manager may also be created.
The sponsor is usually a manager(s) who authorizes and reinforces the reuse program. The primary job of the sponsor is to oversee and ensure that the reuse program has adequate resources.
The reuse champion is the individual or group who advocates and supports the reuse program. This champion, who may be a manager or engineer, is an evangelist for software reuse and has the key role of convincing and selling the reuse concept to constituencies. Successful reuse champions are usually individuals who are well-respected for their technical and personal leadership.
The reuse manager has the overall responsibility for reuse planning, managing the flow of information and assets between producers and consumers, and for ensuring that the infrastructure supports the reuse effort. An effective reuse manager has the ability and skills to understand and handle process issues, coordinate collaboration of several different organizations, recognize and balance short and long term goals .It is important to note that many or a single individual can serve any or all of these roles.

No comments:

Post a Comment