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

Nugget: Design II


The Design II course is a supplement to the Design I course. The main focus of the course is to introduce low-level design concepts and tools. The Design II course covers the following topics:

  • Conveying ideas via documents, diagrams, and charts
    • PDL V program design language (pseudo-code)
    • State-transition diagrams
    • Data-flow diagrams
    • CASE tools
  • Design architectures:
    • Top-Down V decomposition of a program
      • Information hiding
      • Formalize each level
      • Progressively moving down each level
    • Bottom-Up V composition of a program
      • Identify low level capability of the system
      • Group common low-level components
    • Object Oriented Design
      • Identify objects and classes of objects
      • Abstraction
      • Encapsulation
      • Hierarchy and inheritance
  • Design principles
    • Heuristic process V revisiting requirements and higher level specification
    • Design for test V keeping testing in mind in the design
  • Design review process
  • Documentation
    • Low-level design specification V how to create a detailed design specification
    • Test case document V some test cases are often generated during the design process since the designer are best familiar with the design. Documenting and incorporating these test cases will help ensure the quality of the software.

Suggested texts:
  • Code Complete by Steve McConnell
  • Software Engineering: A practitioner's Approach, 4th Edition by Roger Pressmen

The following is a schedule for covering all the material required for the Design II course. The ordering and content of the covered material could be changed base on subject relevancy, textbook coverage and instructor preference. A student presentation of their design is scheduled into the course. The project is to ensure the students can exercise the learned material in a timely manner. Additionally, the presentations can be use for grade assessment.

Week 1: Overview of the course and the expectation
How does low-level design specifications fit into the picture
What will the student learn during this nugget
Design tools: PDL, various diagrams, CASE, etc.

Week 2:
Design Principles and philosophies
Information hiding, data cohesion, data coupling, etc.
Design for Test
Defensive programming (how to avoid pitfalls early in the design phase)
Assign design project

Week 3:
Top-down architecture

Week 4:
Bottom-up architecture

Week 5:
Object-oriented architecture

Week 6:
Other architectures V real-time systems, embedded systems, concurrent systems, etc. How these architectures affect low-level design and testing.

Week 7:
Present design specification by student groups

Week 8:
Present design specification by student groups

Instructor Preparation:
  • Handouts
  • Projects
  • Example of requirements and their corresponding completed specifications, diagrams, and documents
  • Some type of assessment

Recommended Student Resources:
  • Access to word processor program
  • Access to drafting program to create diagrams and charts
  • Access to CASE tool if applicable

Link to this Page