Development for and with reuse

Software development is understood as the development of a (part of a) sofware component. Software components can be manipulated from three different views [Stab 91]:

a) The reuse supervisor maintains the reuse components and is the only one who has "write" access to the component library.

b) The reuse consultant knows about the content of the whole library and is able to share his knowledge with "ordinary" reusers.

c) Each reuser has a partial view of the library and constructs particular applications using his view. The approach also supports the development of software by a group of reusers.
For each view different operations are allowed:

a) The reuse supervisor has the right to release new views of the component. He may extend existing views and replace parts within a view.

b) A reuse consultant may inspect the whole library and tell the supervisor that a view needs restructuring.

c) Ordinary reusers may produce new versions of their view by extending, combining and changing views and may prepare a new version for submission to the supervisor. Cooperation between several reusers is achieved by formal support for the integration of software objects and by formal support for conversation between different developers [Rose 91].