ABC See Architecture Business Cycle
ABM SeeAtomic Broadcast Manager
“Abstract common services” tactic, 106, 135, 138, 148–149, 442
Abstraction, 21, 37, 43, 210, 477, 478
mastering at CelsiusTech, 375–376
and packaging, 142
and SS2000, 396
Abstract syntax tree, for information extraction, 235, 236
Accessibility, and the Web, 331
Access layer, for libWWW, 336
access_read relationship, 235
access_write relationship, 235
Account bean, 414, 415, 416, 419
Activation, of stateful bean, 410
Activation list, in Active Object design pattern, 124
Active design review, 268
Active Object design pattern, 124
“Active redundancy” tactic, 103, 141
ActiveX, 343
Activity control problems, 162
actually_calls relation, 240
Ada, 132, 139, 144, 371, 380, 387, 462
Ada package specification, and signature specification, 212
Ada programs, 142, 147, 378, 390
Adaptation data, 147–148
Adapters, 109
ADD See Attribute-Driven Design
“Adherence to defined protocols” tactic, 111
and client-server view, 142
and code templates, 149
and integrability, 175
Ad hoc tools, for information extraction, 236
Advanced Automation System (AAS), 129, 131
Aerodynamics, and flight simulator, 181, 182
Aggregate, 122
Aggregation, in UML, 219–221
Aircraft structure, unclear mapping between software structure and, 181
Aircraft systems, and airframe, 193, 195
Air traffic control case study, 129–151
architectural solution in, 135–149
requirements and qualities in, 132–135
Air traffic controllers, 132, 133, 134
Air traffic control system, 132, 150
ABC applied to, 132
availability requirements for architecture of, 155
application modules, 187–192
executive modules, 185–187
AIX (IBM), operating system, 144
Ada tasks mapped onto processes, 142
and SS2000, 373
Algorithms, voting, 102
“Allocated-to” relation, 38
Allocation structures, 36, 38–39
options in, 208–209
in UML, 227–229
Allowed-to-use structure, 60, 61, 62, 63
Amazon.com, 348–349
Analysis results, in architecture background, 209
Analyze architectural approaches
in ATAM evaluation phases, 282–284, 285
in Nightingale system evaluation phases, 297–299, 302
“And” states, 210
Annotations, interfaces as, 224
Anomaly detection, 118
“Anonymity of processor assignment,” and SS2000, 390
“Anticipate expected changes” tactic, 107, 138, 148, 442
AOLbyPhone, 454
AOL/Netscape, 347
Aperiodic operations, 187, 191
Aperiodic processing, and flight simulator, 183
AppleScript, CGI scripts in, 339, 340
Application constituent, of Structural Model architectural pattern, 185
Application Data Type Module, 57, 62
Application module layer, for libWWW, 336
Application programming interfaces (APIs), 457
and libWWW, 336
and Luther architecture, 441
and Ada packages, 142
as clients and servers, 141
and Luther architecture, 432, 433–434, 440–442
Application servers, for modifiability, performance, and scalability, 345
Application-specific business logic, and Luther architecture, 441
Architects, 69, 108, 233, 245, 285
and ABC for the Web, 347
and architectural approaches, 285
and architectural documentation, 202–203
architecture and background/experience of, 8
and architecture reconstruction, 232
and conceptual integrity, 96
design decisions by, 261
and EJB system design, 423
and evaluations, 267
and impact of components, 482
model problems used by, 463
and Nightingale system, 289
product line, 360
and recovery of “lost” architecture, 247
and relationship of tactics to architectural patterns, 123–124, 126
and scheduling policies, 115
and stakeholders, 7
and testing cost reduction, 118
and usability, 122
and viable product lines, 398
views produced by, 145
Architectural abstractions, as hypotheses, 245
Architectural approaches
example of analysis, 283
and Nightingale system, 293–294, 297–299, 302
Architectural changes, 31
Architectural decisions, 231
architecture reconstruction and redetermination of, 246
benefits of, 307
costs with, 309
quality requirements mapped to, 274
Architectural drivers, 154, 157, 166, 277
choosing in ADD, 158
determining, 155
Architectural evaluations, ATAM and limited time for, 288
Architectural integrity, 96
Architectural metrics, 265
Architectural mismatch, 33, 43, 456–462, 476
Architectural patterns, 24–25, 26, 33, 42, 62, 99, 100, 126, 127, 232, 462
and off-the-shelf components, 456
and query languages, 237
and reconstruction, 242
and styles, 124–125
tactics related to, 123–124
use of, 279
Architectural quality, and system quality, 92
Architectural reconstruction, using results of, 232
Architectural representation, 42
Architectural solution for the Web, 334–340
common gateway interface, 339–340
early client-server architecture using libWWW, 337–339
and libWWW, 334–337
Architectural solution, in air traffic control case study, 135–149
adaptation data, 147–148
client-server view, 141–142
code templates, 148–149
code view, 142
fault tolerance view, 144–147
ISSS physical view, 135–138
layered view, 142–144
module decomposition view, 138
process view, 138–141
relating views to each other in, 147
Architectural solution in flight simulation case study, 182–196
decomposing groups into systems, 195–196
functionality allocated to controller children, 192–193
group decomposition, 193–195
modules of air vehicle model, 185–192
skeletal system, 192
Structural Modeling architectural pattern, 185
time treatment in flight simulator, 183–184
Architectural solutions
achievement of application needs and, 150
for J2EE and EJB, 406–419
and Luther architecture, 434–451
Architectural strategies, 99, 100
and benefit and normalization determination, 313
ROI value for, 313
and scenarios addressed in NASA ECS Project, 320–323
side effects, 312–313
Architectural structures
for A-7E avionics system, 47, 48
choosing, 41–42
and organizational structure, 168, 169
relationships between, 40–41
Architectural tradeoffs, and ATAM, 307
and architecture presentation, 278
and ATAM, 308
in Dali, 242
Architecture, 3, 25, 31, 43–45, 67, 71, 217, 218, 478 See also Software architecture
analyzing/evaluating, 14
and architects’ background/experience, 8
for A-7E avionics system, 54–65
behavior of elements in, 22
communicating about, 13–14
components, connectors, and, 24
components and impact on, 455–456
constraints on implementation, 29
designing, 155–166, 171, 479–481
developing organization and, 8
ensuring conformance to, 14
feedback loops and, 9–12
functionality and, 72
future of, 477–484
goals/requirements for, 266
“good,” 14–16
hierarchy of test interfaces in, 120
as high-level design, 23
implementing based on, 14
layered, 62
in life cycle, 153–155, 481–482
Mk2, 376
moving from, to code, 482
.NET, 402
Nightingale system and presentation of, 292–293
organizational structure dictated by, 29–30
as overall structure of system, 23
pivotal role of, 19
process-centered definitions of, 24
for product lines, 360–363
purposes of, 205
qualities in, 96–97
and quality attributes, 73–74, 453
rationale for, 218
relationship between organization and, 167
representations, 35
and software product lines, 363
sources of, 6–12
stakeholders and communication needs served by, 27–29, 204
stakeholders and influence on, 6–8
technical environment and influence on, 9
Architecture activities, 12–14
Architecture analysis, 261–269
costs and benefits, 263–265
planned or unplanned, 266
preconditions, 266–267
results, 268
techniques, 265–266
when, 262
why, 261–262
Architecture background, in documenting a view, 209
Architecture Business Cycle, 6, 11, 12, 69, 71, 261, 271
and air traffic control system, 132
and Celsius Tech, 370–371, 383, 399
backward flow of, 452
current state of, 346–347
flight simulators and relationship to, 176–177
and future of software architecture, 479
relationship of, to A-7E avionics system, 48–49
relationship of, to Inmedius and Luther architectures, 429–432
software processes and, 12–14
and story of Vasa, 4–5
and Sun and J2EE/EJB, 402, 403
and Web-based architectures, 340–342
Architecture documentation
in ATAM-based evaluation, 274
importance of, 22
and Nightingale system, 290
stakeholders and helpfulness of, 206
and structures, 41
uses of, 203–203
Architecture presentation, example, 278
Architecture reconstruction, 22, 231, 232
complexity with, 258
and redetermination of architectural decisions, 246
Architecture stakeholders, and ATAM, 272
Architecture Tradeoff Analysis Method, 14, 31, 203, 262, 265, 268, 271–305, 307, 465, 466
and evaluation team roles, 273–274
historical roots of, 305
initial draft on training course on, 304
in Nightingale system, 288–303
outputs with, 274–275
participants with, 272
reviews based on, 263
stakeholders and evaluations with, 267
steps and outputs, correlated, 287
Architecture Tradeoff Analysis Method evaluation phases steps, 276–285
analyze the architectural approaches (step 6), 282–284
analyze the architectural approaches (step 8), 285
brainstorm and prioritize scenarios (step 7), 284–285
generate quality attribute utility tree (step 5), 279–282
identify architectural approaches (step 4), 279
present architecture (step 3), 277–279
present results (step 9), 285
present the ATAM (step 1), 277
present the business drivers (step 2), 277
Architecture Tradeoff Analysis Method phases, 275–288
evaluation (phase 1), 276, 277–284
evaluation (phase 2), 276, 284–287
follow-up (phase 3), 276
partnership and preparation (phase 0), 275
Arcs, decomposition in UML with, 221
ArithmeticOp class, 239
ARM, 258
Artifact
of modifiability general scenarios, 82
of performance general scenarios, 84
of security general scenarios, 87
of testability general scenarios, 89
of usability general scenarios, 91
Artifact stimulated, in quality attribute scenarios, 75
“As-built” architecture, 231, 232, 481
“As-designed” architecture, 232, 252, 481
ASEILM example See Automated SEI Licensee Management system
A-7C aircraft, 49
A-7E architecture, 54–65
allowed-to-use specification, 61
modifiability and performance requirements for, 154
Physical Models Module of, 168
A-7E avionics system case study, 47–68
A-7E project description, 52–53
architectural structures, 47, 48
process structure, 63–65
relationship to ABC, 48–49
requirements and qualities, 49–52
uses structure, 61–63
A-7E module decomposition structure, 56–59, 73
quality goals achieved by, 56
A-7E module decomposition view, textual primary presentation in, 208
coarse-grained data-flow view for, 67
design of, 461
primary sensors read/managed by, 50
As-implemented architectures, as-designed architectures related to, 252
Aspect-oriented programming, 120
Aspect-oriented software development, 481
Assemblies of compatible components, 453
Assembling elements, 33
Assembly language, 477
Asset base, and CelsiusTech product line, 396
Asset re-use, 8
Association classes, connector types as, 226
Association role, UML, 225
Associations
connector types as, 225
and nodes, 228
AST See Abstract syntax tree
Asymmetric encryption, 117
AT&T, architectural evaluations at, 263, 269
ATAM See Architecture Tradeoff Analysis Method
ATC See Air traffic control
Atomic Broadcast Manager, 144
Attachment relation, 38
AttachOp class, 239
Attacker identification, 118
detecting, 118
recovering from, 118
resisting, 116–117
Attribute-Driven Design method, 155–166, 171, 203
Attribute requirements, and product line architecture, 362
Auditing, 86
Authorization, 117
Authorship, in documenting a view, 209
Automated SEI Licensee Management system, 466, 467
example, 466–476
Automatic build checking, 211
Automatic detection, 434
Automatic repair strategies, 79
Automotive industry, and architecture reconstruction, 232
and air traffic control system, 132–133
and component repair, 457
databases for, 345
and e-commerce, 341
load balancing for, 344
and Nightingale system, 292
of resources, 112
Simplex architecture for, 127
and SS2000 product line, 388
and system quality attributes, 74
and tactics, 100
and Web-based applications, 404
Availability scenarios, 76, 77, 80, 81
Availability tactics, 101–105, 125
fault detection, 102
fault prevention, 104–105
fault recovery, 102–104
and process view, 141
Back-office systems, front-line workers integrated with, 427, 432, 452
Backup Communications Network, 137, 138
Balanced specificity, with J2EE and EJB, 406
Base System, 382
Base System 2000, 392
Basic SS2000 Configuration Project, at CelsiusTech, 385, 387
BCN See Backup Communications Network
Bean-managed persistence entity beans, 410
Beans, 443
documenting, 209–211
of elements, 22
Behavior-hiding module, in A-7E module decomposition structure, 56
Benefit, of architectural strategy, 313
Best-case quality attribute level, in utility-response curve, 311–312
Best-case response, for NASA ECS Project scenario, 317
Billing, 345
Biometric identifications, 116
“Bird’s-eye” program overview capability, 258
Blackboard architectural pattern, 57
“Black box” elements, 3
Blocked time, 112–113
Boolean algebra, 213
“Borgs,” 428
Bottom-up adoption, of product line, 364
Bottom-up approach, for architecture reconstruction, 258
Bound execution times tactic, 114
Bound queue sizes tactic, 114
Box-and-line diagrams, 230
Box-and-line sketches, 24
Brainstorm and prioritize scenarios, 284–285, 300–302
Branching, and work-flow component, 445
Branching statements, 477
“Brick-and-mortar” bookstores, 348
Bridge pattern, 109
Bridges, 458–459
and Logical Communications Network, 137
Broadly scoped product lines, 358
Broker bean, 414, 415, 417, 418
Broker EJB, 413
Broker pattern, 110
Broker remote interface, 414
Browser-based clients
intended use for, 439
and Luther architecture, 437, 439
BSpline element, 255
B-2 Weapons System Trainer, 177
Buffers, 112
Buhr-style use case maps, 248
of EJB-based systems, 416
Build first, buy-later strategy, 433
Built-in monitors, and internal monitoring, 120
Business case, 12–13
Business component tier, in J2EE multi-tier model, 408
Business constraints, and Nightingale system, 291
Business context, for CelsiusTech, 378–380
Business delegate pattern, 441, 452
Business drivers
ATAM and presentation of, 277
Nightingale system and presentation of, 291–292
and risk themes, 302
and SS2000 product line, 377
Business goals
identifying, 155
and quality requirements, 99
and risk themes, 275
Business influences, and software architecture, 5, 6
Business logic, and component packaging, 443
Business requirements, 154
and Nightingale system, 291
and Web architecture, 340
Business rules, 345
Business-to-business Web sites, 340
Business-to-consumer Web sites, 340
Business units, and product development, 366
Buttons, 435
C&C See Component-and-connector views
Calculate total benefit from architectural strategy, 316, 322
Callback methods, 413
Call graph, 235
Call-out functions, 336
calls relationship, between functions, 60, 235, 240
Cancel, 122
Candidate view lists, producing, 206–207
Capability, and CelsiusTech product line, 396
Capability partitioning, and Luther architecture, 442
Captured rationales, and architectural evaluations, 264
Case studies
air traffic control and designing for high availability, 129–151
A-7E avionics system, 47–68
CelsiusTech AB, 369–399
flight simulation, 175–199
Luther architecture, 427–452
NASA ECS Project, 317–324
Nightingale System, 288–303
the World Wide Web, 327–349
CBAM See Cost Benefit Analysis Method
CDL See Chart description language
CelsiusTech, 351, 355, 431, 432
corporate evolution of, 370, 371, 377
CelsiusTech AB case study, 369–399
architectural solution, 390–398
business context analysis, 378–380
economics of product lines results, 373–374
mastering abstraction, 375–376
motivations at CelsiusTech, 376–377
organizational structure at CelsiusTech, 380–387
product schedules, 373
relationship to ABC, 370–374
requirements and qualities, 387–388
CERN See European Laboratory for Particle Physics
cfx program, 258
CGI See Common gateway interface
Champions, and product line adoption, 364
Change
architecture and management of, 31
cost of, 80
timing of, 81
Change histories, in documenting a view, 209
Chart description language, 470
ChartWorks (Visual Mining), 468, 469, 470, 472
C header (.h) files, and signature specification, 212
Checklists, 265
Checkpointing, and database models, 237
“Checkpoint” tactic, 104
Checksums, 117
Child modules, 157, 161, 163–164
Choose architectural strategies based on ROI, 316, 323–324
Choose deadline-driven scheduling policy, 159
“Chunking” design work, 156
Circle Module, 222
Class box, in UML, 219
Class containment, code segments for, 254
class_contains-method relation, static and dynamic information about, 240
Classes
connector types as, 226
interfaces as, 225
structure of, 38
in UCMEdit model, 250
UML, 223
Class symbol, in UML, 219
Clients, 334
applications as, 141
and EJB, 414
testing by, 89
Client-server pattern, 25
Client-server structure, 38, 40
Client-server system, 170
Client-server view, 141–142, 147, 207
Client tier, in J2EE multi-tier model, 407
Clustering services, 422
Coarse-grained EJBs, and J2EE, 450
Cockpit display devices, in A-7E aircraft, 50
Code, 234
moving from architecture to, 482
repair, 458
servlet, 408
structure, 47
Code coverage analysis tools, 236
Code instrumentation, 236
Code patterns, 125
Coders, and architecture, 27
for class/file containment, 254
developing, 246
Code templates, 135, 141, 148–149, 150
Cognitive psychologists, and Luther architecture user interface, 436, 437
Cohesion, and teams, 168
Cohesion metrics, 106
Collaboration diagrams, in UML, 227
Collate scenarios step, 316, 317
COM, 236
COM+, 425
Command, control, and communication (C3) systems, 370, 394
Command-and-control systems, CelsiusTech as supplier of, 370
Commercial components, growth in capability/availability of, 482
Commercial off-the-shelf (COTS) products, 33, 95, 398 See also Off-the-shelf components
and Nightingale system, 289, 290, 292, 298, 303
Commercial world, success and failure in, 65–66
Common gateway interface, 338, 339–340
Common object manager, 391
Common Object Request Broker Architecture (CORBA), 236, 292, 345, 401–402, 403, 425, 458
and EJB architecture interoperation with, 405
Common services, abstracting, 106, 107
Common System Services, in ISSS, 138
Communication
and architecture, 13–14
restricting paths of, 109
skills, 9
Communication virtual machine module, in example, 165, 166
Compiler generators, 12
Compile-time artifacts, 236
Compile-time switches, 81
Completeness, 96
Complexity, of flight simulators, 180, 181
Component-and-connector structure, 36, 38, 40, 41
Component-and-connector views, 66, 139, 162, 206, 207, 212
and architecture presentation, 278
options in, 208
in UML, 222–227
Component-based systems, 342
and architectural mismatch, 456–457
design of, 462
Component design
at Inmedius, 442
and J2EE, 450
Component developers, and Luther architecture, 444
Component Development Group, at Inmedius, 431
“Component glue,” 457
Component/interface repair, 457
Component projects, and SS2000, 383
Component qualification, 460
Component replacement, 111
“Component replacement” tactic, and client-server view, 142
and allocation views in UML, 228
core, 442
and design process, 453
future impact of, 482–483
impact of on architecture, 455–456
life-cycle services, 401
for Luther architecture, 442–444
and object containment, 227
types, in patterns and styles, 125
in UML, 223–224
Composing elements, 33
Composition of systems, and SS2000, 387
Composition relation, in UML, 221
Computation, dependency on, 112–113
Computational efficiency, increasing, 113
Computational overhead, reducing, 113
Compute method, 239
Computer Software Components, 37
Computer Software Configuration Items, 37
.com Web sites, growth of, 332
Conceptual integrity, 13, 16, 44, 74, 96
Conceptual view, 42
enhancing, 124
introducing, 114
Java servlet ensemble and management of, 475
structure, 38
and work-flow model, 446
Confidence, increasing, 91
Configuration control data, in documenting a view, 209
Configuration control system, 167
“Configuration files” tactic, 111, 147
Configuration management, and software product lines, 363
Configuration management systems, software architecture within, 481–482
Configuration parameters, 213
configure operation, 187, 189, 190, 191
Configure state, in flight simulator, 179
Confirm results with intuition step, for CBAM, 316
constituent_event operation, 187
Construction problems, and electronic flight simulators, 176
Contained objects, systems as, 227
Container-managed persistence, 410, 415, 422
Containers
J2EE-compliant, 443–444
Container services, 413
contains class, 235
Contention for resources, 112
Content on the Web, labeling of, 333
Content providers, and ABC for the Web, 346, 347
Context
of availability scenarios, 80
of modifiability general scenarios, 82
of performance general scenarios, 85
of quality attribute scenarios, 75
of security general scenarios, 87
of testability general scenarios, 89
of usability general scenarios, 92
Control, sequence of, 108
Control frequency of sampling tactic, 113
Controller children, 192–193, 198
Controller children module, and air vehicle structural model, 187, 190–192
Control mechanisms, 41
Controls (or widgets), 97
Conversational with respect to calling process, 409, 410
COOB See Common object manager
Cooperating sequential processes, 52
Coordinating processes structure, 38
CORBA See Common Object Request Broker Architecture
Core assets, and CelsiusTech, 374
Core layer, for libWWW, 335, 336
Correctness, 96
Cost and benefit, as business quality goal, 95
Cost Benefit Analysis Method, 14, 265, 268, 304, 308–325, 479
basis for, 309–313
decision-making context for, 308–309
implementing, 314
and NASA ECS Project, 317–324
process flow diagram for, 315
and product line evaluations, 363
results of exercise with, 324
Cost-effectiveness, with evaluations, 267
Cost efficiency, and Web-enabled enterprise systems, 423
Cost estimates, and software architecture, 32
Cost modeling, 325
and buildability, 97
importance of, 314
Costs
with architectural decisions, 309
and architectural evaluations, 263, 265
of change and modifiability, 80
development, 95
and flight simulators, 181, 196
of testing, 118
COTS products See Commercial off-the-shelf products
Coupling, 106
metrics, 127
of scenarios and tactics, 480
Crew simulator training, 179
“Cross-cutting” requirements, 481
Cross-side scripting, 474
Cross-view documentation, 215, 216
Cross-view rationale, 218
Cryptography, 349
CSCI See Computer Software Configuration Item
CSCs See Computer Software Components
C-17 Aircrew Training System, 177
C Shell, CGI scripts written in, 340
Currencies, and Nightingale system, 291
Current-case response, for NASA ECS Project scenario, 317
Current utility level, for scenario, 312
Custom clients, in J2EE, 439
Custom component, and Miva Script applications, 467
Customer projects, and SS2000, 383
Customer relations management, 345
Customer requirements, 11
Customers
and ABC for the Web, 347
and architecture, 27
and evaluations, 267
Custom user interfaces, advantages with custom Web-based clients over, 440
Custom Web-based clients, and Luther architecture, 437, 439–440
Cutovers, 146
C/X-band antenna, on Göteborg class, 371
“Cyberporn” industry, 333
Cyclic executive schedule, 115
code segments created in, 248
and visualization and interaction, 241
workbench, 238
Dashed-arrow dependencies, and allocation views in UML, 228
Data, 109
semantics and sequence of, 108
syntax of, 107
Data access, designer’s decisions, J2EE, and implementation of, 450
Data Access Working Group, of ECS Project, 317, 321
Data analysis, and the Web, 331
Data Banker Module, 57–58
Database construction
and database tables, 239
guidelines for, 239
and reconstruction, 233, 237–239, 248–249
Database management, 478
Database management systems, 453
Database models, choosing, 237
Databases, for performance, scalability, and availability, 345
Data confidentiality, maintaining, 117
Data controllers, 133–134
Data exchange problems, 162
Data extraction tools, 233
Data-flow analysis, 477
Data-flow view, 66
Data integrity problems, 162
Data loss, 85
Data-producing conventions, and COOB, 391
Data publishing, and the Web, 331
Data sources, separation and abstraction of, 435
Data tags, and ISSS physical view, 136
Data type definitions, in interface documentation, 213
Data types, and avionics applications, 57
DAWG See Data Access Working Group
Deadline monotonic, and fixed-priority scheduling, 115
Deadlines in processing, 84
avoidance of, 64
Dead man timer, 102
DBMS See Database management systems
Debugging, and cost with flight simulator, 181
Decision Support and Report Generation Manager, 292, 298
Declarative transaction management, 450, 451
Decomposition structure, 36–37, 40
for A-7E avionics system, 54–59
Decomposition view, 147, 206–207
Defect elimination, and re-use, 356
“Defer binding time” tactic, 110–111, 159, 417
Define the starting evaluation criteria (step 2), in model problem process, 469
Demand process, 63
Demilitarized zone, 117
Denial-of-service attacks, 86, 87
Dependency, UML notation for, 222
Dependency types, 107–108
Deployment, and quality attributes, 73
for Account entity bean, 419
and EJBs, 417
and support for Sun’s J2EE quality attribute requirements, 418
Deployment structure, 38–39
Deployment time, 110
Deployment type diagram, 228
with ADD, 163
and architecture presentation, 278
of Luther applications, 436
in UML, 229
UI as a C&C view mapped onto, 439
Design
artifacts, 236
attribute-driven, 155–156
beginning, 154–155
of flight simulator software, 181
improving, 480–481
and interface documentation, 214
judging, 69
and quality attributes, 73
questions, 464
rationale for, 214
reviews, 119
as search, 462–465
work-flow component, 445–447
Design alternatives, restricting vocabulary of, 33
Design decisions, 261
quality attribute requirements related to, 305
and software architecture, 26, 29–32
Designers, and evaluations, 267
and ARM, 258
Business Delegate, 441
EJB, 422
Design teams, model problems used by, 463
Design-time tactics, 123
Desired-case response, for NASA ECS Project scenario, 317
Desired utility level, for scenario, 312
Detached operations, and work-flow model definition, 449
Determine utility of “expected” quality attribute response levels step
for CBAM, 316
in NASA ECS Project, 321–322
Develop architectural strategies for scenarios step, 316, 320
Developers, 13
and architectural integrity, 96
and ATAM, 272
and usability, 123
Developing organizations, 8, 10
Development costs, 95
Development department model, and product development, 366
Development Group, at CelsiusTech, 384, 385
Development view, 41
Device Interface Module, 58, 62, 62
Device Interface procedure, 64
Device types, and Luther architecture, 432, 433
Diagnosis module, in example, 165, 166
Dials, 435
Digital artifacts, and work-flow component, 445
Digital certificates, 116
dir_contains_file, 235
Directory structure, code segments based on, 246
Display Management, in ISSS, 138
Distributed computing
growth of, 402
and Luther architecture, 432, 434
Distributed object-oriented systems, 401
Distributed objects, 8
Distributed object technology, and enterprise information systems, 403
Distributed operations, and work-flow model definition, 449–450
Distributed systems, and deployment structure, 39
Distributed transactions, and EJB systems, 423
Diversity, 103
DMZ See Demilitarized zone
Documentation, 70, 211–214, 354
of architectures, 14
in ATAM-based evaluations, 274, 275
of behavior, 209–211
of decomposition structure, 55
of interfaces of modules in ADD, 163–164
as introduction to software architecture, 203
and Nightingale system, 290, 303
for product line architecture, 361
for software interfaces, 58
stakeholder access and organization of, 216–218
within tool environment, 481
Documenting software architectures, 201–230
basic principle of, 205
choosing relevant views, 205–207
documentation across views, 215–218
and UML, 218–229
Documenting views, 204–205, 207–214
architecture background, 209
context diagram, 208
element catalog, 208
primary presentation, 207–208
variability guide, 208–209
Documents, 478
Document Type Definition (DTD), 417
Domain engineering units, and product development, 366, 367
Domain experts, and Luther architecture user interface, 436, 437
Domain model, 53
Domain name services, 117, 118
Domain-specific architectures, availability of, 482
Domain-specific components, 442
Downdrafts, 179
Drift angle, 50
DSRGM See Decision Support and Report Generation Manager
Dual redundancy, 103
Dynamic extraction, 241
Dynamic information, 235, 236, 237, 239, 240
Dynamic link libraries (DLLs), 361
Dynamic priority scheduling, 115
Earliest deadline first, and dynamic priority scheduling, 115
Earth Core System (ECS), 317
Earth Observing System Data Information System (EOSDIS), 317
e-commerce architecture, 332, 341
and ABC, 340–342
applications, and J2EE framework, 403
quality goals achieved by, 346
e-commerce systems
deployment view of, 342
and entity beans, 422
and performance, 349
Economic models, of software, 307, 308
Efficiency, and usability, 90
EJB client code, simplified example of, 415
EJBContext interface, 413
EJBHome, 413
EJBObject interface, remote interfaces and extension of, 413
EJBs See Enterprise JavaBeans
Electronic flight simulators, 176
Electronic warfare systems, 370
Element catalog, in documenting a view, 208
Element list, 217
clustering of, into Path and Component, 256
extraction of, from UCMEdit, 248
graphical representation and subset of, 243
and information extraction, 234, 235
raw set of, 249
requirements, in interface documentation, 214
and re-use, 355
Ellipsis (...), in UML, 222
e-mail, 117
Emergency mode, 85
Encapsulation, 66
End demand process, 64
Ending evaluation criteria, 465
End periodic process, 63
End users
and Luther architecture, 429–430
Engine control systems, 83
Enhanced Direct Access Radar Channel (EDARC), 137
En route centers, 130, 131, 133, 147
En route display consoles, and ISSS physical view, 136
Ensembles
model-process work flow and definition of, 468
of off-the-shelf components, 462, 463
Enterprise information systems tier, in J2EE multi-tier model, 408
Enterprise JavaBeans, 345, 346, 351, 352, 401, 425, 443, 482
aims of, 404–405
architectural approach for, 408–410
and dependence on JVM performance, 424
deployment descriptors, 417
and distributed transactions, 423
and J2EE containers, 443–444
package diagram, 413
programming, 413–416
resource pooling with, 424
and system deployment decisions, 419–420
and work-flow component packaging, 447, 448, 449
Enterprise software systems, requirements for, 404
using or not using?, 422
work-flow component packaged as, 447
Entity-relation diagrams, 477
Environment
and airframe, 193
in ATAM scenarios, 280
in CBAM scenarios, 310
and flight simulator, 178, 182, 183
Errors, 44
minimizing impact of, 91
Nightingale system and recovery of, 303
ESI See External System Interface
e-stores, 348–349
European Laboratory for Particle Physics, 328, 329, 332, 334, 346, 347
Evaluate the model solution (step 6), in model problem process, 471–472
Evaluation criteria, 469, 470–471
Evaluation leader
in Nightingale system, 289
Evaluation of model solution, 465
Evaluation phases
and ATAM, 276
in Nightingale system, 290–303
Evaluations, importance of, 262
Evaluation teams
architecture approaches analysis and, 285
competent, 267
and Nightingale system, 289, 290
and risk theme identification, 286
and scenario brainstorming, 284
Evaluators
and ATAM, 275
and utility tree, 282
Event-based time management, in flight simulator, 184
Event handler
in air vehicle model executive, 185, 187
for flight simulator, 192
Event rate, managing, 113
Event streams, and resource demand, 113
Event systems, subpatterns in, 125
Evolutionary Delivery Development Process, 63
Evolutionary Delivery Life Cycle, 154, 171, 173
Evolutionary prototyping, and architecture, 31–32
Examples See also Case studies
garage door opener, 156–166
reconstruction, 248–257
Exception definitions, in interface documentation, 213
Exception handler, 102
Exceptions, 44
“Excludes” relation, 65
Execution times, bounding, 114
Execution traces, 234
Execution view, 42
Executive constituent, of Structural Modeling architectural pattern, 185
Executive states, of flight simulators, 189
Exemplar systems, and re-use, 356
Existence of A dependency type, 108, 110
Expectations, evaluations and management of, 267
Expected changes, anticipating, 107
Explicit invocation, 125
Exposure, limiting, 117
Extended Computer Module, 56, 57, 62, 63
Extensibility, and the Web, 329
Extension points, 361
External sources, and product line evolution, 365
External System Interface (ESI), 137
FAA See Federal Aviation Administration
Facade pattern, 109
Failures, 101
differing standards for, 65–66
faults versus, 79
within SAS, 140
Fast attack craft (FAC), 371
Fat clients, 440
Fault detection, and availability, 102
Fault prevention, and availability, 104–105
Fault recovery
and availability, 102–104
and ISSS, 146
Faults, 101
discovering, 119
failures versus, 79
Fault tolerance, 139
ISSS C&C hierarchy for, 145
mechanisms, 150
view, 144–147
Fault-tolerant hierarchy, 146
Fault-tolerant ISSS applications, code structure template for, 149
Federal Aviation Administration, 70, 129, 130, 132
Fidelity, range of and flight simulators, 179
File containment, code segments for, 254
Files, 234
in UCMEdit model, 250
File Transfer Protocol, 336
Filter architectural type, 227
Filter Behavior Module, 58
Filter class, 223
Filtering, 118
Filters, and bridges, 459
Financial benefits, from architectural inspections, 263
findByPrimaryKey method, 415
finder method, 415
Finite-state-machine models, 13
Fire control systems, 370, 372
Firewalls, 87, 117, 336, 343–344, 471, 472
First-in/First-out (FIFO), 115
First-order effects, and flight simulator, 193
“Fitness for use” criteria, and component qualification, 460
Fitness of purpose, evaluating software product line for, 362
Fixed-priority scheduling, 115
Flight controls system, in air vehicle model, 195
Flight data, and ISSS physical view, 136
Flight simulation case study, 175–199
architectural solution, 182–196
relationship to ABC, 176–177
requirements and qualities, 177–181
Flight simulators, 70
and ABC, 176–177
design challenges with, 175
execution states with, 179–181, 189
geographically distributed areas, 180
properties of, 179–181
purpose of, 177
reference model for, 182
roles in, 177–178
Flight simulator software, 155
Follow-up (phase 3)
and ATAM, 276
in Nightingale system, 303
Formal specification languages, 13
Fortran, CGI scripts in, 339
Fortran libraries, 458
“Four Plus One” approach, 41
Frame rates
for flight simulators, 179–180
and periodic time management, 183
Front-line workers, computer support for, 427, 429
FTP See File Transfer Protocol
Fuel system, in air vehicle model, 196
Functional group (FG), 139, 140
Functionality, 72
allocating in example, 160, 161
and architecture, 72
for controller children, 192–193
and market share, 95
Functional requirements, for child modules in ADD, 164–165
Functional subsets, rapid identification of, 60
Function calls, disambiguating, 241
function_calls_function, 239
Function Driver modules, 58, 62, 65, 66
Function pointers, 236
Function type, 244
Fused views, items, 240
Future, in Active Object design pattern, 124
Garage door opener example, 156–166, 480
Garbage collection, and heap size, 424
Gateways, 336
-gcverbose compiler option, 424
Gen++, 235
Generalization, in UML, 221–222
Generalized capability components, 442
“Generalize the module” tactic, 107, 147
and code templates, 149
and module decomposition view, 138
General quality scenarios, generation of, 78
availability, 76
communicating concepts and use of, 93–94
Generate quality attribute utility tree
in ATAM evaluation phase 1, 279–282
in Nightingale system evaluation phase 1, 294–295, 297
Generators for systems, 478
Generic utilities, for libWWW, 335, 336
get method, 422
get_outbound_msg operation, 187
Global Availability Management, 144
Global variables, in UCMEdit model, 250
GNU make utility, 248
Good design, promotion of, 265
Gopher, 336
Göteborg class (Swedish), 371, 372
goto statement, 477
gprof, 236
Graphical images, 478
Graphical notations, in primary presentation, 208
Graphical user interface (GUI) facilities, and ISSS, 135
Graphic artists, and Luther architecture user interface, 436, 437
Graphics element, 252
grok fact manipulator tool, 258
Ground control, 130
Group decomposition, in air vehicle model, 193–195
Groups, 195–196
GUI-builder tools, 405
Halt state, in flight simulator, 179
Handheld, pen-based tablets, 433
Hard real time, 129
Hardware-hiding module, in A-7E module decomposition structure, 56
Hash results, 117
has_subclass relation, 240
Header files, 234
Head-mounted displays, 428, 429, 430
Health monitoring, and availability, 101
Heap, 424
Helicopter guidance systems, architecture reconstruction used for, 232
Heterogeneity, and the Web, 330
Hierarchical domain engineering units, and product development, 367
High-bandwidth communication, 167, 168
High-level design, architecture as, 23
Highly distributed software applications, 129
High-order effects, and flight simulator, 193
hold_parameter, 190
home class, 417
Home information system, and example, 157, 166
“Horizontal” scaling (or scaling out), 344, 422, 425
Host Computer System (HCS), 134, 135–136
Hot restart, 103
Hot spots, 343
Human-computer interaction research, 122
Human-computer interface (HCI), 150, 382, 383, 388, 391, 394
Hypertext, 349
HyperText Markup Language (HTML), 158, 329
Hypertext systems, 329
criteria/features with, 331
HyperText Transfer Protocol (HTTP), 334, 336, 343, 470
and browser-based interfaces, 439
and custom Web-based clients, 440
and load balancers, 344
and Luther architecture, 435
HyperText Transfer Protocol Secure (HTTPS), 332, 336, 343, 344, 470
architectural abstractions as, 245
in identify a design question, 469
IDE See Integrated development environment
Identify a design question (step 1), in model problem process, 468–469
Identify architectural approaches, in ATAM evaluation phase 1, 279
Identify ending evaluation critiera (step 5), in model problem process, 470–471
Identify implementation constraints (step 3), in model problem process, 469
Identity of an interface of A, 108, 110
Idioms, 125
IDL See Interface Definition Language
IEEE See Institute of Electrical and Electronics Engineers
IEEE 802.11b, 435
IIOP (Internet Inter-ORB Protocol), 440
IIS See Internet Information Server
Imagix, 235
Immediate business influence, and architectures, 8
Implementation
architecture and defining constraints on, 29
architecture versus, 43
changes made to, 81
constraints, 465
interface separated from, 120
and quality attributes, 73
structure, 39
import operation, 186, 189, 190
includes relationship, 235
“Increase available resources” tactic, 114
“Increase computational efficiency” tactic, 113, 480
Index, 217
Industrial development projects, architectural views in, 43
Inertial measurement set (IMS), 50
Information extraction, 234–237
guidelines for, 237
typical extracted element and relations, 234, 235
Information hiding, 16, 42, 44, 45, 49, 66, 159, 168, 477
and Active Object design pattern, 124
and A-7E module decomposition, 54–56
and A-7E Project, 52
and packaging, 142
prevention of ripple effects and, 108–109
Infrastructure technology, and CelsiusTech, 379
“Inherits-from” relation, 38
initialize state, 190
Initial Sector Suite System, 130–131
availability requirement for, 132–133
C&C hierarchy for fault tolerance, 145
functions required of, 134–135
levels in fault-tolerant hierarchy, 146
physical view, 135–138
scale of, 134
software architecture layers, 143
software audit of architecture, 150–151
Inmedius, 352, 427, 428, 435, 443, 452
ABC as it pertains to, 429
and components, 436
device types and, 433
library of components at, 442
Luther architecture, and business approach at, 431–432
and Luther’s quality goal achievement, 450
solution development at, 430
and user interfaces, 432
work-flow design rationale at, 445
Input/output (I/0), managing for testing, 120
InputValue method, 239
Instance-level collaboration diagram, 227
Instances, as objects in UML, 223
Institute of Electrical and Electronics Engineers, 98
Instructors, simulation, 178
Instructor station, and flight simulators, 182, 183
Integrability, 100
designing for, 175
and flight simulators, 180, 196
Structural Modeling pattern and achievement of, 198
Integral factor of base rate, and flight simulator, 180
Integrated development environment, 345
Integration, 354
Integration mechanisms, 96
Integration testers, 89
Integrators, and ATAM, 272
Intelligent data fusion, and mediation, 459
Interaction mechanisms, in architectural patterns and styles, 125
Interchangeability, 33
Interconnection strength, 255
Inter-element communication, 30
Interface Definition Language, 212, 458
Interface documentation template, 212–214, 215
data type definitions, 213
element requirements, 214
exception definitions, 213
interface identity, 212
quality attribute characteristics of, 214
rationale and design issues, 214
resources provided, 212–213
usage guide, 214
variability provided by, 213–214
Interface mismatch, 457
avoidance techniques for, 461–462
detection techniques for, 460–461
repair techniques, 457–460
Interfaces, 230
adding, 109
as annotations, 224
of child modules, 157
of child modules, in example, 163–164
as classes, 225
as class/object attributes, 225
documenting, 211–214
and information hiding, 54
no explicit representation of, 224
separating from implementation, 120
to software element, 44–45
specification of, 211
stability, 109
subsystems, 194
translation of, 458
<<interface stereotype>>, in UML, 212
Intermediaries, using, 109–110
Intermediary (modifiability), and Active Object design pattern, 124
“Intermediary” tactic, 413
Internal monitoring tactic, 120
Internal sources, and product line evolution, 365
Internal Time Synchronization, 144
backbones, in United States, 333
growth of, 332
and security, 332
Internet-enabled business systems, requirements of, 403
Internet Information Server (Microsoft), 467, 468, 470, 475
Internet Protocol (IP), 332
Interoperability, 7, 94, 478, 480
and language-independent interfaces, 58
World Wide Web case study in, 327–349
Interprocess communication, for SS2000, 390
Inter-product commonality, and software product lines, 354
“Introduce an intermediary” tactic, and SS2000, 391
“Introduce concurrency” performance tactic, 124
“Introduce concurrency” tactic, 114, 345
Intrusion detection systems, 118
Inventory, 345
Inverse mappings
and extracted information, 244
and reconstruction, 233
IP addresses, 343
“is-an-instance-of” relation, 38
and module class view, 219
“is-a-submodule-of” relation, 36, 54
“is-part-of” relation, 208, 219
ISSS See Initial Sector Suite System
is_subclass_of class, 235
IT architecture, 478
Iterative prototyping, 9
Java applets, 343
Java Database Connectivity (JDBC), 435
Java Naming and Directory Interface, 413
Java programming language, 346, 401, 402, 404, 425
JavaScript, 439
JavaServer Pages (JSP), 407, 437, 473
Java servlet ensemble
layers of custom component, 474
Java 2 Enterprise Edition (Sun Microsystems), 351, 352, 401, 407, 452, 482
and aims of EJBs, 404–405
browser-based clients and, 437
business needs and creation of, 425
and component packaging, 443
deployment view of multi-tier architecture for, 406
EJB support for quality attribute requirements of, 411–412
and Luther architecture, 428, 431, 434–435, 450–451
major platform features, 406
Sun’s quality attribute requirements for, 405
and system deployment decisions, 419–420
and transaction and security services, 408
and the Web, 403–405
Java Virtual Machine (JVM), 402, 408, 424, 443, 448
Jini, 236
JNDI See Java Naming and Directory Interface
J2EE See Java 2 Enterprise Edition
“Keeping interfaces small, simple, and stable” tactic, and integrability, 175
Kinetics, and airframe, 193
Kinetics group, systems in, 195–196
Knowledge and insight, reconstruction process guided by, 258
LAN See Local area network
Landing gear system, in air vehicle model, 195
Language-independent interfaces, 58
Language requirements, and Nightingale system, 291
and contention for resource, 112
Layered architectures, 62
Layered patterns, 279
Layered view, 41, 142, 144, 147, 205, 207
and architecture presentation, 278
for SS2000, 392
LCN See Logical Communications Network
LCN interface units (LIU-H), 137
Learning system features, 90
“Least effort” extraction, 237
“Leftover” functions, in UCMEdit model, 250
Legacy systems, 96, 232, 257, 341
Lexicon analyzers, for information extraction, 235, 236
lex/yacc, 232
libWWW, 329, 330, 334–336, 349
content producers/consumers interacting through clients/servers, 334
deployment view of Web client server, 338
early client-server architecture use of, 337–339
layered view of, 335
lessons from, 336–337
Life cycle
architecture in, 153–155, 481–482
electronic flight simulators and problems with, 176
evolutionary delivery, 154
“Limit exposure” tactic, 144
“Limit possible options” tactic, 107
Links, 435
connector instances as, 225
and the Web, 331
Linux system, 258
List element, 255
List method, 239
and e-commerce sites, 344
and EJB container, 444
and Luther architecture, 434
Loading factors, and arrival patterns, 83
Load time, 110
Local area network, and SS2000, 371
Local Availability Manager, 144, 146
Local changes, 31
Local file systems, 336
“Localize changes” tactic, 159
“Localize modifications” tactic, 106–107
Local variable aggregation, and SQL and perl, 244
Location independence, and Luther architecture, 434
Location of A (runtime), 108, 110
Location sensing, 434
Locks, and work-flow model definitions, 447, 448, 449
Logging, 336
Logical Communications Network, 137, 138
Logical_Interaction architectural element, 244
query for identifying, 245
Logical threads, 38
Logical view, 41
Lollipop notation, in UML, 219, 225
Long-term business influences, and architectures, 8
Looping, and work-flow component, 445
Loose coupling, and teams, 168
“Lost” architecture, beginning process of recovering, 246–247
Low-bandwidth communication, between teams, 167
lsedit visualization tool, 258
LSME, 235
Luther applications, deployment view of, 436
Luther architecture, 427–452
ABC as it pertains to, 429–432
and browser-based clients, 437, 439
and business approach, 431–432
and business delegate pattern, 452
components for, 442–444
and custom Web-based client, 439–440
and organizational structure, 431
quality goals achieved by, 451
requirements/qualities met by, 432–434
and software developers’ experience, 431
strategy and quality goals achieved by, 451
and use of J2EE, 450–451
work-flow component and, 444–450
Luther system, 358
M&C See Monitor-and-Control consoles
mailcap, 338
main procedure, 241
Maintainability, and Nightingale system, 291
“Maintain an audit trail” tactic, 118
Maintainers
and architectural integrity, 96
and ATAM, 272
Maintain existing interfaces, prevention of ripple effects and, 109
“Maintain interface stability” tactic
and client-server view, 142
and code templates, 149
and module decomposition view, 138
“Maintain multiple copies” tactic, 114
“Maintain semantic coherence” tactic, 106–107
Maintenance phase, 14
Makefiles, 236
Manageability, and Web-based applications, 404
“Manage event rate” tactic, 113
Manage input/output tactics, 120
Management information, in documenting a view, 209
Many-to-many mappings, between structures, 40
Mapping between views, 217, 481
Marketing Plan, at CelsiusTech, 383, 384
Market segmentation, and product scope, 358
Marshalling, 112
Measuring techniques, 265–266
Mediator pattern, 109
Mediators, 459–460
Melard Sidearm, 433
Memory footprints, for various device classes, 433
Memory leaks, preventing, 105
Memory utilization, 7
MergeAndSort, in UML, 223, 224
Merging, and work-flow component, 445
Mesa, 250
Message passing, 139
Method request, in Active Object design pattern, 124
Microsoft, 347
COM+, 425
development practices at, 173
and Evolutionary Delivery Life Cycle, 171
.NET, 402
Passport, 332
Middleware Company, The, 425, 478
“Migrates-to” relation, 38
Migration, and COTS adoption, 476
mimerc, 338
Mining machinery, and architecture reconstruction, 232
Mismatch correction, 457
Miss rate, 85
Misuse detection, 118
MIT, Media Laboratory at, 428
Miva Empressa ensemble, 467, 468–472
Miva Script applications, 467
Mixed initiative, 122
Mixed-time systems, in flight simulator, 184
Mk2, 376
Mk2.5, 376, 377, 378, 380, 381
Mk3, 377
ML polymorphism, 462
Mobile devices, 439
and Luther architecture, 437
Modeling and analysis, and re-use, 355
Model problem process steps
define the starting evaluation criteria, 469
evaluate the model solution, 471–472
identify a design question, 468–469
identify ending evaluation criteria, 470–471
identify implementation constraints, 469
produce a model solution, 469–470
Model problems, work flow, 463, 464
Models
flight simulators and use of, 179
and system initiative tactics, 122
evaluating, 471–472
for Java servlet ensemble, 472
producing, 469–470
Model-View-Controller pattern, 109, 123, 127
Modifiability, 7, 16, 25, 30, 69, 73, 80–81, 127, 442
application servers for, 345
and avoidance of interface mismatch, 461
and common services, 106
and component repair, 457
and e-commerce, 341
and flight simulators, 196
performance versus, 159
and software architecture, 201
and SS2000 product line, 388
Structural Modeling pattern and achievement of, 198
and system quality attributes, 74
Web browsers for, 342–343
Modifiability scenarios, 76–77, 82, 83
Modifiability tactics, 105–111, 125, 480
and client-server view, 142
and code templates, 148
defer binding time, 110–111
design-time tactics related to, 121
localize modifications, 106–107
and module decomposition view, 138
prevention of ripple effects, 107–110
Modification, and flight simulators, 180, 181
MODN See Noise Model
MODP See Prop Loss Model
MODR See Reverb Model
Modularity, and Nightingale system, 292
Module-based programming languages, 477
Module-based structures, 36–38
Module decomposition
goals of, 55
SS2000, and units of software in, 394
Module decomposition structure, 40, 41, 47, 48
and A-7E system, 66
and team structure, 168
Module decomposition view, 138, 147, 164
with ADD, 161
of A-7E software architecture, 59
Module interconnection view, 42
Module re-use, and CelsiusTech product line, 397
of air vehicle model application, 185–192
and avoidance of interface mismatch, 461
choosing those for decomposition in ADD, 157
in decomposition structure, 54
for flight simulator, 192
instantiating in example, 160
and SS2000, 396
structures, 35–36
in UML, 219
and architecture presentation, 278
options in, 208
in UML, 218–222
Monitor-and-Control (M&C) consoles, 137
Multi-process applications, name clashes in, 241
Multi-processor systems, 170, 236
Multi-threaded servers, 344
MVC pattern See Model-View-Control pattern
Name clashes, in multi-process applications, 241
Names, in ATAM utility tree, 281
Name servers, 110
Naming conventions, code segments based on, 246
Naming services, 401
Narrowly scoped product lines, 358
NASA ECS Project case study
architectural strategies and scenarios addressed, 320–322
assign utility step, 319
calculate total benefit obtained from architectural strategy step, 322–323
CBAM applied to, 317–324
choose architectural strategies based on ROI value step, 323–324
collate scenarios step, 317
collected scenarios, 318
determine utility of “expected” quality attribute response levels step, 321–322
prioritize scenarios step, 318–319
refine scenarios step, 317, 319
response goals for refined scenarios, 318
ROI of architectural strategies, 323
NASA satellite data system, ATAM applied to, 305
NASA systems, architecture reconstruction used for, 232
National Airspace System Modification (NASM), in ISSS, 138
National Reconnaissance Office, 354
Natural language, semantic information conveyed with, 213
Naval Business Unit, at CelsiusTech, 384
Naval product lines, SS2000, 371–373
Naval Research Laboratory (NRL), 52, 66
Negotiated interface, 462
Negotiated resolutions, 264
Nesting of symbols, and node symbol in UML, 229
.NET architecture, 402
Netscape Secure Sockets Layer, 343
Network address translation (NAT), 343
Network interface sublayer (NISL), 144
Network News Transport Protocol, 336
Network-related conventions, and COOB, 391
Network usage, 7
NeXT platform, 329
Nightingale ATAM exercise, tabular form of utility tree for, 296–297
Nightingale system case study, 288–303
analyze architectural approaches step (phase 1: evaluation), 297–299
analyze architectural approaches step (phase 2: evaluation), 302
brainstorm and prioritize scenarios step (phase 2: evaluation), 300–302
catalog architectural approaches step (phase 1: evaluation), 293–294
follow-up (phase 3), 303
generate quality attribute utility tree step (phase 1: evaluation), 294–295, 297
hospital installation scenario in, 302
partnership and preparation (phase 0), 288–290
present architecture step (phase 1: evaluation), 292–293
present business drivers step (phase 1: evaluation), 290–292
present results step (phase 2: evaluation), 302–303
present the ATAM step (phase 1: evaluation), 290
NNTP See Network News Transport Protocol
NobelTech AB, 370
Noise Model, 20
Noncentralization, and the Web, 331
Nonintegral factor of base rate, and flight simulator, 180
Nonlocal changes, 31
Non-real-time systems, 6
and architectural approaches, 282, 283, 284
and Nightingale system, 299, 302, 303
Normalization, and architectural strategy, 313
Normal mode, 85
Notation, UML, 219
n-tier applications, 345
n-tier architecture, 341
Numerical analysis, 168
Object-based design, 44, 53, 55
Object containment, and systems, 227
Object Management Group, 112, 230
and CORBA, 401–402
Object-oriented analysis, 13
Object-oriented decomposition, and controller children, 192
Object-oriented design methods, 160
Object-oriented systems, 401
Object request broker (ORB), 402
and allocation views in UML, 228
connector instances as, 226
within work-flow model definition, 448
Object technology, and CelsiusTech, 379
Obstacle detection algorithm, 480
Obstacle detection module, in example, 160, 165, 166
ODBC, 435
Off-the-shelf components, 476
and architectural mismatch, 456–462
challenges with, 456
and Quack.com, 454–455
requirements negotiation with, 467
systems built from, 453–476
OMG See Object Management Group
Omission, 80
One-time passwords, 116
Online bookshop example, and state management, 420–422
Online stores, 348–349
OnLine Transaction Manager (OLTM), 298
communication, data flow, and processors of, 294
data flow architectural view of, 295
layered view of, 293
and Nightingale system, 292
Openness, and air traffic control system, 133
operate operation, 187
Operating system threads, 162
Operational modes, 85
Operational units, 139, 140–141
Opportunistic evaluation, 269
Optronic directors, on Göteborg class multi-role corvette, 372
Organizational structure, 8, 32, 70, 171
and architectural structure, 168, 169
architecture and dictation of, 29–30
for CelsiusTech, 380–387
and Luther architecture, 431
and system structure, 167
Outputs, ATAM, 285–287
Output values, of avionics software, 63
Overloading, 361
Overload mode, 85
Ownership changes, for CelsiusTech, 378–379
work-flow components, 447–449
Packet filter firewalls, 344
Packet filters, 343
PAC pattern See Presentation-Abstraction-Control pattern
Paging, and heap size, 424
Parallel systems
architectures for, 16
and deployment structure, 39
Parameterized function call, 477
Parameterized interface, 462
Parameterized modules, and CelsiusTech product line, 397–398
Parameter setting, 81
Parsers, for information extraction, 235, 236
Partitioning
flight simulator sample, 192–193
and n-square charts, 194–195
Partnership and preparation (phase 0)
in ATAM-based evaluation, 275
in Nightingale system, 288–299
PAS See Primary address space
PAS failures, and switchovers, 139–140
Passivation
and scalability, 420
of stateful bean, 410
Passive redundancy tactic, 103–104
Paths, elements related to, 255, 256
Pattern definition and recognition, and reconstruction, 241
Pattern matching, 236
Pattern-oriented software architecture, 42, 127
architectural, 24–25, 232, 242, 279
and ARM, 258
business delegate, 452
in Dali, 242
design, 259
and Nightingale system, 290
Payload sizes, 118
PDF See Portable Document Format
.pdf files, 337
Performance, 7, 69, 73, 82–84, 100, 171
and air traffic control system, 133
application servers for, 345
databases for, 345
and entity beans, 422
for flight simulators, 179, 196
and JVM, 424
load balancing for, 344
and market share, 95
modifiability versus, 159
and Nightingale system, 291
proxy servers for, 343
and quality attributes, 74
and software architecture, 201
and SS2000 product line, 388
Structural Modeling pattern and achievement of, 197–198
and system quality attributes, 74
Web servers for, 344–345
Performance engineers, and ATAM, 272
Performance scenarios, 83
generation of, 85
sample, 84
Performance tactics, 111–116, 125
resource arbitration tactic, 114–116
resource demand tactic, 113–114
resource management tactic, 114
Periodic event arrival, 83, 84
Periodic operations, and controller children, 191
Periodic process, 63
Periodic sequencer
in air vehicle model executive, 185, 186
for flight simulator, 192
Periodic time management, in flight simulator, 183
perk, 239
expressions and Dali, 242
and local variable aggregation, 244
Persistence services, 401
Personal computers, price/performance ratio for, 402
Personal digital assistants (PDAs), 433
Personnel, and re-use, 356
Philips Elektronikindustrier AB, 370
Philips Research, 258, 358, 367
Physical distribution, 40
Physical Models Module, 58
of A-7E architecture, 168
Physical Models procedure, 62
Physical view, 41
Physics simulation systems, and architecture reconstruction, 232
Ping/echo fault detectors, 102
Pipe-and-filter style, in UML, 223
Pittsburgh Digital Greenhouse, Spot, 433
Planned evaluations, 266
Planning function, with mediators, 459
Platform changes, 81
Platform compatibility, 7
Platform for Internet content selection (PICS), 333
Plug-and-play operation, 110
Plug-ins, 335
Polygon Module, 222
and Java, 402
with J2EE/EJB, 425
and language-independent interfaces, 58
and Luther architecture, 434
and market share, 95
and quality attributes, 74
and the Web, 340
Portable Document Format, 459
Port number, 118
Ports, 224
POSIX, and SS2000, 373
Postconditions, 213
POSTGRES relational database, 238
Post-mortem meetings, and ATAM, 276
PostScript, 337
Preconditions, 213
Prepare BCN Messages, 144
Prepare Messages (PMS) layer, 144
Preprocessor macros, 120
Present architecture step
in ATAM evaluation phase 1, 277–279
in Nightingale evaluation phase 1, 292–293
Presentation-Abstraction-Control pattern, 123, 127
Presentation class, 250, 254, 255
Presentation logic, and Java servlets, 472
Present results step
in ATAM evaluation phase 2, 285
in Nightingale evaluation phase 2, 302–303
Present the ATAM step
in ATAM evaluation phase 1, 277
in Nightingale evaluation phase 1, 290
Present the business drivers step
in ATAM evaluation phase 1, 277
in Nightingale evaluation phase 1, 290–292
Preset adaptation data, 147
“Prevent the ripple effect” tactic, 107–110, 159
Primary address space, 139, 148
Primary presentation
in documenting a view, 207–208
and UML, 218
PrimitiveOp::Compute, 240
printf function, 248
Prioritization, and utility tree generation, 280
Prioritization strategies, common, 115
Prioritize scenarios step
for CBAM, 316
in NASA ECS Project, 318–319
Private interfaces, 461
Private links, and the Web, 331
Proactive product lines, and scope, 364
Problems, early detection of, 264
Procedures, processes and systems, and Luther architecture, 432, 433
Proceedings scribe, ATAM and role of, 273
Process communication, 40
Process enforcer
ATAM and role of, 273
in Nightingale system, 289
Processes, 138
for A-7E, 63
and re-use, 356
process_event operation, 189, 190, 191
Processing deadlines, 84
process_malfunction, 190
“Process monitor” tactic, 105
Process observer
ATAM and role of, 273
in Nightingale system, 289
Processors, 139
Processor speeds, for various device classes, 433
Process recommendations, in “good” architecture, 15
<<process>> stereotype, 224
Process structure, 38, 40, 47, 48
Process views, 41, 138–141, 147, 207
and element catalog, 208
for SS2000, 390–392
Produce a model solution (step 4), in model problem process, 469–470
Product architectures, results of evaluation of, 362–363
Product-based organizations, 375
Product line architects, considerations by, 360
Product line architecture, 11, 388
evaluating, 362–363
Product-line-based organization, 375
Product line development, for SS2000, 369
Product line organizational models, types of, 366–367
Product line pitch, 203
architecture-based, 232
and CelsiusTech’s organizational structure, 380–387
failure with, 359
scope of, 357–358
SS2000 architecture and achievement of, 396
summary of CelsiusTech’s conversion to, 398–399
and variation, 82
Product line support, for SS2000, 390–392
Product Line Users Group, at CelsiusTech, 384
Product (or structural) recommendations, 15
Product Plan, at CelsiusTech, 383, 384
Products Group, at Inmedius, 431
Profilers, for information extraction, 236
Profiling tools, 236
Programmatic transaction management, 450, 451
Programming, 33
and EJBs, 413–416
Programming languages, early, 477
Project decision makers
and utility tree, 279
Project glossary, 218
Project managers, 272
and architecture, 27
and Nightingale system, 290
Project planning, and re-use, 355
Prop Loss Model, 20
Propulsion subsystem, 196
Propulsion system, in air vehicle model, 195
Prototypes/prototyping
and architecture, 31–32
creation of, 13
and Luther architecture user interface, 437
Provides assumptions, 457, 458
Proxy, in Active Object design pattern, 124
Proxy pattern, 109
Pseudo-threads, and libWWW, 337
Publish-subscribe
in example, 161
patterns, 109
registration, 110
python, 232
Qualification, and COTS adoption, 476
Quality, 69
Quality attribute characteristics of interface, in interface documentation, 214
Quality attribute names, in ATAM utility tree, 281
Quality attribute parts, 75
Quality attribute requirements, 305
and future impact of components, 483
for J2EE, 405
meaningful generation of, 78
for typical Web-based applications, 404
Quality attributes, 14, 16, 42, 69, 99, 480
and architectural structures, 40
and Attribute-Driven Design, 155
and CBAM, 324
and cross-cutting requirements, 481
and documentation, 205
functionality and architecture, 72
importance of architecture and, 144–145
and integrability, 175
and Nightingale system, 292
and patterns, 25
and scenarios, 75–78
and software architecture, 30–31
stimuli, 94
system, 74–75
and tactics, 100
understanding, 71–98
Quality-attribute scenarios, 13, 70, 74, 75, 78–94
availability scenario, 76, 79–80
generation of, 77
modifiability scenario, 76–77, 80–82
performance scenario, 82–85
in practice, 78–94
security scenario, 85–88
testability scenario, 88–90
usability scenario, 90–93
Quality-attribute-specific tables, 78
Quality attribute utility tree
ATAM and generation of, 279
Nightingale system and generation of, 294–295, 297
Quality goals
A-7E module decomposition structure and achievement of, 56
A-7E process structure and achievement of, 64
A-7E uses structure and achievement of, 61
Luther and achievement of, 451
Quality of service/data provided by A dependency type, 108
Quality requirements, 99
and architectural drivers, 158
and Attribute-Driven Design, 156
mapping of architectural decisions to, 274
Quality scenarios
and architectural drivers, 158
and business goals, 155
for example, 156
verifying/refining as constraints for child modules, 164, 165–166
Queries, and database models, 237
Questioner
ATAM and role of, 274
in Nightingale system, 289
Questioning techniques, 265, 266
Questionnaires, 265
Queue sizes, bounding, 114
R&D group, at CelsiusTech, 385
Radar controllers, 133
Radar reports, 134
Radio buttons, 435
Raising/lowering door module, in example, 165, 166
Rate monotonic, and fixed-priority scheduling, 115
Rate Monotonic Analysis, 110
Rationales
in architecture background, 209
capturing, 264
in interface documentation, 214
Rational Unified Process, 41, 43, 155, 173
Reactive model, and product family, 364–365
Reactive systems, and statecharts, 210
Reader’s viewpoint, 230
and architectural documentation, 202
Real-time deadlines, 6
Real-time embedded software systems, 53
Real-time performance, with Structural Modeling pattern, 197
Real-time performance constraints, for flight simulators, 179–180
Real-time scheduling mechanism, 163
Re-architecting tool suite, 258
Reconstructing software architectures, 231–259, 481
database construction, 237–239
example, 248–257
information extraction, 234–237
reconstruction, 241–246
reconstruction activities, 233–234
view fusion, 239–241
workbench approach, 232–233
Reconstruction example, 248–257
database construction, 248–249
information extraction, 248
view fusion, 249–257
Reconstruction workbenches, 258
and UCMEdit example, 248
Recording, Analysis, and Playback, in ISSS, 138
“Record/playback” tactic, 179
and managing input/output for testing, 120
Recovery, 101
“Reduce computational overhead” tactic, 113
Reduce demand, 159
and availability, 101
and Web-enabled enterprise systems, 423
“Redundancy” tactic, 100
Re-engineering workbench, 258
Reference architectures, 25, 26, 42, 53
for e-commerce systems, 341
for flight simulator, 182
Refine, 235
Refine scenarios step
for CBAM, 316
in NASA ECS Project, 317
Reflective programs, 361
Relational database model, and Dali workbench, 238
Relational databases, 12
Relations
extraction of from UCMEdit, 248
and information extraction, 234, 235
raw set of, 249
Relationship models, 26
Relationships
graphical representation of, 243
subset of, 243
tables, 238
Releases, and Evolutionary Delivery Life Cycle, 154, 173
Relevant views, choosing, 205–207, 229
and market share, 95
and SS2000 product line, 388
Remote access, and the Web, 329
remote class, 417
remote interface, 413, 414, 416
Remote method invocation, 113, 402, 440
“Removal from service” tactic, 104–105, 141
Reorganizations, at CelsiusTech, 379
Repair code, classes of, 458
Repair of system failure, 79
Repairs, 101
Replay state, in flight simulator, 179
Replicas, purpose of, 114
Replication, 163
Reports
after ATAM-based evaluations, 275, 276
evaluation, 268
Repositories, 109
Repository structure, 38
for garage door opener example, 158
and re-use, 355
specification, 6
understanding, 13
Requirements analysis
and architecture design, 171
preliminary, 154
Requirements document, 3, 7, 8
for A-7E Project, 53
Requirements validation, 264
“Requires assumptions” interface, 457, 458
Research world, success and failure in, 65–66
Resource allocation decisions, and implementations, 29
“Resource arbitration” tactic, 114–116, 159
Resource behavior of A, 108, 110
Resource consumption, 112
Resource contention areas, 15
Resource contention problems, 162
Resource demand tactics, 113–114, 159
Resource management tactics, 114
Resource managers, 110
Resource name, 212
Resource ownership, 108
Resources, contention for, 112
Resource semantics and syntax, in interface documentation, 212–214
Resource usage restrictions, in interface documentation, 213
Response, 80
in ATAM scenario, 280
of availability scenario, 80
CBAM and scenarios in, 310
jitter of, 84
of modifiability general scenario, 82
of performance general scenario, 85
of quality attribute scenario, 75
of security general scenario, 87
tactics for control of, 100
of testability general scenario, 90
of usability general scenario, 92
Response measure
of availability scenario, 80
of modifiability general scenario, 82
of performance general scenario, 85
in quality attribute scenario, 75
of security general scenario, 87–88
of testability general scenario, 90
of usability general scenario, 92–93
Response time, 112–113
Restrict communication paths, prevention of ripple effects and, 109
“Restrict communication” tactic, 188
Results, Nightingale system and presentation of, 302–303
return function, 248
Return on investment (ROI), 309, 310, 315
calculating, 313
CBAM and architectural strategies based on, 316
and architecture, 351
and CelsiusTech product line, 396, 397
and components, 442
failures with, 356
of Java components, 405
and Luther architecture, 444–450
of modules, 477
and software architecture, 26, 32–35
and software product lines, 355
of work-flow component, 445
Reverb Model, 20
Reverse-direction arrows, 155
Reverse engineering expert, 232
Reviews, forced preparations for, 264
rigiparse, 235
Rigi Standard Form, 233, 238, 258
Risks, 268
and architectural approaches, 282, 283, 284
and COTS adoption, 476
and Nightingale system, 299, 302, 303
Risk themes
for Nightingale system, 303
rlogin, 336
RMI See Remote method invocation
ROI See Return on investment
Roles, in flight training simulator, 177–178
Rollback tactic, 104
Rollout schedule, 96
Root node, utility of, 279
Rose model, and Nightingale system, 303
Round robin, and dynamic priority scheduling, 115
Routers, for security, 343
Rule-based system, 170
Rules engine, and Nightingale system, 298–299, 303
Runtime, 237
architectural and interface mismatch and errors in, 457
binding at, 110
components, 36
parameterization, 236
registration, 110
structure, 47
Runtime tactics, 121–122
RUP See Rational Unified Process
SAAM See Software Architecture Analysis Method
Safety, and SS2000 product line, 388
Safety-critical systems, 13, 129
Sampling, control frequency of, 113
SAS See Standby address space
Satellites, and architecture reconstruction, 232
application servers for, 345
databases for, 345
and e-commerce, 341
load balancing for, 344
and Luther architecture, 434
and Nightingale system, 292
and passivation strategies, 420
and Web-based applications, 404
and the Web, 329
Scaling out (or “horizontal” scaling), 422
Scaling up (or “vertical” scaling), 422
scanf function, 248
Scenario-based techniques, 14
ATAM and brainstorming/prioritizing of, 284–285
CBAM and collating/prioritizing/refining of, 316
coupling tactics and, 480
and Luther architecture, 449
and Nightingale system, 295, 297, 300–301, 302
and product line architecture, 362
and quality attribute names, 281
usability, 122
utility and priorities of, 312
utility and variations of, 310
and utility tree, 280
Scenario scribe
ATAM and role of, 273
in Nightingale system, 289
Schedule estimates, and software architecture, 32
Scheduler, in Active Object design pattern, 124
Scheduler module, in example, 165, 166
Scheduling policies, 114–115, 159
and Active Object design pattern, 124
and flight simulator, 183
Scope/scoping, 354
controlled, 267
and product lines, 357–358, 364
SCR See Software Cost Reduction
Screen shots, and Luther architecture user interface, 437
Scribe, 279
Scripts, and bridges, 459
Secondary address space (SAS), 139, 148
Sector suite, controllers at, 133, 134
Secure communications, between IIS and perl proxy server, 470
Secure Sockets Layer, 117, 332, 343
Security, 7, 25, 69, 85–86, 127, 443
designer’s decisions, J2EE, and implementation of, 450
and e-commerce, 341
and EJB container, 444
HTTPS for, 343
and Java servlet ensemble, 472, 474
and Nightingale system, 292
routers and firewalls for, 343–344
and software architecture, 201
and system quality attributes, 74
and the Web, 332, 340, 349, 404
Security general scenarios, 86–88
Security kernel, 73
Security scenarios, sample, 87
Security tactics, 116–119, 125
detecting attacks, 118
recovering from, 118
resisting attacks, 116–117
sed, 232
SEI See Software Engineering Institute
Self-configuring software, 462
Semantic coherence, 107, 123, 159
and CSCIs, 138
maintaining, 106
“Semantic coherence” tactic
and code templates, 149
and separation of concerns with EJB, 417
Semantic constraints, in architectural patterns and styles, 125
Semantic importance, and fixed-priority scheduling, 115
Semantics, 108
Semicolon, 477
send operation, 187
Sensitivity points
and architectural approaches, 282, 283, 284
and Nightingale system, 298, 299, 302, 303
Sensor/actuator virtual machine, synchronization mechanisms for, 162, 165
Sensory inputs, and flight simulator, 180
“Separate user interface” tactic, 123, 435, 442
“Separating interface from implementation” tactic, and managing input/output for testing, 120
Separation of concerns, 41, 45, 55, 417
Sequence, 108
Servant, in Active Object design pattern, 124
Servers, 334
applications as, 141
multi-threaded, 344
Server-side components, EJB, 413
Server tier, processing power increases in, 422–423
Service, 109
semantics of, 108
syntax of, 107
Service providers, and ABC for the Web, 346, 347
Service request message, 139
Servlet code, 408
Session EJBs, and work-flow component packaging, 448
Session state, and Luther architecture, 441
set method, 422
set_parameter, 190
SF300 class multi-role patrol vessels (Danish), 371
“Shadowing” tactic, and process view, 141
“Shadow mode,” 104
“Shadow operation” tactic, 104
Shadow pages, 104
Shape Module, 222
Shared data structure, 38
Shared data view, 207
Shared Services procedure, 62
“Shares-a-secret-with” relation, 54
Shipboard systems, requirements of, 388
Ship System 2000
applying architecture, 395–398
architectural goals for, 395
history behind product line, 377
layered software architecture for, 393
layered view for, 392
module decomposition view for, 392, 394–395
naval product line, 371–373
organization, 381–383, 384, 385
process view for, 390–392
product line development for, 369
staffing, 385–387
and STRIC, 374
Show multiple views, 122
Side effects, 457
and architectural strategies, 312–313
Signature(s)
of elements, 212
matching, 211
and resource syntax, 212
Simplex approach, 103
Simplex architecture for availability, 127
Simulation algorithm, for controller children, 190
Simulation instructor, and flight simulator, 178
Simulation parameters, and controller children, 191
Simulator development, 180
Simulator sickness, 180
Site-specific adaptation data, 147
Size, of flight simulators, 180
Skeletal system, 15, 31, 70, 173
creating, 170–171
for flight simulator, 192
SLOC See Source lines of code
SNiFF+, 235
Social influences, and software architecture, 5
Socket connections, and resource pooling, 424
Software
A-7E, 49
flight simulator, 181
self-configuring, 462
Software architecture, 19–23, 43, 69 See also Architecture Tradeoff Analysis Method; Reconstructing software architectures
central role of, 201
and change management, 31
common structures, 37
within configuration management systems, 481–482
and cost/schedule estimates, 32
and design decisions, 29–32
documentation as introduction to, 203
in education, 483
and evolutionary prototyping, 31–32
future of, 477–484
importance of, 26–35
and product lines, 360
and quality attributes, 30–31
relationship between reference models, architectural patterns, reference architecture, and, 26
re-use of, 353
system architecture versus, 34
and template-based development, 34–35
and training, 35
as transferable, re-usable model, 26, 32–35
typical, uninformative presentation of, 20
Software Architecture Analysis Method, 305
Software architecture documentation, fundamental principle of, 230
Software Cost Reduction, 52, 66
Software decision module, 56–57
Software design patterns, 173
Software elements, architecture and definition of, 21
Software engineering, 42
education, future of software architecture in, 483
and software product lines, 354
Software Engineering Institute, 268, 399
ASEILM developed at, 466
Dali developed by, 258
practice areas identified by, in fielding product lines, 363
software architecture Web page, 43
Software engineers, 233
Software interfaces, documentation for, 58
Software life cycle, testing within, 89
Software process, and ABC, 12–14
Software product lines, 170, 351, 353–368, 367
adoption of, 364–365
architectures for, 360–363
common architecture shared by, 32
and crafting common components, 442
creating products and evolution of, 365–366
difficulties with, 363–367
failure of, 359
and organizational structure, 366–367
scoping of, 357–358
working discussion of, 355–357
Software quality evaluation, 262
Software renovation factories, 258
Software re-use, and Luther architecture, 433
Software structures, 39–40
unclear mapping between aircraft structures and, 181
Software systems, acquiring, 262
Software testability, 88
Software Utility Module, 58
Solution Group, at Inmedius, 431
Source code, 236
Source lines of code, 376
Source of stimulus
of availability scenario, 80
of modifiability general scenario, 82
of performance general scenario, 84
of quality attribute scenario, 75
of security general scenario, 86
of testability general scenario, 89
of usability general scenario, 91
“Specialized access routes/interfaces” tactic, and managing input/output for testing, 120
Special Operations Forces family of trainers, 177
Specification-level collaboration diagram, 227
Spline Module, 222
Splitter class, 223
Splitter role, 227
Sporadic event arrival, 83, 84
Spot (Pittsburgh Digital Greenhouse), 433
“Spot the Architecture,” playing, 246–247
SQL (Structured Query Language) code, generation of in Dali, 238
SQL dialect, and Nightingale system, 298
SQL format, conversion of extracted information to, 238
SQL queries, 243
and Dali, 242
and local variable aggregation, 244
and recovery of “lost” architecture, 247
SQL Server, 472
SS2000 See Ship System 2000
SSL See Secure Sockets Layer
stabilize state, 189
Staff-days, and architectural evaluations, 263
Stakeholder communication, and architecture, 27–29
Stakeholder list, 206
and air traffic control system, 133
and architectural integrity, 96
architecture reviewed by, 15
and ATAM, 271, 272, 275, 285–287, 304
and CBAM, 309
in CelsiusTech experience, 369, 370
and communication needs served by architecture, 204
documentation organization for, 216–218
engagement of, 9
and future impact of components, 483
general scenarios and communication with, 93
helpful architecture documentation for, 206
influence on architectures by, 6–8
and Nightingale system, 289, 300, 301
and scenario brainstorming, 284
seasoned and new, 202
software architecture and communication among, 26, 42
and utility-response curves, 310, 311, 312
Standards, source of, 172
Standby address space, 139
Starting evaluation criteria, 464
Stateful model, and EJB server tier, 420
Stateful session bean instances, clients’ static bindings to, 421
Stateful session beans, 409, 410
in online bookshop example, 420
Stateful session EJBs, and work-flow component packaging, 448
Stateless model, and EJB server tier, 420
Stateless session bean instances, clients’ dynamic bindings to, 421
Stateless session beans, 409, 414, 417, 425, 443
advantages with, 420–421
in online bookshop example, 420
work-flow component packaged as, 447
Stateless session EJBs, and work-flow component packaging, 448, 449
State management
and EJB, 420–422
J2EE and simplification of, 441
“State resynchronization” tactic, 104, 141
Static extraction, 241
Static extractor tool, 239
Static information, 235, 239, 240
Static libraries, 361
Static scheduling, 115
Static views, 15
Station Manager, 144
Stimuli, tactics and responses to, 100
Stimulus
of ATAM scenario, 280
of availability scenario, 80
of CBAM scenario, 310
of modifiability general scenario, 82
of performance general scenario, 84
of quality attribute scenario, 75
of security general scenario, 86
of testability general scenario, 89
of usability general scenario, 91
Storyboards, and Luther architecture user interface, 437
Strategy pattern, 109
Stream layer, for libWWW, 336
STRIC, 374
StringOp class, 239
Strong typing, and SS2000, 390, 391
Structural-model-based flight simulators, 176
Structural Modeling pattern, 181, 185–187
of air vehicle system processor with focus on executive, 186
and controller children, 188
and flight simulation, 176
goals achieved with, 197–198
uses for, 177
Structural rules, for “good” architecture, 16
Stubbing implementations, 120
“Stubbing out” code sections, 170, 171
Stubs, 109
Styles, architectural, 125
Subclassing, 38
Subcontractors, 167
Subprograms, 142
Subroutines, 477
Subsets, 62
delivery of, 63
of systems, 42
Subsystem controllers, 198
for air vehicle model, 192
capabilities of, 189
for flight simulator, 192
module, and air vehicle structural model, 187, 188–190
<<subsystem>> package stereotype, 226
Subsystems, 157
and groups, 193
integrating, 198
malfunctions with, 191
and periodic sequencer, 186
propulsion, 196
skeletal, 171
and surrogates, 187
Success, differing standards for, 65–66
Sun Microsystems, 347
home page, 425
Java 2 Enterprise Edition, 401, 404
Supersets, of systems, 42
Supportability, and Nightingale system, 292
<<supports>> stereotype, 228
Surrogates
in air vehicle model executive, 187
for flight simulator, 192
Surveillance data, and ISSS physical view, 136
Surveys, 276
Swedish Navy, CelsiusTech contract with, 370, 376
Switchovers, 104
and PAS failures, 139–140
Symmetric encryption, 117
and active redundancy, 103
and passive redundancy, 104
Synchronization points, 162
Synchronization tactic, 100
“Synchronize-with” relation, 64
Syntax, 107
Synthetic interviewing, 434
System administrators, changes made by, 81, 82
System architecture
and e-commerce, 341
software architecture versus, 34
System design, and tactics, 100
System development, architectural constraints in, 462
System functions/function groups
System Generation Module, 58
System initiative, 122
System quality, 31
and architectural quality, 92
System quality attributes, 74–78, 94–95
component-dominated architectures and achievement of, 463
problems with previous discussions of, 74
System requirements, and design, 154
architectural structures of, 39–40
ASEILM, 466–476
building from OTS components, 453–476
as collaborations, 227
concurrency in, 162
as contained objects, 227
elements in, 47
and groups, 193
in kinetics group, 195–196
maintaining model of, 122
projected lifetime of, 95
qualities of, 74
in UML, 226–227
Systems Definition Group, at CelsiusTech, 384, 385
Systems of systems, 478
System-specific scenarios, 78, 156
System structure, and organizational structure, 167
System testers, 89
Table-driven operating systems, 12
Tables
fusing, 241
in primary presentation, 208
architectural patterns and, 123–124, 125
coupling scenarios and, 480
and design, 99
and integrability, 175
introduction to, 100–101
predicting results of application of, 480
selecting, 158
“weaving” of into systems, 481
Targeted markets, 95–96
Task models, 122
Tasks, Ada, 142
TCP (Transmission Control Protocol) flags, 118
Team leaders
ATAM and role of, 273
in Nightingale system, 289
Teams, 30
Technical-Architecture Plan, at CelsiusTech, 383, 384
Technical constraints, and Nightingale system, 291
Technical documentation
fundamental principle of, 230
and reader viewpoint, 202
Technical environment, influence on architectures by, 9
Technical influences, and software architecture, 5, 6
Technical Steering Group, at CelsiusTech, 385
Technology changes, at CelsiusTech, 379–380
Technology development, and Luther architecture, 431
Telephone switches, architecture reconstruction used for, 232
TELNET, 336
Telub, 370
Template-based development, and architecture, 34–35
Templates, for documenting interfaces, 212–214
Terminal control area (TCA), 130
Testability, 69, 88–89, 98, 127
and Nightingale system, 292
and SS2000 product line, 388
and system quality attributes, 74
Testability scenarios, 89–90
Testability tactics, 118–121, 125
internal monitoring, 120
managing input/output, 120
Test and Training subsystems, 137
Testers, 14
and architecture, 27
and ATAM, 272
Testing, 354
cost of with flight simulator, 181
and re-use, 355
Test plans and cases, 354
Textual primary presentations, 208
Thin clients, 440
Thread model, for Java servlet ensemble, 475
Threads, and resource pooling, 424
Thread safety, and libWWW, 337
Tiers, 341
Time budgets, 15
with Structural Modeling pattern, 197
Timekeeper
ATAM and role of, 273
in Nightingale system, 289
Timeline synchronizer
in air vehicle model executive, 185
for flight simulator, 192
Time sequences, in sequence diagrams, 211
Timing/time, 80
in flight simulator, 183–184
and performance, 82
Token ring networks, Logical Communications Network composed of, 137
Tomcat
application server, 472
and IIS, 475
Tool environment, documentation within, 481
Tools
and architecture reconstruction, 258
for information extraction, 235
and re-use, 356
Tool support
for architecture reconstruction, 232
for design process, 481
Top-down adoption, of product line, 364
Top-down approach, for architecture reconstruction, 258
“Top-level architecture,” 19
Topological layout, in architectural patterns and styles, 125
Traces, semantic information conveyed with, 213
Tradeoff points
and architectural approaches, 282, 283, 284
and Nightingale system, 299, 302, 303
Training
architecture as basis for, 35
and documentation, 203
with flight simulators, 179, 180
Transaction management, and J2EE, 450
Transaction monitors/processors, 345
Transactions services, 401
“Transactions” tactic, 105
Transaction support, 443
designer’s decisions, J2EE, and implementation of, 449, 450
and EJB container, 444
Translator library layer, 458
Triggering events, 63
Triple redundancy, 103
TSG See Technical Steering Group
Turbulence, 179
type field, 249
Types, as classes in UML, 223
UCMEdit model
after application of common code segments, 255
after application-specific direct manipulation, 256
after clustering based on application domain, 257
classes, files and “leftover” functions shown in, 251
graphics subsystem, code, classes, files, and remaining functions in, 252, 253
reconstruction of architecture for, 248–257
UI See User interface
Ultrix (Digital), and SS2000, 373
Unauthorized access, protection from, 117
Underwriters Laboratories, 482
undo command, 122
Unified Modeling Language (UML), 201, 218–229
aggregation in, 219–221
allocation views, 227–229
and behavioral descriptions, 209
C&C views, 222–227
connectors in, 225–226
decomposition in with nesting, 221
dependency in, 222
deployment view in, 229
detail representation, 223
generalization documented in, with two line styles, 221
interfaces in, 219
layers represented in, 222
module views and, 218–222
and Nightingale system, 303
for primary presentation, 208
systems in, 226–227
Uniform Resource Locators (URLs), 329
United States, Internet backbones in, 333
Unit tests, 89
Universal Description, Discovery, and Integration (UDDI), 347
UNIX operating system, 142, 298
UNIX processes, Ada tasks mapped onto, 142
Unplanned evaluations, 266
Unstructured evaluations, 269
updateAccount method, 414, 415
update operation, 186, 190, 191
and subsystem controllers, 189–190
Updating, 190
Updrafts, 179
U.S. Air Force, 176
and simulator design problems, 180–181
U.S. Department of Defense standards, 37
U.S. Naval Research Laboratory, 48
Usability, 7, 25, 69, 73, 90–91, 121, 127
and market share, 95
and Nightingale system, 291
and software architecture, 97
and system quality attributes, 74
Usability engineers, 123
Usability scenarios, 91–93, 122
Usability tactics, 121–123, 125
design-time, 123
runtime, 121–122
Usage guide, in interface documentation, 214
“Use an intermediary” tactic, and surrogates, 187
Use case maps, computer-based editing of, 254
Use cases, 155
and concurrency in system, 162
verifying/refining as constraints for child modules, 164
Usenet, 172
Usenet messages, 336
User, maintaining model of, 122
User experience paradigm, and J2EE, 435
User initiative, 122
User input devices, for various device classes, 433
User interaction styles, and Luther architecture, 433
User interface
and libWWW, 337
and Luther architecture, 432, 436–437, 439–440
revising, 123
separating from rest of application, 123
“User interface agnostic” applications, 441
User interface module, in example, 164, 166
User manuals, 354
User needs, system adapted to, 91
User profile data, 118
Users
and architecture, 27
and ATAM, 272
authorization of, 117
Uses structure, 37, 40, 42, 44, 47, 48, 62, 170
and A-7E system, 53, 60–63, 66
Uses view, 207
Utility
architectural strategies, 312–313
priorities of scenarios, 312
utility-response curves, 310–312
and variations of scenarios, 310
Utility-response curves, 310–312, 324
Utility scores, scenarios with (NASA ECS Project), 319
Utility trees, 155, 282, 284, 305, 309
ATAM and generation of, 279
Nightingale system and generation of, 294–295, 297
tabular form of, for Nightingale ATAM exercise, 296–297
Validation agencies, 482
Validation of extracted information, 237
Variability guide, in documenting a view, 208–209
Variability provided by interface, in interface documentation, 213–214
Variability techniques, 367
Variables, 234
Variation, 82
in event arrival time, 85
in latency, 84
Variation points
core assets designed with, 354
identifying in product lines, 360
supporting in product lines, 361–362
Vasa (Swedish ship), 4–5
VAX/VMS minicomputers, 378
“Vertical” scaling (or scaling up), 345, 422
View catalog, 215–216
and architecture reconstruction, 233
and database models, 237
disambiguating function calls, 241
and reconstruction, 249–257
architecture represented with, in example, 161–163
combining, 207
documentation across, 215–218
documenting, 207–209
improving, 239–240
prioritizing, 207
Virtual documents, 339
Virtual hardware, 56
Virtual private network (VPN), 117
Viruses, 86
Vision, 201
Visual Basic, 339, 340, 405, 455
Visualization and interaction, and reconstruction, 241
Visual Mining, 468
Voice input, 435
Votes
refined scenarios with (NASA ECS Project), 319
and scenario brainstorming, 285
Voting tactic, 102