The course outline below is based on a class schedule of two lectures and one lab per week.
| Week 1 |
- Lect 1: What is OOA&D? Why bother? Notation versus Process. Sample Process. Sample Models.
- Lect 2: Intro to lecture case study. Requirements definitions. Use Cases (essential, not real).
- Lab 1: Present project. Write use cases.
|
| Week 2 |
- Lect 1: Conceptual Model #1a (concepts, attributes, associations).
- Lect 2: Conceptual Model #1b (concepts, attributes, associations).
- Lab 1: Create conceptual model.
|
| Week 3 |
- Lect 1: System Behavior Model. Operation Contracts. Pre and post-conditions.
- Lect 2: (Shift to design phase). "Real" Use Cases. Architecture - subsystems, layers, model-view separation, 2 and 3 tier designs.
- Lab 1: Create contracts for system operations. Discuss concrete model-view separation in our language use (e.g., Java, MS MFC in C++, etc.).
|
| Week 4 |
- Lect 1: Collab diagram notation.
- Lect 2: Responsibilities. Object interaction. Patterns (GRASP 1 to 5). Use of these ideas in collab diagrams.
- Lab 1: Create collab diagrams for 1 or 2 system events (annotate decisions based on application of GRASP patterns).
|
| Week 5 |
- Lect 1: Visibility. Design Class Diagrams.
- Lect 2: Mapping designs to code.
- Lab 1: Map some design work into a few Java classes and methods.
|
| Week 6 |
- Lect 1: Relating use cases. Conceptual Model 2a (generalization, etc.).
- Lect 2: Conceptual Model 2b (associative types, etc.).
- Midterm exam?
- Lab 1: Create multiple use cases and/or a larger conceptual model for development cycle 2 of the project.
|
| Week 7 |
- Lect 1: Review of other analyze-phase activities, such as operation contracts. UML Activity Diagrams.
- Lect 2: State Diagrams. When good (analysis of transactions and business documents)? When unsuitable (when try to design all software from a state-centric approach)?
- Lab 1: Activity diagram. State Diagrams.
|
| Week 8 |
- Lect 1: Patterns. GRASP 6 to 9.
- Lect 2: GoF patterns.
- Lab 1: Apply GRASP 6-9 in collab diagrams to the current project.
|
| Week 9 |
- Lect 1: GoF patterns.
- Lect 2: GoF patterns.
- Lab 1: Apply the covered GoF patterns to collab diagrams to the current project.
|
| Week 10 |
- Lect 1: GoF patterns.
- Lect 2: GoF patterns.
- Lab 1: Apply GRASP/GoF.
|
| Week 11 |
- Lect 1: More GoF? (depends on how fast they can absorb them). Or: subsystem design, frameworks, etc.
- Lect 2: More GoF? (depends on how fast they can absorb them). Or: subsystem design, frameworks, etc.
- Lab 1: Apply GRASP/GoF.
|
| Week 12 |
- Lect 1: Review 1 (survey the big picture, why bother to do all this?, etc.).
- Lect 2: Review 2.
- Lab 1: final exam prep.
|