Copyright Nancy Leveson, Sept 1999 General Software Design Concepts(2 Decomposition(cont) Iterative decision making process List difficult decisions and decisions likely to change Design a module specification to hide each such decision Break module into further design decisions Continue refining until all design decisions hidden in a module Program Families: design for flexibility, not generalityCopyright Nancy Leveson, Sept. 1999 General Software Design Concepts (2) Decomposition (con’t.) Iterative decision making process: List difficult decisions and decisions likely to change Design a module specification to hide each such decision Break module into further design decisions. Continue refining until all design decisions hidden in a module Program Families: design for flexibility, not generality � c