| Week | Topics | Slides/Resources | Activities/Deliverables | ||
|---|---|---|---|---|---|
| WEEK 1 - Session 1 TUE, 13 Jan |
Introduction and Course Overview. What is design? Why should we care? Functional & Non-Functional Requirements Design for reusability & modifiability. |
Design & Cost of Change | Introduction to the WeatherStation (WS)
Activity #1 - Add WS Functionality [Due: THR (1/15) Start of Class] |
||
| Session 2 THR, 15 Jan |
Discussion of Activity #1 | AWTUI (DRY Principle) |
Adding new Weather Station user interface(s)
AWT and Swing
Activity #2 - Create AWT and Swing UI versions [Due TUE (1/20) Start of Class] |
||
|
* * Reminder- NO CLASSES Monday, January 19 in observance of Martin Luther King Jr. Day -
|
|||||
| WEEK 2
- Session 3 TUE, 20 Jan |
Discussion of Activity #2 Adding new Weather Station functionality Design Principles & Design Patterns Refactoring |
Software Design Glossary - Intro
Glossary Supplemental |
Observer pattern and our design problem - add a barometer.
Activity #3a - Refactoring [Due THR (1/22) End of Day] |
||
| Session 4 THR, 22 Jan |
The Observer pattern (introduction) |
Javadoc Observer (Interface)
Javadoc Observable (Class) |
Activity #3b - The New Functionality [Due THR (1/29) Start of Class] |
||
| WEEK 3 - Session 5 TUE, 27 Jan |
Design documents: What, Why, How
Design notation: UML |
UML Introduction |
Team Preferences
[Due FRI noon (1/30)] Activity #4 - UML [Due THR(2/6) ==> SUN(2/8) Midnight] |
||
| Session 6 THR, 29 Jan |
Class Diagrams & Object Diagrams | Static Modeling | |||
| WEEK 4 - Session 7 TUE, 3 Feb |
Sequence Diagrams | Dynamic Modeling |
Teams Formed
|
||
| Session 8 THR, 5 Feb |
Any UML issues?
Version Control Systems |
Version Control Systems
.Git .GitHub |
Activity #5 Team REPO (Everyone has Github ready)
[Due TUE (2/10) BEFORE CLASS - We will Start in Class today - |
||
| WEEK 5
- Session 9 TUE, 10 Feb |
Version Control Systems (continued) |
+Object Creation Concepts=>
|
Trello Guidance
- Only one Board per Team |
||
| Session 10 THR, 12 Feb |
Dependency Inversion Principle
(Creational) Factory Pattern (continue) Dependency injection pattern |
+Creational Patterns and Conceptsi=> |
Team Setup: Github, Google Drive, Non-functional requirements
*Time permits: New sensors for the weather station. Design problems with different sensors. Activity #6 - Team design upgrade (Team) [Due THR (2/19) Midnight] |
||
| WEEK 6 - Session 11 TUE, 17 Feb |
Adapter pattern Yet another sensor... |
DIP and Adapters |
Activity #7 - Composite Pattern (Individual) [Due THR (2/26***) Start of Class] Team Time (Look ahead) Exam coming up soon |
||
| Session 12 THR, 19 Feb |
Open-close principle Project phase #1 released |
Teaming pulse check and Open-Close Principle Refcardz |
Exam #1 (50 minutes) next Tuesday (2/24) Study Guide |
||
|
WEEK 7 - Session 13 TUE, 24 Feb |
Exam #1 (50 minutes) Study Guide +Object hierarchies - the Composite pattern intro ==> |
Requirements Analysis - Nouns & Verbs (MULTI-PLAYER example) |
Team Time
Activity #8 - Nouns/Verbs (Team) [Due MOVED from THR (2/26) - Start of Class ==> NOW FRI (2/27) midnight (in REPO)] |
||
| Session 14 THR, 26 Feb |
Reminder: Activity #7 - before class |
Composite Pattern |
Design Sketch (in REPO) [Due TUE (3/3): progress before class, final version Midnight] Team Time: Design discussion |
||
| WEEK 8 - Session 15 TUE, 3 Mar |
Design Sketch (team progress in REPO before class) [Due TODAY TUE (3/3) @ Midnight] *Separation of Concerns - the MVC patterns Class-Responsibility-Collaborator MVC - Thermometer Reference solution Keeping Things in Sync - the Mediator pattern |
CRC Cards *Model-View-Controller *Sample Implementations |
* From now on, unless noted ALL project deliverables must be acknowledged in myCourses (via done.txt) and submitted into team REPO Initial Design Doc |
||
| Session 16 THR, 5 Mar |
Who should I talk to? Why? |
Mediator
Sample Mediator Impl Video |
Team Time | ||
| WEEK 9 |
NO CLASSES TUE (3/10) and THR (3/12) in observance of SPRING BREAK |
WEEK 10
- Session 17 TUE, 17 Mar |
Initial Design Doc in REPO [Due TODAY TUE (3/17) Progress by Midnight .. Covering the Landfill - the Façade pattern |
Façade ..> |
Skeleton Java
[Due TUE (3/24) Midnight] *However, all team members progress in repo BEFORE NEXT class |
| Session 18 THR, 19 Mar |
Skeleton Java
(team progress in REPO before class) |
Delivery is Near: Team Time
Implementation - Pulse Check Phase 1 [Due - THR (3/26) Start of Class] |
|||
| WEEK 11 - Session 19 TUE, 24 Mar |
Skeleton Java [Due TODAY TUE (3/24) Midnight] Protecting & Hiding Objects - The Proxy Pattern |
Proxy |
Team Time |
||
| Session 20 THR, 26 Mar |
Phase 1: Submission and TEAM PRESENTATIONS!
[All Due TODAY - THR (3/26) Start of Class] Looking ahead: Project phase #2 (TBD)
|
|
|||
| WEEK 12
- Session 21 TUE, Mar 31 |
Phase 1: TEAM PRESENTATIONS [continued] |
Self and Peer Evaluation Survey [Due - WED (4/1) NOON] Exam #2 (50 minutes) Team Time |
|||
| Session 22 THR, 2 Apr |
Do As I Say! - The Command Pattern |
Command |
Team Time
Initial R2 Design Doc in REPO [Due THR (4/9) - Midnight] |
||
| WEEK 13 - Session 23 TUE, 7 Apr |
Exam #2 (50 minutes)
Study Guide |
Phase 2 milestones are Team Driven However: Design Doc ==> updates and transition to FDA/AMA template (goal is to have most done by next class before break) Skeleton Java [Due TUE (4/14) (End of Day)] Team Time |
|||
| Session 24 THR, 9 Apr |
Antipatterns |
SourceMaking Antipatterns
Huston Design Patterns |
Phase 2 coming up soon, plan AHEAD! (soft goal Apr 16h) |
||
| WEEK 14 - Session 25 TUE, 14 Apr |
Web Services Intro (Proxy Pattern) Service Oriented Programming/Architecture |
RESTful Web Services Tutorial in IntelliJ VS Code: REST Client Plugin Many others on the web, search for a RESTful Web Services Tutorial and share on Slack channel |
Phase 2 - Final Release & Presentations
[Due NEXT TUE (4/21) (before class)] (goal is to have most done by next class) Team Time |
||
| Session 26 THR, 16 Apr |
Team Pulse check (Final release plan) Prep for Final Exam |
Final Exam Study Guide Team Time (Trello blitz and Standups) |
|||
| WEEK 15
- Session 27 TUE, 21 Apr |
Phase 2: Submission and TEAM PRESENTATIONS! [All Due TODAY - TUE (=>4/21) Start of Class] |
Self and Peer Evaluation (myCourses) + Qualtrics Survey [Due - FRI (4/24) NOON] |
|||
| Session 28 THR, Apr 23 |
Phase 2: TEAM PRESENTATIONS! Getting ready for the Final |
||||
| Final Exam |
Date/Time: TBD???
* Always check SIS for latest updates and notify Instructor of any Conflicts | ||||