This course shows how systems should be internally organized and developed for maximum simplicity, power, reusability, reliability, and flexibility. It covers all the fundamentals of OO Design and the "GOF" Design Patterns, modeled using the Unified Modeling Language (UML), and how to implement them in the three main OO languages. This course answers the following question: "Now that I understand the concepts and requirements of my system or application, what are the best ways to build it?"
Traditional courses throw Design Patterns as the elements of a large "Toolbox", hoping students will infer how and when to use them. Not so in this curriculum. We use two opposite (yet complimentary) approaches: what specific challenge(s) each Design Pattern solves as well as what design techniques and strategies each Pattern is made of. We use a Decision Map to decide which Pattern(s) to use based on each problem at hand, as well as valuable insights on how those Patterns function and are structured.
We take advantage of several interesting case studies to illustrate and practice the selection, usage, and power of various Design Patterns: business case studies and engineering ones. Among many other case studies, we use a Class Diagram-to-code generator (multiple languages), a financial institution policy management, and a multiple-plane Resilient Mission Control System.
Although this isn't a coding course per say, you will get a chance to write or review targeted code in a lab for each Design Strategy or Pattern, to quickly integrate the knowledge. All labs are available in Java, C# and C++.
Access the detailed course outline here
This course is for developers, architects, development team leaders, and IT professionals involved with software development. It applies to engineering, business, scientific, financial applications, Defense, as well as any other areas that require advanced software and systems engineering.
Students should be experienced Java, C# or C++ programmers. Knowledge of any particular IDE is not required. This course is to be taken after the UML Analysis course or equivalent, and definitely before the UML Architecture course.
This is a hands-on course. We apply a powerful learning cycle of short lectures, examples and labs on each topic. Each student gets lab code, the entire course hard copy as a spiral-bound manual, and stock-paper reference sheets for UML Analysis (Class Diagrams), OO Design Strategies, Design Patterns Decision Map, and State Modeling. Though not a coding course, this curriculum offers programming labs as well as UML models to better understand and more quickly learn all the Design Patterns.
$2,589 / person. Group discounts available. Large discounts for On-site Training with 8 students or more.