Home
Up
Services
Articles
About Us
Contact Us

Object-Oriented Analysis & Design with UML 2

Description

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.

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.

Duration

Four days.

Prerequisites

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

Cost

$3,200 per course-day includes up to 12 students for on-site training. $300 per course-day for each additional student up to a maximum of 16 students.

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 ©2009 Evanetics, Inc. All Rights Reserved.  www.evanetics.com