Choose your language:

France
Germany
Hong Kong
India
Ireland
Japan
Malaysia
Netherlands
New Zealand
Singapore
Sweden
United Kingdom
United States

Object-Oriented Analysis and Design with UML

Course Code

IN1523

Duration

5 Days

Familiarity with software development process in general is helpful.
Learn how to use object-oriented techniques from requirements gathering to implementation. Students learn how to analyze and design classes and their relationships to each other in building a model of the business requirements. A strong emphasis is placed on diagram notation for use cases and class relationships, and on sequence and state diagramming to capture the dynamic behavior of the system. Usage of Java in implementation of object-oriented designs is discussed to provide a smooth transition to the implementation phase of the project.
This course is intended for anyone involved in the design, development, deployment and maintenance of software.

Upon completion of this course, participants will be able to:

  • Design applications using OO techniques
  • Use the unified software development process to manage software development
  • Use UML for the notation diagrams of applications
  • Apply useful design and architecture patterns for software development.
OVERVIEW OF OOAD
Topics
A Brief History of Object Oriented Languages
Tower of Hanoi
Objects
Objects Examples
Objects Identification and Attributes
Operations and Methods
Object Relationship
Encapsulation
Classes
Examples of Classes
Examples of Object Type Identification in UML
Inheritance
Example of Inheritance
Discovering Inheritance
Polymorphism
Example of Polymorphism
Object-Oriented Programming Languages
Topics
Development Process
The Rational Unified Process
Inception Phase
Elaboration Phase
Construction Phase
Transition Phase
Software Development Life Cycle with the RUP
Topics
What is UML?
History of UML
UML 2 Architecture
UML Infrastructure
UML Superstructure (or UML)
UML Superstructure (or UML)
Object Constraint Language (OCL)
UML Diagram Interchange
Building Blocks of UML
Things in UML
Examples of UML Things
Relationships in UML
Examples of UML Relationships
Diagrams in UML
Classifier in UML
Examples of UML Classifiers
Common Mechanisms in UML
Common Mechanisms in UML cont
Examples of UML Extensibility
Advantages of UML
Summary

REQUIREMENTS WORKFLOW
Topics
Requirements Workflow
What Is A Requirement?
Requirements Gathering
What Is Requirements Management?
Requirements Management
Timing of Requirements Workflow
The Cost Of Requirement Errors
The Game Plan Towards Building Quality Software
Problem Analysis and Understanding User Needs
Problem Analysis Steps
Problem Analysis Steps
Problem Analysis Steps
Business Models
Gather Requirements
Interviewing
Requirements Workshop
Brainstorming
Brainstorming- Idea reduction
Storyboarding
Use Cases
Prototyping
Requirements and the Unified Process
Recall: Inception Phase
Example of Use Cases
Recall: Elaboration Phase
Example of a Use Case Diagram
Delivery

USE CASE ANALYSIS
Topics
Use Cases
Benefits of Use Cases
Classifying Use Cases
Levels of use cases
For use case modeling
Use Case Modeling
Use Case Modeling Steps
Step 1 - Scope
Lists used to manage scope In/out list
Step 2 - Actors
Actor Notation
Finding Actors
Finding Actors - continued
Step 3 - Goal List
Step 4 and 5 Finding Use Cases
Sections Of A Use Case
Documenting Use Cases
Use Case Notation
Action Sequence
Use Case Relationships
Time Schedule Application
Case Study
Case Study Time Schedule Management
Use Cases Time Schedule Management
UC01 Add a new appointment
UC01 Add a new appointment
UC01 Add a new appointment
UC01 Add a new appointment
Use Case Diagram
Time Schedule Use Case Diagram

ANALYSIS WORKFLOW
Topics
Analysis Workflow
Motivation
Analysis Deliverables
Good Analysis Characteristics
Analysis in the Rational Unified Process
Analysis Workflow Steps
Class Analysis
What is an Analysis Class?
Analysis Class Relationships
Use Case Analysis
Architectural Analysis
Packages
Package practicality
Post Analysis

CLASS IDENTIFICATION
Topics
Identifying Classes
Entity Class
Control Class
Boundary Class
A Good Class
A Good Class cont'd
Bad Classes
Finding Classes and their Relationships
Noun/verb Analysis
Noun/verb Analysis example
Refine
CRC Cards
What is a Responsibility?
What is a Collaboration?
Identifying Classes Using CRCs
CRC Cards An Example
Class Diagram
Class Notation in UML
The Name Compartment
The Attribute Compartment
The Operation Compartment
Translating CRC Cards to a Class Diagram
The Scheduling System
UC-01 Classes
The EmployeeInfo Class
Object Diagram
Object Notation in UML
Object Links and Messages
Message Notation
Link Types
Examples of Object Links

CLASS RELATIONSHIP ANALYSIS
Topics
UML Diagrams
Class Diagram
Object Diagram
Types of Class Relationships
Identifying Class Relationships
Examples of Relationships in UML
Class Association Relationship
Class Association Relationships in UML
Reading Class Associations
Multiplicity
Reading Multiplicity
Aggregation
Aggregation An Example
Composition
Composition An Example
Qualification
Qualification An Example
Association Class
Association Class An Example
Class Diagram Multiplicity and Ordering
Class Diagram Multiplicity and Ordering
Class Diagram Operations Compartment
Class Diagram Operations Compartment
Class Diagram Operations Compartment
Class Diagram Interface Notation
Class Diagram Interface Notation
Class Diagram Combining Interface Notations
Class Diagram Object Relationships
Class Diagram Object Relationships
Class Diagram Object Relationships
Class Diagram Object Relationships
Package Diagram

OBJECT STATE ANALYSIS
Topics
Object State
UML and State
Object States
State Machine Diagrams
State Notation in UML
Start and End Points of a state Diagram
State Transitions
Types of Triggers
Signals
Call Trigger
Time and Change Triggers
Substates and Superstates
Concurrent States
State Machine Diagram
Usefulness
State Diagram Example

OBJECT ACTIVITY ANALYSIS
Topics
Activity Analysis
Object Activities
Activity Diagrams
Activity Notation in UML
Initial Nodes and Activity Final
Activity Transitions
Conditional Flow
Branch
Example of a Branch
Merge
Parallel Activities
Fork
Join
Synchronization of Parallel Transitions
Signals
Time Signals
Accept Signals
Partitions
Partitions An Example
Pins and Transformations
Pins
Transformations
When to Use Activity Diagram
Interaction Diagrams
Sequence Diagram
Sequence Diagram Notations
Sequence Diagram Notation
Message Notation
Sequence Diagram Frames
Sequence Diagram Frames
Sequence Diagram Frames - Conditional Messages (alt)
Sequence Diagram Frames - Conditional Messages (opt)
Sequence Diagram Frames Loop Messages (loop)
Sequence Diagram Frames - Nesting
Sequence Diagram Frames - Interaction Occurrences
Sequence Diagram Frames - Interaction Occurrences
Sequence Diagram Frames - Interaction Occurrences
Sequence Diagram Frames - Interaction Occurrences
To Draw a Sequence Diagram
Use Case Realizations
Communication Diagram
Communication Diagram An example
Using Interaction Diagrams

DESIGN WORKFLOW
Topics
Analysis and Design
Design Time
Design in RUP
Design vs. Analysis Model
One Model Or Two?
Design Workflow
Design Classes
Design Class Refinement
Design Class Refinement
Class Removal
Refining Relationships
Use Case Design
Construction

OBJECT DESIGN
Topics
Object Design
Generalization
Root and Leaf Classes
Abstract Class and Operation
Generalization an Example
Modeling with Generalization
Modeling with Encapsulation
Visibility of Features
Owner Scope
Friendship
Value Containers
Types
Interfaces
Interface Modeling
Interface Modeling an Example
Roles
Modeling with Types, Interfaces and Roles
Object Persistence
Define a Base Class for Persistent Objects
Representing Objects as Tables
Object Serialization
Active Objects
Active Class an Example
Communication of Active Objects
Object Communications an Example
Synchronization
Template Classes
Template Class and Instantiation an Example

SYSTEM DESIGN
Topics
System Design
Collaborations
Examples of Collaborations
Modeling the Relationships of Collaborations
Using Collaborations in the Realization of Use Cases
Modeling the Realization of a Use Case
Packages
Visibility of Package Elements
Relationship of Packages Generalization
Relationship of Packages Import Dependency
Modeling the Package Hierarchy of a System
Systems and Subsystems
Components
Representation of Components in UML
Stereotypes of Components in UML
Examples of Component Types
Component Diagrams
Example of Component Diagram
Deployment Diagrams
Example of a Deployment Diagram
Modeling the Architecture of a System
Different Views of a System

OTHER UML DIAGRAMS
Topics
UML Diagrams
Composite Structure Diagram
Timing Diagram
State-as-Line Timing Diagram
State-As-Area Timing Diagram
Interaction Overview Diagram

THE SOFTWARE DEVELOPMENT PROCESS
Topics
Software Development Processes
Risk Management
What is a "risk"?
Identify
Analyze
Plan and Manage
Review
Requirements Change
Change Control Board
Handling Change
Incorporating Change
Quality Assurance
Testing
Testing Categories
UI Testing
UI Testing - continued
Common problems with error messages
Common UI Errors
Functional testing
Types of testing
Types of testing - continued
Bugs
Configuration Management
Goals of Team Development
Team Development Architecture
Repository
Version Control Systems
Agile Modeling
AM Values
AM Principles
AM Practices
AM Practices Continued
Using AM

THE SOFTWARE DEVELOPMENT PROJECT LIFE CYCLE USING RUP
Topics
Software Development Methodologies
Waterfall Development Methodology
Iterative Development Methodology
Iteration v.s. Waterfall Process
Low Ceremony/High Ceremony
Comparison of Some Software Methodologies
Spirit of RUP: Well-Defined Software Engineering
Two Dimensions of the RUP Process
Dynamic Dimension of RUP: Lifecycle Phases & Milestone
Static Dimension of RUP: Modeling Elements
Static Dimension of RUP: Disciplines
Typical RUP Roles
Spirit of RUP: Iterative & Risk-Driven Approach
The RUP Iteration
Spirit of RUP: Customizable and Configurable Process
Inception Phase
Inception Phase cont
Inception Phase cont
Develop a Vision Document
Develop a Vision Document: An Example
Develop System Overview
Develop System Overview: An Example
Plan the Project and Analyze Risks
Plan the Project and Analyze Risks: An Example
Plan the Project and Analyze Risks: An Example cont
Elaboration Phase
Elaboration Phase cont
Elaboration Phase cont
Develop Use Case and Domain Object Model
Develop Executable Architecture
Construction Phase
Construction Phase cont
Construction Phase cont
Organize Teams Around Architecture
Example of Construction Iterations
Transition
Transition cont
Elaboration Phase cont
Examples of a RUP Development Lifecycle
Typical Time & Resource for a RUP Development Lifecycle
Multiple Development Lifecycles

REFACTORING
Topics
What is Refactoring
An Example
Why We Need Refactoring
Principles of Refactoring
Principles of Refactoring cont
Steps for Performing Code Refactoring
Anti-patterns
Anti-patterns cont
Moving Features Between Objects
Move Method
Extract Class
Introduce Local Extension
Dealing with Generalization
Pull up Field/Pull up Method
Push Down Field/ Push Down Method
Extract Superclass
Extract Subclass
Composing Methods
Extract Method
Replace Method with Method Object
Making Method Calls Simpler
Rename Method
Replace Parameter with Explicit Methods
Introduce Parameter Object
Encapsulate Downcast

SOFTWARE REUSE
Topics
What is Software Reuse
Example of Software Reuse
Why Reuse Software
How Software Assets Become Reusable
Major Disciplines for Software Reuse
Basic Techniques for Software Reuse
Software Reuse in the Software Development Lifecycle
Critical Factors to Successful Reuse of Software
Techniques for Reuse Asset Management
Techniques for Reuse Asset Management cont
Techniques for Reuse Process Management
Domain and Domain Specific Reuse
Domain Model and Domain Architecture
Domain Engineering v.s. Software Engineering
Domain Identification
Domain Analysis
Domain Design

DESIGN AND ARCHITECTURE PATTERNS
Topics
Patterns
Example of Design Patterns
Example of Architecture Pattern
Factory Method
Singleton
Command
Modeling the Structure Aspect of Command Pattern
Modeling the Behavior Aspect of Command Pattern
Facade
Adapter
Proxy
Publish-Subscribe
Modeling the Structural Aspect of the Publisher-Subscribe Pattern
Modeling the Behavioral Aspect of the Publisher-Subscribe Pattern
Three-tier Architecture
Multi-tier Architecture
Model-View-Controller
Model-View-Controller Framework

JAVA BINDING
History of Java
Goals of Java
Hello World An Example
Primitive Data Types
Object Oriented Programming
Understanding Objects
Creating an Object
Creating your own Data Type
Class Members
Methods
Writing a Method An Example
Calling a Method An Example
Data Hiding
Encapsulation
Inheritance
Inheritance An Example
Polymorphism
Conditions for Polymorphism
Class vs. Instance Variables
Interface An Example
Access Modifiers
Design Patterns in Java
An example of implementing a design pattern in Java
An example of built in design patterns in Java - MVC
Send Us a Message
Choose one