Object-Oriented Analysis and Design Using UML

Similar documents
Java EE Patterns. Student Guide - Volume 1. SL-500 Rev C.0.1. D61856GC10 Edition 1.0 D62465

Fundamentals of the Java Programming Language

Business Component Development with EJB Technology, Java EE 5

Object-Oriented Analysis and Design Using UML (OO-226)

Java Programming Language

Web Component Development with Servlet and JSP Technologies, Java EE 6

Sun Virtualization: Solaris 10 Containers Administration

Sun Java System Application Server 8.1: Administration & Deployment

Shell Programming for System Administrators Student Guide

JOSE LUIS JUAREZ VIVEROS com) has a. non-transferable license to use this Student Guide

MySQL and PHP - Developing Dynamic Web Applications

Sun Certified System Administrator for the Solaris 10 OS Bootcamp

Siebel 8.1.x Fundamentals Student Guide

Sun Certified System Administrator for the Solaris 10 OS Bootcamp

Oracle Application Testing Suite: Introduction Student Guide

Oracle Enterprise Manager Ops Center. Introduction. What You Will Need. Installing and Updating Local Software Packages 12c Release

Oracle Data Integrator: Administration and Development Volume I Student Guide

Oracle Enterprise Manager

Oracle Enterprise Manager Ops Center

Oracle Communications Configuration Management

Oracle Banking Channels Bank User Base

Oracle VM Administration: Oracle VM Server for x86 Student Guide

Oracle Enterprise Manager Ops Center. Introduction. Creating Oracle Solaris 11 Zones Guide 12c Release 1 ( )

Microsoft Active Directory Plug-in User s Guide Release

Oracle Content Server 11g: Administration

Oracle Enterprise Manager Ops Center. Introduction. What You Will Need

Oracle Hyperion Data Relationship Management Administration Activity Guide

Oracle BPM 10g R3 Programming 1 Essentials

Oracle Data Integrator 11g: Integration and Administration Student Guide - Volume I

An Oracle White Paper December, 3 rd Oracle Metadata Management v New Features Overview

Microsoft Internet Information Services (IIS) Plug-in User s Guide Release

OracleAS 10g R3: Java Programming

Oracle BI Publisher 11g R1: Fundamentals

Oracle 10g: Java Programming

Oracle Enterprise Manager Ops Center. Introduction. Creating Oracle Solaris 11 Zones 12c Release 2 ( )

Oracle Enterprise Manager Ops Center E Introduction

Modeling Network Integrity Release 7.3.1

Agile Model-Driven Development with UML 2.0 SCOTT W. AM BLER. Foreword by Randy Miller UNIFIED 1420 MODELING LANGUAGE. gile 1.

Oracle Fusion Middleware

Oracle VM Server for x86: Administration

ORACLE SERVICES FOR APPLICATION MIGRATIONS TO ORACLE HARDWARE INFRASTRUCTURES

Oracle Utilities Work and Asset Management Integration to Primavera P6 Enterprise Project Portfolio Management

Oracle WebCenter Portal. Starting Points for Oracle WebCenter Portal Installation

JavaFX. JavaFX System Requirements Release E

Oracle Enterprise Manager Ops Center. Introduction. What You Will Need. Creating vservers 12c Release 1 ( )

Oracle Enterprise Manager Ops Center. Introduction. What You Will Need. Hardware and Software Configuration

Taleo Enterprise Deep Linking Configuration Guide Release 17

Oracle Utilities Advanced Spatial and Operational Analytics

R12.x Oracle Order Management Fundamentals Student Guide

E Oracle 10g Java Bootcamp I v1

Oracle Enterprise Manager. 1 Introduction. System Monitoring Plug-in for Oracle Enterprise Manager Ops Center Guide 11g Release 1 (

Microsoft.NET Framework Plug-in User s Guide Release

Oracle Hospitality OPERA Exchange Interface Cloud Authentication. October 2017

JD Edwards EnterpriseOne Licensing

Oracle Hospitality Suite8 Export to Outlook User Manual Release 8.9. July 2015

Oracle BI Publisher 10g R3: Fundamentals

Oracle Warehouse Builder 10g: New Features

Defining Constants and Variables for Oracle Java CAPS Environments

Oracle Enterprise Manager Ops Center

CROSS-REFERENCE TABLE ASME A Including A17.1a-1997 Through A17.1d 2000 vs. ASME A

Oracle Enterprise Manager Ops Center. Overview. What You Need. Create Oracle Solaris 10 Zones 12c Release 3 ( )

Configuring Oracle Java CAPS Master Index (Repository) Connectivity and Environments

Oracle Enterprise Manager Ops Center. Introduction. What You Will Need. Configure and Install Root Domains 12c Release 3 (

Oracle Data Modeling and Relational Database Design Volume I Student Guide

Oracle BI 11g R1: Build Repositories

What s New for Oracle Cloud Stack Manager. Topics: July Oracle Cloud. What's New for Oracle Cloud Stack Release

Oracle. Engagement Cloud Using Service Request Management. Release 12

Oracle mymicros.net, icare, myinventory and mylabor Self Host Release Notes Release v April 2015

Oracle Enterprise Manager Ops Center. Introduction. Provisioning Oracle Solaris 10 Operating Systems 12c Release 2 ( )

Oracle Agile Product Lifecycle Management for Process Reporting User Guide Release E

Oracle Fusion Middleware

Oracle WebCenter Sites 11g for Developers

Introduction to Auto Service Request

Web Object Management Workbench Guide Release 9.2

Oracle WebCenter Content 11g: Content Server Customization Student Guide - Volume I

Installing and Configuring Oracle HTTP Server 12c (12.1.3)

Oracle Enterprise Data Quality for Product Data

Oracle Identity Manager 11g: Essentials

Oracle Adaptive Access Manager: Administration Student Guide

Oracle Argus Safety. 1 Configuration. 1.1 Configuring a Reporting Destination for the emdr Profile. emdr Best Practices Document Release 8.0.

Siebel Clinical Trial Management System Guide Siebel Innovation Pack 2015, Rev. A

Importing an SNA Custom Handshake Class

Oracle Hospitality Cruise Fine Dining System Security Guide Release E

Oracle Fusion Middleware

Oracle Cloud Using Oracle IoT Connected Worker Cloud Service

Oracle Fusion Middleware

Oracle WebLogic Server 11g: Overview for WLS Administrators

What s New for Cloud at Customer What's New for the Cloud Services on Oracle Cloud at Customer New Documentation for Oracle Cloud at Customer

Oracle Fusion Middleware Installing and Configuring Oracle SOA Suite and Oracle Business Process Management. 12c ( )

General Security Principles

PeopleSoft Fluid Required Fields Standards

Oracle Database 11g: Oracle Secure Backup

Oracle. Applications Cloud Using Functional Setup Manager. Release 13 (update 18A)

Oracle Forms Developer 10g: Move to the Web

Report Management and Editor!

Administration Guide Release 5.0

Oracle Hospitality Cruise AffairWhere Security Guide Release E April 2017

JavaFX. Working with the JavaFX Scene Graph Release 8 E March 2014 Learn about the concept of a scene graph and how it is used in JavaFX.

1 Understanding the Cross Reference Facility

Creating Resources on the ZFS Storage Appliance

Transcription:

Object-Oriented Analysis and Design Using UML Student Guide - Volume 1 OO-226 Rev C D61808GC10 Edition 1.0 D62408

Copyright 2003, 2009, Oracle and/or its affiliates. All rights reserved. Disclaimer This document contains proprietary information, is provided under a license agreement containing restrictions on use and disclosure, and is protected by copyright and other intellectual property laws. You may copy and print this document solely for your own use in an Oracle training course. The document may not be modified or altered in any way. Except as expressly permitted in your license agreement or allowed by law, you may not use, share, download, upload, copy, print, display, perform, reproduce, publish, license, post, transmit, or distribute this document in whole or in part without the express authorization of Oracle. The information contained in this document is subject to change without notice. If you find any problems in the document, please report them in writing to: Oracle University, 500 Oracle Parkway, Redwood Shores, California 94065 USA. This document is not warranted to be error-free. Sun Microsystems, Inc. Disclaimer This training manual may include references to materials, offerings, or products that were previously offered by Sun Microsystems, Inc. Certain materials, offerings, services, or products may no longer be offered or provided.oracle and its affiliates cannot be held responsible for any such references should they appear in the text provided. Restricted Rights Notice If this documentation is delivered to the U.S. Government or anyone using the documentation on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS The U.S. Government s rights to use, modify, reproduce, release, perform, display, or disclose these training materials are restricted by the terms of the applicable Oracle license agreement and/or the applicable U.S. Government contract. Trademark Notice Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. UNIX is a registered trademark licensed through X/Open Company, Ltd.

This page intentionally left blank.

This page intentionally left blank.

Table of Contents About This Course...Preface-xxvii Course Goals... Preface-xxvii Course Map... Preface-xxviii Topics Not Covered... Preface-xxx How Prepared Are You?...Preface-xxxi Introductions...Preface-xxxii How to Use Course Materials...Preface-xxxiii Conventions...Preface-xxxiv Icons...Preface-xxxiv Typographical Conventions...Preface-xxxv Additional Conventions...Preface-xxxvi Introducing the Software Development Process...1-1 Objectives... 1-1 Relevance... 1-2 Additional Resources... 1-3 Exploring the OOSD Process... 1-4 Describing Software Methodology... 1-5 Listing the Workflows of the OOSD Process... 1-8 Explaining the Benefits of Object-Oriented Technology... 1-9 Describing the Software Team Job Roles... 1-10 Examining the Benefits of Modeling Software... 1-12 What Is a Model?... 1-12 Why Model Software?... 1-13 OOSD as Model Transformations... 1-14 Defining the UML... 1-15 Exploring the Requirements Gathering Workflow... 1-21 Workflow Purpose and Job Roles... 1-21 Workflow Activities and Artifacts... 1-22 Exploring the Requirements Analysis Workflow... 1-24 Workflow Purpose and Job Roles... 1-24 Workflow Activities and Artifacts... 1-25 v

Exploring the Architecture Workflow... 1-27 Workflow Purpose and Job Roles... 1-27 Workflow Activities and Artifacts... 1-28 Exploring the Design Workflow... 1-30 Workflow Purpose and Job Roles... 1-30 Workflow Activities and Artifacts... 1-32 Exploring the Construction Workflow... 1-34 Workflow Purpose and Job Roles... 1-34 Workflow Activities and Artifacts... 1-35 Summary... 1-37 Examining Object-Oriented Technology... 2-1 Objectives... 2-1 Relevance... 2-2 Additional Resources... 2-3 Examining Object-Oriented Principles... 2-4 Software Complexity... 2-5 Software Decomposition... 2-6 Software Costs... 2-8 Surveying the Fundamental OO Principles... 2-9 Objects... 2-10 Classes... 2-12 Abstraction... 2-14 Cohesion... 2-15 Encapsulation... 2-16 Inheritance... 2-18 Abstract Classes... 2-20 Interfaces... 2-22 Polymorphism... 2-24 Coupling... 2-26 Object Associations... 2-27 Summary... 2-29 Choosing an Object-Oriented Methodology... 3-1 Objectives... 3-1 Relevance... 3-2 Additional Resources... 3-3 Reviewing Software Methodology... 3-4 Exploring Methodology Best Practices... 3-5 Use-Case-Driven... 3-5 Systemic-Quality-Driven... 3-6 Architecture-Centric... 3-6 Iterative and Incremental... 3-8 Model-Based... 3-9 Design Best Practices... 3-11 vi Object-Oriented Analysis and Design Using UML

Surveying Several Methodologies... 3-12 Waterfall... 3-12 Unified Software Development Process... 3-14 Rational Unified Process... 3-16 SunTone Architecture Methodology... 3-17 extreme Programming... 3-18 Choosing a Methodology... 3-20 Choosing Waterfall... 3-20 Choosing UP... 3-21 Choosing RUP... 3-22 Choosing SunTone Architecture Methodology... 3-23 Choosing XP... 3-24 Summary... 3-25 Determining the Project Vision...4-1 Objectives... 4-1 Relevance... 4-2 Process Map... 4-3 Interviewing Business Owners... 4-4 Types of Requirements... 4-5 Interview Skills... 4-6 Vision Interview Focus... 4-8 Analyzing the Vision Interview... 4-15 Identifying NFRs... 4-15 Identifying Risks... 4-16 Creating the Vision Document... 4-22 Writing a Problem Statement... 4-22 Documenting the Business Opportunity... 4-23 Documenting the Proposed Solution... 4-23 Summary... 4-25 Gathering the System Requirements...5-1 Objectives... 5-1 Relevance... 5-2 Additional Resources... 5-3 Process Map... 5-4 Planning for Requirements Gathering... 5-5 Identifying Sources of Requirements... 5-5 Identifying Stakeholders... 5-6 Preparing for the Stakeholder Interviews... 5-8 Detailed FR Questions... 5-8 Detailed NFR Questions... 5-12 vii

Creating the SRS Document... 5-20 Writing the Introduction... 5-20 Writing the Functional Requirements... 5-21 Writing the Non-Functional Requirements Section... 5-27 Writing the Project Glossary... 5-28 Summary... 5-29 Creating the Initial Use Case Diagram... 6-1 Objectives... 6-1 Relevance... 6-2 Additional Resources... 6-3 Process Map... 6-4 Justifying the Need for a Use Case Diagram... 6-5 Identifying the Elements of a Use Case Diagram... 6-6 Actors... 6-7 Use Cases... 6-8 System Boundary... 6-9 Use Case Associations... 6-10 Developing a Use Case Diagram... 6-11 Storing the Use Case Diagram... 6-14 Recording Use Case Scenarios... 6-15 Selecting Use Case Scenarios... 6-16 Writing a Use Case Scenario... 6-17 Storing the Use Case Scenarios... 6-19 Summary... 6-20 Refining the Use Case Diagram... 7-1 Objectives... 7-1 Relevance... 7-2 Additional Resources... 7-3 Process Map... 7-4 Analyzing a Use Case... 7-5 Creating a Use Case Form... 7-5 Expanding High-Level Use Cases... 7-10 Analyzing Inheritance Patterns... 7-13 Analyzing Use Case Dependencies... 7-15 Validating a Use Case With an Activity Diagram... 7-19 Identifying the Elements of an Activity Diagram... 7-19 Creating an Activity Diagram for a Use Case... 7-24 Summary... 7-27 Determining the Key Abstractions... 8-1 Objectives... 8-1 Relevance... 8-2 Additional Resources... 8-3 Process Map... 8-4 viii Object-Oriented Analysis and Design Using UML

Introducing Key Abstractions... 8-5 Identifying Candidate Key Abstractions... 8-6 SRS Nouns... 8-7 Candidate Key Abstractions Form... 8-8 Project Glossary... 8-9 Discovering Key Abstraction Using CRC Analysis... 8-10 Selecting a Key Abstraction Candidate... 8-11 Identifying a Relevant Use Case... 8-12 Determining Responsibilities and Collaborators... 8-13 Documenting a Key Abstraction Using a CRC Card... 8-14 Updating the Candidate Key Abstractions Form... 8-16 Summary... 8-17 Constructing the Problem Domain Model...9-1 Objectives... 9-1 Relevance... 9-2 Additional Resources... 9-3 Process Map... 9-4 Introducing the Domain Model... 9-5 Identifying the Elements of a Class Diagram... 9-6 Class Nodes... 9-7 Class Node Compartments... 9-8 Associations... 9-9 Creating a Domain Model... 9-12 Step 1 Draw the Class Nodes... 9-13 Step 2 Draw the Associations... 9-14 Step 3 Label the Association and Role Names... 9-15 Step 4 Label the Association Multiplicity... 9-16 Step 5 Draw the Navigation Arrows... 9-17 Step 6 Draw the Association Classes... 9-18 Validating the Domain Model... 9-18 Identifying the Elements of an Object Diagram... 9-19 Object Nodes... 9-20 Links... 9-21 Validating the Domain Model Using Object Diagrams... 9-22 Creating a Scenario Object Diagram... 9-23 Comparing Object Diagrams to Validate the Domain Model... 9-30 Summary... 9-32 ix

Creating the Design Model Using Robustness Analysis... 10-1 Objectives... 10-1 Relevance... 10-2 Additional Resources... 10-3 Process Map... 10-4 Introducing the Design Model... 10-5 Comparing Analysis and Design... 10-5 Robustness Analysis... 10-6 Boundary Components... 10-7 Service Components... 10-8 Entity Components... 10-9 Describing the Robustness Analysis Process... 10-10 Identifying the Elements of a Collaboration Diagram... 10-11 Performing Robustness Analysis... 10-13 Step 1 Select a Use Case... 10-14 Step 2 Place the Actor in the Diagram... 10-15 Step 3a Identify Boundary Components... 10-16 Step 3b Identify Service Components... 10-18 Step 3c Identify Entity Components... 10-19 Analyze All Actions in the Activity Diagram... 10-20 Converting the Collaboration Design Into a Sequence Diagram... 10-21 Identifying the Elements of a Sequence Diagram... 10-22 Clarifying the Design Model Using a Sequence Diagram... 10-24 Step 1 Arrange Components for the First Activity... 10-25 Step 2 Add Message Links and Activation Bars... 10-26 Step 3 Repeat Step 2 for Each Activity... 10-27 Summary... 10-29 Introducing Fundamental Architectural Concepts... 11-1 Objectives... 11-1 Relevance... 11-2 Additional Resources... 11-3 Process Map... 11-4 Justifying the Need for the Architect Role... 11-5 Risks Associated With Large-Scale, Distributed Enterprise Systems... 11-6 Quality of Service... 11-8 Risk Evaluation and Control... 11-9 The Role of the Architect... 11-10 Distinguishing Between Architecture and Design... 11-12 Architectural Principles... 11-13 Architectural Patterns and Design Patterns... 11-15 x Object-Oriented Analysis and Design Using UML

Applying the SunTone Architecture Methodology... 11-17 Tiers... 11-18 Layers... 11-20 Systemic Qualities... 11-21 Summary... 11-22 Exploring the Architectural Workflow...12-1 Objectives... 12-1 Additional Resources... 12-2 Process Map... 12-3 Introducing the Architecture Workflow... 12-4 Design Model... 12-7 Architecture Template... 12-9 Solution Model... 12-10 Architectural Views... 12-10 Describing Key Architecture Diagrams... 12-11 Identifying the Elements of a Package Diagram... 12-11 Identifying the Elements of a Component Diagram... 12-14 Identifying the Elements of a Deployment Diagram... 12-18 Selecting the Architecture Type... 12-21 Standalone Applications... 12-22 Client/Server (2-Tier) Applications... 12-23 N-Tier Applications... 12-24 Hotel Reservation System Architecture... 12-27 Creating the Architecture Workflow Artifacts... 12-28 Creating the Detailed Deployment Diagram... 12-28 Creating the Architecture Template... 12-30 Creating the Tiers and Layers Package Diagram... 12-32 Summary... 12-35 Creating an Architectural Model for the Client and Presentation Tiers...13-1 Objectives... 13-1 Relevance... 13-2 Additional Resources... 13-3 Process Map... 13-4 Exploring User Interfaces... 13-5 User Interface Prototypes... 13-6 User Interface Technologies... 13-6 Documenting a GUI in the Client Tier of the Architecture Model... 13-9 Exploring Graphical User Interfaces... 13-9 Recording the Client Tier in the Architecture Model... 13-22 xi

Documenting a Web UI in the Presentation Tier of the Architecture Model... 13-25 Exploring Web User Interfaces... 13-25 Recording the Presentation Tier in the Architecture Model... 13-33 Summary... 13-36 Creating an Architectural Model for the Business Tier... 14-1 Objectives... 14-1 Relevance... 14-2 Additional Resources... 14-3 Process Map... 14-4 Exploring Distributed Object-Oriented Computing... 14-5 Local Access to a Service Component... 14-6 Remote Access to a Service Component... 14-8 Documenting the Business Tier in the Architecture Model... 14-13 Populating the Detailed Deployment Diagram... 14-14 Creating the Architecture Template... 14-15 Populating the Tiers and Layers Package Diagram... 14-16 Summary... 14-18 Creating an Architectural Model for the Resource and Integration Tiers... 15-1 Objectives... 15-1 Relevance... 15-2 Additional Resources... 15-3 Process Map... 15-4 Documenting the Persistence Mechanism in the Resource Tier of the Architecture Model... 15-5 Exploring Object Persistence... 15-5 Recording the Resource Tier in the Architecture Model... 15-14 Documenting the Persistence Integration Mechanism in the Integration Tier of the Architecture Model... 15-18 Exploring Integration Tier Technologies... 15-18 Recording the Integration Tier in the Architecture Model... 15-21 Summary... 15-25 Creating the Solution Model... 16-1 Objectives... 16-1 Process Map... 16-2 Introducing the Solution Model... 16-3 Creating a Solution Model for GUI Applications... 16-4 Creating a Solution Model for WebUI Applications... 16-7 Summary... 16-10 xii Object-Oriented Analysis and Design Using UML

Refining the Domain Model...17-1 Objectives... 17-1 Relevance... 17-2 Additional Resources... 17-3 Process Map... 17-4 Refining Attributes of the Domain Model... 17-5 Refining the Attribute Metadata... 17-5 Choosing an Appropriate Data Type... 17-7 Creating Derived Attributes... 17-8 Applying Encapsulation... 17-8 Refining Class Relationships... 17-9 Relationship Types... 17-9 Navigation... 17-13 Qualified Associations... 17-14 Relationship Methods... 17-15 Resolving Many-to-Many Relationships... 17-17 Resolving Association Classes... 17-18 Refining Methods... 17-20 Declaring Constructors... 17-22 Summary... 17-23 Applying Design Patterns to the Solution Model...18-1 Objectives... 18-1 Relevance... 18-2 Additional Resources... 18-3 Process Map... 18-4 Explaining Software Patterns... 18-5 Levels of Software Patterns... 18-6 Design Principles... 18-7 Describing the Composite Pattern... 18-13 Composite Pattern: Problem... 18-13 Composite Pattern: Solution... 18-14 Composite Pattern: Consequences... 18-15 Describing the Strategy Pattern... 18-16 Strategy Pattern: Problem... 18-16 Strategy Pattern: Solution... 18-17 Strategy Pattern: Consequences... 18-17 Describing the Observer Pattern... 18-19 Observer Pattern: Problem... 18-21 Observer Pattern: Solution... 18-21 Observer Pattern: Consequences... 18-22 Describing the Abstract Factory Pattern... 18-23 Abstract Factory Pattern: Problem... 18-24 Abstract Factory Pattern: Solution... 18-24 Abstract Factory Pattern: Consequences... 18-25 Summary... 18-26 xiii

Modeling Complex Object State Using Statechart Diagrams... 19-1 Objectives... 19-1 Relevance... 19-2 Additional Resources... 19-3 Process Map... 19-4 Modeling Object State... 19-5 Introducing Object State... 19-5 Identifying the Elements of a Statechart Diagram... 19-6 Creating a Statechart Diagram for a Complex Object... 19-10 Programming a Complex Object... 19-15 Problems With Coding a Complex Object... 19-15 Describing the State Pattern... 19-16 Summary... 19-20 Drafting the Development Plan...A-1 Objectives... A-1 Relevance... A-2 Additional Resources... A-3 Process Map... A-4 Describing How SunTone Architecture Methodology Relates to the Development Plan... A-5 Listing Needed Resources and Skills... A-7 Determining the Developers... A-7 Determining the Skill Set... A-9 Selecting Use Cases for Iterations... A-11 Criteria for Prioritizing Use Cases... A-12 Estimating Development Time for Use Cases... A-13 Determining the Duration of Each Iteration... A-15 Grouping Use Cases Into Iterations... A-16 Documenting the Development Plan... A-18 Summary... A-20 Constructing the Software Solution...B-1 Objectives... B-1 Process Map...B-2 Defining a Package Structure for the Solution...B-3 Using UML Packages...B-3 Applying Package Principles...B-3 Isolating Subsystems and Frameworks...B-10 Developing a Package Structure for the Solution Model...B-10 Mapping the Domain Model to Java Technology Class Code...B-13 Type Information...B-13 Attributes...B-14 Associations...B-16 Summary...B-24 xiv Object-Oriented Analysis and Design Using UML

Testing the Software Solution... C-1 Objectives... C-1 Process Map... C-2 Defining System Testing... C-3 Unit Tests... C-5 Integration Tests... C-6 Functional Tests... C-7 Developing a Functional Test... C-8 Identifying Functional Test Inputs... C-9 Identifying Functional Test Results... C-9 Identifying Functional Test Conditions... C-10 Creating Functional Test Variants... C-10 Documenting Test Cases... C-11 Summary... C-12 Deploying the Software Solution... D-1 Objectives... D-1 Process Map... D-2 Explaining System Deployment... D-3 Using the Deployment Diagram... D-4 Creating an Instance Deployment Diagram... D-5 Kiosk Application Instance Deployment Diagram... D-6 WebPresenceApp Instance Deployment Diagram... D-7 HotelApp Instance Deployment Diagram... D-8 Remote Application Server Instance Deployment Diagram... D-9 Summary... D-10 Quick Reference for UML... E-1 Additional Resources...E-2 UML Basics...E-3 General Elements...E-6 Packages...E-6 Stereotypes...E-8 Annotation...E-8 Constraints...E-9 Tagged Values...E-9 Use Case Diagrams...E-10 Class Diagrams...E-11 Class Nodes...E-11 Inheritance...E-14 Interface Implementation... E-15 Association, Roles, and Multiplicity... E-16 Aggregation and Composition...E-17 Association Classes...E-18 Other Association Elements...E-21 Object Diagrams...E-22 xv

Collaboration Diagrams...E-24 Sequence Diagrams...E-26 Statechart Diagrams...E-28 Transitions... E-29 Activity Diagrams...E-30 Component Diagrams...E-34 Deployment Diagrams...E-36 Additional Resources... F-1 Additional Resources... F-1 Glossary/Acronyms...Glossary-1 xvi Object-Oriented Analysis and Design Using UML