6898: Advanced Topics in Software Design: Schedule

This is the schedule as of April 2. It's likely to change as the term proceeds.

Week of
Monday
Monday class
Wednesday class
2/4
  Introduction & Course Overview
Kernel of Alloy: relations and relational operators
2/11
Alloy Language
Signatures, functions, assertions
Modelling Idioms
Relational model of behaviour
Mutation: modularizing change
2/18
No class -- Presidents' Day, MIT Holiday
Intermediate Peer Review: Models
2/25
Review of Modelling
Discussion of elevator problem
Other Modelling Languages
Z, OCL and ASM
3/4
Analysis Patterns
Problem Frames
3/11
Modules 1: Cardelli's model of linking Modules 2: Units
Guest speaker: Robby Findler
3/18
Modules 3: ML 1
Elements of ML programming
Modules 4: ML 2
Objective Caml's module system
3/25
No class -- Spring Break
No class -- Spring Break
4/1
Aspects and Features
No class -- Passover
4/8
Intermediate Peer Review: Program Structuring Design Patterns in a Dynamic Language
Guest speaker: Greg Sullivan
4/15
No class -- MIT Holiday
Decoupling 1
Parnas's uses graph
Module dependences
Coupling and Cohesion
4/22
Decoupling 2
New notions of dependence: exercises
Decoupling 3
Design Structure Matrix
4/29
Decoupling 4
Axiomatic Design: Independence and information
Hints on Research Strategy
5/6
Refactoring: Bad smells, etc
TBD
5/13
Project Presentations
Project Presentations