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 for Spring 2012-13 (20123)

Week

Session

Reading

Topic

 

1
04 Mar

1st

GOF Chap. 1 and 2;
Appendix B

Unit 1 Course Overview; Design Process; Two Design Principles; Design Problem

2nd

 

Unit 1 Design problem discussions (Individual design due at start of class)

 

2
11 Mar

1st

GOF sections for unit patterns

Unit 2 overview: Command, Composite, Facade, Iterator, Observer, Proxy, State,
Team formation and unit planning; Project unknowns

 

2nd

 

Unit 2; UML Review
Nouns and verbs

 

3
18 Mar

1st

 

Unit 2;Iterator classification
Design Evaluation

 

2nd

 

Unit 2; Questions completed (Due at 11:59pm, on your class day)

 

 

4
25 Mar

1st

 

Unit 2;
Mid-term Design exercise released

 

2nd

 

Unit 2 Designs/implementations presented (Due at 11:59pm, on your class day)

 

 

5
01 Apr

1st

 

GOF sections for unit patterns

 

«Unit 2 Quiz»
Unit 3 overview: Adapter,
BuilderMediator, Memento, Strategy, Template Method

 

2nd

 

Unit 3; Unit planning, Unit 3 impacts

 

6
08 Apr

1st

 

Unit 3; MVC exercise

 

2nd

 

Unit 3;  Anti-patterns
Mid-term Design exercise due (Due at 11:59pm, on your class day)

 

7
15 Apr

1st

 

Unit 3; State vs Strategy exercise
Questions completed (Due at 11:59pm, on your class day)

 

2nd

 

Unit 3 Designs/implementations presented (Due at 11:59pm, on your class day)

 

 

8
22 Apr

1st

GOF sections for unit patterns

Unit 4 overview: Abstract Factory, Chain of ResponsibilityDecorator, Factory Method, Flyweight, Singleton, Visitor;
Unit planning

 

2nd

 

«Unit 3 Quiz»
Unit 4; Refactoring

 

9

29 Apr

1st

 

Unit 4; Initial refactoring issues

 

2nd

 

Unit 4; Decorator exercise
Case study implementation approved by instructor
Questions completed (Due at 11:59, on your class day)

 

10
06 May

1st

 

Unit 4

 

2nd

 

Unit 4 Designs/implementations presented (Due at 11:59pm, on your class day)

 

 

Finals

 

 

Final Exam (Unit 4 material plus Subsystem designs)
Tuesday, 5/14  10:15 AM – 12:15 PM

 

 


Grading Components

Component

Percentage

Mid-Term Design

10

Final Exam

20

Unit 1 design problem

5

Unit quizzes (2 * 5)

10

Unit questions (3 * 5)

15

Unit design/implementation
exercises (3 * 10)

30

Discussion and class
participation

10


Discussion Contributions

Discussion Points

>= 75% of topics

10

>= 50% but < 75% of topics

8

>= 25% but < 50% of topics

4

< 25% of topics

0

Resources

The following are some resources for information about patterns:

The primary patterns location is at the University of Illinois where Ralph Johnson teaches.

The Portland Pattern Repository holds patterns for a variety of applications.

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.

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.

Design Pattern Metaphors by Michael Mahemoff

SourceMaking – resource for Design Patterns, Anti-Patterns, UML & Refactoring


$Id: index.html 275 2011-03-28 13:39:54Z mjl $