Reuse Organization

Because of the difficulty of reusing software components, each software development facility should have a support organization that is responsible for software reuse. This organization can range from one person (a champion of reuse) to a focus group to an entire department depending upon the size and needs of the facility.

The reuse organization is a support group that promotes the effective reuse of software in order to improve the quality and lower cost of software development, integration, and maintenance. The users of the department are the software engineers responsible for developing new product and support software.

In general the group implements and supports a set of reuse policies and procedures that not only provides users with guidelines for the use of the reuse facilities, but also assures the quality of the reusable components. The group is responsible for restructuring software designed by the project software engineers into reusable components, and act as software architects for the users (i.e., software engineers). Specifically the members are responsible for training and user support, development and maintenance of reusable components, acquisition of reusable components, acceptance and validation of all reusable components, self-evaluation and improvement, policy definition, and maintaining and monitoring the library. This requires a knowledge of the domain or domains and extensive software engineering expertise. The success of the reuse organization is dependent upon the quality and stability of its members.

\begin{figure}\vspace{10in}
\end{figure}

There are three basic roles within the support group: reuse architect, reuse engineer, and librarian. For a large reuse organization there may be more than one person assigned to each role. On the other hand, in a small reuse organization one person may have responsibility for all roles. Figure 2 lists the roles with their expertise, qualifications, and responsibilities.