The Unified Modeling Language User Guide

Similar documents
The Power of Events. An Introduction to Complex Event Processing in Distributed Enterprise Systems. David Luckham

\ Smart Client 0" Deploymentwith v^ ClickOnce

PYTHON. p ykos vtawynivis. Second eciitiovl. CO Ve, WESLEY J. CHUN

Cloud Computing and SOA Convergence in Your Enterprise

Quality Code. Software Testing Principles, Practices, and Patterns. Stephen Vance. AAddison-Wesley

Programming in Python 3

LATEX. Leslie Lamport. Digital Equipment Corporation. Illustrations by Duane Bibby. v ADDISON-WESLEY

Programming Guide. Aaftab Munshi Dan Ginsburg Dave Shreiner. TT r^addison-wesley

CISC 322 Software Architecture

A Document Preparation System. User's Guide and Reference Manual. Leslie Lamport

Programming with POSIX Threads

SQL Queries. for. Mere Mortals. Third Edition. A Hands-On Guide to Data Manipulation in SQL. John L. Viescas Michael J. Hernandez

MariaDB Crash Course. A Addison-Wesley. Ben Forta. Upper Saddle River, NJ Boston. Indianapolis. Singapore Mexico City. Cape Town Sydney.

Database Concepts. David M. Kroenke UNIVERSITATSBIBLIOTHEK HANNOVER

Framework Design Guidelines

Programming. In Ada JOHN BARNES TT ADDISON-WESLEY

Programming Wireless Devices with the Java 2 Platform, Micro Edition

Application Programming

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu. AAddison-Wesley

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu

Modern C++ Design. Generic Programming and Design Patterns Applied. Andrei Alexandrescu. .~Addison-Wesley

Refactoring HTML. Improving the Design of Existing Web Applications. Elliotte Rusty Harold. TT rvaddison-wesley

Fundamentals of. Database Systems. Shamkant B. Navathe. College of Computing Georgia Institute of Technology PEARSON.

Essentials of Database Management

JAVASCRIPT FOR PROGRAMMERS

ECLIPSE RICH CLIENT PLATFORM

ECLIPSE MODELING PROJECT

IPHONE FOR PROGRAMMERS: AN APP-DRIVEN APPROACH

Rational Software White paper

Fit for Developing Software

Information Modeling and Relational Databases

FUNDAMENTALS OF. Database S wctpmc. Shamkant B. Navathe College of Computing Georgia Institute of Technology. Addison-Wesley

Elements Of Programming Interviews In Python The Insiders Guide

DB2 SQL Tuning Tips for z/os Developers

Business Driven Data Communications

Computers as Components Principles of Embedded Computing System Design

CLASSIC DATA STRUCTURES IN JAVA

Real-Time Systems and Programming Languages

Xcode 6 Start to Finish

Systems:;-'./'--'.; r. Ramez Elmasri Department of Computer Science and Engineering The University of Texas at Arlington

Digital System Design with SystemVerilog

Representing System Architecture

SOFTWARE MODELING AND DESIGN. UML, Use Cases, Patterns, and. Software Architectures. Ki Cambridge UNIVERSITY PRESS. Hassan Gomaa

Developer's HTML5. Cookbook. AAddison-Wesley. Chuck Hudson. Tom Leadbetter. Upper Saddle River, NJ Boston Indianapolis San Francisco

Programming. Principles and Practice Using C++ Bjarne Stroustrup. / Addison-Wesley. Second Edition

DATABASE SYSTEM CONCEPTS

Rails AntiPatterns. Chad Pytel. Best Practice Ruby on Rails Refactoring. Tammer Saleh. AAddison-Wesley

1 Introduction. 1.1 Introduction

Software Engineering

Virtualization from the Trenches

DATA ABSTRACTION AND PROBLEM SOLVING WITH JAVA

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Domain-Specific. Languages. Martin Fowler. AAddison-Wesley. Sydney Tokyo. With Rebecca Parsons

Win32 Network Programming

ony Gaddis Haywood Community College STARTING OUT WITH PEARSON Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto

THE AVR MICROCONTROLLER AND EMBEDDED SYSTEMS. Using Assembly and С

Essentials. Oracle Solaris Cluster. Tim Read. Upper Saddle River, NJ Boston Indianapolis San Francisco. Capetown Sydney Tokyo Singapore Mexico City

Visual C# Tony Gaddis. Haywood Community College STARTING OUT WITH. Piyali Sengupta. Third Edition. Global Edition contributions by.

Prelude to Programming

DOWNLOAD OR READ : UML AND C A PRACTICAL GUIDE TO OBJECT ORIENTED DEVELOPMENT PDF EBOOK EPUB MOBI

The Unified Modeling Language (UML)

PROBLEM SOLVING USING JAVA WITH DATA STRUCTURES. A Multimedia Approach. Mark Guzdial and Barbara Ericson PEARSON. College of Computing

Logic and its Applications

Course 3 7 March

UNIT-I Introduction of Object Oriented Modeling

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

Proposal of a Supporting Method for Diagrams Generation with the Transformation Rules in UML

Introduction to Computer Graphics

UML Diagrams & And Some Of Their Elements

CompTIA" Cloud Essentials Certification Study Guide. (Exam CLO-001) ITpreneurs

Unified Modelling Language User Guide READ ONLINE

Core Java Volume Ii Advanced Features 10th Edition

Effective Stl 50 Specific Ways To Improve Your Use Of The... Effective Stl: 50 Specific Ways To Improve The Use Of The...

System Assurance. Beyond Detecting. Vulnerabilities. Djenana Campara. Nikolai Mansourov

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

Introduction to UML. Danang Wahyu utomo

Opengl Programming On Mac Os X Architecture Performance

OpenGL SUPERBIBLE. Fifth Edition. Comprehensive Tutorial and Reference. Richard S. Wright, Jr. Nicholas Haemel Graham Sellers Benjamin Lipchak

An Introduction to Object-Oriented Programming

World Wide Web PROGRAMMING THE PEARSON EIGHTH EDITION. University of Colorado at Colorado Springs

The Java Tutorial. A Short Course on the Basics. Raymond Gallardo. Sowmya Kannan. AAddison-Wesley. Sharon Biocca Zakhour.

Introduction to UML p. 1 Introduction to the Object-Oriented Paradigm p. 1 What Is Visual Modeling? p. 6 Systems of Graphical Notation p.

Objects First with Java

Elements Of Programming Interviews In Java The Insiders Guide

CCNA Cisco Certified Network Associate Study Guide

Anany Levitin 3RD EDITION. Arup Kumar Bhattacharjee. mmmmm Analysis of Algorithms. Soumen Mukherjee. Introduction to TllG DCSISFI &

Software Development. Modular Design and Algorithm Analysis

Architect Exam Guide. OCM EE 6 Enterprise. (Exams IZO-807,1ZO-865 & IZO-866) Oracle Press ORACLG. Paul R* Allen and Joseph J.

An Introduction to Parallel Programming

Introduction. Chapter 1. What Is Visual Modeling? The Triangle for Success. The Role of Notation. History of the UML. The Role of Process

Embedded Systems Architecture

Information Systems Development Methodologies

FUNDAMENTALS OF SEVENTH EDITION

LABORATORY 1 REVISION

Algorithmic Graph Theory and Perfect Graphs

Dr.S.S.Riaz Ahamed Principal, Sathak Institute of Technology, Ramanathapuram,India.

White Paper. Rose PowerBuilder Link

Software Service Engineering

Agile Principles, Patterns, and Practices in C#

Object-Oriented Design

Transcription:

The Unified Modeling Language User Guide Grady Booch James Rumbaugh Ivar Jacobson Rational Software Corporation TT ADDISON-WESLEY Boston San Francisco New York Toronto Montreal London Munich Paris Madrid Capetown Sydney Tokyo Singapore Mexico City

CONTENTS Preface xv Section 1: Getting Started 1 Chapter 1: Why We Model 3 The Importance of Modeling 4 Principles of Modeling 7 Object-Oriented Modeling 10 Chapter 2: Introducing the UML 13 An Overview of the UML 14 A Conceptual Model of the UML 17 Architecture 30 Software Development Life Cycle 33 Chapter 3: Hello, World! 37 Key Abstractions 38 Mechanisms 41 Components 43 Section 2: Basic Structural Modeling 45 Chapter 4: Classes 47 Getting Started 47 Terms and Concepts 49 Common Modeling Techniques 54 Modeling the Vocabulary of a System 54 Modeling the Distribution of Responsibilities in a Modeling Nonsoftware Things 57 Modeling Primitive Types 58 Hints and Tips 59

viii CONTENTS Chapter 5: Relationships 61 Getting Started 62 Terms and Concepts 63 Common Modeling Techniques 69 Modeling Simple Dependencies 69 Modeling Single Inheritance 70 Modeling Structural Relationships 72 Hints and Tips 74 Chapter 6: Common Mechanisms 75 Getting Started 76 Terms and Concepts 77 Common Modeling Techniques 83 Modeling New Building Blocks 83 Modeling Comments 85 Modeling New Semantics 86 Modeling New Properties 88 Hints and Tips 89 Chapter 7: Diagrams 91 Getting Started 92 Terms and Concepts 93 Common Modeling Techniques 98 Modeling Different Views of a System 98 Modeling Different Levels of Abstraction 100 Modeling Complex Views 103 Hints and Tips 103 Chapter 8: Class Diagrams 105 Getting Started 105 Terms and Concepts 107 Common Modeling Techniques 108 Modeling Simple Collaborations 108 Modeling a Logical Database Schema 110 Forward and Reverse Engineering 112 Hints and Tips 115 Section 3: Advanced Structural Modeling 117 Chapter 9: Advanced Classes 119 Getting Started 119 Terms and Concepts 120 Common Modeling Techniques 132 Modeling the Semantics of a Class 132 Hints and Tips 133

CONTENTS ix Chapter 10: Advanced Relationships 135 Getting Started 136 Terms and Concepts 137 Common Modeling Techniques 151 Modeling Webs of Relationships 151 Hints and Tips 152 Chapter 11: Interfaces, Types, and Roles 155 Getting Started 155 Terms and Concepts 157 Common Modeling Techniques 163 Modeling the Seams in a System 163 Modeling Static and Dynamic Types 165 Hints and Tips 166 Chapter 12: Packages 169 Getting Started 170 Terms and Concepts 171 Common Modeling Techniques 177 Modeling Groups of Elements 177 Modeling Architectural Views 179 Hints and Tips 181 Chapter 13: Instances 183 Getting Started 183 Terms and Concepts 185 Common Modeling Techniques 190 Modeling Concrete Instances 190 Modeling Prototypical Instances 192 Hints and Tips 193 Chapter 14: Object Diagrams 195 Getting Started 195 Terms and Concepts 197 Common Modeling Techniques 198 Modeling Object Structures 198 Forward and Reverse Engineering 200 Hints and Tips 201 Section 4: Basic Behavioral Modeling 203 Chapter 15: Interactions 205 Getting Started 206 Terms and Concepts 207 Common Modeling Techniques 216 Modeling a Flow of Control 216 Hints and Tips 217

x CONTENTS Chapter 16: Use Cases 219 Getting Started 219 Terms and Concepts 222 Common Modeling Techniques 229 Modeling the Behavior of an Element 229 Hints and Tips 231 Chapter 17: Use Case Diagrams 233 Getting Started 233 Terms and Concepts 234 Common Modeling Techniques 236 Modeling the Context of a System 236 Modeling the Requirements of a System 237 Forward and Reverse Engineering 239 Hints and Tips 241 Chapter 18: Interaction Diagrams 243 Getting Started 244 Terms and Concepts 245 Common Modeling Techniques 251 Modeling Flows of Control by Time Ordering 251 Modeling Flows of Control by Organization 253 Forward and Reverse Engineering 255 Hints and Tips 256 Chapter 19: Activity Diagrams 257 Getting Started 258 Terms and Concepts 259 Common Modeling Techniques 268 Modeling a Workflow 268 Modeling an Operation 270 Forward and Reverse Engineering 272 Hints and Tips 273 Section 5: Advanced Behavioral Modeling 275 Chapter 20: Events and Signals 277 Getting Started 277 Terms and Concepts 278 Common Modeling Techniques 283 Modeling a Family of Signals 283 Modeling Exceptions 284 Hints and Tips 286

Chapter 21: State Machines 287 Getting Started 288 Terms and Concepts 290 Common Modeling Techniqes 304 Modeling the Lifetime of an Object 304 Hints and Tips 306 Chapter 22: Processes and Threads 309 Getting Started 310 Terms and Concepts 311 Common Modeling Techniques 317 Modeling Multiple Flows of Control 317 Modeling Interprocess Communication 319 Hints and Tips 320 Chapter 23: Time and Space 321 Getting Started 321 Terms and Concepts 322 Common Modeling Techniques 326 Modeling Timing Constraints 326 Modeling the Distribution of Objects 327 Modeling Objects that Migrate 328 Hints and Tips 330 Chapter 24: Statechart Diagrams 331 Getting Started 332 Terms and Concepts 333 Common Modeling Techniques 335 Modeling Reactive Objects 335 Forward and Reverse Engineering 338 Hints and Tips 339 Section 6: Architectural Modeling 341 Chapter 25: Components 343 Getting Started 343 Terms and Concepts 345 Common Modeling Techniques 351 Modeling Executables and Libraries 351 Modeling Tables, Files, and Documents 353 Modeling an API 354 Modeling Source Code 355 Hints and Tips 357

xii CONTENTS Chapter 26: Deployment 359 Getting Started 359 Terms and Concepts 360 Common Modeling Techniques 364 Modeling Processors and Devices 364 Modeling the Distribution of Components 365 Hints and Tips 367 Chapter 27: Collaborations 369 Getting Started 369 Terms and Concepts 371 Common Modeling Techniques 376 Modeling the Realization of a Use Case 376 Modeling the Realization of an Operation 378 Modeling a Mechanism 379 Hints and Tips 380 Chapter 28: Patterns and Frameworks 381 Getting Started 381 Terms and Concepts 383 Common Modeling Techniques 387 Modeling Design Patterns 387 Modeling Architectural Patterns 389 Hints and Tips 391 Chapter 29: Component Diagrams 393 Getting Started 393 Terms and Concepts 394 Common Modeling Techniques 396 Modeling Source Code 396 Modeling an Executable Release 398 Modeling a Physical Database 400 Modeling Adaptable Systems 402 Forward and Reverse Engineering 403 Hints and Tips 405 Chapter 30: Deployment Diagrams 407 Getting Started 407 Terms and Concepts 409 Common Modeling Techniques 411 Modeling an Embedded System 411 Modeling a Client/Server System 412 Modeling a Fully Distributed System 414 Forward and Reverse Engineering 416 Hints and Tips 417

CONTENTS xiii Chapter 31: Systems and Models 419 Getting Started 419 Terms and Concepts 421 Common Modeling Techniques 424 Modeling the Architecture of a System 424 Modeling Systems of Systems 426 Hints and Tips 426 Section 7: Wrapping Up 429 Chapter 32: Applying the UML 431 Transitioning to the UML 431 Where to Go Next 433 Appendix A: UML Notation 435 Appendix B: UML Standard Elements 441 Appendix C: Rational Unified Process 449 Glossary 457 Index 469