"The level of reuse may be related to internal software properties such as":
- "Class size: A large class may be harder to understand, and thus more difficult to reuse. Leverage reuse of a larger sized class may be especially difficult.
- Nature and 'complexity' of control flow: A class with a complicated decision structure in the implementation of a class method may also be more difficult to reuse, especially if modifications are necessary.
- Nature and 'complexity' of data flow: Many data dependencies may also make more difficult.
- Size and 'complexity' of interfaces: Many speculate that a large and complicated interface makes reuse more difficult. I suspect that interface complexity will affect direct reuse of e server entity more than the above internal attributes.
In addition to the public/private classification described before, reuse can also be classified as verbatim/generic/laverage, and direct/indicrect.
Object oriented languages support reuse in the following ways:
- verbatim reuse through instantiation and use of proviously defined classes,
- generic reuse through generic templates,
- leverage reuse through inheritance.
Verbatim reuse is reuse without modifications. Leverage reuse is reuse with modifiactions. Generic reuse is reuse of generic packages.
Direct reuse is reuse without going through an intermidiate entity. Indirect reuse is reuse through an intermediate entity. The level of indirection is the number of intermediate entities between a client and a server."
|