Object Discovery Corporation

Course Outline for OO Design and Patterns Training (OOD)

Course Chapters

Detailed Course Outline

Day Chapters & Strategies Topics


  • Course concept
  • Analysis and Design Solutions
    • Analysis Unified Chart
    • Design Unified Chart
  • Fundamental Design Strategies
    • Design Strategies
    • Design Patterns Selection Map

Design Strategies and Patterns Selection
The seven fundamental reasons to use Design Patterns

Surprisingly enough, the 7 Design Strategies and Techniques, and the 24 "Gang of Four" (GOF) Design Patterns all depend upon 7 simple categories. Here is a two-page Decision Map starting from those 7 categories and guiding us down to the selection of the proper Design Patterns best suited to solve the problem(s) at hand.

  • Decision Map concept and overview
  • Seven Categories:
    • Methods Implementation
    • Object Construction
    • Complex Object Structures
    • Making Object Work Together
    • Handlings objects that are hard to handle
    • Object States
    • Small Languages

Textual Analysis Artifacts
Three, fundamental textual artifacts to start your Analysis projects

Though Object-Oriented Analysis is known to offer multiple, powerful, concise UML diagrams few realize diagrams are not always the best way to start Analysis. Here is an overview of three simple, textual, specialized artifacts that will give your Analysis cycle a speedy, sound professional start.

  • Business Synopsis
  • Business Vocabulary
  • Business Functions

Business Concept Modeling (BCM)
Class Diagrams to describe an organization's or a system's business concepts, algorithms, rules, and policies

This optional chapter is for students who are not familiar with UML Analysis yet, especially Class Diagrams. These models are crucial in understanding what a system's subject matter, concepts, and mission precisely are. Class diagrams are also extensively used throughout Design Patterns as well as System's Architecture. Though not a substitute for the 5-day UML Analysis class this chapter is a valuable "survival kit".

  • Decision Map to decide which class diagram model element should be used, in each situation

  • Overview
  • Examples
  • Model Elements: Theory, Syntax
  • Examples and Exercises for:
    • Business Concepts
      • Class
    • Business Concept Relationships
      • Inheritance
      • Composition
      • Association
      • Association Role
      • Association Class
  • BCM Decision Tree
  • BCM Practices:
    • The "Project and Assets" problem domain
    • One elaborated Domain Model: the Brokerage Model, or the Autonomous Mission System (AMS)

Object Design Fundamentals
The basis of all advanced OO principles, techniques, and patterns

This chapter explains the fundamental principles of object design and the best strategies to implement them.

We first cover the best basic OO Design techniques that implement Encapsulation & Specialization as well as Inheritance & Polymorphism. Then we we examine the best implementations of Associations and Association Classes.

  • OO Principles
    • Encapsulation
    • Specialization
    • Self-Sufficiency
    • Interface
    • Instantiation
    • Abstraction
    • Inheritance
    • Polymorphism
  • Design Unified Chart
  • Encapsulation & Specialization (E&S)
  • Inheritance & Polymorphism (I&P)
  • Association Implementation
  • Association Class Implementation
  • Ternary Association and Association Class Implementation
  • Labs for each topic

Object References and Collaboration
The power behind objects referring and delegating to each other

Explore how objects use each other to carry out a collective responsibility while maintaining each one's specialization, privacy, and encapsulation. This is where you realize how an object knows about itself, knows about other objects it is linked to, and the way it delegates tasks to other objects. See how Collaboration implements functional requirements that are larger than the individual objects, taking advantage of their collective power.

  • Object References
    • References to another object
    • Using other objects
    • Self-references
  • Collaboration between two objects
    • Keeping each object's integrity
    • Delegating to other objects
  • Practical example, using the Collection concept
  • Collection Lab

Association Implementation Essentials
The elegant, reliable way to implement all relationships other than Inheritance

Examine how object references, when used ingeniously, implement associations and association classes with minimum complexity and great flexibility.

  • Association implementation
    • Unidirectional
    • Bidirectional
    • Multiplicity implementation
  • Association Class Implementation
    • Leveraging the Association code
    • Traversal and computations
  • Ternary Association & Association Classes
  • Association Implementation Lab

Implementing Methods
The whole range of Method Implementation with or without Polymorphism, possibly combined with Associations for greater power

Discover the world of Method Implementation. Those techniques go way beyond simple class methods and take advantage of Inheritance, Polymorphism, Interface, and Associations. You will cover the three Polymorphism Design Strategies, four "GOF" Design Patterns, and appreciate the abstract power of Interfaces.

  • Decision Map to decide upon Method Implementations
  • Within a Polymorphic Structure
    • Replacement Method
    • Extension Method
    • Template Method
  • Within a Single Class
    • Strategy Pattern
    • Bridge Pattern
  • Command Design Pattern
  • Interface
    • Concept
    • UML Notations: simple and expanded
    • Fuctional Abstraction
    • Seams & Contracts
    • Dependency & Implementation
    • Comparison with generalization
    • Programming Implementation
    • Interface examples
  • One lab per topic
    • Business examples
    • Engineering examples

Making Objects Work Together
The collaboration of objects working together is the "muscle" of all Object-Oriented applications

Now that we can design and construct any objects—no matter how complex they might be—another, major challenge lies ahead of us. Objects must be able to communicate, collaborate, and work in synchrony for an application to play its role. Enter the world of object and system's behavior, serviced by the ubiquitous "Propagation" Design Strategy and other powerful Design Patterns.

  • Decision Map to select upon a series of Design Patterns to make objects work together
  • Object Collaboration Fundamentals
  • Iterator Pattern
  • Propagation Strategy + Sequence and Collaboration Diagrams
  • Visitor Design Pattern
  • One lab per chapter

Designing Complex Object Structures (optional)
Properly design any object structure, no matter how sophisticated it might be

Here are one general Design Strategy and two Design Patterns to build any sophisticated object structure in the simplest, most elegant ways.

  • Decision Map to decide upon a Complex Object Structure Design
  • Composite Design Pattern

  • Domain Model Implementation for larger structures

  • One lab for each implementation

Handling an Object's States (optional)
Implementing states in an object-oriented way, for greater clarity, flexibility, and scalability

Capture, restore, or manage the different States of an object, a structure, or a system. There are two important patterns allowing to do so in a safe, elegant, and reliable way. Though States have historically been implemented with long, cumbersome series of "switches", "cases" or even pointer tables. Here are very elegant, scalable, object-oriented solutions to implement States in a much more better way.

  • Decision Map to select upon Design Patterns to implement the states of an object of system
  • Memento Design Pattern
    • Application to the AMS Case Study
  • State Design Pattern
  • One lab per chapter + an example from the AMS case study

Anti-Patterns (optional)
Typical Architectural, Design, or Programming Mistakes and how to avoid them

Some mistakes keep recurring throughout the history of systems and application development but there is a way to fight back. Here is a classification of a few, main mistakes, or "Anti-Patterns", to help recognize, fix, or prevent them altogether. After having devoted so much time on what to do in this class it is now appropriate to also point out what should not be done.

  • For each Anti-Pattern:
    • Name
    • Synopsis
    • How it happened
    • Symptoms
    • How to prevent it
    • How to fix it
  • Definition of an Anti-Pattern
  • Anti-Pattern Categories
  • Stovepipe
  • Vendor Lock-in
  • Avalanche Model
  • Circular Dependency
  • The "God" Object
  • Object "Orgy"
  • Functional Decomposition
  • Golden Hammer
  • Poltergiests
  • Cut & Paste

Course Schedule and Location

  • OO Design and Patterns On-site training - We come to your company to train your employees.
  • OO Design and Patterns Public classes - You attend one of our courses offered in different cities.
  • OO Design and Patterns Distance Learning - Learn straight from our instructors without leaving your office or home.

Back to Top

2008–2019 Object Discovery Corporation home | site map | our company | careers | legal