Software Engineering Department



Class Schedule

<
Date Topic Description Activities
January
Introduction to Software Design
14 Course Overview
Syllabus
Learning Outcomes
Introduction to the course. Course Overview Quiz (MyCourses)
UML Review Quiz (MyCourses)

Design Project R1
16 UML Class Diagrams
Sequence Diagrams
A review of UML class and sequence diagrams. UML Review Activity
UML Sequence Diagram Activity
21 Design Principles
Noun/Verb Analysis & Domain Models
A review (mostly) SOLID and GRASP design principles.
A review of domain modeling and formal noun/verb analysis.
Design Principles Quiz (MyCourses)
Design Principles Activity

23 Anatomy of a Pattern
Observer
Observer Mini Design Doc
Observer Mni Design Presentation
An introduction to Gang-of-Four Design Patterns. Observer Exercise (MyCourses Quiz)
Design Project R1: Mini-Designs
28 Strategy
Command
Composite
State
Decorator
Visitor
Mini-Design Presentations.
Teams form to collaborate on the design for Design Project R1.
30
February
Design Project R1: Consensus Design
4 Midterm Exam 1 The first midterm exam 1 covering design topics (class diagrams, sequence diagrams, domain models, design principles) and the R1 Design Patterns. Midterm Exam 1 (MyCourses Quiz)
6 Teams discuss their Consensus Domain Model and Knowns & Unknowns with their instructor.
  • Project Time
  • Consensus Domain Model Discussion
  • Knowns & Unknowns Discussion
11  
  • Project Time
13
18  
  • Team Design Presentations
Design Project R1: Implementation
20  
  • Project Time
25
27  
March
Design Project R2: Mini-Designs
4 Singleton
Adapter
Mediator
Proxy
Abstract Factory
Memento

Mini-Design Presentations.
Design Project teams begin the R2 design phase.
6
11 Spring Break
No Class
13
Design Project R2: Consensus Design
18
  • Knowns & Unknowns (discussion)
  • Consensus Domain Model (discussion)
  • Project Time
20 Midterm Exam 2 The second midterm exam covering design topics (class diagrams, sequence diagrams, domain models, design principles) and the R2 design patterns. Midterm Exam 2 (MyCourses Quiz)
25 Anti-Patterns
A discussion of commonly found patterns in software design that typically have a negative impact on the overall design.
  • Project Time
27 Refactoring An overview of formal refactoring.
  • Project Time
April
1  
  • Team Design presentations
Practice Final (introduce)
Design Project R2: Implementation
3  
  • Project Time
8
10  
  • Team Presentations & Demos
Refactoring Project
15
17
22
  • Project Time
24
  • Team Presentations
Practice Final Due

Resources

The following are some resources for information about patterns: