Syllabus - Software Design Project - Spring 2004

Week 1 - The Software Design Process

March 29:
Course overview

March 31:
Design as a problem solving process
Due: Review of "The Nature of the Design Process"

April 2:
In-class discussion of design project concepts.

Week 2 - Design Process and Design Methods

April 5:
Elements of the design process, choosing design strategies
Due: Review of Chapter 5 ("The Design Process Disintegrated") and Chapter 6 ("Choosing Strategies and Methods") of Design Methods (one review for both)

April 7:
Discussion of design project goals
Due: In-class presentation of initial goals and system concept

April 9:
Design methods
Due: Review of Method 1.1 ("Systematic Search"), Method 1.5 ("Boundary Searching"), Method 1.6 ("Page's Cumulative Strategy") and Method 1.7 ("CASA") from Design Methods

Week 3 - Software Design, Design Patterns

April 12:
Software design principles
Due: Review of "Designing Software for Ease of Extension and Contraction"
Due: Presentation of project scenario

April 14:
Design patterns introduction
Due: Review of Chapter 1 ("Introduction") of Design Patterns

April 16:
Design patterns use scenario
Due: Review of Chapter 2 ("A Case Study: Designing a Document Editor") of Design Patterns

Week 4 - Software Design Patterns

April 19:
Discussion of design project requirements and architecture
Due: Presentation on project requirements
Due: Project requirements specification document

April 21:
Survery of design patterns (1)
Due: Review of Abstract Factory (87), Factory Method (107), Adapter (139) from Design Patterns

April 23:
Survey of design patterns (2)
Due: Review of Observer (293), Composite (163), Decorator (175) from Design Patterns

Week 5 - Software Design Patterns

April 26:
Survey of design patterns (3)
Due: Review of Strategy (315), Template Method (325), Chain of Responsibility (223) from Design Patterns

April 28:
Discussion of project design

April 30:
Survey of design patterns (4)
Due: Review of Interpreter (243), Visitor (331), Memento (283) from Design Patterns

Week 6 - Software Design Patterns

May 3:
Discussion of project design
Due: Project design document, UML structure and sequence diagrams

May 5:
Survey of design patterns (5)
Due: Review of Singleton (127), Facade (185), Flyweight (195) from Design Patterns

May 7:
No class.

Week 7 - Enterprise Application Design

May 10:
Layering and Domain Logic in Enterprise Systems
In-class discussion of project progress
Due: Review of Chapter 1 (Layering) and Chapter 2 (Organizing Domain Logic) in Patterns of Enterprise Application Architecture

May 12:
Patterns of Relational Database Access
Due: Review of Chapter 3 (Mapping to Relational Databases) in Patterns of Enterprise Application Architecture

May 14:
Web Presentation Patterns, Integration of techniques
Due: Review of Chapter 4 (Web Presentation), Chapter 8 (Putting it All Together)

Week 8 - Enterprise Application Patterns

May 17:
Domain Logic Patterns
Due: Review of Transaction Script (110), Domain Model (116), Table Module (125) in Patterns of Enterprise Application Architecture

May 19:
Database Mapping Patterns (1)
Due: Review of Table Data Gateway (144), Row Data Gateway (152), Active Record (160) in Patterns of Enterprise Application Architecture

May 21:
Database Mapping Patterns (2)
Due: Review of Unit of Work (184), Identity Map (195), Lazy Load (200) in Patterns of Enterprise Application Architecture

Week 9 - Project Week

May 24-28:
No regular class meetings to allow time to work on the term project.

Week 10 - Project Completion

May 30:
No class, Memorial Day.

June 2:
Discuss class project, explore how well design worked during implementation.

June 4:
Final project demonstration.
Due: Project users manual, final code submission.