Object-Oriented Analysis and Design (OOAD) Training with UML

Networking/Server/Operating Systems
Schedules
Optional
  LearnITAnytime Online Subscription (1 Year Subscription - $195.00)
  IT Online Library (1 Year Subscription - $1595.00)
Quantity
If quantity is more than 1, Please add all Attendees' Names /Voucher #/ Learning Credit below separated with a comma. If not specified, we will contact you prior to the class start date. Special Instructions
Overview

This Object-Orientated Analysis and Design (OOAD) with UML 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. All the UML diagrams are covered in this OOAD class to identify the most suitable diagram suite for your organization. An emphasis is placed on Use Cases to capture and manage requirements and form the basis for test scenarios. Class relationships, through the use of Design Patterns, are leverage to enforce OO concepts that will produce a reusable structural design for your system that adapts well to change. Activity and Sequence diagrams are explored in some detail to model the dynamic aspects of your system. This is a hands-on OOAD class. Students will apply their new OOAD and UML skills obtained in the course to model prospective application solutions.

 

Goals
  1. To understand requirements, analysis and design workflow
  2. To learn to identify classes
  3. To learn to use diagram notation for use cases, class and object representation, links and associations, inheritance and object messages
  4. To gain a working knowledge of UML 2.0
  5. To understand the advantages of Design patterns

Outline
  1. Introduction to Analysis and Design
    1. Why is Programming Hard?
    2. The Tasks of Software Development
    3. Modules
    4. Models
    5. Modeling
    6. Perspective
    7. Objects
    8. Change
    9. New Paradigms

  2. Objects
    1. Encapsulation
    2. Abstraction
    3. Objects
    4. Classes
    5. Responsibilities
    6. Attributes
    7. Composite Classes
    8. Operations and Methods
    9. Visibility
    10. Inheritance
    11. Protected and Package Visibility
    12. Scope
    13. Class Scope

  3. Advanced Objects
    1. Constructors & Destructors
    2. Instance Creation
    3. Abstract Classes
    4. Polymorphism
    5. Multiple Inheritance
    6. Solving Multiple Inheritance Problems
    7. Interfaces
    8. Interfaces with Ball and Socket Notation
    9. Templates

  4. Classes and Their Relationships
    1. Class Models
    2. Associations
    3. Multiplicity
    4. Qualified Associations
    5. Roles
    6. Association Classes
    7. Composition and Aggregation
    8. Dependencies
    9. Using Class Models

  5. Sequence Diagrams
    1. Sequence Diagrams
    2. Interaction Frames
    3. Decisions
    4. Loops
    5. Creating and Destroying Objects
    6. Activation
    7. Synchronous & Asynchronous
    8. The Objects Drive the Interactions
    9. Evaluating Sequence Diagrams
    10. Using Sequence Diagrams

  6. Communication Diagrams
    1. Communication Diagrams
    2. Communication and Class Diagrams
    3. Evaluating Communication Diagrams
    4. Using Communication Diagrams

  7. State Machine Diagrams
    1. What is State?
    2. Object-Oriented Analysis & Design
    3. Using the Unified Modeling Language
    4. State Notation
    5. Transitions and Guards
    6. Registers and Actions
    7. More Actions
    8. Internal Transitions
    9. Superstates and Substates
    10. Concurrent States
    11. Using State Machines
    12. Implementation

  8. Activity Diagrams
    1. Activity Notation
    2. Decisions and Merges
    3. Forks and Joins
    4. Drilling Down
    5. Iteration
    6. Partitions
    7. Signals
    8. Parameters and Pins
    9. Expansion Regions
    10. Using Activity Diagrams

  9. Package, Component, and Deployment Diagrams
    1. Modeling Groups of Elements - Package
    2. Diagrams
    3. Visibility and Importing
    4. Structural Diagrams
    5. Components and Interfaces
    6. Deployment Diagram
    7. Composite Structure Diagrams
    8. Timing Diagrams
    9. Interaction Overview Diagrams

  10. Use Cases
    1. Use Cases
    2. Use Case Diagram Components
    3. Actor Generalization
    4. Include
    5. Extend
    6. Specialize
    7. Other Systems
    8. Narrative
    9. Template for Use Case Narrative
    10. Using Use Cases

  11. Process
    1. Process
    2. Risk Management
    3. Test
    4. Reviews
    5. Refactoring
    6. History
    7. The Unified Process
    8. Agile Processes

  12. The Project
    1. Inception
    2. Elaboration
    3. Elaboration II
    4. Construction Iterations
    5. Construction Iterations - The Other Stuff

  13. Domain Analysis
    1. Top View - The Domain Perspective
    2. Data Dictionary
    3. Finding the Objects
    4. Responsibilities, Collaborators, and Attributes
    5. CRC Cards
    6. Class Models
    7. Use Case Models
    8. Other Models
    9. Judging the Domain Model

  14. Requirements and Specification
    1. The Goals
    2. Understand the Problem
    3. Specify a Solution
    4. Prototyping
    5. The Complex User
    6. Other Models
    7. Judging the Requirements Model

  15. Design of Objects
    1. Design
    2. Factoring
    3. Design of Software Objects
    4. Features
    5. Methods
    6. Cohesion of Objects
    7. Coupling between Objects
    8. Coupling and Visibility
    9. Inheritance

  16. System Design
    1. Design
    2. A Few Rules
    3. Object Creation
    4. Class Models
    5. Interaction Diagrams
    6. Printing the Catalog
    7. Printing the Catalog II
    8. Printing the Catalog III
    9. Object Links
    10. Associations

  17. Refactoring
    1. Refactoring
    2. Clues and Cues
    3. How to Refactor
    4. A Few Refactoring Patterns

  18. Appendix A - UML Syntax

  19. Appendix B - Design by Contract
    1. Contracts
    2. Enforcing Contracts
    3. Inheritance and Contract

  20. Appendix C - University Summary

  21. Appendix D - Implementations
    1. C++
    2. Java
    3. C#

Class Materials

Each student in our Live Online and our Onsite classes receives a comprehensive set of materials, including course notes and all the class examples.

 

Preparing for Class
  • Onsite: Course Setup
  • Live Online: Course Setup | WebEx Setup