About the Course#
NEW! Now completely refactored to present a more challenging, stimulating and entertaining learning experience.
Patterns of Software Design is a 3-day course designed to introduce experienced object-technology programmers, designers and software architects to the world of "experience re-use" -- the world of Design Patterns.
Primary focus is on widely known and used design patterns, but we also make a point of drawing attention to less-well-known patterns. Our intent is not to pummel participants with an exhaustive and detailed Pattern Catalogue, but to teach a framework for understanding, applying and developing patterns and pattern-based design.
Participants are expected to have several years of experience designing and building object-oriented software, and should be completely familiar with object-oriented techniques and terminology. Knowledge of Java is not a prerequisite, but is an advantage, as we use Java as the implementation language for the patterns discussed during the course. Prior knowledge of UML is similarly not required, but will be an advantage, since all patterns will be presented using UML. Participants are not expected to have any prior exposure to Design Patterns.
Course Goals#
Upon completion of the Patterns of Software Design workshop, participants can expect to:
- understand the nature of Design Patterns and how patterns contribute to speeding the development of robust, reliable software
- categorise patterns using a conceptual framework that guides selection and usage of patterns in practical design
- place patterns in the context of the history and development of the Design Patterns movement, its reason for existing and its significance in modern software development
- gain insight into the different ways that people use (and misuse) patterns in software design
- understand specific, commonly-occurring design patterns, their trade-offs and variations in use, plus pointers to many more patterns
- acquire skills and resources for developing, cataloguing and applying your own design patterns
- apply patterns to clean-up difficult-to-maintain codebases
Who Should Attend#
Patterns of Software Design is aimed at programmers, designers and architects who have experience designing and building object-oriented software. Participants should be familiar with standard object-oriented techniques and terminology.
Workshop examples use Java as the programming language for implementing examples, but no prior knowledge of Java is necessary, and all pattern-related material is programming-language-neutral. Similarly, prior exposure to UML (Unified Modeling Language) is not required, but will be an advantage, since all patterns will be presented using (only very basic!) UML.
Participants are not expected to have any prior exposure to Design Patterns.
The workshop has proven especially valuable to to software designers and architects who are required to develop software designs for implementation by other developers, where the communication of design blueprints is an important component of team process.
Course Outline#
Patterns of Software Design is an instructor-led, highly-participatory workshop of 3 days duration, and includes many practical reinforcement exercises. Course materials include a comprehensive manual covering all course topics, including a catalogue of all patterns discussed in the workshop. Participant numbers are limited: no more than 12 participants will be accommodated per course to ensure adequate participation by all.
The course covers:#
- Overview and History of Design Patterns and the Patterns Movement
- Categorising and Understanding the Roles of Patterns
- Architectural Patterns
- Design Patterns
- Idioms
- Applying Patterns
- Developing New Patterns, Pattern Languages and Pattern Catalogues
Related Courses#
- ObjectOrientedSoftwareAnalysisAndDesign
- The Design Patterns course does not attempt to fit pattern application into the software development process and lifecycle, ObjectOrientedSoftwareAnalysisAndDesign does that job.
- ElementsOfObjectOrientedProgramming
- The Design Patterns course assumes that participants have a high degree of familiarity with OO concepts and their application. If you find yourself reaching for the dictionary upon hearing words like instantiate or polymorphism, then the Design Patterns course is not for you (yet) and you should probably attend the ElementsOfObjectOrientedProgramming and/or ObjectOrientedSoftwareAnalysisAndDesign course first.
Contact Us#
We are always happy to discuss customising this and our other courses to meet clients' specific requirements.
Please contact us if you don't see a suitable date for this course in our schedule.
CoursewareCategory
Patterns Of OO Design
