A | B
| C | D
| E | F
| G | H
| I | J
| K | L
| M
N | O
| P | Q
| R | S
| T | U
| V | W
| Y | Z
A
abstract class 94, 95-96, 325,
339, 414, 425
abstract operation 95-96, 425
abstract data-type xx, xix,
15, 32, 53, 59, 88, 92, 100, 208, 216, 235,
246, 281, 349, 365, 425
accessor operation 163, 281,
291, 393, 408
action message 425
actual argument 425
Ada 59, 97
ADT See abstract data-type
aggregate object 127-29, 135,
143, 300-301, 367, 372, 391, 414, 425 airplane
example 300-301
alternate cohesion 360-61,
362ff., 426
Ambler, S. 443
analysis See requirements
analysis ancestor class 426
AOP See apex of polymorphism
apex of polymorphism 310-11,
313, 318, 319, 325, 426
application domain 234, 237-38,
253, 258, 360, 389, 390, 399, 406, 426
architecture domain 234, 235-36,
250, 253, 328, 342, 343, 390-91, 399, 406,
426
architecture 426
architecture model 426
argument 7, 19, 20, 21-23,
25, 34, 35, 43, 44, 47ff., 82, 89ff., 98ff.,
136, 139, 145, 152, 176-77, 218, 279, 281,
284ff., 379, 394, 426
class reference and 241
formal 45, 89, 101, 139,
145, 194, 218, 284ff., 431
input 21, 24, 50, 89, 90,
92, 93, 139, 284ff., 379, 383, 384, 432
input and output 7, 89, 100,
106, 136, 426
objects as 279, 286
output 21, 24, 50, 89, 139,
379, 432
return 181
self as 144-45
aspect 323, 426
association 115-29
asynchronous messaging 138,
149-58, 160, 163, 414, 426 Atkinson, C. 149,
443
attribute xix, 10, 12,
87-88, 91, 91, 99, 100, 105, 109, 110, 117,
120, 121, 130, 134, 165, 184, 279, 327, 331,
369, 375, 383ff., 426
continuously variable 178-79
UML notation for 87-88
visibility of 93-94
awkward behavior 355-56, 426
top
B
balanced tree example 43-46,
47
base class 424
behavior 208, 259, 260-61, 266-67,
279, 349, 352-60, 426
See also awkward, dangerous,
ideal, illegal, incomplete, and irrelevant
behavior; principle of closed behavior
in class interface 352-60
of a subclass 266-67
Bertino, E. 374, 443
Blitz Guide 423-24
Booch, G. 60, 77, 78, 443,
449
book chapter example 136
Boyer, K. 147
broadcast message 157-58, 160,
161, 163, 414, 426
brokerage example 233
business domain 233-34, 236-37,
250, 253, 255, 263, 342, 343, 381, 390ff.,
391, 392, 399, 406, 426
top
C
C 53, 59-60, 194
C++ xviii, 4, 16, 18,
25, 38, 45, 51, 52, 53, 54, 59-60, 94, 95,
98, 127, 140, 144, 194, 224, 225, 228, 245,
269, 313, 316
callback 145, 151-55, 160, 394-95,
426-27
capability 427
CASE 61, 83, 224
chair example 107, 126, 135
change event 167, 180
chemical factory tank example
178, 182, 185
chessboard example 260-261,
266
Chidamber, S. 444
Christerson, M. 446
class xix, 3, 27-32,
48, 63, 85-87, 91, 100, 102, 103ff., 107-36,
374, 427
See also mix-in class,
parameterized class
abstract 95-96, 106
abstract data-type vs. 32,
178, 212, 294, 308, 349ff.
associations as 119
attributes xix, 7,
94-95, 164, 383ff.
behavior 259-76
capability 318
constant 427
coupling 213, 427
diagram 83, 107-29, 131, 134,
427
domains of 233-40
hierarchy 278ff.
immutable 105
instance vs. 35, 302-6
invariant 267-69
library 107, 427
literal 95
migration 322, 374, 375, 427
object vs. 28, 86, 373
operations xix, 7,
92, 94-95, 373, 380, 392
properties 259ff.
quality 208, 240, 272, 349,
365
state-space 259-76
symbol 85-87, 91, 100, 383
type vs. 278, 279-81
class based 51, 427
class cohesion xix, 208,
213, 244, 246-52, 253, 254, 257-58, 322, 324,
327, 342, 349-76, 427
See also ideal class,
mixed-domain, mixed-instance, and mixed-role
cohesion
class-inheritance diagram 124,
131, 134, 300
class-inheritance hierarchy
115, 134, 255, 296, 303, 304, 310, 311, 319,
333, 374, 427
class interface 327ff., 349ff.,
366, 380, 390, 427
operation cohesion in 360-63
quality of 349ff.
class invariant 66-67, 259,
267-69, 270, 271, 272, 273, 275, 279, 350,
352, 413, 427
class message 31, 374, 427
class-reference set:
direct 241, 244, 430
indirect 241, 242, 243, 434
class operation 7, 30, 31, 48,
50, 54, 92, 94, 97, 100, 254, 294, 368, 373,
392, 393
class variable 31, 50, 334,
373, 428
class vs. type 279-81
client See sender object
client-server system example
62, 191, 192
cloned code 45, 46, 47, 49
closed behavior See principle
of closed behavior
Cohen, S. 449
cohesion 58, 64, 76, 207, 212,
233ff., 246-52, 253, 257-58, 308, 312, 327ff.,
328-29, 334, 342, 349ff., 364, 425, 428
See also alternate
cohesion, class cohesion, functional cohesion,
mixed-domain cohesion, mixed-instance cohesion,
and multiple cohesion
in class interface 349, 360-63
Coleman, D. 444
collaboration diagram 83, 137,
138-46, 147, 159-60, 428
Common Object Request Broker
Architecture (CORBA) 68, 88
components
component object 124-26, 135,
136
See also software
component
composite class 428
composite object 428
concrete class 428
concrete operation 428
concurrency 149-58, 163, 171-76,
428
See also method-level,
object-level, and system-level concurrency
cone of polymorphism (COP) 310-11,
313, 315, 318, 319, 321, 325, 326, 428
confinement of behavior 272,
428
confinement of state-space
263ff., 428
connascence 207, 209, 213,
214-27, 228, 229, 230-32, 245, 429
abuses of 224-27
encapsulation boundaries
and 221ff.
maintainability and 222-224
constant 429
Constantine, L. vi, xv-xvi,
58, 76, 212, 230, 231, 444, 448, 450
constituent 429
construction 66-67
container 47, 49, 98, 235, 316,
381, 406, 429
context dependency 429
continuously variable attribute
429
contranascence 220-21, 222,
229, 231, 232, 412, 429
contravariance 282-90, 297
Cook, S. 82, 144
COP See cone of polymorphism
core representational variable 334, 340, 341,
412, 429
coupling 58, 76, 207, 212, 213,
412, 429
covariance 282-90, 297
Cox, B. 62, 444
cuboid example 87-88, 90, 306-9,
324, 344, 345
Cyliax, I. 445
top
D
Dahl, O.-J. 58, 444
dangerous behavior 353-54, 355,
364, 429
Daniels, J. 82, 444
data-type See abstract
data-type
deferred class See abstract
class
deferred operation See abstract
operation
delegation 309, 429
DeMarco, T. 444
deployment diagrams 83, 189,
191-96, 202, 429
descendant class 429
design xvi, xvii, 61,
65-66, 417-22, 429
by contract 208, 259, 270,
272, 297, 380, 384, 397, 406
criteria 66, 212-13, 230
owner's manual 417-22
Dijkstra, E. 58, 194, 445
dimensionality 273ff., 429
dimensions 261, 262, 263, 264,
272ff., 290, 298, 429
direct class-reference set 430
See also class-reference
set
disnascence 220, 228, 430
distributability 68, 71
documentation 60, 215, 222,
223, 226, 228, 280, 415, 416, 428
dog owner example xvi,
111, 119, 120, 122, 123, 131, 135, 251, 336,
367, 368ff., 372ff.
domain 208, 233-58, 263, 307-8,
328, 342, 365, 390ff., 406, 412, 416, 430
See also application, architecture,
business, and foundation domains; fundamental
subdomain; mixed domain cohesion
components and 399
sources of 238-40
dynamically linked library
(DLL) 97, 194, 378
dynamic binding 41, 49, 142-43,
430
dynamic classification 430
dynamic connascence 218-19,
228, 231, 430
top
E
Edwards, J. 78, 164, 446, 448
Eiffel xviii, 4, 16, 18, 36,
38, 52, 53, 60, 95, 144, 221, 245, 313, 317,
318, 319, 324, 424
elapsed-time event 180
Embley, D. 445
encapsulation 2, 3, 9-12, 15,
48, 50, 51, 58, 65, 69, 83, 207, 209-13, 221-22,
224, 225, 228ff., 279, 327, 336, 338, 380,
430
boundaries 221-22, 223ff.,
230, 380, 412, 418
design criteria 212-13, 230,
231
levels 210-11, 212ff., 246
encumbrance 208, 233, 241-45,
254, 255, 342, 347, 374, 399, 412, 430
direct encumbrance 242, 430
indirect encumbrance 242,
434
essential model 189, 430
event model 430
event type 430
explicit connascence 215, 223,
228, 231, 430
extensibility 67-68, 69, 71,
79, 327, 349, 416, 430
extension of behavior 272, 431
extension of state-space 265ff.,
431
external dimensionality 276,
431
external state 431
extrinsic class 248-49, 250,
251, 253, 431
Eykholt, E. 445
top
F
Fad of the Year 64
fan-out 212, 213, 371, 431
feature 85, 93, 94, 95, 102,
104, 108, 109, 220, 226, 246-52, 254, 255,
258, 402, 413, 424, 427, 431
prefixes for 104
Firesmith, D. 78, 445
first-order design 286, 431
formal argument 45, 89, 101,
139, 145, 218, 289, 431
formal signature 83, 89, 90,
100, 291, 413, 427
foundation domain 233-34, 235,
253, 258, 406, 431
Fowler, M. 445
framework 431-32
Freedman, D. 411, 445
friend function 224, 225, 431
frozen operation 431
functional cohesion 363, 364,
431
function-style operation 431
fundamental domain 241, 242,
244, 399
top
G
garbage collector 18, 28, 347,
432
generalization construct 108-15
generic class See parameterized
class
genericity xix, 3, 43-47,
48, 49, 59, 235, 293, 316-18, 374
perils 47
get operation 89, 91, 92, 93,
96, 100, 102, 104, 141, 142, 163, 251, 306,
310, 325, 338, 340, 347, 362, 368, 372, 374,
375, 432
Genghis the Perverse 354-55,
360, 361
Gill, S. 450
glider example 33-38, 48, 124-25,
301
Goldberg, A. 58, 445
Gordian hammock 65
Graham, I. 78, 445
graphical user interface (GUI)
xviii, 69-70, 71, 74, 84, 190, 200-201,
206, 432
gray boxes 125
"Green" Programming
Language 59
Grehan, R. 445
guarded state transition 432
GUI See graphical user
interface
top
H
hacking 432
handle 15-16, 17, 18, 28, 29,
48, 50, 52, 53, 54, 103, 145, 160, 161, 163,
201, 432
physical memory address 17
Harel, D. 164, 171, 446
Harkey, D. 448
hash table example 217, 221,
222,
Hatley, D. 192, 193, 446
Haydn, F. 230
heavyweight 432
Henderson-Sellers, B. 78, 164,
446
Holland, I. 244, 447
hominoid example 4-11, 12-23,
26-28, 31, 50, 51, 52, 102, 105, 106, 162,
163, 217, 254, 255-56, 257
horizontal partitioning 204,
432
hoser example 288-90
Hruschka, P. 446
human interface xix,
188, 196-201, 202, 416, 432
top
I
Ichbiah, J. 59
ideal behavior 359-60, 364,
365, 432
ideal class cohesion 246, 252,
253, 257, 258, 328, 365, 432
ideal operation cohesion 363,
433
ideal states 352, 355, 360,
364, 433
illegal behavior 352-53, 364,
433
illegal states 264, 350-51,
353, 354, 355, 364, 433
immutable class 102, 103, 105,
266, 429, 433
immutable object 53, 433
imperative message 25, 26, 118,
433
implementation hiding 3, 12-14,
15, 41, 48, 49, 146, 338, 342, 433
implicit connascence 215, 223,
224, 228, 230, 231, 232, 433
inappropriate states 351, 353,
364, 414, 433
incomplete behavior 351, 361,
364, 415, 433
incomplete states 351, 364,
433
indirect class-reference set
433
information hiding 3, 12-14,
15, 48, 433
informative message 25, 372,
395, 433
inheritance xv, xx, 3,
33-38, 48, 51, 55, 108-10, 113, 114, 130,
134ff., 208, 225-26, 228, 254, 279, 293, 394,
299-309, 319, 320, 324, 325, 331, 413, 414,
434
See also class-inheritance
diagram
abuses 224, 225-26, 228, 299-309,
319, 353
components and 380
is a test 36, 306-9, 413
mechanics of 34-35
multiple 37-38, 51, 109, 110,
220, 221, 307, 324, 325, 332, 336, 343
polymorphism and 159, 299ff.
single 37, 108-10
structure 107, 108-15
UML depiction 108-15, 130
inheritance hierarchy See
class-inheritance hierarchy
inheritance structure 107, 108-115
instance 7, 35, 302-6, 434
attributes 7, 164, 165, 303,
304
instance constant 144, 434
instance message 434
instance operation 7, 30, 33,
36, 48, 50, 86, 373, 393, 434
instance variable 31, 50, 191,
275, 276, 308, 347, 429, 434
instantiation 27-31, 43, 45,
47, 49, 53, 54, 95ff., 100, 103, 105, 114,
115, 147, 154, 167, 267, 303, 316, 374, 375,
434
connascence and 227
integrated circuit (IC) 62-63,
92
interaction diagram See object-interaction
diagram interface definition language (IDL)
88
internal dimensionality 276,
434
internal state 434
interrogative message 25, 26,
367, 434
intrinsic class 248, 249, 373,
434
invariant See class invariant
irrelevant behavior 354, 364,
415, 434
is a test 36, 306-9, 413
iterated message 143-44, 158,
163, 434
iterator 434
top
J
Jacobsen, I. I. 60, 77, 78,
446, 449
Java xviii, 4, 16, 18,
25, 38, 51, 52, 53, 55, 60, 76, 94, 144, 245,
269, 313
Jonsson, P. 446
top
K
Kay, A. 58, 446
Kemerer, C. 444
Kuhn, T. 446
Kurtz, B. 445
top
L
LaLonde, W. 281, 446
Lampson, B. 446
Land of the Midnight Fix 226
Larman, C. 447
Law of Demeter 244-45, 253,
435
Lehoczhy, J. 449
library example 115-16
Lieberherr, K. 244, 447
lightweight 378, 397ff., 435
Liskov, B. 15, 59, 281, 447
listener object 155, 160, 435
literal class 53, 95, 103,
232, 435
literal object 53, 435
Lockwood, L. 444
Love, T. 447
Lurch, E. 151, 477
top
M
machine example 167-71
maintainability xx,
69, 71, 209, 222, 326, 350, 416
Martin, J. 123, 376, 447
Martino, L. 374, 443
McConnell, S. 447
Mealy, G. 167, 178, 180, 185
Mellor, S. 164, 178, 184, 193,
449
Mental Health Warning 282
message 19-27, 48, 137, 435
arguments 21-23, 176-77, 279
arrow notation 139, 142, 190,
280
asynchronous 83, 138, 149-58
depiction of 139-42
iterated 143-44
roles of objects in 23-25
structure 19-20
synchronous 138-48, 150, 160
types of 25-27
message forwarding 309, 324,
343, 345, 346, 376, 413, 414, 435
message queue 155, 435
parallel 155-56, 157, 161,
163
priority 155-57, 160
metaclass 435
method 29-30, 70, 90, 100, 143,
146, 162, 271, 339, 367, 372, 373, 393, 424,
428, 435
See also overriding
of abstract operation 95,
104
connascence and 223, 241
polymorphism and 70, 143
Meyer, B. vi, 38, 60,
221, 270, 281, 324, 447
mixed-domain cohesion 4, 246,
248-50, 251, 252, 253, 254, 255, 257, 308,
328, 344, 436
mixed-instance cohesion 246,
247-248, 250, 251, 252, 253, 254, 257, 258,
308, 322, 436
mixed-role cohesion 246, 250-52,
253, 254, 257, 334, 373, 374, 436
mix-in class 327-36, 436
business example 328-32
graphics example 333-36
model 436
modifier operation 89, 291,
293, 294, 408, 436
Module of the Month Club 211
Moore, E. 167, 178, 180, 185
Moote, R. 445
MOSES methodology 78
Mowbray, T.J. 447
Muller, P.-A. 447
multiple classification 436
multiple cohesion 360, 361-63,
364, 371, 415, 436
multiple inheritance 37, 38,
83, 108, 109, 110, 130, 220, 221, 301, 302,
307, 321, 324, 325, 332, 336, 343, 413, 436
multiple messages 149, 353,
355, 364, 426, 429, 438
multiplicity 117, 118, 123,
125, 128, 129, 130, 136, 144
muon 57
mutable class 103, 436
mutable object 103, 436
top
N
name clash 436
narrowcast message 158
non-inheritable operation 437
non-query operation 89, 104
Nygaard, K. 58, 444
top
O
object xv, xvi, xix,
1, 7, 23-25, 48, 437
as black box 13
class vs. 28, 86
class migration 66, 71, 294,
298, 322, 374, 375, 376
data vs. 52, 53
instance vs. 35
object-level concurrency and
149, 161, 437
roles 23-24 slicing 322
state 157
structure 11, 27-29, 43
symbol for 86-87
object-action paradigm 201,
437
object-aggregation diagram
132, 136
object based 51, 437
object-handle mechanism 15
object identifier 16
See also handle
object identity 3, 15-19, 48,
51, 437
object-interaction diagram 126,
137ff., 146
object-level concurrency 149,
161, 437
Object-Management Group (OMG)
68, 77, 255
Object Modeling Technique (OMT)
77
object orientation 57-72
as engineering discipline
62-64
origins of 57-60
researchers 58-60
software properties of 2,
3, 9-49
software reaction toward
60-62
uses for 64-72
object oriented 1-2, 437
analysis and design xvi
code xvii, xviii, 3,
4, 5, 7, 9, 15, 16, 17, 20, 25, 29, 34, 35,
36, 39, 40, 41, 42, 43, 45, 46, 47, 49, 52,
53, 54, 55, 82
development xvi
environment 2, 16, 17, 18, 21,
22, 25, 30, 41, 48, 50, 67, 76, 220, 281,
437
evolutionists 75, 76
gurus 2, 9, 19, 378
Hall of Fame 52-54, 75, 76
languages xvii-xviii,
4, 12, 36, 38, 52, 53, 54, 59, 67, 68, 76,
80, 81, 94
libraries 5, 66, 70, 71, 97,
107, 109, 189, 190, 194, 202, 215, 220, 221,
225, 226, 236, 238, 239, 240, 244, 255, 281
management 70-72, 74
methods and notations xvi
programming xvii, xviii,
xxi
properties 2, 9, 15, 19, 27,
48-49
pseudocode 4
eactionaries 64, 73, 75, 76
revolutionaries 62, 73, 75,
76
software xvi, xix, 19,
21, 61, 63, 73, 74, 205, 207, 319, 377, 381
systems xvi, xix, 23,
26, 59, 64, 68, 78, 137, 138, 149, 189, 209,
222, 224, 365
tools 80-81
See also design
Object-Oriented Database-Management
System (ODBMS) 54, 62, 69
Object-Oriented Design Notation
(OODN) 78
object-query language (OQL)
69
object reference 15
object structured 437
Odell, J. v, 123, 135, 376,
447
OID See handle
ontogeny recapitulates phylogeny
example 61
OOAD standard 79
OODN See Object-Oriented
Design Notation
OPEN Modeling Language (OML)
78
operation 10, 12, 89-92, 100,
102, 103-104, 105, 109, 110, 117, 120, 121,
130, 134, 279
abstract 95-96
cohesion of 360-65
get and set 91
of an object 24-25
UML notation for 89-96
visibility 93-94
operation-level concurrency
149, 437
operation postcondition 78,
208, 259, 269-71, 272, 279, 282, 283, 285,
286, 287, 291, 294, 295, 297, 379, 284, 385,
413, 427, 438
operation precondition 78, 208,
259, 269-71, 272, 279, 282, 283, 284, 286,
287, 291, 294, 295, 297, 379, 384, 385, 427,
438
operations ring 141, 146, 336-41,
439
Orfali, R. 448
Overgaard, G. 446
overloading 20, 42-43, 49, 92-93,
100, 326, 366, 371, 424, 437
overriding 36, 42, 49, 294,
326, 413, 424, 437
top
P
package 83, 188, 189-91, 438
package component 140
package diagram 190, 202
Page-Jones, M. xv, 14,
64, 78, 212, 360, 448
panda example 302, 303, 305,
320, 324
parameterized class 45-47, 98-99,
101, 102, 313, 316-18, 319, 432, 438
Parnas, D. 59, 448
partitioning 110-113, 115,
130, 131, 203, 204, 296, 306
discriminators 114-115
disjunct vs. overlapping 111,
113, 130, 131, 133, 134
dynamic vs. static 112-113
horizontal 204
incomplete vs. complete 111-112,
113, 130, 131, 133, 134
vertical 205
Pauli, W. 57
Pavarotti example 276-77
perfect technology 438
pin-out symbol 83, 92
See also class-external-interface
diagram
Pirbhai, I. 192, 193, 446
pointer 16, 24, 25, 48, 336,
347, 373, 389, 431, 438
polygon example 38-42, 96, 142,
143, 235, 292, 298, 310, 325
polymorphism xix, xx,
3, 38-43, 46, 48, 49, 70, 142-43, 144, 159,
160, 201, 208, 282, 287, 293, 296, 297, 298,
299ff., 309-18, 319, 321, 324-325, 326, 414,
438
danger of 299, 309-318
genericity and 316-18
in messages 314-15
of an operation 309-12, 313
of a variable 312-13, 438
See also cone of polymorphism,
scope of polymorphism
Porter, H.H. 226, 312-13
postcondition 438
See also operation
postcondition
precondition 438
See also operation
precondition
preset operation 438
principle of closed behavior
208, 267, 272, 278, 279, 289, 290, 291-93,
294, 295, 438
principle of contravariance
282-290, 294,
example of 283-288
graphic illustration of 288-290
principle of covariance 282,-290,
294,
example of 283-288
graphic illustration of 288-290
principle of type conformance
208, 278, 279, 281-91, 294, 294, 324, 326,
336, 344, 345, 365, 414, 439
requirements for 290-291
printed circuit boards (PCB's)
63-64
private attribute 12, 93, 94,
100, 413, 424
private operation 12, 93, 94,
104, 339, 392, 413, 424
procedural modules 14, 59, 211,
228, 246, 360
procedure xix, 10, 14,
20, 29, 65, 90, 97, 137, 191, 209, 212, 360,
371, 389
procedure-style operation 439
Professor Rossini example 43
programmers vii, xvii, xviii,
xix, xxi, 9, 12, 14, 16, 17, 27, 39, 373,
416
two kinds xviii
programming See object-oriented
programming
programming language See
object-oriented language
protected attribute 93, 94,
100, 424
protected operation 93, 94,
100, 104, 424
public attribute 12, 13, 87ff.,
93, 94, 100, 334, 424
public operation 12, 93, 94,
100, 104, 267, 331, 332, 335, 337, 339, 340,
346, 362, 424
Pugh, J. 281, 446
top
Q
quality of a class interface
208, 349ff.
quality vector 439
query language 69
query operation 439
top
R
Rabi, I. 57
Rajkumar, R. 449
real-time systems 26, 65, 73,
138, 150, 158, 182, 185, 195, 219, 232
rectangle example 271, 274-76,
280, 282, 293, 295, 298, 333, 334, 336ff.,
344ff., 350ff.
redefinition 439
Redell, D. 446
relational database 54, 69,
392
reliability 66-67, 69, 73, 439
repeated inheritance 439
replicated behavior 356ff.,
360, 362, 364, 366, 371, 415, 439
requirements analysis xviii,
65, 71, 84, 214
reusability xx, 61, 66,
69ff., 207, 211, 235, 238ff., 249ff., 256,
327ff., 332, 334, 342, 344, 350, 372, 374,
381, 412, 416, 439
Richards, M. 59, 448
ring of operations See operation
ring
Robson, D. 58, 445
robustness 66, 67, 69, 71, 73,
278, 283, 327, 349, 439
room example 257, 306ff.
Rosenberg, D. 448
Ross, D. 448
Rumbaugh, J. 60, 77, 78, 449
top
S
sales commission example 247-48,
281
sales system example 196ff.
Schoman, K. 448
scope of polymorphism (SOP)
312, 313, 316, 317, 319, 321, 324, 325
of an operation 310, 314,
15, 317, 439
ragged 311-312, 315, 321,
326, 414
of a variable 312-313, 314,
439
Scott, K. 445, 448
second-order design xix,
286, 440
self 144-45, 245, 440
first usage 144-45
second usage 145-46
seminar company example 182ff.
sender object 19-20, 24, 41,
49, 52, 137, 139, 144, 145, 146, 160, 161,
218, 270, 440
sequence diagram 83, 137, 139,
141, 146-48, 150, 154, 159-60, 162, 440
server See target object
set operation 440
Sha, L. 449
Sharble, R. 449
shipment unit example 167, 225,
226, 366-67, 371-72
Shlaer, S. 184, 449
signature 21, 43, 49, 50, 83,
89, 90, 92, 100, 245, 258, 279, 283, 284,
291, 294, 326, 379, 385, 413, 424, 440
See also formal signature
Simula 58
single inheritance 108-10,
130, 440
Skolnik, M. 63, 449
Smalltalk xviii, 4,
16, 21, 25, 38, 52, 53, 58, 144, 245, 313,
software component xx,
63, 75, 81, 193-96, 202, 377ff., 428
defined 378-79, 428
example of 382-89
objects and 380-82
internal design of 389-96
lightweight and heavyweight
397-99
advantages and disadvantages
of 400-405
SOP See scope of polymorphism
sorted tree example 316
stack example 63, 235, 270,
320, 324, 347, 350, 351, 353, 359-60
state 10, 14-15, 164-87, 262,
440
attribute 165, 172, 180,
181, 184, 440
concurrent 171-76
nested 164, 167-71, 171-76,
180, 181
transient 176-77
state diagram 83, 164-87, 440
state-transition diagram vs.
181
state retention 3, 14-15, 48,
51, 440
state-space 208, 259-65, 267,
269, 272, 273, 274, 275, 276, 279, 440
class invariant and 267-69
of a subclass 263-65
state transition 364, 440
static binding 142, 440
static connascence 216, 228,
231, 441
stereotype 441
storability 69
Stroustrup, B. 59-60, 449
structured design 14, 64, 73,
76, 97, 207, 210, 212, 216, 222, 230, 246,
286, 360, 389
Structured Design Notation
(SDN) 440
structured programming 4, 212
structured techniques 65, 71,
73, 76, 137
subclass 34ff., 39ff., 263ff.,
280, 281, 282, 413, 414, 424, 441
partitioning 110-13, 115
as subtype 278ff.
subdomain 189, 391, 416, 441
subroutine 9, 10, 21, 66, 209,
210, 228
subscriber object 151, 152,
160, 441
subtype 278ff., 441
superclass 33ff., 42, 47, 49,
68, 105, 107ff., 130, 142ff., 159, 216, 220,
225, 226, 228, 245, 247, 258, 264ff., 272ff.,
371, 413, 414, 424
synchronization 171-76
synchronous messaging 138-48,
150, 160, 441
Synthesis xvi, 441
system architecture 188, 189-96
system-level concurrency 149,
428
Szyperski, C. 449
top
T
target object 19, 20, 24, 40, 41, 42, 49,
137, 139, 142, 143, 145, 146, 155, 160, 161,
218, 293, 314, 414, 441
target operation 21, 52, 270
task 441
thread 441
transient state 174, 176-77,
184
triangle example 267-69, 273,
277, 292-93, 313
trigger message 174, 180, 441
type See abstract data-type
type conformance 208, 286,
287
top
U
Unified Modeling Language (UML)
xvi, xix, 60, 66, 71, 77-84, 105, 106,
145
authors of 164
for a broadcast message 157
change event 167
for class diagrams 107-36
deployment diagram 189, 192,
195, 196, 202
execution structure 137ff.
forward slash notation 166
goal statements 78-83
history symbol 171
notation 85-99, 102, 116-19,
279-80
package diagram 190
prefixes 104
reference manuals 84
synchronization bar 175
Uniform Object Notation (UON)
xvi, 77-78
usability 69-70
use case xv, 84, 137,
148, 198
utility 97-98, 100, 258, 371,
380
top
V
variable xix, 10, 11,
12, 18, 24, 128, 138, 144, 146, 157, 312-13,
372, 413, 414, 424
vertical partitioning 205,
442
video-rental store example 220,
235, 325
visibility 93-94
top
W
walkthroughs 67, 296, 302,
356, 358, 411-16
walled city example 11-12
Ward, P. 449
Wayland Systems xxi,
441
Weasel example 226-27
Webster's Third New International
Dictionary 449
Wegner, P. 51, 76, 450
Weinberg, G. 411, 445
Weiss, S. vi, 77, 448
Wiener, R. 60, 270, 450
Wilkes, M. 9, 450
Wheeler, D. 450
Whitby-Strevens, C. 59, 448
whole/part associations 107,
123-29, 130
aggregation 126-29, 130
composition 123-26, 130
window-layout diagram 196-97,
202, 205-6, 442
window-navigation diagram 196,
198-200, 202, 203, 206, 416, 442
key to symbols 199
Woodfield, S. 445
Wordsworth, W. 1
top
Y
Yourdon, E. vi, 76, 198, 212,
230, 231, 360, 450
yo-yo messaging 145, 442
top
Z
Zahavi, R. 447
Zdonik, S. 374, 450
zeroth-order design 286, 442