4010-362
Engineering of Software Subsystems

Overview

This course introduces students to the design of small subsystems, typically comprising 5-15 classes, which in turn are used as parts of larger software systems. A key focus of the course is on the identification and application of appropriate design patterns in the context of the overall subsystem goals. In addition, students are introduced to principles and techniques for assessing design quality and for making informed tradeoffs among competing design goals.

ABET Course Syllabus

Unit Activities

Course Outline

Week Session Date Due Reading Topic
1 1st 3/13 GOF Chap. 1 and 2;
Appendix B
Unit 1 Course Overview; Design Principles; Design Problem
2nd 3/15 Unit 1 Design problem discussions; Language Preferences due Friday
2 1st 3/20 GOF sections for unit patterns Unit 2 Adapter, Facade, Iterator, Observer, Singleton, Strategy, Template Method
Unit overview; Team formation and unit planning
2nd 3/22   Unit 2 Team Time
3 1st 3/27   Unit 2 Team Time
2nd 3/29 Unit 2 Questions   Unit 2 Team Time
4 1st 4/3  Mid-term Exam released Unit 2 Team Time
2nd 4/5 Unit 2 Designs;
Peer Evals
Unit 2 Design presentations
5 1st 4/10 Mid-term Course Feedback GOF sections for unit patterns Unit 2 Quiz;
Unit 3 overview:
Builder, Command, Composite, Decorator, Factory Method, Visitor
2nd 4/12   Unit 3 Team Time
6 1st 4/17 Unit 3 Questions   Unit 3 Team Time
2nd 4/19 Mid-term Exam   Unit 3 Team Time
7 1st 4/24   Unit 3 Team Time
2nd 4/26 Unit 3 Designs;
Peer Evals
  Unit 3 Design presentations
8 1st 5/1 GOF sections for unit patterns Unit 3 Quiz;
Unit 4 overview
: Abstract Factory, Interpreter, Mediator, Memento, Proxy, State
2nd 5/3   Refactoring;
Unit 4
Team Time
9 1st 5/8 Unit 4 Questions   Anti-patterns;
Unit 4 Team Time
2nd 5/10 Unit 4 implementation choice approved by instructor   Course evaluations;
Unit 4 Team Time

10 1st 5/15   Unit 4 Quiz;
Unit 4 Team Time
2nd 5/17 Unit 4 Designs;
Peer Evals
  Unit 4 Design presentations
Finals 5/23 12:30 - 2:30  70-3560 Final Exam - open textbook and course notes

 

Resources

The following are some resources for information about patterns:

  1. The primary patterns location is at the University of Illinois where Ralph Johnson teaches.
  2. The Portland Pattern Repository holds patterns for a variety of applications.
  3. Brad Appleton's Patterns Page contains many references to pattern collections, as well as discussions on how patterns fit into various phases of the development cycle.
  4. The Design Patterns page by Vince Huston contains a nice set of information about design patterns. It also includes the Periodic Table of Design Patterns.

Revision: 1.55, 2006/11/10 20:05:33
Revised 3/12/2007 14:34
Revised 3/20/2007 8:40
Revised 3/27/2007 11:50
Revised 4/16/2007 14:17
Revised 4/22/2007 14:49