Reusability
- Reusability
- the development-oriented quality factor
representing the degree of the easiness of reusing all or part of a
work product
As illustrated in the preceding figure, Reusability is part of the following inheritance hierarchy:
- Type: Abstract
- Superclass: Development-Oriented Quality Factor
- Subclasses:
The typical responsibilities of reusability are to:
- Model the degree to which all or part of work products can be reused.
- Support the analysis and specification of
reusability requirements.
- Provide a foundation for evaluating the quality of an architecture.
Reusability is typically decomposed into the following aggregation hierarchy of subfactors:
- Reuse as is
(e.g., reuse of a component or subcomponent without modification).
- Reuse with minor modifications
(e.g., reuse of a component after modifications to its design or implementation).
- Reuse with major modifications
(e.g., reuse of a component after modifications to its architecture or interfaces).
Reusability is typically measured in terms of:
- Percent of work products reused
- Number of time the work products reused
Typical mechanisms for implementing reusability include:
The following guidelines have been found to be useful regarding reusability:
- Reuse Scale.
Reuse can occur at any scale such as:
- Reuse of entire “boilerplate” sections of
documents down to individual sentences such as textual requirements.
- Reuse of entire software components through reuse of individual classes or operations.
- Reuse Validation.
In order to validate requirements specifying potential
reusability on future applications, the document or component
must meet acceptability criteria (e.g., in terms of quality,
documentation, and associated tests) published by the reuse
organization. Of course, one does not know if the potentially
reusable as documentation and components are in fact reusable
until they have actually been reused several times during future endeavors.