| 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 |
|
Course
contents - what to expect from the course
Course
format - lectures and workshops, timing
Optional
Corporate Case Study preparation
Course
Outline |
|
| 1 |
Understanding OO Technology
The fundamentals of OO Technologies |
|
The
object paradigm and its power
Brief
history of software engineering (optional)
Understanding
OO Technology
Basic
concepts
Main
features
Object
Design Principles
Main
benefits
The
Unified Modeling Language (UML) at a glance
Overview
of the OO analysis, design, and programming cycle
The
OOADP cycle activity diagram
OOAD
glossary
The
OOADP cycle data flow
The
Rational Unified Process (optional )
Conclusion
|
|
| 1 |
Use Case Analysis
Identifying and specifying the main actors and their
interactions |
|
Notation
overview
Formal
notation syntax and semantics
Typical
examples
Formal
specification of interactions
Formal Use Case Template
A
business case study |
|
| 1 |
The Static Model -- Class and Object
Diagrams
Identifying and modeling driving concepts and their
relationships |
|
Introduction
Identifying
the main concepts from use cases
Modeling
concepts with UML
Class
Diagram
Class
Inheritance
Aggregation
Association
Ternary
Association
Association
Class
Ternary
Association Class
Exercises
and solutions |
|
| 1 |
The Personal Accounting System (PAS)
Case Study
Learning to use the basic features of UML object
analysis |
|
Overview
of the case study
Use
case analysis
Modeling
key concepts
Modeling
the PAS problem domain |
|
| 1 |
More UML |
|
Activity
diagrams
Deployment
diagrams
Packages
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
|
|
Introduction
Problem statement
Glossary of terms
Use case analysis
Business concept analysis (class diagram)
Object model description
Individual analysis
Team analysis, design, and presentations |
|
| 2 |
The Brokerage Model's Profit Analysis
How class diagrams turn into OO code: the key to
object design |
|
Introduction
Object
design principles
Object
sequence diagrams
Object
interaction diagrams
Three-layered
architecture
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 |
|
Object
Design Principles
Specialization
Self-sufficiency
Interface
Delegation
Propagation
Step-by-step
application to the Brokerage Model |
|
| 2 |
Object Sequence and Object Collaboration
Diagrams
The art of describing complex object interactions
|
|
Syntax and semantics
Application to the Brokerage Model's profit analysis
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 |
|
Introduction
Use case analysis
Individual and group design and presentations;
Solutions and discussions
|
|
| 3 |
Object Programming (Optional)
Implementing fundamental UML features with an OO
Language like Java, C++, C# or others |
|
Classes
code
Inheritance code
Polymorphism code
Membership code
Object References
Access Control
Binary and Ternary Associations
code
Multiplicity code
Aggregation code
Roles code
Association Classes code
Delegation code
Code for other features
OO
Programming Strategies |
|
| 3 |
From Object to Relational (Optional)
How to implement OO features in relational environments
|
|
Conversion
strategies for all aspects of object modeling
Employee
model conversion case study
Individual
and group design
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 |
|
Introduction
to OO Patterns
The
Role Pattern
The
Composite Pattern
The
State Modeling Pattern
The
Consumer/Producer Pattern
The
Proxy Pattern
The
Abstract Factory Pattern
Understanding,
creating and selecting OO Patterns |
|
| 4 |
Group Analysis Dynamics
How the professional analysts simultaneously lead and serve a group of subject-matter experts |
|
Starting with the Problem Statement and Glossary of Terms.
Identifying and inviting the real experts.
Leading the groups towards modeling the Use Case.
Instant modeling of every piece of information.
Dispatching knowledge to proper artifacts without filtering out.
Using each expert's knowledge to feed the class diagram.
Keeping all models alive through repeated descriptions.
Never getting into analysis paralysis.
Modeling the best known concepts first.
Naturally expanding all models through relationships modeling.
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
Software
development best practices
The
Rational Unified Process
Static
structure: process representation
Dynamic
structure: iterative development
An
architecture-centric process
A
use-case-driven process
Process Components
(workflows)
Project
management workflow
Business
modeling workflow
Requirements
workflow
Analysis
and design workflow
Implementation
workflow
Test
workflow
Configuration
and change management workflow
Deployment
workflow
Environment
workflow
Iteration
workflow
Implementing
the RUP
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...)
|
|
Use
Case Analysis Diagrams
Class
Diagrams
Object
Diagrams
State
Diagrams
Package
Diagrams
Code
Generation
Other
Diagrams |
|
| 4 |
Object Design for Embedded Systems (Optional)
Get the most out of object design when space and time are limited.
|
|
Increasing code efficiency
- Space/Time tradeoff
- Critical times & real-time deadlines
- Frequently executed sections
- inner-most loops
- Inner functions
- Efficient Polymorphism and alternate strategies
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
Decreasing Code Size
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
|
|
The power objects bring to business process modeling
Two real-life industry examples
Key steps and project deliverables
Formal business process mapping
Business concept modeling
The synergy between process maps and business concepts
Successful OOBPM project management
|
|
| 4 |
Object Database Systems (Optional)
How OODBS provide persistent objects
|
|
Main
OODBS strategies and packages
Design
issues
Comparison
with RDBMS
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 |
|
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 |
|
|
Detailed Course Outline
|
|
|
| |
|
|
|