Nazzaro & Associates

The Future of Technology Today SM


 

Home
Training
Services
Presentations
Modeling
Books
Links
Contact Us

Object-Oriented Analysis & Design with UML 2

Download Course Details (PDF)

Goals

The demands of today’s marketplace have raised the threshold for object-oriented ability. This course emphasizes the conceptual basis of object-oriented thinking through continuous application of key ideas, teaching students to "think like an object". This course uses the IBM Rational Unified Process® (RUP) and the Unified Modeling Language 2 (UML 2) to teach object-oriented analysis & design in an example iterative, incremental development process. 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.

In the analysis portion of the course, students will learn how to identify the analysis domain concepts in their project domain, and how to represent these domain concepts using UML 2 in a manner that clarifies the project requirements.  In the design portion of the course, students will explore in detail the relationship between software architecture and software design, including Gang of Four design patterns, Web architecture and Model-View-Controller, the evolution of Service-Oriented Architecture and Web Services, and how to develop a persistence layer for mapping classes to a Relational DBMS.

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

  • Describe and apply the major concepts of object-orientation.

  • Understand core UML notation for expressing both static and dynamic models.

  • Understand how object-oriented modeling is done in an iterative development process.

  • Effectively model software systems using UML 2 in both analysis and design perspectives.

  • Identify system domain concepts, entities and classes from project requirements artifacts.

  • Articulate the value of responsibility-driven analysis as an organizing principle for system

    specification through design and coding.

  • Apply the discoveries of dynamic modeling to the content of the static models.

  • Share a common mindset and vocabulary with other members of object-oriented projects.

Duration

Four, or five days, based on your project needs.

Prerequisites

Experience in software analysis, design or development is desirable, but not mandatory.  Some experience with UML 1.x or UML 2 modeling is desirable.

Cost

Please call 1-610-831-1151 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 and design. Starting with basic concepts for newcomers, this course challenges students with real-world examples and exercises of object-oriented thinking and UML modeling.

 

Topics

Object-Oriented Software Process

  • Object-oriented vs. procedural approaches

  • Iterative development: The Unified Process

Introduce the Course’s Two Case Studies

The Unified Modeling Language

  • The Role Of Object-Oriented Modeling in Analysis and Design

  • The 13 diagrams in UML 2

  • Key Concepts of UML 2

Object Orientation Jumpstart

  • Understanding Classes and Objects

  • How to Milk an Object-Oriented Cow

  • The 8 Main Concepts

Analysis Modeling

  • UML Static Modeling

    • Discovering Classes from Requirements

    • Applying the "5 questions"

    • Responsibility-driven analysis

  • Modeling Static Relationships

    • Modeling Static Relationships with UML

    • Association

    • Aggregation and Composition

    • Inheritance (Generalization)

    • The 4 Laws of Inheritance

  • Evolving the Class Diagram

    • Modeling Traps

    • Detecting Model Mistakes

  • UML Dynamic Modeling

    • Interaction & Activity Diagrams

    • Modeling intent vs. implementation

    • Rules for Analysis dynamic diagrams

    • State Machine Diagrams

    • Modeling instantaneous vs. time-bound properties

    • Substates and Composite states

    • Relationship between UML dynamic models and static models

Design Principles

  • Abstract classes

  • Recognizing Bad Design

  • Meyer's Open-Closed Principle

  • Martin’s Design Principles

  • Separation of Concerns

  • Gang of Four Patterns

UML Static Design Modeling

  • Designing Class Associations

    • 1:1, 1:many, many:many

    • One-way and Two-way Navigation

    • Collection Classes

    • Association Classes

 

  • Designing Aggregation and Composition

  • Designing Inheritance

    • Accidental Inheritance

    • Delegation

    • Inheritance or Roles?

    • Multiple Inheritance

Architecture and Design

  • Software Architecture & System Architecture

  • Software Architectural Styles & Patterns

    • Layers, Pipes & Filters, Broker

    • Frameworks

  • Model-View-Controller (MVC) and the Observer Pattern

  • Web Application Architectures

    • Web and MVC

  • Service-Oriented Architecture

    • Evolution from single-process/single address space to Web Services and SOA

  • Design Patterns

    • A Universal Business Pattern

    • The “Gang of Four” (GOF)

    • Factory Method

    • Façade

    • Adapter

    • Bridge

    • Composite

    • State

    • Command

  • Wrapping Techniques

    • Wrapping Shared Resources

    • Wrapping Databases & Legacy Systems

UML Dynamic Design Modeling

  • Design-level Sequence Diagrams

    • Return Styles for Sequence Diagrams

    • Updating the Class Diagram

  • Design-level State Machine Diagrams

    • Mapping Events, etc. to the Class Diagram

    • Updating the Class Diagram

    • Using the GOF State Pattern vs. Enumerated State Variables

Persistence Design

  • Data Modeling vs. Object Modeling

  • Mapping Objects to RDBMS

    • Mapping Classes, Objects

    • Mapping Class Relationships

    • Representing Inheritance

  • Constructing a Persistence Interface

Wrap-Up

 

Audience

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

 

 For more information about this course or other courses please contact Nazzaro & Associates at 1.610.831.1151 or info@williamnazzaro.com.

 

Back to Top