UML Training: OOAD & UML Course Outline.
Object Oriented Training
Home Training Consulting Our Company Careers Contact Us

UML and OOAD Training Course Outline

 
Day Title Description

1 Day One Strategy
Discovering the big picture and learning the fundamentals

During this first day, the fundamental concepts are presented with many concrete examples. We cover the main features of OO Analysis and Design and how they unfold throughout the entire OOAD cycle.

A simple case study, The Personal Accounting System is used for students to practice basic modeling skills. By the end of the day, people feel they've received a rich description of the fundamental strategies and techniques.

They understand the benefits of OO technologies, have received a road map and are ready to use it to perform their first case study (next day).

Here is the first day's outline:


1 Course Introduction
Format and schedule
cuteBall.gif (888 bytes)  Course contents - what to expect from the course
cuteBall.gif (888 bytes)  Course format - lectures and workshops, timing
cuteBall.gif (888 bytes)  Optional Corporate Case Study preparation
cuteBall.gif (888 bytes)  Course Outline

1 Understanding OO Technology
The fundamentals of OO Technologies
cuteBall.gif (888 bytes)  The object paradigm and its power
cuteBall.gif (888 bytes)  Brief history of software engineering (optional)
cuteBall.gif (888 bytes)  Understanding OO Technology
cuteBall.gif (888 bytes)  Basic concepts
cuteBall.gif (888 bytes)  Main features
cuteBall.gif (888 bytes)  Object Design Principles
cuteBall.gif (888 bytes)  Main benefits
cuteBall.gif (888 bytes)  The Unified Modeling Language (UML) at a glance
cuteBall.gif (888 bytes)  Overview of the OO analysis, design, and programming cycle
cuteBall.gif (888 bytes)  The OOADP cycle activity diagram
cuteBall.gif (888 bytes)  OOAD glossary
cuteBall.gif (888 bytes)  The OOADP cycle data flow
cuteBall.gif (888 bytes)  The Rational Unified Process (optional more...)
cuteBall.gif (888 bytes)  Conclusion

1 Use Case Analysis
Identifying and specifying the main actors and their interactions
cuteBall.gif (888 bytes)  Notation overview
cuteBall.gif (888 bytes)  Formal notation syntax and semantics
cuteBall.gif (888 bytes)  Typical examples
cuteBall.gif (888 bytes)  Formal specification of interactions
cuteBall.gif (888 bytes)   Formal Use Case Template
cuteBall.gif (888 bytes)  A business case study

1 The Static Model -- Class and Object Diagrams
Identifying and modeling driving concepts and their relationships
cuteBall.gif (888 bytes)  Introduction
cuteBall.gif (888 bytes)  Identifying the main concepts from use cases
cuteBall.gif (888 bytes)  Modeling concepts with UML
cuteBall.gif (888 bytes)  Class Diagram
cuteBall.gif (888 bytes)  Class
cuteBall.gif (888 bytes)  Inheritance
cuteBall.gif (888 bytes)  Aggregation
cuteBall.gif (888 bytes)  Association
cuteBall.gif (888 bytes)  Ternary Association
cuteBall.gif (888 bytes)  Association Class
cuteBall.gif (888 bytes)  Ternary Association Class
cuteBall.gif (888 bytes)  Exercises and solutions

1 The Personal Accounting System (PAS) Case Study
Learning to use the basic features of UML object analysis
cuteBall.gif (888 bytes)  Overview of the case study
cuteBall.gif (888 bytes)  Use case analysis
cuteBall.gif (888 bytes)  Modeling key concepts
cuteBall.gif (888 bytes)  Modeling the PAS problem domain

1 More UML cuteBall.gif (888 bytes)  Activity diagrams
cuteBall.gif (888 bytes)  Deployment diagrams
cuteBall.gif (888 bytes)  Packages
cuteBall.gif (888 bytes)  Additional UML syntax

2 Day Two Strategy
First Modeling Experience

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

Students have an opportunity to model on their own as well as in a small group. They get opportunities to present their own solutions and learn from others as well as from the instructor(s).

All students are closely mentored: we ask them questions that direct or rectify their thinking towards successful modeling. Solutions are never given away, 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.

This Brokerage Model is then used as a stepping stone towards OO Design. The 5 key OO Design fundamentals are presented while walking the audience 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, students feel they've acquired the fundamental skills to perform OOAD. They've also got a clear picture of the whole OOAD process. They're enthusiastic and well prepared to deal with the next day's challenge.

Here is the second day's outline:


2 The Brokerage Model Case Study
First very detailed object analysis exercise
cuteBall.gif (888 bytes)   Introduction
cuteBall.gif (888 bytes)   Problem statement
cuteBall.gif (888 bytes)   Glossary of terms
cuteBall.gif (888 bytes)   Use case analysis
cuteBall.gif (888 bytes)   Business concept analysis (class diagram)
cuteBall.gif (888 bytes)   Object model description
cuteBall.gif (888 bytes)   Individual analysis
cuteBall.gif (888 bytes)   Team analysis, design, and presentations

2 The Brokerage Model's Profit Analysis
How class diagrams turn into OO code: the key to object design
cuteBall.gif (888 bytes)  Introduction
cuteBall.gif (888 bytes)  Object design principles
cuteBall.gif (888 bytes)  Object sequence diagrams
cuteBall.gif (888 bytes)  Object interaction diagrams
cuteBall.gif (888 bytes)  Three-layered architecture
cuteBall.gif (888 bytes)  OO programming principles compared with
        procedural and structured programming

2 Object Design
Step-by-step procedure to assign methods to classes, according to the most common OO Design Pattern
cuteBall.gif (888 bytes)  Object Design Principles
cuteBall.gif (888 bytes)  Specialization
cuteBall.gif (888 bytes)  Self-sufficiency
cuteBall.gif (888 bytes)  Interface
cuteBall.gif (888 bytes)  Delegation
cuteBall.gif (888 bytes)  Propagation
cuteBall.gif (888 bytes)  Step-by-step application to the Brokerage Model

2 Object Sequence and Object Collaboration Diagrams
The art of describing complex object interactions
cuteBall.gif (888 bytes)  Syntax and semantics
cuteBall.gif (888 bytes)   Application to the Brokerage Model's profit analysis
cuteBall.gif (888 bytes)   How to decide which diagram to use

3 Day Three Strategy
Real-life Modeling Experience

Thanks to the second day, students now possess the whole OOAD & UML picture and the Brokerage Model has given them great confidence. It is time to deal with case studies that reflect real-life complexity.

The third day's "HR Model" brings about this opportunity. It is tackled in exactly the same way OO Analysis was performed on the previous day but it brings greater challenges.

Students quickly discover that there exists a powerful dimension to modeling: the modeling of relationships. 75% of all the models' challenges reside in relationship modeling: inheritance, compositions, associations, association classes and roles. This is advanced modeling.

At least half of the day is devoted to letting (and helping) the students discover how to analyze this challenging problem domain and overcome all difficulties. Solutions come about through the persistent modeling of business concepts and their relationships.

During this lab, people also learn to ask the right questions that are beneficial to OO Analysis. They learn how to map all business concepts to classes, objects and their relationships.

After this exercise we consider that they can already go out and solve average real-life cases by themselves. They're already above average OO modelers.

Optionally, the rest of the day is devoted to learning about the next phase: OO Design. We see how classes and objects can be implemented with OO languages. We also cover how relational models can systematically be derived from class diagrams.

Here is the third day's outline, most of the day is spent on the HR Model:


3 The HR Model
Professional modeling: complex requirements, elegant object solutions
cuteBall.gif (888 bytes)   Introduction
cuteBall.gif (888 bytes)   Use case analysis
cuteBall.gif (888 bytes)   Individual and group design and presentations;
cuteBall.gif (888 bytes)   Solutions and discussions

3 Object Programming (Optional)
Implementing fundamental UML features with an OO Language like Java, C++, C# or others
cuteBall.gif (888 bytes)  Classes code
cuteBall.gif (888 bytes)  Inheritance code
cuteBall.gif (888 bytes)  Polymorphism code
cuteBall.gif (888 bytes)  Membership code
cuteBall.gif (888 bytes)  Object References
cuteBall.gif (888 bytes)  Access Control
cuteBall.gif (888 bytes)  Binary and Ternary Associations code
cuteBall.gif (888 bytes)  Multiplicity code
cuteBall.gif (888 bytes)  Aggregation code
cuteBall.gif (888 bytes)  Roles code
cuteBall.gif (888 bytes)  Association Classes code
cuteBall.gif (888 bytes)  Delegation code
cuteBall.gif (888 bytes)  Code for other features
cuteBall.gif (888 bytes)  OO Programming Strategies

3 From Object to Relational (Optional)
How to implement OO features in relational environments
cuteBall.gif (888 bytes)  Conversion strategies for all aspects of object modeling
cuteBall.gif (888 bytes)  Employee model conversion case study
cuteBall.gif (888 bytes)  Individual and group design
cuteBall.gif (888 bytes)  Solution walkthrough

4 Day Four Strategy
Professional and advanced modeling: solve anything at any time.

During the third day, students have learned how to "survive" real-life challenges through the advanced practice of relationship modeling.

At the start of the fourth day, the following question naturally comes up: Is there a way to tackle such models quickly? Yes there is; it's based on two key aspects: Patterns and Group Analysis Dynamics.

Patterns are typical solutions to typical problems. Unless you use them, you'll be constantly re-inventing the wheel. Students learn the most fundamental analysis and design patterns and how to apply them on-the-fly.

Patterns are a higher-level modeling practice. With this technique one can do real-time modeling. Real-time Modeling here means the ability to quickly come up with solutions to complex problems while interviewing the domain experts.

Several real-life (and non-confidential) case studies that we have dealt with during our own career at Object Discovery are used as patterns exercises. Three of them are so powerful and universal that they beautifully describe frameworks: a Scheduling Framework, a Product Configuration Framework and a Patient Tracking and Management Framework.

Frameworks are like super-patterns. They use one or many instances of one or many patterns. They represent most of the model one would need to solve a specific problem. Small extensions of these frameworks make up your final specific model.

Group Analysts Dynamics are studied too. These advanced techniques help the analyst channel and take advantage of the high energy and advanced knowledge of an entire group of subject-matter experts. All professional analysts have to deal with such groups soon or later.

There are a few simple steps and behavioral rules that allow to succeed in such environments. We cover them all while going through the many case studies explored in this day.

Students at this point feel that we've greatly shifted gears. They're getting ready to deal with any real-life challenges, including those they will encounter at their current work environment.

Optionally, this day can also be used to cover various advanced topics, like the Rational Unified Process, CASE tools, Object-oriented Business Process Modeling, and OO Databases.

Also, at some of our clients' request this fourth day may be simplified and kept more basic.

Here is the fourth day's outline:


4 OO Analysis and Design Patterns
Advanced Problem Solving: applying typical solutions to typical problems by reusing powerful OO Patterns
cuteBall.gif (888 bytes)  Introduction to OO Patterns
cuteBall.gif (888 bytes)  The Role Pattern
cuteBall.gif (888 bytes)  The Composite Pattern
cuteBall.gif (888 bytes)  The State Modeling Pattern
cuteBall.gif (888 bytes)  The Consumer/Producer Pattern
cuteBall.gif (888 bytes)  The Proxy Pattern
cuteBall.gif (888 bytes)  The Abstract Factory Pattern
cuteBall.gif (888 bytes)  Understanding, creating and selecting OO Patterns

4 Group Analysis Dynamics
How the professional analysts simultaneously lead and serve a group of subject-matter experts
cuteBall.gif (888 bytes)   Starting with the Problem Statement and Glossary of Terms.
cuteBall.gif (888 bytes)   Identifying and inviting the real experts.
cuteBall.gif (888 bytes)   Leading the groups towards modeling the Use Case.
cuteBall.gif (888 bytes)   Instant modeling of every piece of information.
cuteBall.gif (888 bytes)   Dispatching knowledge to proper artifacts without filtering out.
cuteBall.gif (888 bytes)   Using each expert's knowledge to feed the class diagram.
cuteBall.gif (888 bytes)   Keeping all models alive through repeated descriptions.
cuteBall.gif (888 bytes)   Never getting into analysis paralysis.
cuteBall.gif (888 bytes)   Modeling the best known concepts first.
cuteBall.gif (888 bytes)   Naturally expanding all models through relationships modeling.
cuteBall.gif (888 bytes)   Applying patterns while meeting with the experts.

4 The Rational Unified Process -- RUP (optional)
Capturing the best practices in modern software development; a disciplined approach to assigning and managing tasks and responsibilities.

Note: This whole section is optional and may be adapted to your own corporation's needs.

       RUP Process and Features

cuteBall.gif (888 bytes)  Software development best practices
cuteBall.gif (888 bytes)  The Rational Unified Process
cuteBall.gif (888 bytes)  Static structure: process representation
cuteBall.gif (888 bytes)  Dynamic structure: iterative development
cuteBall.gif (888 bytes)  An architecture-centric process
cuteBall.gif (888 bytes)  A use-case-driven process

       Process Components (workflows)

cuteBall.gif (888 bytes)  Project management workflow
cuteBall.gif (888 bytes)  Business modeling workflow
cuteBall.gif (888 bytes)  Requirements workflow
cuteBall.gif (888 bytes)  Analysis and design workflow
cuteBall.gif (888 bytes)  Implementation workflow
cuteBall.gif (888 bytes) Test workflow
cuteBall.gif (888 bytes) Configuration and change management workflow
cuteBall.gif (888 bytes) Deployment workflow
cuteBall.gif (888 bytes) Environment workflow
cuteBall.gif (888 bytes) Iteration workflow
cuteBall.gif (888 bytes) Implementing the RUP
cuteBall.gif (888 bytes) Usage and examples for each workflow

4 CASE Tools For Diagramming OOAD with the UML (Optional)
How to use the UML CASE tools of your choice (Rational Rose, Describe, System Architect, Select Enterprise, Dia, etc...)
cuteBall.gif (888 bytes)  Use Case Analysis Diagrams
cuteBall.gif (888 bytes)  Class Diagrams
cuteBall.gif (888 bytes)  Object Diagrams
cuteBall.gif (888 bytes)  State Diagrams
cuteBall.gif (888 bytes)  Package Diagrams
cuteBall.gif (888 bytes)  Code Generation
cuteBall.gif (888 bytes)  Other Diagrams

4 Object Design for Embedded Systems (Optional)
Get the most out of object design when space and time are limited.
cuteBall.gif (888 bytes)   Increasing code efficiency
  • Space/Time tradeoff
  • Critical times & real-time deadlines
  • Frequently executed sections
  • inner-most loops
  • Inner functions
  • Efficient Polymorphism and alternate strategies
cuteBall.gif (888 bytes)   Adapting Design Patterns to Embedded Systems Design
  • Propagation Pattern
  • Command and its tradeoffs
  • Visitor versus the Object Structure Iterator
  • Why Strategy and the Bridge are good when properly used for Embedded Systems
cuteBall.gif (888 bytes)   Decreasing Code Size

cuteBall.gif (888 bytes)   Reducing Memory Usage
  • Reducing dependency on global data, the stack, and the heap
  • Favoring iterations over recursions

4 OO Business Process Modeling (Optional)
How to power BPM with Objects
cuteBall.gif (888 bytes)   The power objects bring to business process modeling
cuteBall.gif (888 bytes)   Two real-life industry examples
cuteBall.gif (888 bytes)   Key steps and project deliverables
cuteBall.gif (888 bytes)   Formal business process mapping
cuteBall.gif (888 bytes)   Business concept modeling
cuteBall.gif (888 bytes)   The synergy between process maps and business concepts
cuteBall.gif (888 bytes)   Successful OOBPM project management

4 Object Database Systems (Optional)
How OODBS provide persistent objects
cuteBall.gif (888 bytes)  Main OODBS strategies and packages
cuteBall.gif (888 bytes)  Design issues
cuteBall.gif (888 bytes)  Comparison with RDBMS
cuteBall.gif (888 bytes)  Discussion

5 Day Five Strategy
Performing OOAD & UML to your own environment, through a selected case.

We consider that after the fourth day our students have become experts. A very exciting and rewarding experience now is to apply this whole expertise to a subject matter or project pertaining to the student's own work environment.

On the fifth day, our client brings a problem that is considered to be important (even mission-critical) and non-trivial. We start from a written short problem statement and corresponding glossary of terms that have usually been prepared earlier in the week.

Then we perform the whole OO analysis and some OO design as a group, involving the whole class. All steps are completed according to the principles and techniques that we've learned during the past four days.

It is an interesting experience for our clients that see some of their most dreaded corporate problem domains melt away under the "powerful chisel of professional OO strategies".

It gives the students great confidence, and we (instructors) get to see some of the greatest problems ever found in the field... and get an opportunity to solve them.

Alternately and upon our clients request we can use this last day to review other topics or cover more of the optional ones.

Here is the fifth day's standard outline:


5 Corporate Case Study (optional)
Applying OO analysis and design to a problem at the students' company
cuteBall.gif (888 bytes)  Problem statement and glossary of terms
cuteBall.gif (888 bytes)  Use case analysis and activity diagrams
cuteBall.gif (888 bytes)  Class and object models
cuteBall.gif (888 bytes)  Object design: creating class methods and sequence
        diagrams

cuteBall.gif (888 bytes)  Questions and answers

Detailed Course Outline
cuteBall.gif (888 bytes)  Table Of Contents

Course Schedule and Location:


Back to Top

Home Training Consulting Our Company Careers Contact Us