Object-Oriented Analysis and Design with UML

Summary

A good understanding of object-oriented analysis and design is important in designing effective systems using modern software engineering languages and frameworks such as C++, .NET and Java™. This five-day course teaches you how to use object-oriented techniques to analyze real-world requirements and to design solutions that are ready to code. The course employs Unified Modeling Language, using UML 2.0 notation.

The course contains a case study of an object-oriented system. Progressive labs go through the analysis and design of this system, which is documented in UML notation. Implementations are provided of the case study in C++, Java and C#.

Prerequisites
Some exposure to the problems of analysis and design. Experience with structured analysis and design and object-oriented programming would be helpful.

Course Objectives
On completion of this course, the student should be able to
  • Learn how to identify and design objects, classes, and their relationships to each other
  • Use links, associations, and inheritance
  • Use diagram notation for use cases, class and object representation, links and associations, and object messages
  • Gain a working knowledge UML 2.0
  • Apply knowledge of OOAD to design an object-oriented system which can be implemented in an object-oriented language

Intended Audience
Analysts, designers, architects, and developers responsible for applying object-oriented techniques in their software engineering projects.
Length
5 Days

Format
Instructor-led course, with practical computer-based exercises.

Course Outline

    • 1. Course Introduction
      • Course Objectives
      • Overview
      • Suggested References

    • 2. Introduction to Analysis and Design
      • Why is Programming Hard?
      • The Tasks of Software Development
      • Modules
      • Models
      • Modeling
      • Perspective
      • Objects
      • Change
      • New Paradigms

    • 3. Objects
      • Encapsulation
      • Abstraction
      • Objects
      • Classes
      • Responsibilities
      • Attributes
      • Composite Classes
      • Operations and Methods
      • Visibility
      • Inheritance
      • Inheritance Example
      • Protected and Package Visibility
      • Scope
      • Class Scope

    • 4. Advanced Objects
      • Constructors & Destructors
      • Instance Creation
      • Abstract Classes
      • Polymorphism
      • Polymorphism Example
      • Multiple Inheritance
      • Solving Multiple Inheritance Problems
      • Interfaces
      • Interfaces with Ball and Socket Notation
      • Templates

    • 5. Classes and Their Relationships
      • Class Models
      • Associations
      • Multiplicity
      • Qualified Associations
      • Roles
      • Association Classes
      • Composition and Aggregation
      • Using Class Models

    • 6. Sequence Diagrams
      • Sequence Diagrams
      • Interaction Frames
      • Decisions
      • Loops
      • Creating and Destroying Objects
      • Activation - 2.0
      • Synchronous & Asynchronous
      • The Objects Drive the Interactions
      • Evaluating Sequence Diagrams
      • Using Sequence Diagrams

    • 7. Communication Diagrams
      • Communication Diagrams
      • Communication and Class Diagrams
      • Evaluating Communication Diagrams
      • Using Communication Diagrams

    • 8. State Machine Diagrams
      • What is State?
      • State Notation
      • Transitions and Guards
      • Registers and Actions
      • More Actions
      • Internal Transitions
      • Superstates and Substates
      • Concurrent States
      • Using State Machines
      • Implementation

    • 9. Activity Diagrams
      • Activity Notation
      • Decisions and Merges
      • Synchronization
      • Drilling Down
      • Iteration
      • Partitions
      • Parameters and Pins
      • Expansion Regions
      • Using Activity Diagrams

    • 10. Package, Component, and Deployment Diagrams
      • Modeling Groups of Elements - Package Diagrams
      • Visibility and Importing
      • Structural Diagrams
      • Components and Interfaces
      • Deployment Diagram

    • 11. New Models in UML 2.0
      • New to UML 2.0
      • Composite Structure Diagrams
      • Timing Diagrams
      • Interaction Overview Diagrams

    • 12. Use Cases
      • Use Cases
      • Use Case Diagram Components
      • Use Case Diagram
      • Actor Generalization
      • Include and Extend
      • Other Systems
      • Narrative
      • Template for Use Case Narrative
      • Using Use Cases

    • 13. Process
      • Process
      • Risk Management
      • Test
      • Reviews
      • Refactoring
      • History
      • The Unified Process
      • Agile Processes

    • 14. The Project
      • Inception
      • Elaboration
      • Elaboration II
      • Construction Iterations
      • Construction Iterations - The Other Stuff

    • 15. Domain Analysis
      • Top View - The Domain Perspective
      • Data Dictionary
      • Finding the Objects
      • Responsibilities, Collaborators, and Attributes
      • CRC Cards
      • Class Models
      • Use Case Models
      • Other Models
      • Judging the Domain Model

    • 16. Requirements and Specification
      • The Goals
      • Understand the Problem
      • Specify a Solution
      • Prototyping
      • The Complex User
      • Other Models
      • Judging the Requirements Model

    • 17. Design of Objects
      • Design
      • Factoring
      • Design of Software Objects
      • Features
      • Methods
      • Cohesion of Objects
      • Coupling between Objects
      • Coupling and Visibility
      • Inheritance

    • 18. System Design
      • Design
      • A Few Rules
      • Object Creation
      • Class Models
      • Interaction Diagrams
      • Printing the Catalog
      • Printing the Catalog II
      • Printing the Catalog III
      • Object Links
      • Associations

    • 19. Refactoring
      • Refactoring
      • Clues and Cues
      • How to Refactor
      • A Few Refactoring Patterns

    • Appendix A. UML Syntax

    • Appendix B. Design by Contract
      • Contracts
      • Enforcing Contracts
      • Inheritance and Contracts

    • Appendix C. University Summary

Hardware and Software Requirements

Go to course catalogue