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
topD
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