Home
Up
Services
Articles
About Us
Contact Us

Object-Oriented Analysis & Design with UML 2

Goals

This course combines the most valuable object-oriented analysis and design concepts into a single 4-day offering. Based on the author's award-winning article series "Getting From Use Cases to Code", published at IBM developerWorks, this course focuses on how analysts and developers should first represent “what” functionality an object-oriented software system will provide its users, then "how" to design their system to meet those goals. Students will learn the power of the Unified Modeling Language 2 (UML 2) for expressing project goals in object-oriented models to express both analysis and design concepts. Extensive hands-on exercises using two complete, and parallel, case studies assure that students see how a concept is modeled, and then have the opportunity to immediately apply and test their understanding.

At the end of the course, the student will be able to:

  • Identify and conduct analysis tasks including defining the inputs, activities, and outputs of analysis modeling.
  • Discover and identify classes from business requirements.
  • Translate classes and their relationships to object-oriented representations in UML notation.
  • Describe the value of responsibility-driven specification as a system organizing principle.
  • Transform UML analysis models to UML design representations.
  • Describe and apply the major design principles from Meyer and Martin.
  • Incorporate collection classes to represent design model multiplicities.
  • Identify the core “Gang of Four” Design Patterns and when to use each.
  • Describe the Model-View-Controller architectural pattern and when to use it.
  • Develop both static and dynamic UML models to specify a software system from multiple perspectives.
  • Articulate a common analysis mindset and vocabulary to communicate effectively with other members of object-oriented projects.

Duration

Four days.

Prerequisites

Experience with any form of analysis and design specification is desirable, but not mandatory.

Cost

Please call 803-781-7628 for public enrollment and private, on-site pricing.

Description

This course provides students an intensive, practical training in the concepts and application of object-oriented analysis & design. Starting with basic concepts, this course challenges students with real-world examples and exercises of object-oriented thinking and UML modeling. Note: no computers or software modeling tools are used in this course. The emphasis is on thinking in an object-oriented manner, not on using a CASE tool. With the concepts gained in this course, the students may then apply them using any CASE tool of their choice.

Topics

Introduction

Introduce The Course’s Two Case Studies

–   Example Case Study

–   Student Exercise Case Study

Object Orientation Jumpstart

–   Thinking Like an Object

–   Example: Milking An Object-Oriented Cow

–   The 8 Main Concepts

–   Objects: As Easy as P.I.E

–   Exercise: Discovering Objects And Behavior

The Unified Modeling Language

–   Key Modeling Concepts For The Developer

–   The 13 Diagrams In UML 2

-   The Sane Subset of UML

UML Analysis Modeling

–   Discovering The “What” Rather Than “How”

-   Analysis Principles

–   How Analysis Modeling Supports Design

UML Structural Modeling

–   Identify Candidate Entities from Requirements

–   Challenge the Candidate Entities

–   Construct the Domain Model

-   Construct Class Responsibility Specifications

Modeling Structural Relationships With UML

–   Identify the Analysis Classes

–   Identify Classes That Have Relationships

–   UML Relationships

–   Association, Aggregation, Composition, Inheritance, & Association Classes

–   Association

–   Small Group Exercise: UML Association Modeling

–   Aggregation & Composition

–   Association Classes

–   Small Group Exercise: UML Aggregation/Composition/Association Modeling

–   Inheritance

–   Four Laws of Inheritance

–   Small Group Exercise: UML Inheritance Modeling

Constructing the Analysis Class Diagram

–   Identify the Syntax of Class Relationships

–   Identify the Semantics of Class Relationships

–   Identify the Multiplicity of Class Relationships

–   Example: The Initial Analysis Class Diagram

–   Case Study Exercise: Construct an Initial Analysis Class Diagram

UML Behavioral Modeling

Interaction Diagrams

–   The Sequence Diagram

–   Modeling Intent Vs. Implementation

–   Special Tips For Analysis Sequence Diagrams

–   Interaction Frames & Operators

–   Exercise: Sequence Diagramming

–   Case-Study Exercise: Sequence Diagram

Communication Diagrams

State Machine Diagrams

–   Defining State

–   States, Events, Actions & Activities

–   Modeling Instantaneous Vs. Time-Bound Properties

–   Composite States And Nested States

–   Exercise: State Machine Diagramming

–   Case-Study Exercise: State Machine Diagram

–   Relationship Between UML Behavioral Models And Structural Models

Activity Diagrams

Putting It All Together

Design Principles

–   Abstract classes & Interfaces

–   Recognizing Bad Design

–   Meyer's Open-Closed Principle

–   Martin’s Design Principles

 

UML Structural Design Modeling

Designing Class Association

–   1:1, 1:many, many:many relationships

–   One-way and two-way Navigation

–   Designing 1:1 associations

–   Example: 1:1, two-way association

–   Exercise: 1:1, two-way association

–   Designing 1:many associations

–   Example: 1:many, two-way association

–   Collection Classes: Why you cannot live without them

–   Exercise: 1:many, two-way association

–   Designing many:many assocations

–   Association Classes

–   Example: many:many, two-way with association class

Designing Class Aggregation and Composition

–   Containment & Ownership

–   Structural & Semantic characteristics

–   Deciding between aggregation & composition

–   How their semantics determine design

–   Example: Designing 1:many aggregation

–   Exercise: Designing 1:many composition

Designing Class Inheritance

–   The uniqueness of inheritance relationship

–   Policy versus specifics

–   The 4 Laws of Inheritance

–   Signs of Good Inheritance/Bad Inheritance

–   Accidental Inheritance

–   Delegation

–   Example: Designing Inheritance

–   Exercise: Designing Inheritance

–   Inheritance or Roles?

–   Example: Modeling the “barkless” dog

Design Patterns

–   The “Gang of Four” (GOF)

–   Factory Method

–   Faηade

–   Adapter

–   Bridge

–   Composite

–   State

–   Command

Wrapping Techniques

–   Wrapping Techniques Using Faηade

–   Wrapping Shared Resources

–   Wrapping Databases & Legacy Systems

–   Wrapping the Wrapper

UML Behavioral Design Modeling

Design-level Squence Diagrams

–   Transforming the Analysis Sequence Diagram

–   Model-View-Controller (MVC) & The Observer Design Pattern

–   Creating a MVC approach

–   Example: Design Sequence Diagram for a use case scenario

–   Exercise: Design Sequence Diagram for a use case scenario

–   Updating the Class Diagram

Design-level State Machine Diagrams

–   Transforming the Analysis State Machine Diagram

–   Mapping Events, etc. to the Class Diagram

–   Example: Design State Machine Diagram

–   Exercise: Design State Machine Diagram

–   Updating the Class Diagram

Designing Object State

–   Enumerated state variables

–   The GOF State Design Pattern

–   Choosing the correct method

Putting It All Together

Course Wrap Up

Audience

Technical managers, software developers, testers and analysts who need a common, practical approach for constructing object-oriented specifications of systems from requirements through system design.

For more information about this course or other courses please contact Evanetics at 1-803-781-7628.

 

Copyright ©2008 Evanetics, Inc. All Rights Reserved.  www.evanetics.com