Properties to Maximize Reuse
- Hypothesis: It may be harder to build with "good" reusable components.
- Properties of "good" reusable components:
- Portable
- Low Coupling/High Cohesion (ADT)
- Low Interference
- Functional Closure/Completeness
- Understandability
- Impediments to Understandability:
- Side Effects
- Exceptions
- Files
- Garbase Collection
- Memory Mapping
- Models of Computation
- Synchronization
- Inadequate languages
- different world views
- technology
- Multiple Viewpoints:
- What vs. Why?
- Formal Specifications
- Syntactic Specs: Argument Order/Types
- Categorization
- Dynamic/Operational
- Failure Mode
- Performance
- Conceptual
- Resource Utilization