Design Study Guide

Revised: 31 January 2007
Home Courses Code Handouts CoreTech Books Articles Math Research Masters Projects SWDev WebDev News OtherLinks SiteDesign Graduates AllPages Office Hours Notices Contents

CSE681-SWMAA CSE686-IP CSE687-OOD CSE775-DO CSE776-DP CSE778-AWP CSE784-SWS

Lecture #01 Lecture #02 Lecture #03 Lecture #04 Lecture #05 Lecture #06 Lecture #07
Lecture #08 Lecture #09 Lecture #10 Lecture #11 Lecture #12 Lecture #13 Lecture #14
Lecture #15 Lecture #16 Lecture #17 Lecture #18 Lecture #19 Lecture #20 Lecture #21
Lecture #22 Lecture #23 Lecture #24 Lecture #25 Lecture #26 Lecture #27 Lecture #28

Content Syllabus SG - Design SG - Templates SG - Class Relationships

Content:

This Design Study Guide pulls together, in one place, the resources we use in CSE687 - Object Oriented Design to discuss design issues.

Fundamental Design Principles

  1. KISS Principle
  2. Single Responsibility Principle
  3. Prime Directives: no surprises, maximize cohesion, minimize coupling
  4. Encapsulation

Design Presentatons and Code

  1. Abstract Data Types
  2. Abstract Data Type Example: Str class
  3. Hiding and Other Evils
  4. Software Design
  5. Design Notes
  6. Design Principles
  7. Design Guidelines
  8. Design Strategies
  9. Modules
    A module is a physical package of code in files. In this course, by module, we mean those source code files that constitute a compilable entity. The result of compilation may be an execution image (exe), a dynamic link library (dll), or an object file (obj).
    A simple module example is provided in the code directory: str program.
  10. Notation
    When discussing object oriented designs, we will often use a subset of the Universal Modeling Language (UML), described briefly in these notes. You also may wish to consult UML Tutorial