Consulting Training Blog Careers About Us Contact Us
All Classes Will Be Held Virtually – Live Online Intertech's Training Division has been successfully instructing professionals through virtual live online training since the advent of the smartboard. It is a proven form and offers the convenience of live questions, group interaction, and labs with an instructor looking over your shoulder. Because of this, we will continue all classes live but virtually, including Agile and Scrum instruction, so businesses and individual’s seeking professional development can keep moving forward during these unexpected times.

Complete OOAD with UML Training

Course ID: IT-OOAD
Duration: 4 Days

Upcoming Classes

Click the Get Notified button for priority notification when a class is next scheduled.

Get Notified

On Site/Private

Can't find a class that fits right for you? Contact us to inquire about scheduling your own private class

Contact Us


Learn how to use Object-Oriented techniques to analyze real-world requirements and to design solutions that are ready to code. Students learn how to identify and design objects, classes, and their relationships to each other, which includes links, associations, and inheritance. A strong emphasis is placed on diagram notation for use cases, class and object representation, links and associations, and object messages. This course utilizes UML 2.0 notation. 

Bring This Course To You

For groups of 5 or more, let Intertech bring this course to your location. Customized versions tailored towards your objectives are also available.

Learn More

Learning Objectives

After completing this course, the student should be able to:

  • Approach new complex software development with confidence
  • Model applications using UML
  • Implement the software based on the design
  • Establish a software development methodology for in-house development


Analysts, designers, and programmers responsible for applying OO techniques in their software engineering projects.


Familiarity with structured techniques such as functional decomposition is helpful.

Course Outline

Introduction to Analysis and Design

  • Why is Programming Hard?
  • The Tasks of Software Development
  • Modules
  • Models
  • Modeling
  • Perspective
  • Objects
  • Change
  • New Paradigms


  • Encapsulation
  • Abstraction
  • Objects
  • Classes
  • Responsibilities
  • Attributes
  • Composite Classes
  • Operations and Methods
  • Visibility
  • Inheritance
  • Protected and Package Visibility
  • Scope
  • Class Scope

Advanced Objects

  • Constructors & Destructors
  • Instance Creation
  • Abstract Classes
  • Polymorphism
  • Multiple Inheritance
  • Solving Multiple Inheritance Problems
  • Interfaces
  • Interfaces with Ball and Socket Notation
  • Templates

Classes and Their Relationships

  • Class Models
  • Associations
  • Multiplicity
  • Qualified Associations
  • Roles
  • Association Classes
  • Composition and Aggregation
  • Dependencies
  • Using Class Models

Sequence Diagrams

  • Sequence Diagrams
  • Interaction Frames
  • Decisions
  • Loops
  • Creating and Destroying Objects
  • Activation
  • Synchronous & Asynchronous
  • The Objects Drive the Interactions
  • Evaluating Sequence Diagrams
  • Using Sequence Diagrams

Communication Diagrams

  • Communication Diagrams
  • Communication and Class Diagrams
  • Evaluating Communication Diagrams
  • Using Communication Diagrams

State Machine Diagrams

  • What is State?
  • State Notation
  • Transitions and Guards
  • Registers and Actions
  • More Actions
  • Internal Transitions
  • Superstates and Substates
  • Concurrent States
  • Using State Machines
  • Implementation

Activity Diagrams

  • Activity Notation
  • Decisions and Merges
  • Forks and Joins
  • Drilling Down
  • Iteration
  • Partitions
  • Signals
  • Parameters and Pins
  • Expansion Regions
  • Using Activity Diagrams

Package, Component, and Deployment Diagrams

  • Modeling Groups of Elements – Package Diagrams
  • Visibility and Importing
  • Structural Diagrams
  • Components and Interfaces
  • Deployment Diagram
  • Composite Structure Diagrams
  • Timing Diagrams
  • Interaction Overview Diagrams

Use Cases

  • Use Cases
  • Use Case Diagram Components
  • Actor Generalization
  • Include
  • Extend
  • Specialize
  • Other Systems
  • Narrative
  • Template for Use Case Narrative
  • Using Use Cases


  • Process
  • Risk Management
  • Test
  • Reviews
  • Refactoring
  • History
  • The Unified Process
  • Agile Processes

The Project

  • Inception
  • Elaboration
  • Elaboration II
  • Construction Iterations
  • Construction Iterations - The Other Stuff

Domain Analysis

  • Top View – The Domain Perspective
  • Data Dictionary
  • Finding the Objects
  • Responsibilities, Collaborators, and Attributes
  • CRC Cards
  • Class Models
  • Use Case Models
  • Other Models
  • Judging the Domain Model

Requirements and Specification

  • The Goals
  • Understand the Problem
  • Specify a Solution
  • Prototyping
  • The Complex User
  • Other Models
  • Judging the Requirements Model

Design of Objects

  • Design
  • Factoring
  • Design of Software Objects
  • Features
  • Methods
  • Cohesion of Objects
  • Coupling between Objects
  • Coupling and Visibility
  • Inheritance

System Design

  • Design
  • A Few Rules
  • Object Creation
  • Class Models
  • Interaction Diagrams
  • Printing the Catalog
  • Printing the Catalog II
  • Printing the Catalog III
  • Object Links
  • Associations


  • Refactoring
  • Clues and Cues
  • How to Refactor
  • A Few Refactoring Patterns

Appendix A – UML Syntax

Appendix B – Design by Contract

  • Contracts
  • Enforcing Contracts
  • Inheritance and Contracts

Appendix C – University Summary

Appendix D – Implementations

  • C++
  • Java
  • C#

Free Resources from Intertech

Free eBook: The 5 “T’s” of Agile Team Startups

2 Free Resources: Missed Issues in Software Estimation and Stakeholder Questionnaire

Free eBook: Agile Design Principles