CanyonBlue, Cittera tool, 379
caret (^), for bottom to top association, 65
cascading operations, 85
Catalysis methodology, 36
central class, for use case, 229–230
circle. See also socket
filled in (large dot)
for initial nodes, 215
for initial state, 263
half circle, on a stick, for interfaces, 327
labeled, for connectors, 215–216
with plus sign inside, for membership, 323
on a stick, for interfaces, 327
with X inside, for final-flow nodes, 215
Cittera tool Web site, 379
class diagram. See also hybrid class/object diagram; object diagram
breaking into hierarchical levels, 114–116
communication diagram evolving from, 228–232
communication diagram mapped to, 244–246
constructing, 113–119
content of, 116
context diagrams for, 120–121
cycles in, 368–369
definition of, 111–112
for frameworks, 257
for functional modeling, 181–182
for internal classes of components, 330–333
number of classes in, 115
object diagram compared to, 72–73
project-oriented, 119–127
for subsystem responsibilities, 323–325
time period for, 118–119
uses of, 11, 13, 15, 113, 179, 320
using for every purpose, 363–364
«class» stereotype, 143
classes. See also attributes; objects; operations; subclasses; superclasses
abstract, 106–107
application, 122–123, 342
as association, 75–76, 231
associations between, 62–63, 64–66, 366–367
associations with themselves, 73–75
as attribute type, 45–46
boundary, 123
central, for use case, 229–230
composition parts as, 90–91
concrete, 106
containing only attributes or operations, 361–383
controller, 123, 230–231
definition of, 20, 40
device, 389
diagram of, converting to code, 79–80
diagramming, 52–56, 59–60
distinguishing from types, 46
domain, 121–122
duplicates of, 366
events treated as, 281
as friend, 58
generalization and, 21, 25–26, 93–97
grouping into subsystems, 318, 321–323
hotspots, 255
identifying for a business, 40–41
importing into subsystems, 351–352
multiple, wrapping into packages, 125–127
naming, 42–43, 365, 370
roles of, 71–73
specialization and, 21, 25–26, 97–98
surrogate, 389
view, 123, 389
visibility of, 57–60
classification scheme, analysis packages based on, 342
class-scope. See static attributes; static operations
«client workstation» stereotype, 334
clients. See customers
client-server dependency, 347
client-supplier dependency, 347
clocks as actors, 136
code. See software and system development
codependency, 347–348
cohesion
in subsystem, 348, 350
in text-based behavior specification, 183
collaboration. See also communication diagram
for architectural patterns, 355–356
definition of, 227
diagramming, 250, 355–356
in frameworks, 255–258
in patterns, 250–252
showing object interaction in, 254
UML modeling tools supporting, 33–34
collaboration diagram. See communication diagram
collaboration occurrence, 252–254, 356
colon (:)
between object and class name, 53–54
between part name and class name, 90
colons, double (::), between class and operation, 50
COM (Microsoft), 30
common objects, subsystems based on, 346
communication diagram
class detail in, 245–246
class diagrams consistent with, 244–245
class diagrams in preparation for, 228–232
constructing, 234–241
for frameworks, 257
looping in, 238–241, 242
messages in, 235–241
naming, 235
operation calls in, 236–238
participants of, 232–234
sd abbreviation for, 234
uses of, 15, 179, 391
communication paths between nodes, 334–335
communication standard for components, 30
communityUML Web site, 373
completion event, 287
completion transition, 274, 287
component diagram
for frameworks, 257
for interfaces, 329–330
uses of, 14, 15, 320
component environment, 30. See also EJB
«component» stereotype, 143, 327
component-based development, 29–31
components
black boxes, 327–329
choosing, 319
communication between, 30
definition of, 28, 325–326, 327
delegates for, 331
diagramming, 327
icons for, 327
interfaces for, 326–330
internal classes of, 330–333
ports for, 331
composite structure diagram
constructing, 250–252
definition of, 89–92
uses of, 14, 16
composite structure diagram with collaboration, 251
composition. See also aggregation
aggregation compared to, 25, 88–89
as association, 86–87
as composite structure diagram, 89–92
definition of, 25, 86
inheriting parts of, 101
transitive property of, 89
conceptual types, 48
concrete class, 106
concrete use cases, 167
concurrency
of activities, 220
definition of, 241–242
identifying threads in, 243–244
looping and, 242
with states, 303–308
of use cases, 140–141
connectors, 90, 215–216, 224
constraint-based state, 266
constraints. See also invariants; postconditions; preconditions
on associations, 63, 75
inheritance of, overriding, 103–104
inheriting, 101
OCL used to define, 185–187
construction elements, 40
constructor operation, 85, 97
«constructor» stereotype, 60
«container» stereotype, 334
context diagram
constructing, 120–121, 384
definition of, 11
for use cases, 145
uses of, 383–384
control flow, 214
control nodes, 215
controller class
application class diagram for, 389
definition of, 123
state diagram for, 388
for use case, 230–231
«controller» stereotype, 230
CORBA (Object Management Group), 30
cost, system design requirement, 317
coupling, in subsystem, 348, 350
«create» stereotype, 194–195
CRUD test for use cases, 367
curly brackets. See braces
customers (clients), 132