Good software design is an essential requirement for developing enduring, effective, maintainable applications. This course uses a mixture of theory and exercises to guide you through the world of object-oriented design. The course uses a specific design example to create a common foundation for all course participants.
You will learn how to use requirements to derive suitable objects and how to apply various procedures for checking their suitability. Well structured software design also permits an efficient response to changing requirements. With the help of design principles and patterns, the course illustrates techniques for ensuring that applications are fit for the future.
Participants learn established design methodologies and the contexts in which they are used. At the end of the course, you will be able to derive software design from requirements and check software design using a set of principles of good design. You will learn about efficient patterns and how they can be adapted to specific problems. Participants will be able to use UML and patterns to explain designs to other developers effectively.
The course is designed for developers, analysts and software architects who wish to extend and rethink their design knowledge. Participants should have a basic understanding of UML and be able to read an object-oriented language (e.g. Java, C# or C++).