Course: Agile Design (3 days)
- Target audience:
- software developers
- Class size:
- 10 to 20
- Prerequisites:
- 6 months TDD experience
Agile Design is a hands-on programming course that teaches design concepts
through extensive exercises. All exercises are done via the application of
test-driven development!
Upon completion of this course, students will:
- understand and be able to create core "agile" UML models
- class models
- sequence models
- state models
- collaboration models
- activity models
- understand the SOLID class design principles and how to apply them in code
- be able to know when to use UML to help solve problems
- understand how the refactoring step in TDD relates to design
- understand how to incorporate design patterns
- understand the concept of simple design
- learn several of the core design patterns
- understand how to approach OO design in the context of a software development process
- learn how to gather and analyze requirements with use cases
- understand the distinctions between use cases and user stories
Most importantly, students will understand how TDD allows them
to incrementally grow a system while ensuring it maintains an
optimal design, one that promotes and sustains low-cost maintenance.
Currently this course is offered in Java. With reasonable advance notice,
we can also deliver a comparable course for C++, C#, and Ruby.