Object Discovery Corporation

Course Outline for UML Training: OOAD & UML with Patterns

Course Chapters

Detailed Course Outline

Day Chapters & Strategies Topics

Day One Strategy
Discovering the big picture and learning the fundamentals

During this first day you will learn the fundamental concepts, illustrated with many concrete examples. You will cover the main features of OO Analysis and Design and how they unfold throughout the entire OOAD cycle.

You will discover the most modern way to approach Object-Oriented Analysis, called: OO Business Analysis. Part of it is the sophisticated and powerful Business Concept Modeling that uses UML Class Diagrams in a very effective way.


OOAD Overview

  • OOAD Process Activity Diagram

OO Business Analysis
OO Business Analysis bridges the gap between Subject Matter Experts and IT Experts. It brings business knowledge, policies and rules to the supporting Information System.

  • Overview
  • Stakeholders Viewpoint
  • IT Viewpoint
  • Bridging the Viewpoints

Business Concept Modeling (BCM)
The most powerful way to describe an organization's business concepts, rules and policies

  • Chapter Objectives
  • 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 SM

Day Two Strategy
Your first modeling experience

On this second day, focus is on integrating the first day's knowledge. The Brokerage Model is your first opportunity to perform an entire OOAD cycle using the UML, and on a business case that approaches real-life complexity.

You will have an opportunity to model on your own as well as in a small group. You will also be able to present your own solutions and learn from others as well as from the instructor.

All students are closely mentored: we ask them questions that direct or rectify their thinking towards successful modeling. We never give away solutions, except by the end of the exercise where everyone has either discovered them or has come very close.

Different types of solutions along with their conceptual business meanings are presented. At that point, people already feel that they know how to perform OO Analysis. They've solved a problem that is just slightly below average complexity. It's a very fulfilling step.

We use the Brokerage Model as a stepping stone towards OO Design. You will discover the 5 key OO Design fundamentals that will guide you step-by-step through the OO Design process.

It is then time to generalize these OO Design principles to the subject of application design. We look at the successive layers (tiers) a typical software application is made of and how the UML syntax supports their modeling.

By the end of this very busy but fulfilling day, you will feel that you have acquired the fundamental skills to perform OOAD. You will also have a clear picture of the whole OOAD process. You will feel enthusiastic and well prepared to deal with the next day's challenge.

Here is the outline for this second day:


BCM Practice
An entire Business Domain

  • The Projects & Assets Model

The Brokerage Case Study
Practicing Business Concept Modeling on a brokerage business case (Level 5)

  • Exercise Objectives
  • The five main artifacts
  • Business Case
    • Business Synopsis
    • Business Functions
    • Business Vocabulary
    • Business Concept Model
      • Diagram
      • Textual Description

The OO Design Propagation Pattern
Adding functionality to the Business Concept Model

This is a very exciting part of the course where you will see how you can take a purely conceptual model expressed with a Class Diagram and turn it into a functional diagram with methods and object sequences. This approach is very effective, powerful and surprisingly easy. It is solely based upon 5 fundamental OO Design Principles. They will guide you to distribute the most efficient methods across any class diagram, no matter the complexity. It is a pivotal event of this methodology where Business Concepts turn into Business Functions, while keeping 100% traceability. This chapter will be your first opportunity to see professional OOAD at work: concepts, functions, code.

  • Overview
  • Propagation Sequence
  • The 5 OO Design Principles:
    • Specialization
    • Self-sufficiency
    • Interface
    • Delegation
    • Propagation
  • Profit Analysis Example
  • Code Example
  • UML Sequence Diagrams
  • UML Communication Diagrams
  • Propagation Pattern Exercise

Day Three Strategy
Learning more advanced modeling techniques and the fundamentals of Application Architecture

The second day has given you a grasp on how to model, design and code from business concepts. It is time to learn more advanced modeling techniques that go quite beyond the fundamentals.

You will see typical problems and their optimum solution; these are modeling challenges you are most likely to meet with if you are to practice OOAD in the real world. This third day brings you elegant solutions to all these challenges; you will not need to reinvent them.

You will also discover what a typical application architecture is and where all the design elements you are learning fit within that big picture. This is a crucial step for professional developers.


Additional Modeling Elements
Getting ready for real-life modeling by solving expected challenges. Learn once, apply each time, and focus on your business or engineering application.

  • Using Reflexive Associations to model:
    • Digraphs
    • Hierarchies & Tree Structures
    • Linked Lists
    • Modeling labs
  • Association Class Reduction:
    • Using Composition
    • Using Attributes
    • Valid & invalid reduction cases
    • Modeling lab
  • Modeling Multiple Link Objects:
    • Inherent Multiple Objects per Link
    • Association Class Aggregate
    • Modeling lab
  • Composition / Aggregation
    • Attribute Type Notation
    • Inner Class Notation
    • Modeling lab
  • Modeling Constraints
  • Derived Elements

The Role Pattern
Solving more advanced Business Problems by modeling Roles

You will often encounter problems related to roles while performing OOAD. Roles are what any concept (or class) would play within the context of its related concepts (or classes). For instance a "company" would be the "supplier" of some specific "product". "Supplier" is a role. All role problems can be easily solved by selecting one of the following 5 role patterns: Role Inheritance, Association Roles, Role Classes, Generalized Role Classes and Association Class Roles. Each role pattern contains its own blend of power, flexibility and complexity. Together, they offer a complete solution to all role problems.

  • Chapter Objectives
  • The business problem with Roles
  • Role Modeling Solutions Pros and Cons:
    • Inheritance
    • Association Role
    • Role Class
    • Generalized Role Class
    • Association Class Role
    • Association Class Role with Role Categories
  • Real-life Business Case: Person's role in a complex business case
  • Comprehensive exercise

The Composite Pattern
Modeling hierarchies of compositions

This is a very useful pattern that was first known as a Design Pattern, but it is an Analysis Pattern too. It has helped us solve many real-life case studies related to Manufacturing, Retail, HR Management, Medical, Financial and Insurance problem domains.

Like the Role Pattern it belongs to your OOAD "Survival Kit". This pattern gives you remarkable flexibility and abstraction.

You will see an amazing case study we solved with Cummins Engines and their very bright engineers. The solution model is so powerful and generic that it actually is a Framework that can be used for many different types of configurable products, not just engines.

You will also get to see that pattern at work with another example, the Product Model, and its programming implementation with the languages of your choice, C#, Java, or C++.

  • Motivation
  • Solution
  • Meta-model
  • A Manufacturing Framework Example
  • The Product Composite Case
  • Typical code implementation

Domain Persistence
Making a Domain Model persistent so that its Business Concepts, Rules and Policies are maintained and all instances remain available

This chapter reveals how to implement an entire Domain Model and how to design the different layers of abstraction and integration.

You will see OO persistence (storage) and Relational persistence as well as how you can make them work together, if needed. We will cover examples related to both the Java/JEE and the C# .NET platform.

The lesson also contains a discussion and Design strategies to implement a Domain layer based upon many different sources of data—a traditional Industry challenge.

Finally we will cover the relationship between OO modeling and Relational modeling. There are five simple conversion rules to follow. You will get a chance to use them to design a Relational model so that it reflects the original Business Concept Model.

This is a very practical approach that insures your relational layer serves the business intent and can be entirely traced back to the original business requirements, as expressed in your Business Domain Model.

  • The Importance of Domain
  • Domain Persistence Strategies
    • Object-Oriented Persistence
    • Relational-Dependent Persistence
  • Mixing OO and Relational strategies
  • Integrating an entire Domain from several independent sources of data
  • Relationship between OO and Relational Models
  • OO to Relational conversion lab

Application Architecture
Structuring an application's architecture around its domain model

  • Layering of an Enterprise Application
  • Enterprise Architecture
  • UML Deployment Diagrams
  • UML Component Diagrams

Day Four Strategy


OO 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 explore the different polymorphism strategies.

  • OO Principles
    • Encapsulation
    • Specialization
    • Self-Sufficiency
    • Interface
    • Instantiation
    • Abstraction
    • Inheritance
    • Polymorphism
  • Encapsulation & Specialization
  • Inheritance & Polymorphism
  • Polymorphism Strategies:
    • Replacement Method Pattern
    • Extension Method Pattern
    • Template Method Pattern
    • Strategy Pattern

Object-Oriented Association Implementation
Complete coverage of all relationship implementation issues, challenges, and best strategies

A common mistake while implementing Domains is building ad-hoc associations. Code is invasive and prone to errors. It is a major concern since in most of the Domain Models, at least 60% is made of associations. We cover all the details about Associations implementation and how they can be managed efficiently, with no coding overhead, using generic, object-oriented Associations.

All these topics will later be applied within the context of real applications.

  • The Common, ad-hoc Association Implementation
    • Building the association ends
    • Link maintenance complexity
    • Typical violation of Design Principles, and consequences
  • A proper, generic Association implementation
    • Generic Types
    • Associations as objects
    • Proper namimg conventions
    • Drastic code reduction
    • Traceability back to the Domain Model and requirements
  • Aplication to implement each relationship
    • Regular Associations
    • Compositions
    • Aggregations
    • Association Classes
    • Ternary Associations
    • Ternary Association Classes
    • Reflexive Associations
  • Application to two complex domain models
    • Brokerage Model
    • The Automated Mission Tracking System

Propagation Pattern Lab
The most powerful approach to implement elaborate Business Logic

  • Travel Cost Analysis

Day Five Strategy


The Visitor Pattern

The Visitor Pattern shows how Domain functionality can be encapsulated outside the Business Classes, keeping the Domain lean and easy to manage.

  • Overview
  • Visitor Case Example
  • Propagation Pattern Drawbacks
  • Visitor Code Example
  • Visitor Lab

State Modeling
Modeling the Dynamics of a Business Process

  • Modeling Business rules and policies with states and their transitions
  • State Definition
  • State Examples
  • State Notation
    • State Structure
    • Entry and Exit Effects
    • Internal Transitions
    • Deferred Events
    • do Activities
  • State Modeling Exercise 1
  • State Transitions
  • State Modeling Exercise 2
  • Substates

The State Pattern
Implementation of States in an object-oriented programming language

  • States as Objects
  • The State Model
  • State Pattern Metamodel
  • State Programming Lab

Corporate Case Study (optional)
Applying OO analysis and design to a problem at the students' company

  • Problem statement and glossary of terms
  • Use case analysis and activity diagrams
  • Class and object models
  • Object design: creating class methods and sequence diagrams
  • Questions and answers

See How We Differ

See how we differ from other training companies based on our professional success, skills-building teaching techniques, and Corporate Case Study. More details here.

Course Schedule and Location

  • UML Training: OOAD & UML with Patterns On-site training - We come to your company to train your employees.
  • UML Training: OOAD & UML with Patterns Public classes - You attend one of our courses offered in different cities.
  • UML Training: OOAD & UML with 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