Schedule

Class activities will be recorded here. All activities are subject to change.

Week 1 : August 20 - August 26
  • Monday
    Course overview
    Wednesday
    Review of OO concepts and coding style
    Friday
    Assignment 1 posted [TDD]
    TDD; Testing
    Reading: [Fowler'99~Ch:4]
Week 2 : August 27 - September 2
  • Monday
    Junit
    Wednesday
    Process model and OOAC
    Reading: [Larman'04~Ch:1-3]
    Friday
    Inception phase; Requirements
    Reading: [Larman'04~Ch:4-5]
Week 3 : September 3 - September 9
  • Monday
    Labor day
    Wednesday
    Use case analysis
    Reading: [Larman'04~Ch:6-7]
    Friday
    Assignment 1 due, Project 1.0 posted [use cases]
    Use case analysis
Week 4 : September 10 - September 16
  • Monday
    Domain modeling
    Reading: [Larman'04~Ch:8-9]
    Wednesday
    Domain modeling
    Friday
    Domain modeling
Week 5 : September 17 - September 23
  • Monday
    Project 1.0 due, Project 2.0 posted [domain]
    Project 1.0 presentations
    Wednesday
    Project 1.0 presentations
    Friday
    Behavior modeling
    Reading: [Larman'04~Ch:10,12,14-15]
Week 6 : September 24 - September 30
  • Monday
    Behavior modeling
    Wednesday
    Behavior modeling; Design class modeling
    Friday
    Design class modeling
    Reading: [Larman'04~Ch:16]
Week 7 : October 1 - October 7
  • Monday
    Project 2.0 due, Project 3.0 posted [design+implementation]
    Project 2.0 presentations
    Wednesday*
    Project 2.0 presentations
    Friday*
    Design class modeling
Week 8 : October 8 - October 14
  • Monday
    GRASP patterns
    Reading: [Larman'04~Ch:17-20]
    Wednesday
    GRASP patterns
    Friday
    Logical architecture
    Reading: [Larman'04~Ch:13,33-34]
Week 9 : October 15 - October 21
  • Monday
    Logical architecture
    Wednesday
    Model-view-controller
    Friday
    Refactoring
    Reading: [Fowler'99~Ch:1-3,6-7],[Larman'04~Ch:21]
Week 10 : October 22 - October 28
  • Monday
    Project 3.0 due, Project 4.0 posted [design+implementation]
    Project 3.0 presentations
    Wednesday
    Project 3.0 presentations
    Friday
    Refactoring
Week 11 : October 29 - November 4
  • Monday
    Creational patterns (builder and prototype)
    Reading: [Larman'04~Ch:26]
    Wednesday
    Creational patterns (abstract factory and factory)
    Friday
    Structural patterns (composite and observer)
Week 12 : November 5 - November 11
  • Monday
    Structural patterns (façade); Broker pattern
    Wednesday
    Broker pattern
    Friday
    Behavioral patterns (command and observer)
Week 13 : November 12 - November 18
  • Monday
    Project 4.0 due
    Project 4.0 presentations
    Wednesday
    Project 4.0 presentations
    Friday
    Behavioral patterns (iterator strategy and state)
Week 14 : November 19 - November 25
  • Monday/
    Wednesday/
    Friday
    Fall break
Week 15 : November 26 - December 2
  • Monday
    Behavioral patterns (visitor)
    Wednesday
    Behavioral patterns (visitor)
    Friday
    Behavioral patterns (visitor); State machine diagrams
    Reading: [Larman'04~Ch:29]
Week 16 : December 3 - December 9
  • Monday
    State machine diagrams; Activity diagrams
    Reading: [Larman'04~Ch:28]
    Wednesday
    Project final delivery due
    Projet final delivery presentations
    Friday
    Projet final delivery presentations
Week 17 : December 10 - December 16
  • Monday/
    Wednesday/
    Friday
    Final examination week
    Final exam

Readings

[Brooks'87]
Brooks Jr, F.P., 1987, No silver bullet: essence and accidents of software engineering. IEEE Computer.
[Fowler'99]
Fowler, M., Beck, K., Brant, J., Opdyke, W. and Roberts, D., Refactoring: improving the design of existing code. 1st edition. 1999. ISBN: 0-201-48567-2.
[Larman'04]
Larman, C., 2002. Applying UML and Patterns: an introduction to object-oriented analysis and design. 3rd edition. Prentice-Hall Inc. ISBN: 0-131-48906-2.
[Mens'04]
Mens, T. and Tourwé, T., 2004. A survey of software refactoring. IEEE Transactions on software engineering, 30(2), pp.126-139.