Categories of Design Decisions
Decomposition (composition)
- Breaking an algorithm or data structure into pieces
- Subprograms; records
State introduction (procedure introduction)
- Saving the results of a computation for later use
- Temporary variables; hash tables
Specialization (generalization)
- Treating a general problem as a set of special cases
- Unions; case statements