INDEX

A

abstract classes, 34–35, 420
defined, 34
example, 35
operations declared in, 34
patterns with, 35
specializing, 35
See also classes
abstract data types
classes as, 39
contract model and, 39–40
abstract factory, 330
abstract operations, 34
Abstract Windowing Toolkit (AWT), 229
ACID properties, 371
activity diagrams, 498
activity scenarios, 466
actors
defined, 465
human, 483
technical, 483
adapter pattern, for class collaboration, 198
addressability, 24
adjusting tool pattern, 181–183
architecture, 260
background, 182
illustrated, 181
problem, 181–182
rationale, 183
relationship, 182
solution, 182
adjusting tools
design, 182
in multiprocessing space, 260–261
with probes, 183
technical automatons and, 259
using, 182–183
See also tools
altering states, 67
announcing, 262
application domains, 118, 119–120, 427
actual state, 112
business domain layer and, 311
context, 127–128
defined, 119
domain model of, 283
domain-specific language, 119
importance, 119
modeling, 120–122
size of, 427
software development and, 127
types of, 119
work environments in, 156
See also domains
application frameworks, 91–92
characteristics, 92
complexity, 92
defined, 91
See also frameworks
application orientation, 2, 102–103, 394
background, 103
characteristics, 102
defined, 102, 105
focus, 4
selection, 427
tasks and, 102–103
application software
characteristics, 102
defined, 2, 102
designing, 57–59
guiding metaphors, 59–63
implementation, 102
interactive, 2, 5, 104
large-scale, 2
usage quality, 4
application system model, 122–125
defined, 122, 123
design model, 123–124
examples, 124–125
implementation model, 124
structural similarity, 123
submodels, 123
usage model, 123
application systems, 125–127
characteristics, 126
connecting, to databases, 358
defined, 126
documentation, 402
elements, 126
embedded, 178
influences, 127
application-oriented document types, 7, 109–110
defined, 109
technical documents and, 499
See also document types
application-oriented software development, 2, 101–115
arguments for, 101
author-critic cycle, 107–108
characteristics, 105
defined, 105
as document-driven process, 106
documents, 109–110
motivation for, 101
objectivity and independence, 106
prerequisites, 106
process, 105–115
application-oriented transparency, 344–345
applications
distributed, 54
handling/presentation and, 308
“look and feel, ” , 118
applied technique, 128–129
defined, 128
example, 128
system base, 128–129
technology, 129
architectural style, 282
architecture group, 411–412
defined, 412
qualification profile, 412
responsibilities, 412
archive management, 359
aspect classes, 195–196
standard implementations and, 195
subsystems and, 198
tool use of, 196
use benefits, 195
aspect pattern, 190–201
background, 192–194
defined, 187
example, 192
illustrated, 190
intent, 190
problem, 190
rationale, 194
relationship, 191
solution, 191
trade-offs, 194
aspects
behaviors, specifying, 194
characteristics, 191
construction obstacles, 194
generalizing, 197
implementing (inheritance/interfaces), 195–198
implementing (object adapters), 198–200
inheritance, 195–198
interfaces, 193, 195–198
materials and, 194, 197
multiple inheritance and, 195
realizing (development tools), 200–201
single inheritance and, 194
static typing, 196–198
use alternatives, 201
asynchronous communication, 262
asynchronous coupling, 261
author-critic cycle, 107–108, 413
defined, 8, 107
example, 108
schematic, 107
task analysis, 107
automaton pattern, 167–171
defined, 138
example, 168
illustrated, 167
intent, 167
problem, 167
relationship, 168
solution, 168
trade-offs, 170
automatons, 70–71
adjusting, 261–262
asynchronous communication, 262
big, 71
building, 168
characteristics, 70–71
database, 381–382
defined, 6, 70
as design metaphor, 70–71
for domains, 252
for functional workplaces, 168
implementing, 168
interactive user interfaces, 170, 182
large, 170
in multiprocessing space, 260–261
persistence, 389
for routines, activities, 170
for routines, criteria, 170
run location, 70
small, 71, 168
software, 71
in T&M design, 71
as technical processes, 169
tools vs., 169
use of, 169
uses, 170
automatons in embedded systems pattern, 258–264
defined, 189
example, 261–263
illustrated, 258
intent, 258
problem, 258–259
rationale, 264
relationship, 259
trade-offs, 263–264
See also design patterns

B

back-office workplace type, 75–76
characteristics, 75
defined, 75
handling, 76
See also workplace types
bank example
application system model, 124
business domain modeling, 291–293
business domains, 289–290
combination of layers, 304–305
combination of layers with bridge pattern, 305
customer orientation, 409
direct manipulation guiding metaphor, 61
domain hierarchy, 328
domain model, 121
domain relationships, 293–294
domain values, 49
ideal business domains, 291
layered architecture, 313–314
minimal core system, 435
object life cycle, 29
object-oriented layer architectures, 300
open-closed principle, 301–302
product domain, 288
project goals, 430–431
use context, 286
work environment, 155
workplace types, 286–287
base lines, 441–443
checking, 441
defined, 441
defining tasks, 441
discussing, 442
entering, 443
example, 442–443
scheduling with, 443
in Unified Process, 442
base operations, 35
big automatons, 71
black-box frameworks, 92–94
connecting, 94
defined, 92
using, 92
white-box frameworks comparison, 93
black-box tests, 422
BLOBs, 385
body/handle pattern, 242
breadboards
content, 485
defined, 484
See also prototypes
business domain layer, 311–312
application domain and, 311
defined, 311
implementing, 311
reusing parts of, 312
business domains, 289–293
company organization and, 291
concepts/objects, 290
constructors in, 335
defined, 290
design criteria, 290
elements, 290
example, 289–290
ideal, 291
minimal, 290
modeling, 291–293
overlap, 289
restructuring, 293
See also domains
“business modeling, ” , 121
business transactions, 175
business use case diagrams, 467

C

C++
types and, 45
using, 219
calibration, 428–430
dimensions, 428, 429
important aspects of, 429–430
See also projects
Certified Aircraft Engine Software project, 11–12
chain of responsibility, 217–219
event pattern vs., 218
example, 218
functionalities, 217
pattern, 82
rationale, 219
trade-offs, 219
class diagrams, 473, 497
class evolution, 382
class libraries, 90–91
as basic elements, 297
characteristics, 90
defined, 90
example, 91
open-closed principle and, 90–91
class mapping, 389–392
class-based languages, 19
classes, 25–27
abstract, 34–35, 420
as abstract data types, 39
aspect, 195–196, 198
collaboration, 198
defined, 18, 25, 26
in design, 43
in domain model, 25–26
domain value, 238–240
form, 253
illustrated representation, 26
inheritance relationship, 18
modules and, 36
organization, 422
in software model, 26
superclass, 238
testing, 421–422
type differences, 43–44
types and, 43–45
user-defined, 49
client-server architecture, 374–378
persistence-capable clients, 374–375
persistence-capable servers, 375
SyLab, 387, 387–388
trade-offs, 375
cohesion, 37
Collection interface, 277
combination tools
constructing, 209–210
defined, 206
event pattern for, 214
feedback problem, 213
implementing, 209
See also tools
command objects, multiple registration, 235
common user access (CUA) guidelines, 114–115
company organization, 284
complex tools, 216–217
component diagrams, 498
components, 96–99, 297
background, 80
for building combination tools, 209–210
for building tools, 208–209
characteristics, 97
current products, 98
defined, 79, 97
frameworks and, 98–99
implementation, 97
loosely coupled, 36
programming, 97
runtime, 97
software, 96
technical, representing, 178
technologies, using, 410
composability, 37
composition relationship, 473, 474
Computer Aided Software Engineering (CASE) tools, 8, 127
computer-supported cooperative work (CSCW), 58, 59, 341–345
defined, 341, 342
as important design issue, 341–342
concept models, 472–475
content, 473
defined, 472
in development process, 475
document types and, 475
elements, 474–475
example, 473–474
generalization, 473, 474
purpose, 472
structure, 472–473
UML and, 475
See also document types
conceptual patterns, 3, 83–84, 87, 135–183
adjusting tool, 181–183
allocating, 84
automaton, 138, 167–171
container, 138, 159–163
defined, 83
in development process, 136
domain service provider, 138–139, 171–176
form, 138, 164–167
guided tour, 137–139
as guideline, 84
hierarchy, 137
illustrated, 87
interrelation of tools and materials, 84, 137–138, 139–142
list, 136
material design, 138, 142–145
probe, 179–181
problems addressed by, 136
T&M, 136
technical automaton, 139, 176–179
tool design, 138, 146–151
work environment, 138, 152–159
See also patterns
conceptual stage (UP), 445
conference planning, 440–441
configuration scripts, 337
connectors, framework, 94
consistency checks, 157, 383
general principle, 158
types of, 157–158
construction guidelines, 87
construction stage (UP), 446
Containerinterface, 277
container pattern, 159–163
background, 162–163
defined, 138
example, 160–161
illustrated, 159
intent, 159
problem, 159
rationale, 163
relationship, 160
solution, 160
trade-offs, 161–162
containers, 71–73
changes to, 250–252
characteristics, 72
contents, 161
data structures and, 163
defined, 71
as design metaphor, 72
domain, 162, 163, 244–252
explicitly modeling, 163
loading, 247
management function implementation, 162
material transport, 162
as materials, 162
modeling, 245–246
moving, 160
order principles, 161–162
ordering, 72
polymorphic, 161
processes and, 72
representations, 71
services, 160
specialized, 162
in T&M design, 72–73
tables of contents, 248–249
technical, 163, 246–247
transport medium implementation, 162
contains relationships, 144
context tools
defined, 206
designing, 210
See also tools
continuity, 37
continuous feedback, 399
contract model, 38–40
abstract data types and, 39–40
defined, 38
introduction, 38
service provider/client in, 39
T&M design and, 40
contracts
defined, 38
operation calls and, 38
pre-condition specification, 38–39
violations, 40
cooperation
explicit, 343, 346–356
implementing, 158–159
implicit, 343, 345–346
material, 343
routinized, 353
rules, 432
support with mailing system, 349
cooperation medium
defined, 343
mailboxes, 346–348
mailing system, 349–350
routing slips, 354–355
cooperation model
defined, 342
mailbox systems, 349
mailboxes, 347
for registry, 361–363
routing slips, 354–355
cooperation model (registry), 361–363
access to copies only, 362
background, 361
example, 363
exclusive access, 361–362
illustrated, 363, 366
problem, 361
solution, 361
trade-offs, 363
usage model with, 365
cooperation pictures, 488–494
benefits, 492–493
content, 489
defined, 8, 488
designing, 491
in development process, 490–493
document types, 493
example, 488–489, 492
illustrated, 489
issues, 489
mutual understanding and, 492
overviews, 489, 490
planning pictures, 490
purpose, 488
structure, 488
subtypes of, 489–490
task pictures, 489, 491
UML and, 494
unknown connections and, 493
See also document types
cooperative development process, 402, 405–406
cooperative work, 341–356
analysis, 7
characteristics, 342
computer-supported, 58, 59, 341–345
coordination and, 342–343
defined, 6
domain concepts, 358
original and copy in, 361
Cooperative Workplace System project, 13
coordination
cooperative work and, 342–343
defined, 343
phase, 408
core concepts, 320, 322, 327
core objects, 317
defined, 318
dynamic extension, 322
extending properties of, 322
illustrated, 319
interaction, 320
interfaces, 321
use relationship, 322
core system
coordination, 432
defined, 433
example, 433–434
extension levels and, 434–436
minimal, 434–435
with special-purpose systems, 434
coupling
defined, 37
loose, 35–36
coupling tools and materials pattern, 85
CRC cards, 472
creating objects, 28
current work objects, 157
customer orientation, 1–2, 409
defined, 285
example, 409
implementation, 285
customers
group segmentation, 285
satisfaction, 2
uniform image, 173
cyclic structures, 296–297

D

data consistency, 371
data warehouses, 379
databases
automaton, using, 381–382
connecting application systems to, 358
legacy, 382–383
relational, 377–378
decision principles, 431
decomposability, 37
deleting objects, 28
dependency relationship, 473
deployment diagrams, 498
descriptive software development model, 118
design guidelines, 58–59, 114–115
design metaphors, 5, 63–64
automaton as, 6, 70–71
basis, 87
characteristics, 64
container as, 72
defined, 6, 63, 64
example, 64
materials as, 6, 68
patterns and, 66–67
requirements, 64
tools as, 6, 7
in uniform application system design, 287
work environment as, 6, 69–70
See also metaphors
design model, 123–124
defined, 23
representation, 123
design patterns, 3, 84–85, 185–279
aspect, 187, 190–201
automatons in embedded systems, 189, 258–264
characteristics, 84
construction parts, 86
coupling tools and materials, 85
defined, 83
descriptive part, 86
domain container, 244–252
domain services, 189, 264–268
domain values, 188, 236–243
environment, 189, 268–271
example, 85
feedback between interaction forms and IP, 188, 232–236
feedback between tool parts, 188, 212–220
form system pattern, 189, 252–258
frameworks and, 85
guided tour, 187–190
hierarchy, 186
illustrated, 87
introduction, 185–186
for JWAM framework, 190, 271–279
object comparison, 333
overview, 187–190
product trader, 327–338
programming guidelines and, 114–115
role, 315–327
separating FP and IP, 221–227
separating function and interaction, 187, 202–204
separating handling and presentation, 188, 227–232
T&M model architecture, 86, 314–338
tool composition, 187–188, 204–212
in uniform application systems design, 287
uses, 85
See also patterns
design stage (UP), 445–446
development domain, 428
development process, 8, 393–455
activities sequence, 400–401
application-oriented, 410
concept models in, 475
cooperation pictures in, 490–493
cooperative, 402, 405–406
defined, 395
division of labor/depersonalization, 401
evolutionary, 394
glossaries in, 477–478
IT organization development, 409–412
models in, 452–454
objectifying, 401–402
organizational/domain integration, 406–409
project management, 425–428
project planning, 428–432
project structuring, 432–436
purpose tables in, 495–496
quality assurance, 413–419
scenarios in, 462–464
scheduling, 437–451
staff fluctuation in, 406
strategy, 400–412
system visions in, 480–482
task planning, 437–451
development tools, for aspect realization, 199–200
direct manipulation guiding metaphor, 61
direct mapping, 38
direct user integration, 413
distributed applications, 54
distributed communication usage model, 263
Distributed Component Object Model (DCOM), 96
document types, 459–499
application-oriented, 110–113
classification, 111–113
concept model, 472–475
cooperation pictures, 488–494
defined, 110
glossaries, 475–479
identified requirements, 114–115, 463, 470
interviews, 467–472
prototypes, 483–487
purpose tables, 494–496
scenarios, 459–467
system visions, 479–483
T&M, 113
technical, 112, 496–499
documentation, 108–109
defined, 108
guidelines, 114–115
problems, 109
writing, 109
document-based modeling, 398–399
documents
application-oriented, 109–110, 499
defined, 109
in development process, 111
domain, 425
elaborating, 109
milestone, 109, 113
planning, 426
project, 113–115
project control, 114
ranking within communication process, 112
types, 110–113
in UML, 110
domain container pattern, 244–252
background, 245
example, 245
illustrated, 244
intent, 244
problem, 244–247
rationale, 246
relationship, 245
solution, 245
trade-offs, 245–246
See also design patterns
domain containers
building, 245, 246
design, 244
modeling, 245
using, 364
domain core
application, 283–284
business domain, 289–293
domain relationships, 293–295
product domain, 287–289
software architecture, 283–295
use context, 285–287
domain functionality, 143
implementing, 265
in material design, 143
domain model, 20, 120–122
application domain aspects, 121
building, 119–120
class diagrams for, 473
classes, 25–26
defined, 120
inheritance, 30
interrelations, 20
objects, 21
scenarios as part of, 460
structural similarity, 122–123
domain service provider pattern, 171–176
background, 172–173
defined, 138–139
example, 172
illustrated, 171
intent, 171
problem, 171
rationale, 176
relationship, 171
solution, 171–172
domain service providers
behind application frontends, 173
business transactions and, 175
collections of functions and, 175–176
defined, 172
implementation, 172
information management, 175
resources and, 174
as stateful, 174
domain services
clients, 267
functionality, 265
implementing, 265
JWAM framework, 279
knowledge, 265
operations, 267
requirement, 265
technical features, 267
domain services pattern, 264–268
defined, 189
example, 266–267
illustrated, 264
intent, 264
problem, 264–265
rationale, 268
relationship, 265
solution, 265–266
trade-offs, 267–268
See also design patterns
domain transparency, 344–345
domain values, 49–50
building, 50
classes, 238–240
composite, 237
data types, 237
defined, 45, 49
example, 49
factory, 276
finite, 237
for FP-IP interaction, 239–240
for IAFs, 140
immutable objects, 240–241
implementing, 49–50, 237
implementing, as streams, 243
infinite, 237, 238
JWAM framework, 274–277
motivation for, 49
mutable, 242–243
objects, 276
operations on, 50
for PFs, 240
summary, 50
in T&M design, 49
tables of contents implementation as, 249–250
types, 49
types by configuration, 243
using, 239–240
See also values
domain values pattern, 236–243
background, 238
defined, 188
illustrated, 236
intent, 236
problem, 237
rationale, 238
relationship, 237
solution, 237
See also design patterns
domains
application, 118, 119–120, 127–128, 427
business, 289–293
change, handing within project team, 295
change impact on architecture, 295
development, 428
integration, 408–409
product, 287–289
relationships, 293–295
separation of, 305
technology, 427–428
terms, reconstruction of, 120
use contexts, 285–287
domain-specific identity, 24
dynamic binding, 34
dynamic identifiers, 22

E

E programs (Lehman classification), 403–405, 406
author-critic cycle and, 405
defined, 403
evaluation, 405
illustrated, 404
understanding of, 406
eclipse component model, 98, 99
Eiffel, 45
electronic commerce frontend workplace type, 76–77
characteristics, 76
defined, 76
See also workplace types
embedded application systems, 178, 259
Embedded Medical Lab System project, 12
encapsulation, 24, 419
business transactions, 175
data exchange and, 158
defined, 24
with IAFs, 230
implementing, 158
system platform, 231
use, 26
engineering cards, 450
Enterprise JavaBeans, 98, 99
enterprise resource planning (ERP), 98
environment pattern, 268–271
background, 269
defined, 189
example, 270
illustrated, 268
problem, 268
rationale, 271
relationship, 268
solution, 269
trade-offs, 271
See also design pattern
environments
building, 269
concepts, 269
defined, 269
features, 270
functions, 269
JWAM framework, 279
tools/materials in, 269
workspace and, 270
Equipment Management System (EMS) example
activity scenarios, 466
application domain, 120
application system model, 124–125
applied technique, 128
aspect interface, 195
aspect pattern, 192
author-critic cycle, 108
automatons, 71
business use case diagram, 467
chain of responsibility, 218, 219
combination tool building, 210
concept model, 473–474
conceptual patterns, 84
container changes, 250, 251–252
container pattern, 160–161
containers, 72–73
defined, 14
device description, 21
direct manipulation guiding metaphor, 61
domain container implementation, 246
domain container pattern, 245
domain model, 122
domain service provider pattern, 172
event objects, 215–216
feedback between IAFs and IP pattern, 234
flyweight pattern, 241
form pattern, 165–166
form system pattern, 255
glossary, 477
handling and presentation, 130
interrelation of tools and materials pattern, 140
material design pattern, 143–144
materials, 69
object life cycle, 29
patterns, 81
room plan, 15
scenarios, 461
separating FP and IP pattern, 222–223
separating handling and presentation pattern, 231
software tools, 68
system vision, 480
tool boundaries identification, 211
tool composition, 206–207
tool design pattern, 147–148
work environment, 70
work environment pattern, 153–154
equipment manager, 14–15
ethnographic video-supported studies, 462
event objects, 215–217
example, 215–216
rationale, 217
trade-offs, 216–217
See also objects
event pattern, 214–215
for combination tools, 214
with event objects, 216
example, 275
rationale, 215
trade-offs, 214–215
evolutionary cycles, 443–444
defined, 444
phases, 444
evolutionary process model, 398–399
actual/target states adjustment, 399
constant feedback, 399
document-based modeling, 398–399
idealized, 398–399
illustrated, 398
principles, 398
See also process models
evolutionary prototypes, 484, 487
evolutionary system development, 108
characteristics, 108
defined, 7, 108
exclusive access, 361–362
to materials, 361–362
on original, 362
experimental prototyping, 483
expert activities, 66
expert workplace guiding metaphor, 64–66
materials, 65
supportive view, 65–66
tools, 65
expert workplace type, 74
characteristics, 74
defined, 74
See also workplace types
explicit cooperation, 346–356
by exchanging materials, 346–350
defined, 343
model, 350–356
transaction processing support, 350–356
See also cooperation
explorative prototyping, 483
exploratory prototypes, 487
extension levels, 435–436
core system with, 436
defined, 435
example, 436
See also core system
eXtreme Programming, 4, 416, 449
comparison, 455
for detailed iteration planning, 450–451
story cards, 450
system visions and, 482
T&M and, 454
uses, 454

F

factory design pattern, 240
factory guiding metaphor, 62–63
factory method, 329
feedback between interaction forms and IP pattern, 232–236
defined, 188
example, 234
illustrated, 232
intent, 233
problem, 233
rationale, 236
relationship, 233
solution, 233–234
trade-offs, 234–235
See also design patterns
feedback between tool parts pattern, 212–220
background, 213
defined, 188
illustrated, 212
intent, 212
problem, 212–213
relationship, 213
solution, 213
See also design patterns
defined, 74
See also workplace types
explicit cooperation, 346–356
by exchanging materials, 346–350
defined, 343
model, 350–356
transaction processing support, 350–356
See also cooperation
explorative prototyping, 483
exploratory prototypes, 487
extension levels, 435–436
core system with, 436
defined, 435
example, 436
See also core system
eXtreme Programming, 4, 416, 449
comparison, 455
for detailed iteration planning, 450–451
story cards, 450
system visions and, 482
T&M and, 454
uses, 454
factory design pattern, 240
factory guiding metaphor, 62–63
factory method, 329
feedback between interaction forms and IP pattern, 232–236
defined, 188
example, 234
illustrated, 232
intent, 233
problem, 233
rationale, 236
relationship, 233
solution, 233–234
trade-offs, 234–235
See also design patterns
feedback between tool parts pattern, 212–220
background, 213
defined, 188
illustrated, 212
intent, 212
problem, 212–213
relationship, 213
solution, 213
See also design patterns
problems, 255–256
tools, 165, 257
use support, 253
using, 255
forms editor, 329, 330
case statement, 329
specialized, 330
frameworks, 2–3, 90–96
application, 91–92
background, 80
black-box, 92–94
characteristics, 91
components and, 98–99
connection, 296
connectors between, 94
defined, 79, 91
design patterns and, 85
directories for, 315
JWAM, 95–96
patterns and, 91
using, 410
white-box, 92–94
functional part (FP), 203, 204, 226–227
buffers, 260
combining with IP, 222
defined, 222, 226
design decisions, 226–227
rationale, 227
separating, 227
as starting point, 222
task separation, 226
tool division, 222
functional prototypes, 484
functional workplace type, 74–75
characteristics, 75
defined, 74
identification, 74
See also workplace types
functional workplaces, 370
automatons for, 168
defined, 370
See also workplaces
functionality
domain, 143, 265
interaction, 214
simple tools, 206
tools, 146–147
functions, 25

G

generalization, 473, 474
generic operations, 145
defined, 27
at internal interface, 28
in T&M, 27–28
uses, 27
generic persistence service, 369–373
architecture, 373
background, 369–370
data consistency, 371
high performance/throughput requirements, 372
material handling and, 371
problem, 369
software registry vs., 372
solution, 370
trade-offs, 371–373
See also persistence
glossaries, 475–479
common, 477
content, 476–477
defined, 7, 112, 463, 475
in development process, 477–478
document types and, 478–479
elements, 477
entries, 476
example, 477
project-specific, 477–478
purpose, 476
structure, 476
UML and, 479
UP and, 479
See also document types
goals (project), 430–431
example, 430–431
formulating, 430
project stages, 446
graphic user interfaces (GUIs), 103, 155, 221–222
designing, 228–229
widgets, 232
Graphic Workflow Editor project, 11
gray-box tests, 421
groupware, 342
guiding metaphors, 59–63
application software, 59–63
back-office, 5
defined, 5, 59
direct manipulation, 61
electronic commerce frontend workplace, 76
expert workplace, 5, 64–66
factory, 62–63
functional workplace, 5
functions, 59
“granular, ” , 6
object worlds, 60–61
requirements, 64
in software development, 59, 60

H

handling and presentation, 129–130
defined, 129
example, 130
as independent context, 130
handling and presentation layer, 96, 310–311, 366
defined, 310–311
implementing, 311
HTML clients, 265, 266
human computer interaction (HCI), 58, 59

I

identified requirements, 114–115, 463, 470
identifiers, 375–376
defined, 21
dynamic, 22
object (OIDs), 376
static, 22
trade-offs, 376
identity
defined, 24
domain-specific, 24
software-specific, 24
imperative variable concept, 48
implementation
components, 97
model, 124
specifications and, 35
implicit cooperation, 345–346
characteristics, 345
cooperation material and, 346
defined, 343
transparency, 345
See also cooperation
incoming interface, 22
information hiding, 38, 420
defined, 24
principle, 420
inheritance
aspects and, 194, 195
for common properties abstraction, 31
concept, 20
domain model, 30
for hierarchy of terms, 31
for incremental modifications, 31
layered architecture and, 301
multiple, 30, 317
object-oriented layer architectures, 301, 309
relationship, 18, 30
role hierarchies and, 323
single, 30
software model, 30
to specialize customers for product domain, 317
structure-oriented hierarchies, 32
in T&M design, 31–32
testing and, 420
three-tier architecture and, 307
using, 30–31, 421
insourcing, 407
instances
subtype, 42
type, 44
instruction-function-predicate pattern, 86
instructions, 25
integration tests, 421, 422
interaction diagrams, 498
interaction forms (IAFs)
defined, 230
domain values, 231, 240
examples, 230
JWAM framework, 278
separating, 232
set of, 231
interaction planning, 449–451
interactive application software, 2, 5, 104
interactive application systems, 357–392
background, 357–358
persistence services and, 358–373
interactive part (IP), 203, 204, 225–226
combining with FP, 222
defined, 222, 225
FP operation identification, 233
GUI design of, 228–229
main task, 226
rationale, 226
separating, 227
task separation, 226
tool division, 222
interfaces, 24
aspect, 193
component model, 193
explicit, 38
few, 38
incoming, 22
internal, 22, 26, 28
outgoing, 22
private, 27
public, 22, 26
restricting, 30
small, 38
structuring, 25
syntax specification, 41
internal interface
defined, 26
generic operations at, 28
See also interfaces
interrelation of tools and materials pattern, 82, 83, 84, 137–138, 139–142
background, 140
defined, 137–138
example, 140
illustrated, 139
intent, 139
problem, 139
rationale, 142
relationship, 139
solution, 140
interviewers, 468–469
interviews, 467–472
assessment, 471
characteristics, 468
general principles, 468
guideline, 468
interviewers, 468–469
moderators, 469
note-takers, 469
observers, 469
open conversation, 470
process, 468–472
purpose, 467
qualitative, 467
questions to be clarified, 469
role-playing, 470
structure, 468
targeted questions, 471
user feedback on, 471–472
See also document types
inventory directory, 359
IT Department Reorganization project, 11
IT organization development, 409–412
architecture group, 411–412
product planners, 411
project teams, 411
iteration planning, 449–451
plan types, 449–450
XP for, 450–451
iterations, 448–449
content and, 449
defined, 448
length, 449
of medium-sized projects, 449
as miniprojects, 448
scope of, 448
UP, 451, 452

J

Java
types and, 44
using, 219
JWAM framework, 95–96, 99
component-like tools construction, 278
defined, 95
design patterns for, 190, 271–279
domain services, 279
domain values, 274–277
domain-specific application layer, 95
forms, 278
handling and presentation layer, 96, 366
IAFs, 278
language extensions, 96
materials construction, 271–272
PFs, 278
software registry architecture, 365–369
structure illustration, 95
technology layer, 96
tools construction, 272–274
work environment, 279
See also frameworks
JWAM projects, 383–386
experiences from, 386
OODBs, 385
RDBMS mapping, 384–385
JWAM registry, 174

L

language extensions, 309–310
defined, 309
elements, 310
languages
class-based, 19
functional, 238
information hiding, 24
object-based, 19
object-oriented, 19–20, 238
objects in, 48–49
types and, 44–45
values in, 48–49
large projects, 429
large-scale application software, 2
late binding, 23
layered architectures
build rules, 312–313
example, 313–314
object-oriented, 299–303
protocol-based, 297–299
layers
combining, with bridge pattern, 305
concept, 303–305
direct combination of, 304–305
directories for, 315
interfaces/relationships and, 303
model architecture, 303
open-closed principle implementation with, 302–303
transparency of, 304
legacy databases, 382–383
Lehman software classification, 402–405
applying, 405
background, 402–405
defined, 402
E programs, 403–405
P programs, 403, 404
S programs, 402–403
load-on-demand, 379–381
example, 380–381
problems, 380
trade-offs, 380–381
using, 379
loan applications example, 351–353
“look and feel, ” , 118
loose coupling, 35–36
achieving, 233
defined, 36
object creation and, 36
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.15.39.190