Day 1:
- Patterns in the Scrum Development process;
- Handling Technical debt, Emergent Architecting;
- Supporting Continuous Integration, continuous deployment and release trains;
- The architectural relevance of design patterns;
- Patterns and modularity;
- Patterns and non-functional requirements;
- The application of patterns in an agile development process (Scrum);
- Classification of patterns;
- Examples of patterns (from GoF: Gamma et al.): Command, Abstract Factory, Bridge, Exercise (maintainability), Prototype, Composite, Observer, Exercise (scalability, reuse, extensibility), Scrum exercise.
Day 2:
- Examples of patterns (from Gamma et al.): Exercise (continued), Guided discussion on interface design and component integration, Factory Method, Proxy, Strategy, Exercise (maintainability), Singleton, Adapter, Listener (and C# delegates), Scrum exercise (decoupling for portability).
Day 3:
- Examples of patterns (from Gamma et al.): Mediator, State, Template Method, Exercise (state machines), Guided discussion on avoidance of deadlock and race conditions, Decorator, Flyweight, Visitor, Exercise (extensibility), Interpreter, Builder, Iterator.
Day 4:
- Examples of patterns (from Gamma et al.): Exercise (reuse), Facade, Chain of Responsibility, Memento.
- Architecture patterns (Buschmann et al.);
- Realizing architectures using design patterns: Layers, Scrum exercise, MVC, Guided discussion on MVC, Broker, Guided discussion on Broker;
- Conclusions.