Print this Page

Object Oriented Analysis & Design Using UML

Course Description
(5 Days)

The object-oriented (OO) approach to software development dramatically extends traditional procedural, or data-driven, development.  OO development relies heavily on conceptual modeling that closely reflects the real world.  This course uses the industry-standard Unified Modeling Language (UML version 1.3) as the means of expressing OO concepts, and providing team members with a common notation and vocabulary for communicating their ideas.  The demands of today's marketplace have raised the threshold for OO ability.  Theory alone is not sufficient.  This course emphasizes the conceptual basis of OO through continuous application of key ideas, teaching students to "think like an object".  Extensive hands-on exercises using two parallel case studies assure that students see how a concept is modeled, and then have the opportunity to immediately apply and test their understanding.

Who Should Attend?

Business or system analysts, technical managers, and software developers who need a common, practical technique for describing and constructing object-oriented systems.

Benefits of Attendance

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

  • Understand essential UML notation.

  • Define system requirements using UML static and dynamic models.

  • Describe and apply OO concepts such as: encapsulation, polymorphism, abstraction, inheritance.

  • Describe logical software architecture.

Course Outline

Chapter 1: Introduction

  • Why OO? OO vs. Procedural

  • Object Principles

  • The OO Lifecycle

  • Iterative/Incremental Development Process

Chapter 2: The Unified Modeling Language

  • The Role Of OO Modeling

  • Key Concepts of UML

Chapter 3: Requirements Definition

  • Requirements Gathering Techniques

  • Use Cases & Scenarios

Chapter 4: Discovering Objects From Requirements

Chapter 5: Static Modeling

  • Class Diagrams

  • Object Diagrams

Chapter 6: Dynamic Modeling

  • Interaction Models

  • Modeling State & Concurrency

Chapter 7: Object Relationships

  • Generalization (Inheritance)

  • Aggregation & Composition

  • Association

  • Dependency

Chapter 8: Quality Characteristics

  • What is a "good" object?

  • What is a "good" model?

Chapter 9: Principles Of Software Architecture

  • Architectural Styles

  • Tiering

  • Designing to Architecture

Chapter 10: Introduction To Advanced Techniques

  • Patterns

  • Modeling Roles

  • Design Efficiency

  • Exception Management

  • Wrapping Legacy Systems

Prerequisites

Experience in analysis, design or development is desirable, but not mandatory.