Index

A

Abstract classes, relationship of classes to interfaces, 6972

Actions

expansion regions, 126127

UML version changes, 157

Active classes, 83

Activities, exit, 109

Activity diagrams, 1112

actions, expansion regions, 126127

basics, 117119

decomposing actions, 119121

edges, 124125

flow final, 127128

flows, 124125

Petri Nets, 130

joins, 118119

specifications, 128129

partitions, 120121, 122

pins, 125

requirement analysis, 29

resources, 130

signals, 121123

times to use, 129130

tokens, 124

transformations, 125126

UML version changes, 156157, 159

Activity state, 109110

Actors, 99100, 143144

Acyclic Dependency Principle, 91

Aggregation, 6768

Agile development processes, 2425

resources, 33

Aliasing, 74

Analysis Patterns, 154

Archetypes, 4

Artifacts, 9798

UML version changes, 157

Assertions, 50

subclassing, 51

Association classes, 7880

Associations, class properties, 3738

bidirectional, 4143

immutability versus frozen, 154

qualified, 7576

unidirectional, 41

Associative arrays. See Qualified associations

Asynchronous messages, 61

Attributes

class properties, 3637, 39

classes, 6667

mandatory, 39

Automated regression tests, 22

B

Ball-and-socket notation, 71, 135, 139

Beck, Kent, CRC cards, 63

Bidirectional associations, 4143

Blueprints, UML as

forward engineering, 23, 6

reverse engineering, 3, 6

Booch, Grady, UML history, 79

Bound elements, 8182

Branches, 119

Business use cases, 103

C

CASE (computer-aided software engineering) tools, 3

UML history, 8

Centralized control of sequence diagramming, 5557

Ceremony, agile processes, 25

Class diagrams, 9, 1112

abstract classes, 6972

active classes, 83

aggregation and composition, 6768

association classes, 7880

classifications, 7576

dynamic and multiple, 7677

comments, 46

constraint rules, 4950

dependencies, 4749

design, 30

documentation, 32

generalizations, 4546, 7576

keywords, 6566

messages, 8485

notes, 46

operations, 4346

properties (See Class properties)

reference objects, 7374

requirement analysis, 29

resources, 52

responsibilities, 66

starting with UML, 16

static operations and attributes, 6667

template (parameterized) classes, 8182

times to use, 5152

UML version changes, 158

value objects, 74

versus object diagrams, 88

visibility, 8384

Class properties. See also Classes

associations, 3738

associations, bidirectional associations, 4143

associations, immutability versus frozen, 154

associations, qualified, 7576

attributes, 3637

basics, 3538

derived, 68

frozen, 72

generalizations, 4546

multiplicity, 3839

program interpretations, 3941

read-only, 72

Class-Responsibility-Collaboration (CRC) cards, 6263

Classes. See Class properties

abstract, 6972

association, 7880

attributes, 6667

Class-Responsibility-Collaboration (CRC) cards, 6263

derivation, 8182

dynamic data types, 153154

generalizations, 35, 36

implementation, 153154

presentation, 47

static data types, 153154

static versus dynamic classifications, 7778

subclassing, 51

template (parameterized), 8182

Classifications

data types, 153154

dynamic and multiple, 7677

implementation classes, 153154

versus generalizations, 7576

Clients/suppliers, 47

Coad, Peter, UML history, 7

Cockburn, Alistair, use cases, 105

Collaboration diagram. See Communication diagrams

Collaborations

roles, 143144

sequence diagrams, 144

times to use, 146

Comments in class diagrams, 46

Common Closure and Reuse Principles, 91

Common Object Request Broker Architecture (CORBA) standards, 1

Communication diagrams, 1112

basics, 131133

times to use, 133

Component diagrams, 1112

basics, 139141

times to use, 141

Composite structure diagrams, 1112

basics, 135136

times to use, 137

Composition, 6768

changes between UML versions, 154

Computer-aided software engineering (CASE) tools, 3

UML history, 8

Conceptual perspectives of UML, 56

Concurrent states, 111

Conditionals, 5761

decisions and merges, 119

Connector, 135

Constraints

complete/incomplete, 154

rules, 4950

Construction, RUP projects, 26

Continuous integration, 22

Conventional use, 1314

CORBA (Common Object Request Broker Architecture), 1

CRC (Class-Responsibility-Collaboration) cards, 6263

Crystal, agile development process, 2425

Cunningham, Ward, CRC cards, 6263

D

Data tadpoles, 61

Data types, 74

dynamic and multiple classifications, 153154

implementation classes, 153154

Decisions, 119

Dependencies, 4749

keywords, 4849

packages, 9193

resources, 52

UML version changes, 155

Deployment diagrams, 1112

artifacts, 9798

design, 30

devices, 9798

execution environments, 9798

nodes, 9798

times to use, 98

Derivation of classes, 8182

Derived properties, class diagrams, 68

Descriptive rules, UML, 1314

Design, 3031

Development cases, 25

Development processes

agile, 2425

DSDM (Dynamic Systems Development Method), 2425

Extreme Programming (XP), 22, 2425, 33

fitting processes to projects, 26, 2829

FOD (Feature Driven Development), 2425

iterative, 1922

lightweight, 25

Manifesto of Agile Software Development, 2425

Rational Unified Process (RUP), 25

resources, 33

selecting, 33

staged delivery, 21

waterfall, 1922

Devices, 9798

Diagrams

activity, 1112

actions, expansion regions, 126127

basics, 117119

decomposing actions, 119121

edges, 124125

flow final, 127128

flows, 124125

flows, Petri Nets, 130

joins, 118119

joins, specifications, 128129

partitions, 120121, 122

pins, 125

requirement analysis, 29

resources, 130

signals, 121123

times to use, 129130

tokens, 124

transformations, 125126

UML version changes, 156157, 159

basics, 1012

class, 9, 1112

abstract classes, 6972

active classes, 83

aggregation and composition, 6768

association classes, 7880

classifications, 7576

classifications, dynamic and multiple, 7677

comments, 46

constraint rules, 4950

dependencies, 4749

design, 30

documentation, 32

generalizations, 4546, 7576

keywords, 4849, 6566

messages, 8485

notes, 46

operations, 4346

properties (See Class properties)

reference objects, 7374

requirement analysis, 29

resources, 52

responsibilities, 66

starting with UML, 16

static operations and attributes, 6667

template (parameterized) classes, 8182

times to use, 5152

UML version changes, 158

value objects, 74

versus object diagrams, 88

visibility, 8384

classifications, 12

communication, 1112, 131133

component, 1112, 139141

composite structure, 1112

basics, 135136

times to use, 137

deployment, 1112

artifacts, 9798

design, 30

devices, 9798

execution environments, 9798

nodes, 9798

times to use, 98

interaction

basics, 5356, 147148

CRC cards, 6263

design, 30

loops and conditionals, 5761

Interaction Overview diagram, 147, 158

participants, 5357

sequence diagrams, 5356

synchronous and asynchronous messages, 61

times to use, 147, 150

interactive overview, 1112

object, 1112

times to use, 8788

package, 1112

basics, 8991

design, 30

documentation, 32

resources, 95

times to use, 95

UML version changes, 157

sequence, 1112

basics, 5356

centralized and distributed control, 5557

collaborations, 144

CRC cards, 6263

interaction diagrams, 5356

loops and conditionals, 5761

participants, 5357

returns, 154

starting with UML, 16

synchronous and asynchronous messages, 61

times to use, 6163

UML version changes, 158

shortcomings, 1416

starting point, 16

state machine, 1112

activity status, 109110

basics, 107109

concurrent states, 111

implementing, 111114

initial pseudostate, 107

internal activities, 109

requirement analysis, 29

resources, 115

superstates, 110111

times to use, 114115

transitions, 107108, 111

UML version changes, 159

timing, 1112

basics, 149150

types, 11

types, UML version changes, 157158

use case

basics, 102103

requirement analysis, 29

viewpoints, 6

Dictionaries. See Qualified associations

Distributed control of sequence diagramming, 5557

Do-activities, 110

Documentation, 3132

Domain objects, 47

DSDM (Dynamic Systems Development Method), 2425

Dynamic classifications, 7778

data types, 153154

E

Edges, 124125

Eiffel programming language, 50

Engineering, forward

UML as blueprints, 23, 6

UML as programming languages, 3

UML as sketches, 2

Entry activities, 109

Enumerations, 82

Event switches, 111

Evolutionary development process. See Iterative development process

Executable UML, 45

Execution environments, 9798

Exit activities, 109

Expansion regions, 126127

Extensions, 100102

Extreme Programming (XP)

agile development process, 2425

resources, 33

technical practices, 22

F

Facades, 9091

Features of use cases, 104

Fish-level use cases, 103104

Flows, 124125

flow final, 127128

Petri Nets, 130

FDD (Feature Driven Development), 2425

Forks, 117, 119

UML version changes, 156

Forward engineering

UML as blueprints, 23, 6

UML as programming languages, 3

UML as sketches, 2

Found messages, 55

Frozen property, 72, 154

Fully qualified names, 89

G

Gang of Four, 2728

Generalizations, 35, 36

class properties, 4546

sets, 7677

UML version changes, 155

versus classifications, 7576

Getting methods, 45

Graphical modeling languages, 1

Guarantees, 102

Guards, 59

H

Hashes. See Qualified associations

History pseudostate, 111112

I

Implementation classes, data types, 153154

Include relationships, 101

Incremental development process. See Iterative development process

Initial node actions, 117, 119

Initial pseudostate, 107

Instance specifications, 87

Integration, continuous, 22

Interaction diagrams

basics, 5356, 147148

CRC cards, 6263

design, 30

loops and conditionals, 5761

participants, 5357

sequence diagrams, 5356

synchronous and asynchronous messages, 61

times to use, 147, 150

Interaction frames

loops and conditionals, 5859

operators, 59

Interactive overview diagrams, 1112

Interfaces, 65

relationship to classes, 6972

Internal activities, entry and exit, 109

Internal activities, exit activities, 109

Invariants, 51

Iteration markers, 59

Iteration retrospective, 28

Iterations, 20

timeboxing, 2122

Iterative development process, 1922

J

Jacobson, Ivar

UML history, 78

use cases, 105

Jacuzzi development process. See Iterative development process

Joins, 118119

specifications, 128129

UML version changes, 156

K

Keywords, class diagrams, 4849, 6566

Kite-level use cases, 103104

L

Legacy code, 32

Lightweight development processes, 25

Lollipop notation, 7172, 73

Loomis, Mary, UML history, 8

Loops, 5761

M

Main success scenario, 100102

Mandatory attributes, 39

Manifesto of Agile Software Development, 2425

Maps. See Qualified associations

Markers, iteration, 59

MDA (Model Driven Architecture), 4

Mellor, Steve

Executable UML, 4

UML history, 7

Merges, 119

Messages, 8485

asynchronous and synchronous, 61

class diagrams, 8485

found, 55

pseudomessages, 60

Meta-models

definitions, 910

UML version changes, 157

Methods

implementation of actions, 119

versus operations, 45

Meyer, Bertrand, Design by Contract, 50

Model compilers, 4

Modifiers, 44

Multiple classifications, 7778

data types, 153154

Multiplicity of properties, 3839

Multivalued attributes, 39

N

Namespaces, 89

Navigability arrows, 42

Nodes, 9798

Normative use, 1314

Notation

ball and socket, 71

definitions, 910

Lollipop, 7172, 73

O

Object diagrams, 1112

times to use, 8788

OCL (Object Constraint Language), 4950

Odell, Jim, UML history, 78

OMG (Object Management Group)

control of UML, 1

MDA (Model Driven Architecture), 4

revisions to UML versions, 151152

UML history, 79

OO (object-oriented) programming, 1

paradigm shift, 56

Operations, versus methods, 45

Operators, interaction frames, 59

Optional attributes, 39

P

Package diagrams, 1112

basics, 8991

design, 30

documentation, 32

resources, 95

times to use, 95

UML version changes, 157

Packages

aspects, 9394

Common Closure and Reuse Principles, 91

definitions, 89

dependencies, 9193

fully qualified names, 89

implementing, 9495

namespaces, 89

Part, 135

Participants, sequence diagrams, 5357

Partitions, activity diagrams, 120121, 122

Patterns

definition, 2728

Separated Interface, 94

State, 111114

using, 145

Petri Nets (flow-oriented techniques), 130

PIM (Platform Independent Model), 4

Pins, 125

Planning, adaptive versus predictive, 2324

Platform Specific Model (PSM), 4

Port, 135137

Post-conditions, Design by Contract, 50

Pre-conditions

Design by Contract, 50

use cases, 102

Predictive planning, versus adaptive planning, 2324

Prescriptive rules, UML, 1314

Presentation classes, 47

Private elements, 83

Profiles, 66

UML version changes, 157

Programming languages, UML as, 3, 5

forward engineering, 3

MDA (Model Driven Architecture), 4

reverse engineering, 3

value, 5

Project retrospective, 2829

Properties of classes

associations, 3738

bidirectional associations, 4143

qualified, 7576

attributes, 3637

basics, 3538

derived, 68

frozen, 72

multiplicity, 3839

program interpretations, 3941

read-only, 72

Protected elements, 83

Proxy projects, 27

Pseudomessages, 60

PSM (Platform Specific Model), 4

Public elements, 83

Q

Qualified associations, 7576

Queries, 44

R

Rational Unified Process (RUP)

development cases, 25

phases, 2526

resources, 33

Read-only property, 72

Rebecca Wirfs-Brock, UML history, 7

Refactoring, 22

Reference objects, 7374

Relationships

abstract classes to interfaces, 6972

include, 101103

temporal, 80

transitive, 48

Releases, 20

Requirement Analysis, 2930

Requirements churn, 23

Responsibilities of classes, 66

Retrospectives

iteration, 28

project, 2829

Reusable archetypes, 4

Reverse engineering

UML as blueprints, 3, 6

UML as programming languages, 3

UML as sketches, 2

Revisions by versions (UML)

from 0.8 through 2.0, general history, 151152

from 1.0 to 1.1, 153155

from 1.2 to 1.3, 155157

from 1.3 to 1.4, 157

from 1.4 to 1.5, 157

from 1.x through 2.0, 157159

Roles. See Actors

Round-trip tools, 3

Rumbaugh, Jim

aggregation, 67

composite structures, 137

UML history, 79

RUP (Rational Unified Process)

development cases, 25

phases, 2526

resources, 33

S

Scenario sets, 99

Scrum, 2425

Sea-level use cases, 103104

Searching state, 110

Separated Interface, 94

Sequence diagrams, 1112

basics, 5356

centralized and distributed control, 5557

collaborations, 144

CRC cards, 6263

interaction diagrams, 5356

loops and conditionals, 5761

participants, 5357

returns, 154

starting with UML, 16

synchronous and asynchronous messages, 61

times to use, 6163

UML version changes, 158

Setting methods, 45

Shlaer, Sally, UML history, 7

Signals, 121123

Single classification, 7677

implementation classes, 153154

Single-valued attributes, 39

Sketches, UML as, 6

forward engineering, 2

reverse engineering, 2

Smalltalk, 5

Software development processes. See Development processes

Software perspectives, UML, 56

Spiral development process. See Iterative development process

Stable Abstractions Principle, 92

Stable Dependencies Principle, 91

Staged delivery development process, 21

Standard use, 1314

State diagrams. See State machine diagrams

State machine diagrams, 1112

activity status, 109110

basics, 107109

concurrent states, 111

implementing, 111114

initial pseudostate, 107

internal activities, 109

requirement analysis, 29

resources, 115

superstates, 110111

times to use, 114115

transitions, 107108, 111

UML version changes, 159

State tables, 111112, 114

Static classifications

implementation classes, 153154

versus dynamic classifications, 7778

Static operations of classes, 6667

Stereotypes, 66

Stories. See Features of use cases

Subactivities, 119121

Subclassing, 46

assertions, 51

Substitutability, 4546

Subtypes, 46

Superstates, 110111

Suppliers/clients, 47

Swim lanes. See Partitions

Synchronous messages, 61

System use cases, 103

T

Temporal relationships, 80

Three Amigos, 8

Time signals, 121

Timeboxing, 2122

Timing diagrams, 1112

basics, 149150

Tokens, 124

Transformations, 125126

Transitions, 26, 107108, 111

state, 113

Transitive relationships, 48

Trigger, 102

Types. See Data types

U

UML

conventional use, 1314

definition, 1

descriptive rules, 1314

fitting into processes, 2932

history, 79

meaning, 14

prescriptive rules, 1314

resources, 1617

software and conceptual perspectives, 56

standards, legal versus illegal use, 1314

UML as blueprints

forward engineering, 23, 6

reverse engineering, 3, 6

UML as programming language, 3, 5

forward engineering, 3

MDA (Model Driven Architecture), 4

reverse engineering, 3

value, 5

UML as sketches, 6

forward engineering, 2

reverse engineering, 2

UML diagrams. See Diagrams and specific diagram types

UML Distilled, book editions and corresponding UML versions, 153155

UML revisions by versions

from 0.8 through 2.0, general history, 151152

from 1.0 to 1.1, 153155

from 1.2 to 1.3, 155157

from 1.3 to 1.4, 157

from 1.4 to 1.5, 157

from 1.x through 2.0, 157159

Unidirectional associations, 41

Unified Method documentation, 78

Unified Modeling Language. See UML

UP (Unified Process). See RUP

Use case diagrams

basics, 102103

requirement analysis, 29

Use cases

actors, 99100

business, 103

extensions, 100102

features, 104

include relationships, 101103

levels, 103104

MSS (main success scenario), 100102

resources, 105

scenario sets, 99

times to use, 104105

UML version changes, 155156

User Guide, 115

User stories. See Features of use cases

V

Value objects, 74

Visibility, 8384

W

Warehousing systems, Platform Independent Model and Platform Specific Model, 4

Waterfall development process, 1922

Well formed UML

definition, 14

legal UML, 1314

X

XP (Extreme Programming)

agile development process, 2425

resources, 33

technical practices, 22