Abstract classes, relationship of classes to interfaces, 69–72
Actions
UML version changes, 157
Active classes, 83
Activities, exit, 109
actions, expansion regions, 126–127
Petri Nets, 130
pins, 125
requirement analysis, 29
resources, 130
tokens, 124
UML version changes, 156–157, 159
Acyclic Dependency Principle, 91
Agile development processes, 24–25
resources, 33
Aliasing, 74
Analysis Patterns, 154
Archetypes, 4
UML version changes, 157
Assertions, 50
subclassing, 51
Associations, class properties, 37–38
immutability versus frozen, 154
unidirectional, 41
Associative arrays. See Qualified associations
Asynchronous messages, 61
Attributes
mandatory, 39
Automated regression tests, 22
Ball-and-socket notation, 71, 135, 139
Beck, Kent, CRC cards, 63
Bidirectional associations, 41–43
Blueprints, UML as
Booch, Grady, UML history, 7–9
Branches, 119
Business use cases, 103
CASE (computer-aided software engineering) tools, 3
UML history, 8
Centralized control of sequence diagramming, 55–57
Ceremony, agile processes, 25
active classes, 83
aggregation and composition, 67–68
comments, 46
design, 30
documentation, 32
notes, 46
properties (See Class properties)
requirement analysis, 29
resources, 52
responsibilities, 66
starting with UML, 16
static operations and attributes, 66–67
template (parameterized) classes, 81–82
UML version changes, 158
value objects, 74
versus object diagrams, 88
Class properties. See also Classes
associations, bidirectional associations, 41–43
associations, immutability versus frozen, 154
associations, qualified, 75–76
derived, 68
frozen, 72
program interpretations, 39–41
read-only, 72
Class-Responsibility-Collaboration (CRC) cards, 62–63
Classes. See Class properties
Class-Responsibility-Collaboration (CRC) cards, 62–63
presentation, 47
static versus dynamic classifications, 77–78
subclassing, 51
template (parameterized), 81–82
Classifications
implementation classes, 153–154
Clients/suppliers, 47
Coad, Peter, UML history, 7
Cockburn, Alistair, use cases, 105
Collaboration diagram. See Communication diagrams
Collaborations
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
times to use, 133
times to use, 141
Composite structure diagrams, 11–12
times to use, 137
changes between UML versions, 154
Computer-aided software engineering (CASE) tools, 3
UML history, 8
Conceptual perspectives of UML, 5–6
Concurrent states, 111
decisions and merges, 119
Connector, 135
Constraints
complete/incomplete, 154
Construction, RUP projects, 26
Continuous integration, 22
CORBA (Common Object Request Broker Architecture), 1
CRC (Class-Responsibility-Collaboration) cards, 62–63
Crystal, agile development process, 24–25
Cunningham, Ward, CRC cards, 62–63
Data tadpoles, 61
Data types, 74
dynamic and multiple classifications, 153–154
implementation classes, 153–154
Decisions, 119
resources, 52
UML version changes, 155
design, 30
times to use, 98
Derived properties, class diagrams, 68
Development cases, 25
Development processes
DSDM (Dynamic Systems Development Method), 24–25
Extreme Programming (XP), 22, 24–25, 33
fitting processes to projects, 26, 28–29
FOD (Feature Driven Development), 24–25
lightweight, 25
Manifesto of Agile Software Development, 24–25
Rational Unified Process (RUP), 25
resources, 33
selecting, 33
staged delivery, 21
Diagrams
actions, expansion regions, 126–127
flows, Petri Nets, 130
joins, specifications, 128–129
pins, 125
requirement analysis, 29
resources, 130
tokens, 124
UML version changes, 156–157, 159
active classes, 83
aggregation and composition, 67–68
classifications, dynamic and multiple, 76–77
comments, 46
design, 30
documentation, 32
notes, 46
properties (See Class properties)
requirement analysis, 29
resources, 52
responsibilities, 66
starting with UML, 16
static operations and attributes, 66–67
template (parameterized) classes, 81–82
UML version changes, 158
value objects, 74
versus object diagrams, 88
classifications, 12
times to use, 137
design, 30
times to use, 98
interaction
design, 30
Interaction Overview diagram, 147, 158
synchronous and asynchronous messages, 61
design, 30
documentation, 32
resources, 95
times to use, 95
UML version changes, 157
centralized and distributed control, 55–57
collaborations, 144
returns, 154
starting with UML, 16
synchronous and asynchronous messages, 61
UML version changes, 158
starting point, 16
concurrent states, 111
initial pseudostate, 107
internal activities, 109
requirement analysis, 29
resources, 115
UML version changes, 159
types, 11
types, UML version changes, 157–158
use case
requirement analysis, 29
viewpoints, 6
Dictionaries. See Qualified associations
Distributed control of sequence diagramming, 55–57
Do-activities, 110
Domain objects, 47
DSDM (Dynamic Systems Development Method), 24–25
Dynamic classifications, 77–78
Eiffel programming language, 50
Engineering, forward
UML as programming languages, 3
UML as sketches, 2
Entry activities, 109
Enumerations, 82
Event switches, 111
Evolutionary development process. See Iterative development process
Exit activities, 109
Extreme Programming (XP)
agile development process, 24–25
resources, 33
technical practices, 22
Features of use cases, 104
Petri Nets, 130
FDD (Feature Driven Development), 24–25
UML version changes, 156
Forward engineering
UML as programming languages, 3
UML as sketches, 2
Found messages, 55
Fully qualified names, 89
UML version changes, 155
Getting methods, 45
Graphical modeling languages, 1
Guarantees, 102
Guards, 59
Hashes. See Qualified associations
Implementation classes, data types, 153–154
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
design, 30
synchronous and asynchronous messages, 61
Interaction frames
operators, 59
Interactive overview diagrams, 11–12
Interfaces, 65
relationship to classes, 69–72
Internal activities, entry and exit, 109
Internal activities, exit activities, 109
Invariants, 51
Iteration markers, 59
Iteration retrospective, 28
Iterations, 20
Iterative development process, 19–22
Jacobson, Ivar
use cases, 105
Jacuzzi development process. See Iterative development process
UML version changes, 156
Keywords, class diagrams, 48–49, 65–66
Legacy code, 32
Lightweight development processes, 25
Loomis, Mary, UML history, 8
Main success scenario, 100–102
Mandatory attributes, 39
Manifesto of Agile Software Development, 24–25
Maps. See Qualified associations
Markers, iteration, 59
MDA (Model Driven Architecture), 4
Mellor, Steve
Executable UML, 4
UML history, 7
Merges, 119
asynchronous and synchronous, 61
found, 55
pseudomessages, 60
Meta-models
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, 77–78
Multiplicity of properties, 38–39
Multivalued attributes, 39
Namespaces, 89
Navigability arrows, 42
Notation
ball and socket, 71
OCL (Object Constraint Language), 49–50
OMG (Object Management Group)
control of UML, 1
MDA (Model Driven Architecture), 4
revisions to UML versions, 151–152
OO (object-oriented) programming, 1
paradigm shift, 56
Operations, versus methods, 45
Operators, interaction frames, 59
Optional attributes, 39
design, 30
documentation, 32
resources, 95
times to use, 95
UML version changes, 157
Packages
Common Closure and Reuse Principles, 91
definitions, 89
fully qualified names, 89
namespaces, 89
Part, 135
Participants, sequence diagrams, 53–57
Partitions, activity diagrams, 120–121, 122
Patterns
Separated Interface, 94
using, 145
Petri Nets (flow-oriented techniques), 130
PIM (Platform Independent Model), 4
Pins, 125
Planning, adaptive versus predictive, 23–24
Platform Specific Model (PSM), 4
Post-conditions, Design by Contract, 50
Pre-conditions
Design by Contract, 50
use cases, 102
Predictive planning, versus adaptive planning, 23–24
Prescriptive rules, UML, 13–14
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
Properties of classes
bidirectional associations, 41–43
derived, 68
frozen, 72
program interpretations, 39–41
read-only, 72
Protected elements, 83
Proxy projects, 27
Pseudomessages, 60
PSM (Platform Specific Model), 4
Public elements, 83
Queries, 44
Rational Unified Process (RUP)
development cases, 25
resources, 33
Read-only property, 72
Rebecca Wirfs-Brock, UML history, 7
Refactoring, 22
Relationships
abstract classes to interfaces, 69–72
temporal, 80
transitive, 48
Releases, 20
Requirements churn, 23
Responsibilities of classes, 66
Retrospectives
iteration, 28
Reusable archetypes, 4
Reverse engineering
UML as programming languages, 3
UML as sketches, 2
Revisions by versions (UML)
from 0.8 through 2.0, general history, 151–152
from 1.3 to 1.4, 157
from 1.4 to 1.5, 157
Roles. See Actors
Round-trip tools, 3
Rumbaugh, Jim
aggregation, 67
composite structures, 137
RUP (Rational Unified Process)
development cases, 25
resources, 33
Scenario sets, 99
Searching state, 110
Separated Interface, 94
centralized and distributed control, 55–57
collaborations, 144
returns, 154
starting with UML, 16
synchronous and asynchronous messages, 61
UML version changes, 158
Setting methods, 45
Shlaer, Sally, UML history, 7
implementation classes, 153–154
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, 5–6
Spiral development process. See Iterative development process
Stable Abstractions Principle, 92
Stable Dependencies Principle, 91
Staged delivery development process, 21
State diagrams. See State machine diagrams
concurrent states, 111
initial pseudostate, 107
internal activities, 109
requirement analysis, 29
resources, 115
UML version changes, 159
Static classifications
implementation classes, 153–154
versus dynamic classifications, 77–78
Static operations of classes, 66–67
Stereotypes, 66
Stories. See Features of use cases
Subclassing, 46
assertions, 51
Subtypes, 46
Suppliers/clients, 47
Swim lanes. See Partitions
Synchronous messages, 61
System use cases, 103
Temporal relationships, 80
Three Amigos, 8
Time signals, 121
Tokens, 124
state, 113
Transitive relationships, 48
Trigger, 102
Types. See Data types
UML
definition, 1
meaning, 14
software and conceptual perspectives, 5–6
standards, legal versus illegal use, 13–14
UML as blueprints
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, 153–155
UML revisions by versions
from 0.8 through 2.0, general history, 151–152
from 1.3 to 1.4, 157
from 1.4 to 1.5, 157
Unidirectional associations, 41
Unified Method documentation, 7–8
Unified Modeling Language. See UML
UP (Unified Process). See RUP
Use case diagrams
requirement analysis, 29
Use cases
business, 103
features, 104
include relationships, 101–103
MSS (main success scenario), 100–102
resources, 105
scenario sets, 99
User Guide, 115
User stories. See Features of use cases
Value objects, 74
Warehousing systems, Platform Independent Model and Platform Specific Model, 4
Waterfall development process, 19–22
Well formed UML
definition, 14
XP (Extreme Programming)
agile development process, 24–25
resources, 33
technical practices, 22