OOAD Training: Object Oriented Analysis and Design with UML and RUP
SOA Training: Service Oriented Architecture
SOA Training: Service Oriented Architecture For Managers
Use Cases and Requirements Management
    

OOAD Training: Object Oriented Analysis and Design with UML and RUP

  Course #:  NT1522
  Duration:  5 days

OOAD Training Overview

nTier's OOAD with UML and RUP training course teaches students how to use object-oriented techniques from requirements gathering to implementation. Learn how to analyze and design classes and their relationships to each other in order to build a model of the business requirements. A strong emphasis is placed on diagram notation for use cases and class relationships, as well as on sequence and state diagramming to capture the dynamic behavior of the system. Rational Rose is discussed, and examples show how to use the software to create and maintain the various diagrams in the context of the Rational Unified Process. Topics

OOAD Training Learning Objectives

  • Overview of UML
  • Object-oriented concepts
  • Understanding requirements, analysis and design workflow
  • Identifying classes
  • Object interaction, relationships and behaviour
  • Design patterns
  • System Design and refactoring
  • Using Rational Software Architect

What you will learn After completing this course, the student should be able to:

  • Approach new complex software development with confidence
  • Use Rational Software Architect to model applications using UML
  • Implement the software based on the design
  • Establish a software development methodology for in-house development

OOAD Training Prerequisites

Intermediate-level Java knowledge.

OOAD Training Outline

  1. Overview of OOAD Topics
    • Tower of Hanoi Objects 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
    • 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
    • Examples of UML
    • Extensibility Advantages of UML Summary
  2. 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
    • 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
  3. Use Case Analysis Topics
    • Use Cases
    • Benefits of Use Cases
    • Classifying Use Cases
    • Levels of use cases
    • 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
  4. Analysis Workflow Topics
    • Analysis Workflow Motivation
    • Analysis Deliverables
    • Good Analysis Characteristics
    • Analysis in the Rational Unifie Process
    • Analysis Workflow Steps
    • Class Analysis
    • What is an Analysis Class?
    • Analysis Class Relationships
    • Use Case Analysis
    • Architectural Analysis Packages
    • Package practicality
    • Post Analysis
  5. Class Identification Topics
    • Identifying Classes
    • Entity Class
    • Control Class
    • Boundary Class
    • A Good Class
    • Bad Classes
    • Finding Classes and their Relationships
    • Noun/verb Analysis
    • Refine CRC Cards
    • What is a Responsibility?
    • What is a Collaboration?
    • Identifying Classes Using CRCs
    • 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
  6. Class Relationship Analysis Topics
    • 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
    • Composition
    • Qualification
    • Association Class
  7. 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 Events
    • Signals
    • Call Event Time and Change Events
    • Substates and Superstates
    • Concurrent State Diagrams
  8. Object Activity Analysis Topics
    • Activity Analysis
    • Object Activities
    • Activity Diagrams
    • Activity Notation in UML
    • Initial Nodes and Activity Final
    • Activity Transitions
    • Conditional Flow Branch
    • Tokens
    • Parallel Activities
    • Fork
    • Join
    • Synchronization of Parallel Transitions
    • Signals
    • Time Signals
    • Accept Signals
    • Partitions
    • Pins and Transformations
    • When to Use Activity Diagram
    • Interaction Diagrams
    • Sequence Diagram
    • Sequence Diagram Notation
    • Message Notation To Draw a Sequence Diagram
    • Use Case Realizations
    • Communication Diagram
    • Using Interaction Diagrams
  9. Design Workflow Topics
    • Analysis and Design
    • Design Time Design in RUP
    • Design vs. Analysis Model
    • One Model Or Two?
    • Design Workflow
    • Design Classes
    • Refinement Design Class
    • Refinement Class Removal
    • Refining Relationships
    • Use Case Design Construction
  10. Object Design Topics
    • Object Design
    • Generalization
    • Root and Leaf Classes
    • Abstract Class and Operation
    • Generalization
    • Modeling with Generalization
    • Modeling with Encapsulation
    • Visibility of Features
    • Owner Scope
    • Friendship Value Containers
    • Types
    • Interfaces
    • Interface Modeling
    • Roles Modeling with Types, Interfaces and Roles
    • Object Persistence
    • Define a Base Class for Persistent
    • Objects Representing
    • Objects as Tables
    • Object Serialization
    • Active Objects
    • Communication of Active Objects
    • Synchronization Template Classes
  11. System Design Topics
    • System Design 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
    • Component Diagrams
    • Deployment Diagrams
    • Modeling the Architecture of a System
    • Different Views of a System
  12. Other UML Diagrams Topics
    • UML Diagrams
    • Composite Structure Diagram
    • Timing Diagram
    • State-as-Line Timing Diagram
    • State-As-Area Timing Diagram
    • Interaction Overview Diagram
  13. The Software Development Process Topics
    • Software Development Processes
    • Risk Management
    • What is a "risk"?
    • Identify
    • Analyze
    • Plan and Manage Review Requirements
    • Change Control Board Handling
    • Change Incorporating
    • Change Quality Assurance Testing
    • Testing Categories
    • UI Testing
    • Common problems with error messages
    • Common UI Errors
    • Functional testing
    • Types of testing
    • Bugs
    • Configuration Management
    • Goals of Team Development
    • Team Development Architecture
    • Repository Version
    • Control Systems
    • Agile Modeling
    • AM Values
    • AM Principles
    • AM Practices
    • Using AM
  14. 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
    • Develop a Vision Document
    • Develop System Overview
    • Plan the Project and Analyze Risks
    • Elaboration Phase
    • Develop Use Case and Domain Object Model
    • Develop Executable Architecture
    • Construction Phase
    • Organize Teams Around Architecture
    • Example of Construction Iterations Transition
    • Examples of a RUP Development Lifecycle
    • Typical Time & Resource for a RUP Development Lifecycle
    • Multiple Development Lifecycles
  15. Refactoring Topics
    • What is Refactoring
    • An Example Why We Need Refactoring
    • Principles of Refactoring
    • Steps for Performing Code Refactoring
    • Anti-patterns
    • 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
  16. Software Reuse Topics
    • What is 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 Process Management
    • Domain and Domain Specific Reuse
    • Domain Model and Domain Architecture
    • Domain Engineering v.s. Software Engineering
    • Domain Identification
    • Domain Analysis
    • Domain Design
  17. 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

Appendix A.  Learning Resources

System Requirements
Hardware – minimal: Pentium 500MHz, 128 meg RAM, 500 meg HD.
Hardware – recommended:   Pentium 1.5gHz, 512 meg RAM, 1 gig HD.