View this PageEdit this PageUploads to this PageHistory of this PageHomeRecent ChangesSearchHelp Guide

Nugget: High-level Design


The high-level design course teaches the principles of designing software. This is the course complement to the high-level design practicum and must be taken before or concurrently with this practicum. The high-level design course includes the following topics:

  • General design principles including
    • Abstraction
    • Refinement
    • Modularity, coupling and cohesion
    • Modeling

  • Fundamentals of software architecture, including the basic architectural components and styles, architectural descriptions, and architectural analysis.
  • Modeling of control structures
  • Modeling of data structures
  • Techniques for producing a high-level design specification
  • Design rationale recording techniques
  • Methods for moving from requirements to desing and techniques for tracing and verifying the design back to the requirements.

Recommended Texts:
  • Software Architecture in Practice. Bass et al. Addison-Wesley, 1998.

Instructor Preparation:
  • Handouts on general design and design rationale
  • Small projects for practice
  • Lots of examples of specified models
  • Examples of completed specifications

Recommended Resources:
  • Rationale or other general modeling tool
  • Word processing program for every student