Table of Contents

Course Outline

The course outline is a guideline to topics that will be discussed in the course, and when they will be discussed. It will be updated with materials, readings and additional information as we proceed with our classes.

Week 1

Context for design; What is design; Eiffel programming; classes; and objects. Software Quality & Engineering – Abstract data types;

Slides:

Case studies:

Week 2

Bottom up design; Documentation; BON static model; Design patterns: Adapter pattern

Slides:

Structural Pattern:

Week 3

Design patterns:BON dynamic model; Assertions;

Slides:

Week 4

Agents & tuples;Basis of Design by Contract; Genericity; Criteria for Modularity (Design rules to Ensure Modularity, and Software Construction Principles);

Slides:

Quiz 1 (September 27, 2012):

Week 5

Memory Management; Design rules and principles: Exceptions and Exceptions Handling Referential transparency; Active data structures; Testing with Espec;

Slides:

Resources:

Week 6

Inheritance; Inheritance and adaptation

Slides:

Quiz 2:

Week 7

Multiple and Repeated Inheritance,

Slides:

Mid-Term

Thursday Oct. 18 2012, during the lecture (90min). Covers everything including Introduction to Inheritance.

Week 8

Global objects; Singleton design pattern

Slides:

Quiz 3 (Oct 26):

Week 9

Designing classes; Design Patterns – Decorator, Composite

Slides:

Week 10

Design patterns – Facade, Command, Iterator, Visitor

Quiz 4 (Tuesday, Nov 6, 2012):

Slides:

Week 11

Design patterns – Abstract Factory & Builder

Slides:

Quiz 5 (Thursday):

Week 12

Quality First, Review of material

Slides: