Lecture Notes for CS 325

The Design Process, 12 February 2001


  1. design moves from the problem model to the solution model

    1. the verb and the noun - to design, and the design

    2. blueprint for a solution

    3. design does not implement the solution model

  2. design principles

    1. modeling a solution to the problem

    2. balancing trade-offs in the solution

    3. criteria for a design

      1. correctness - the design solves the problem

      2. efficiency - the design doesn't imply excessive resource use

      3. simplicity - the design can be comprehended

  3. design methodologies or techniques - systematic approaches to design

    1. divide and conquer

      1. subdivision into manigable modules

      2. inter-module communication

      3. modifiable and independnet modules

      4. whole-part hierarchies

    2. abstractions

      1. detal management

      2. levels of abstraction

      3. implementation details

      4. functional abstraction

      5. data abstraction

    3. function oriented or object oriented design

  4. module level concepts

    1. a module is a unit of independent existence

    2. module criteria - coupling and cohesion

    3. coupling

      1. modules can't be independent

      2. coupling measures inter-module dependence - high, bad; low, good

      3. difficult to quantify, but there are clues

      4. interface size and definedness - large or loosely defined interfaces suggest high coupling

      5. information flow and complexity - bigger or complex flows suggest high coupling

      6. information type - complex data types or control data suggests high coupling

    4. cohesion

      1. intra-module connectedness

      2. cohesion measures relatedness within a module

      3. types or levels of cohesion

        1. functional - the best, every module part contributes to the modules single behavior

        2. communication - one module part talks to another

        3. temporal - module parts execute at the same time

      4. classify cohesion using the sentence test - a single, simple sentence describes a functionally cohesive module

  5. two design levels

    1. systems or top-level design

      1. outside the box

      2. structural

    2. detailed or logical or low-level design

      1. inside the box

      2. algorithmic


This page last modified on 19 February 2001.