Home
Up
Services
Articles
About Us
Contact Us

Use Cases to Code — Analysis with UML 2

Description

In our 21st century world of service-orientation, web-services, object-oriented software development, and agile, highly iterative projects, it is imperative for members of the software development community to understand and execute the practices of software analysis. This 3-day course provides students an intensive, practical training in the concepts and application of object-oriented analysis. Starting with basic concepts, this course challenges students with real-world examples and exercises of object-oriented thinking and UML modeling within an analysis mindset. 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 object-oriented software systems will provide their users, rather than “how” the software will be designed.

Students will learn the power of the Unified Modeling Language 2 (UML 2) for expressing project goals in object-oriented analysis models, to prepare for either in-house, or out-sourced, technical design. 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. This course is an ideal pre-requisite for Evanetics Use Cases to Code: Design with UML course.

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 objects and actors from business requirements.
  • Translate objects and actors to object-oriented representations in UML notation.
  • Use CRC techniques to identify classes and responsibilities.
  • Describe the value of responsibility-driven analysis as a system organizing principle.
  • Develop both static and dynamic UML models to specify a software system from multiple perspectives, and know when to use each type of model
  • 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

Three days.

Prerequisites

Experience in software analysis, and UML modeling, 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

Object-Oriented Software Process

–      A “Process Miniature” Of Project Analysis (The Whole Course in 45 slides)

–     Why Developers Need to Learn Analysis

Introduce The Course’s Two Case Studies

–   Example Case Study

–   Student Exercise Case Study

The Unified Modeling Language

–   Key Modeling Concepts For The Developer

–   The 13 Diagrams In UML 2

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

UML Analysis Modeling

–   Discovering The “What” Rather Than “How”

–   How Analysis Modeling Supports Design

UML Structural Modeling

–   Identify Candidate Entities from Requirements

–   Challenge the Candidate Entities

–   Construct the Domain Model

–   Construct Responsibility Specifications

–   Construct CRC Representations

Class-Responsibility-Collaborator Cards

–   CRC Structure

–   Large Class Exercise: CRC Simulation

–   Example: Simulation Sequence Diagram

–   Case Study Exercise: Discover Domain Classes & Responsibilities

Modeling Structural Relationships With UML

–   Identify the Analysis Classes

–   Identify Classes That Have Relationships

–   UML Relationships

–   Association, Aggregation, Composition, Inheritance, & Assocation 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

Evolving The Class Diagram

–   Modeling Traps

–   Detecting Model Mistakes

–   Case Study Exercise: Construct an Improved 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

User Interface Prototypes

–   Case Study Example: Sample UI Prototypes

Putting It All Together

Course Wrap Up

 

Audience

Technical managers, software developers, testers and analysts who need a common, practical technique for constructing analysis specifications of object-oriented systems prior to design and architecture activities.

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