AADL (Architecture Analysis and Design Language), 354
Abstract common services tactic, 124
Abstract data sources for testability, 165
Abstract Syntax Tree (AST) analyzers, 386
Abstraction, architecture as, 5–6
Acceptance testing, 372
Access
basis sets, 261
network, 504
access_read relationship, 384
access_write relationship, 384
ACID (atomic, consistent, isolated, and durable) properties, 95
Acknowledged system of systems, 106
Active redundancy, 91, 256–259
ActiveMQ product, 224
Activities
competence, 468
Activity diagrams for traces, 353
Adams, Douglas, 437
ADD method. See Attribute-Driven Design (ADD) method
ADLs (architecture description languages), 330
Adolphus, Gustavus, 42
Adventure Builder system, 224, 226, 237
Aggregation for usability, 180
Agile projects, 533
architecture overview, 277–281
patterns, 238
requirements, 56
AIC (Architecture Influence Cycle)
description, 58
Vasa ship, 43
Air traffic control systems, 366–367
Allen, Woody, 79
Allocated to relation
deployment structure, 14
multi-tier pattern, 237
Allocation of responsibilities category
ASRs, 293
availability, 96
interoperability, 114
modifiability, 126
performance, 143
quality design decisions, 73
security, 154
testability, 169
usability, 181
Allocation patterns
miscellaneous, 238
Allocation structures, 5, 11, 14
Allowed-to-use relationship, 206–207
Alpha testing, 372
Alternatives, evaluating, 398
Amazon service-level agreements, 81, 522
Analysis
economic. See Economic analysis
outsider, 399
Analysts, 54
Analytic perspective on up-front work vs. agility, 279–281
Analytic redundancy tactic, 90
AND gate symbol, 84
Anonymizing test data, 171
Antimissile system, 104
Approaches
Lightweight Architecture Evaluation, 416
background and experience, 51–52
communication with, 29
description and interests, 54
allocation, 14
component-and-connector, 13–14
limiting, 17
relating to each other, 14, 16–17
selecting, 17
table of, 15
Architecturally significant requirements (ASRs), 46–47, 291–292
interviewing stakeholders, 294–296
from requirements documents, 292–293
Agile projects. See Agile projects
availability. See Availability
cloud. See Cloud environments
competence. See Competence
conceptual integrity of, 189
design. See Design and design strategy
documenting. See Documentation
drivers in PALM, 305
economics. See Economic analysis
evaluation. See Evaluation
implementation. See Implementation
management. See Management and governance
modifiability. See Modifiability
patterns. See Patterns
performance. See Performance
product lines. See Software product lines
QAW drivers, 295
QAW plan presentation, 295
quality attributes. See Quality attributes
reconstruction and conformance. See Reconstruction and conformance
requirements. See Architecturally significant requirements (ASRs); Requirements
security. See Security
structures. See Architectural structures
tactics. See Tactics
testability. See Testability
usability. See Usability
Architecture Analysis and Design Language (AADL), 354
Architecture-centric projects, 279
Architecture description languages (ADLs), 330
Architecture Influence Cycle (AIC)
description, 58
Vasa ship, 43
Architecture Tradeoff Analysis Method (ATAM), 48, 283, 400
results, 411
Ariane 5 explosion, 192
Aristotle, 185
Arrival pattern for events, 133
Artifacts
in evaluation, 399
performance, 134
product reuse, 484
quality attributes expressions, 69–70
usability, 176
variability, 489
ASP.NET framework, 215
Aspects
for testability, 167
variation mechanism, 492
ASRs. See Architecturally significant requirements (ASRs)
Assembly connectors in UML, 369
Assertions for system state, 166
Assessment goals, 469
Assessment of competence, 469–472, 474–475
Assign utility
CBAM, 446
NASA ECS project, 452
AST (Abstract Syntax Tree) analyzers, 386
Asymmetric flow in client-server pattern, 218
Asynchronous messaging, 223, 225
ATAM. See Architecture Tradeoff Analysis Method (ATAM)
ATM (automatic teller machine) banking system, 219
Atomic, consistent, isolated, and durable (ACID) properties, 95
Attachment relation
broker pattern, 211
client-server pattern, 218
component-and-connector structures, 13
pipe-and-filter pattern, 216
publish-subscribe pattern, 227
shared-data pattern, 231
Attachments in component-and-connector views, 336–337
Attribute-Driven Design (ADD) method, 316
element design solution, 321
inputs, 316
repeating steps, 324
verify and refine requirements step, 321–323
Attributes. See Quality attributes
Audiences for documentation, 328–329
Auditor checklists, 260
Audits, 153
Authenticate actors tactic, 152
Authentication in CIA approach, 148
Authorization in CIA approach, 148
Authorize actors tactic, 152
Automated delivery in Metropolis model, 535
Automatic reallocation of IP addresses, 516
Automatic scaling, 516
Automatic teller machine (ATM) banking system, 219
Automation for testability, 171–172
AUTOSAR framework, 364
analytic model space, 259
broker pattern, 240
calculations, 259
CAP theorem, 523
CIA approach, 147
cloud, 521
recover-from-faults tactics, 91–94
tactics overview, 87
Availability of resources tactic, 136
Availability quality attribute, 307
Availability zones, 522
Avižienis, Algirdas, 79
Back-of-the-envelope analysis, 262–264
Background of architects, 51–52
Base mechanisms in cloud, 509–514
Basis sets for quality attributes, 261
BDUF (Big Design Up Front) process, 278
Behavior
element, 347
Benefit in economic analysis, 441–442
Benkler, Yochai, 528
Beta testing, 372
Big bang integration, 371
Big Design Up Front (BDUF) process, 278
BigTable database system, 518
Binder, Robert, 167
Binding
user interface, 178
Binding time category
ASRs, 293
availability, 98
interoperability, 115
performance, 144
security, 156
testability, 170
usability, 182
BitTorrent networks, 221
“Blind Men and the Elephant” (Saxe), 379
Blocked time in performance, 136
Blogger website, 528
Boehm, Barry, 279, 281, 286, 288
Booch, Grady, 286
Boolean logic diagrams, 83
Bottom-up adoption, 495
Bottom-up analysis mode, 284
Bound execution times tactic, 138
Bound queue sizes tactic, 139
Boundaries in ADD method, 317
Box-and-line drawings
as architectures, 6
component-and-connector views, 338
BPEL (Business Process Execution Language), 108
Brainstorming
ATAM, 410
Lightweight Architecture Evaluation, 416
QAW, 295
Branson, Richard, 443
Breadth first ADD strategy, 319
Brewer, Eric, 522
Broadcast-based publish-subscribe pattern, 229
Broker pattern
Buley, Taylor, 147
Bureaucracy in implementation, 427
Bush, Vannevar, 397
Business cases in project life-cycle context, 46
Business context
architecture influence on, 58
architectures and business goals, 49–50
Business drivers
Lightweight Architecture Evaluation, 416
PALM method, 305
assessment, 469
ATAM, 402
capturing, 304
evaluation process, 400
PALM method, 305
views for, 332
Business managers, 54
Business/mission presentation in QAW, 295
Business Process Execution Language (BPEL), 108
Business process improvements as business goal, 299
Business-related architect skills, 465
C&C structures. See Component-and-connector (C&C) patterns and structures
Caching tactic, 139
Callbacks in Model-View-Controller pattern, 214
Calls relationship in view extraction, 384
Cancel command, 179
Capture scenarios for quality attributes, 196–197
Capturing
ASRs in utility trees, 304–307
Catastrophic failures, 82
Categorization of business goals, 297–299
CBAM. See Cost Benefit Analysis Method (CBAM)
Change
modifiability. See Modifiability
Change control boards, 427
Change default settings tactic, 153
Chaucer, Geoffrey, 459
Check-in, syncing at, 368
Choice of technology category
ASRs, 293
availability, 98
interoperability, 115
modifiability, 127
performance, 144
security, 156
testability, 170
usability, 182
CIA (confidentiality, integrity, and availability) approach, 147–148
City analogy in Metropolis model, 536
class_contains_method relationship, 384
class_is_subclass_of_class relationship, 384
Class structure, 13
Classes in testability, 167
Clements, Paul, 66
Client-server patterns, 19, 217–219
Client-side proxies, 211
Clients
broker pattern, 211
simulators, 265
Clone-and-own practice, 482–483
availability, 521
deployment models, 506
economic justification, 506–509
equipment utilization, 508–509
multi-tenancy applications, 509
PaaS model, 517
performance, 521
summary, 524
Cluster managers, 515
CMG (Computer Measurement Group), 524
Co-located teams
Agile, 277
coordination, 427
Cockburn, Alistair, 287
COCOMO II (COnstructive COst MOdel II) scale factor, 279
Code
architecture consistency, 366–368
design in, 364
mapping to, 334
security, 157
Cohesion
in testability, 167
Collaborative system of systems, 106
Collating scenarios
CBAM, 445
NASA ECS project, 451
COMBINATION gate symbol, 84
Commercial implementations of map-reduce patterns, 234
Common Object Request Broker Architecture (CORBA), 212
Communicates with relation, 237
Communication
Agile software development, 277
architect skills, 465
architecture, 47
documentation for, 329
global development, 425
Communication diagrams for traces, 353
Communications views, 341
Community clouds, 506
Compatibility in component-and-connector views, 336
Compatibility quality attribute, 193
activities, 468
assessment goals, 469
models, 476
software architecture organizations, 467–475
summary, 475
Competence center patterns, 19, 238
Competence set tactic, 95
Complexity
broker pattern, 211
quality attributes, 71
Component-and-connector (C&C) patterns and structures, 5, 10–11
Model-View-Controller, 212–215
service-oriented architecture, 222–226
Components, 5
independently developed, 35–36
replacing for testability, 167
substituting in variation mechanism, 492
Comprehensive models for behavior documentation, 351, 353–354
Computer Measurement Group (CMG), 524
Computer science knowledge of architects, 466
Conceptual integrity of architecture, 189
Concrete quality attribute scenarios, 69
Concurrency
component-and-connector views, 13–14, 337
Condition monitoring tactic, 89
Confidence in usability, 175
Confidentiality, integrity, and availability (CIA) approach, 147–148
Configurability quality attribute, 307
Configuration manager roles, 422
Configurators, 492
architectural, 48
by construction, 389
Conformance checkers, 54
Conformity Monkey, 161
Connectors
component-and-connector views, 335–339
multi-tier pattern, 236
peer-to-peer systems, 220
REST, 225
UML, 369
Consistency
CAP theorem, 523
code and architecture, 366–368
databases, 520
Consolidation in QAW, 295
Constraints
allocation views, 339
broker pattern, 211
client-server pattern, 218
component-and-connector views, 337
conformance, 390
layered pattern, 207
map-reduce patterns, 235
Model-View-Controller pattern, 213
modular views, 333
peer-to-peer pattern, 222
pipe-and-filter pattern, 216
publish-subscribe pattern, 227
service-oriented architecture pattern, 225
shared-data pattern, 231
Construction, conformance by, 389
COnstructive COst MOdel II (COCOMO II) scale factor, 279
Content-based publish-subscribe pattern, 229
Contention for resources tactic, 136
Context diagrams
ATAM presentations, 406
in documentation, 347
summary, 59
thought experiments, 263
Contextual factors in evaluation, 399–400
Continuity as business goal, 298
Control relation in map-reduce patterns, 235
Control resource demand tactic, 137–138
Control tactics for testability, 164–167
Controllers in Model-View-Controller pattern, 213–214
Conway’s law, 38
Coordination model category
ASRs, 293
availability, 96
global development, 426
interoperability, 114
modifiability, 126
performance, 143
quality design decisions, 73–74
security, 155
testability, 169
usability, 181
CORBA (Common Object Request Broker Architecture), 212
Core asset units, 497
Core vs. periphery in Metropolis model, 534
Correlation logic for faults, 81
Cost Benefit Analysis Method (CBAM), 442
cost determination, 444
utility curve determination, 442–443
weighting determination, 444
CBAM, 444
of change, 118
estimates, 34
independently developed components for, 36
power, 507
resources, 244
thought experiments, 263
value for, 442
Costs to complete measure, 430
Coupling
in testability, 167
Crashes and availability, 85
Credit cards, 147, 157, 260, 268
Crisis, syncing at, 368
Criteria for ASRs, 306
Crowd management in Metropolis model, 534
Crowdsourcing, 528
CRUD operations, 109
CruiseControl tool, 172
Cunningham, Ward, 286
Customers
communication with, 29
edge-dominant systems, 529
Customization of user interface, 180
Darwin, Charles, 275
Data Access Working Group (DAWG), 451
Data accessors in shared-data pattern, 230–231
Data latency, utility trees for, 306
Data model category, 13
ASRs, 293
availability, 96
interoperability, 114
modifiability, 126
performance, 143
quality design decisions, 74
security, 155
testability, 169
usability, 182
Data reading and writing in shared-data pattern, 230–231
Data replication, 139
Data sets
Data stores in shared-data pattern, 230–231
Data transformation systems, 215
Database administrators, 54
Database systems
DAWG (Data Access Working Group), 451
Deadline monotonic prioritization strategy, 140
Deadlines in processing, 134
Debugging brokers, 211
Decision makers on ATAM teams, 401
Decision-making context, 438–439
Decisions
evaluating, 398
mapping to quality requirements, 402–403
Decomposition
Dedicated finite resources, 530
Defects
analysis, 374
eliminating, 486
tracking, 430
Defer binding
user interface, 178
Degradation tactic, 93
Delegation connectors, 369
Demilitarized zones (DMZs), 152
Denial-of-service attacks, 79, 521, 533
Dependencies
basis set elements, 261
on computations, 136
intermediary tactic for, 123–124
user interface, 178
Dependent events in probability, 257
Depends-on relation
layered pattern, 207
Deploy on relation, 235
Deployability attribute, 129, 187
Deployers, 54
Deployment models for cloud, 506
Deployment structure, 14
Deployment views
ATAM presentations, 406
combining, 345
purpose, 332
Depth first ADD strategy, 319
Design and design strategy, 311
ADD. See Attribute-Driven Design (ADD) method
architecturally significant requirements, 311–312
in code, 364
generate and test process, 313–316
next hypotheses, 315
quality attributes, 197
summary, 325
test choices, 315
Design checklists
design strategy hypotheses, 315
quality attributes, 199
summary, 183
Designers
description and interests, 54
Detect attacks tactics, 151
Detect intrusion tactic, 151
Detect message delay tactic, 151
Detect service denial tactic, 151
Deutsche Bank, 480
Developers
edge-dominant systems, 529
roles, 422
Development
incremental, 428
project life-cycle context, 44–45
tests, 374
Development distributability attribute, 186
Deviation
failure from, 80
measuring, 429
Devices in ADD method, 317
DiNucci, Darcy, 527
dir_contains_dir relationship, 384
dir_contains_file relationship, 384
Directed system of systems, 106
Directories in documentation, 349
DiscoTect system, 391
Discover service tactic, 111
Discovery in interoperability, 105
Discovery services, 533
Distributed computing, 221
Distributed development, 427
Distributed testing in Metropolis model, 535
DMZs (demilitarized zones), 152
DNS (domain name server), 514
Doctor Monkey, 161
Agile development projects, 356–357
architect duties, 462
architectural structures, 17–18
changing architectures, 355–356
distributed development, 427
global development, 426
online, 350
and quality attributes, 354–355
services, 533
summary, 359
uses and audiences for, 328–329
views. See Views
YAGNI, 282
Documents, control information, 347
Domain decomposition, 315
Domain knowledge of architects, 467
Domain name server (DNS), 514
Drivers
Lightweight Architecture Evaluation, 416
PALM method, 305
QAW, 295
DSK (Duties, Skills, and Knowledge) model of competence, 476
Duke’s Bank application, 391–392
Duties
competence, 472
professional context, 51
Duties, Skills, and Knowledge (DSK) model of competence, 476
Dynamic allocation views, 340
Dynamic analysis with fault trees, 83
Dynamic priority scheduling strategies, 140–141
Dynamic structures, 5
Dynamic system information, 385–386
Earliest-deadline-first scheduling strategy, 141
Earth Observing System Data Information System (EOSDIS) Core System (ECS). See NASA ECS project
eBay, 234
EC2 cloud service, 81, 160, 522, 532
Eclipse platform, 228
benefit and normalization, 441–442
CBAM. See Cost Benefit Analysis Method (CBAM)
cost value, 442
decision-making context, 438–439
introduction, 437
scenario weighting, 441
side effects, 441
summary, 457
utility-response curves, 439–441
Economics
issues, 543
Economies of scale in cloud, 507–508
ECS system. See NASA ECS project
Edge-dominant systems, 528–530
Edison, Thomas, 203
eDonkey networks, 221
Education, documentation as, 328–329
Effective resource utilization, 187
Effectiveness category for quality, 189
Efficiency category for quality, 189–190
Einstein, Albert, 175
EJB (Enterprise Java Beans), 212
Elasticity property, 187
Electric grids, 106
Electronic communication in global development, 426
Elements
broker pattern, 211
client-server pattern, 218
component-and-connector views, 337
defined, 5
layered pattern, 207
map-reduce patterns, 235
mapping, 75
Model-View-Controller pattern, 213
modular views, 333
multi-tier pattern, 237
peer-to-peer pattern, 222
pipe-and-filter pattern, 216
product reuse, 484
publish-subscribe pattern, 227
service-oriented architecture pattern, 225
shared-data pattern, 231
Employees
as goal-object, 302
responsibilities to, 299
Enabling quality attributes, 26–27
Encapsulation tactic, 123
Encrypt data tactic, 152
End users in edge-dominant systems, 529
Enterprise architecture vs. system architecture, 7–8
Enterprise Java Beans (EJB), 212
Enterprise resource planning (ERP) systems, 228
Enterprise service bus (ESB), 223, 225, 369
Environment
ADD method, 317
business goals, 300
performance, 134
quality attributes expressions, 68–70
usability, 176
variability, 489
Environmental change as business goal, 299
ERP (enterprise resource planning) systems, 228
Errors, 80
core handling of, 532
detection by services, 533
error-handling views, 341
in usability, 175
ESB (enterprise service bus), 223, 225, 369
Escalating restart tactic, 94
Estimates, cost and schedule, 34
ATAM. See Architecture Tradeoff Analysis Method (ATAM)
Lightweight Architecture Evaluation, 415–417
outsider analysis, 399
questions, 472
software product lines, 493–494
summary, 417
Evaluators, 54
Event bus in publish-subscribe pattern, 227
Events
Model-View-Controller pattern, 214
probability, 257
Eventual consistency model, 168, 523
Evolutionary prototyping, 33–34
Evolving software product lines, 496–497
Exception detection tactic, 90
Exception handling tactic, 92
Exception prevention tactic, 95
Exception views, 341
Exchanging information via interfaces, 104–105
EXCLUSIVE OR gate symbol, 84
Executable assertions for system state, 166
Execution of tests, 374
Exemplar systems, 485
Exercise conclusion in PALM method, 305
Existing systems in design, 314
Expected quality attribute response levels, 453
Experience of architects, 51–52
Experiments in quality attribute modeling, 264–265
Expressing business goals, 299–301
Extensibility quality attribute, 307
Extensible programming environments, 228
Extension points for variation, 491
External sources for product lines, 496
External system representatives, 55
External systems in ADD method, 317
Externalizing change, 125
Extract-transform-load functions, 235
Extreme Programming development methodology, 44
map-reduce patterns, 234
users, 518
Fail fast principle, 522
Failure Mode, Effects, and Criticality Analysis (FMECA), 83–84
Failures, 80
availability. See Availability
probabilities and effects, 84–85
Fallbacks principle, 522
Faults, 80
correlation logic, 81
Feature removal principle, 522
FIFO (first-in/first-out) queues, 140
File system managers, 516
Filters in pipe-and-filter pattern, 215–217
Financial objectives as business goal, 298
Fire-and-forget information exchange, 223
Firefox, 531
First-in/first-out (FIFO) queues, 140
First principles from tactics, 72
Fixed-priority scheduling, 140
Flex software development kit, 215
Flexibility
defer binding tactic, 124
independently developed components for, 36
Flight control software, 192–193
FMECA (Failure Mode, Effects, and Criticality Analysis), 83–84
Focus on architecture in Metropolis model, 534–535
Follow-up phase in ATAM, 403–404
Folsonomy, 528
Ford, Henry, 479
Formal documentation notations, 330
Frameworks
design strategy hypotheses, 314–315
Frankl, Viktor E., 63
Freedom from risk category for quality, 189
Functional redundancy tactic, 90
Functional requirements, 64, 66
Functional responsibility in ADD method, 322–323
Functional suitability quality attribute, 193
Functionality
component-and-connector views, 336
description, 65
Gamma, E., 212
General Motors product line, 487
Generalization structure, 13
Generate and test process, 313–316
Generators of variation, 492
Get method for system state, 165
Gnutella networks, 221
Goal components in business goals, 300
Goals. See Business goals
Goldberg, Rube, 102
Good enough vs. perfect, 398
database system, 518
Google App Engine, 517
map-reduce patterns, 234
power sources, 507
Government, responsibilities to, 299
Graceful degradation, 522
Graphical user interfaces in publish-subscribe pattern, 228
Gray-box testing, 373
Greenspan, Alan, 443
Growth and continuity as business goal, 298
Hadoop Distributed File System (HDFS), 512
Hardware costs for cloud, 507
Harel, David, 353
Harnesses for tests, 374
Hazard analysis, 82
Hazardous failures, 82
HBase database system, 518–519
HDFS (Hadoop Distributed File System), 512
Heartbeat tactic, 89, 256, 408
Helm, R., 212
Hewlett-Packard, 480
Hiatus stage in ATAM, 409
High availability. See Availability
Highway systems, 142
Horizontal scalability, 187
Hot spare tactic, 91
HTTP (HyperText Transfer Protocol), 219
Hudson tool, 172
Hufstedler, Shirley, 363
Human body structure, 9
Human Performance model of competence, 476
Human Performance Technology model, 469–473
Human resource management in global development, 425
Hybrid clouds, 506
Hydroelectric power station catastrophe, 188, 192
Hypertext for documentation, 350
HyperText Transfer Protocol (HTTP), 219
Hypotheses
conformance, 390
fused views, 388
IaaS (Infrastructure as a Service) model, 505–506, 515–517
Identify actors tactic, 152
Ignore faulty behavior tactic, 93
architect duties, 463
code and architecture consistency, 366–368
design in code, 364
incremental development, 428
structure, 14
summary, 376
tradeoffs, 427
Implementors, 55
In-service software upgrade (ISSU), 92
Includes relationship, 384
Inclusion of elements for variation, 491
Increase cohesion tactic, 123
Increase competence set tactic, 95
Increase efficiency tactic, 142
Increase resource efficiency tactic, 138
Increase resources tactic, 138–139, 142
Increase semantic coherence tactic, 123, 239
Incremental Commitment Model, 286
Incremental development, 428
Incremental integration, 371
Incremental models in adoption strategies, 495–496
Independent events in probability, 257
Independently developed components, 35–36
Inflexibility of methods, 277
Inform actors tactic, 153
Informal contacts in global development, 426
Informal notations for documentation, 330
Information handling skills, 465
Information sharing in cloud, 520
Infrastructure as a Service (IaaS) model, 505–506, 515–517
Infrastructure in map-reduce patterns, 235
Infrastructure labor costs in cloud, 507
Inheritance variation mechanism, 492
Inherits from relation, 13
INHIBIT gate symbol, 84
Inhibiting quality attributes, 26–27
Initial hypotheses in design strategy, 314–315
Inputs in ADD method, 316, 321–323
Instantiate relation, 235
Integration management in global development, 424
Integrators, 55
Integrity
architecture, 189
CIA approach, 147
Interchangeable parts, 35–36, 480
Interfaces
exchanging information via, 104–105
separating, 178
Intermediary tactic, 123
Intermediate states in failures, 80
Internal sources of product lines, 496–497
Internet Protocol (IP) addresses
automatic reallocation, 516
overview, 514
Interoperability
analytic model space, 259
service-oriented architecture pattern, 224
summary, 115
Interpersonal skills, 465
Interpolation in CBAM, 446
Interviewing stakeholders, 294–296
Introduce concurrency tactic, 139
Invokes-services role, 335
IP (Internet Protocol) addresses
automatic reallocation, 516
overview, 514
Is-a-submodule-of relation, 12
Is an instance of relation, 13
Is part of relation
multi-tier pattern, 237
ISO 25010 standard, 66, 193–195
ISSU (in-service software upgrade), 92
Iterative approach
description, 44
reconstruction, 382
requirements, 56
Janitor Monkey, 161
JavaScript Object Notation (JSON) form, 519
Jitter, 134
Jobs, Steve, 311
Johnson, R., 212
JSON (JavaScript Object Notation) form, 519
Just Enough Architecture (Fairbanks), 279, 364
Keys in map-reduce pattern, 232
Knowledge
professional context, 51
Kroc, Ray, 291
Kruchten, Philippe, 327
KSLOC (thousands of source lines of code), 279–281
Kundra, Vivek, 503
Labor availability in global development, 423
Labor costs
cloud, 507
global development, 423
Language, 542
Larger data sets in map-reduce patterns, 234
Latency
CAP theorem, 523
utility trees for, 306
Latency Monkey, 161
Lattix tool, 387
Lawrence Livermore National Laboratory, 71
Layer bridging, 206
Layer structures, 13
Layer views in ATAM presentations, 406
Leaders on ATAM teams, 401
Learning issues in usability, 175
Least-slack-first scheduling strategy, 141
LePatner, Barry, 3
Letterman, David, 443
Levels
failure, 258
restart, 94
Leveson, Nancy, 200
Lexical analyzers, 386
Life cycle
Metropolis model, 537
project. See Project life-cycle context
quality attribute analysis, 265–266
Life-cycle milestones, syncing at, 368
Lightweight Architecture Evaluation method, 415–417
Likelihood of change, 117
Limit access tactic, 152
Limit complexity tactic, 167
Limit event response tactic, 137
Limit exposure tactic, 152
Limit structural complexity tactic, 167–168
Linux, 531
List-based publish-subscribe pattern, 229
Load balancers, 139
Local knowledge of markets in global development, 423
Localize state storage for testability, 165
Locate tactic, 111
Location independence, 504
Lock computer tactic, 153
Logical threads in concurrency, 13–14
Macros for testability, 167
Mailing lists in publish-subscribe pattern, 228
Maintain multiple copies tactic, 142
Maintain multiple copies of computations tactic, 139
Maintain multiple copies of data tactic, 139
Maintain system model tactic, 180
Maintain task model tactic, 180
Maintain user model tactic, 180
Maintainability quality attribute, 195, 307
Maintainers, 55
Major failures, 82
Manage event rate tactic, 142
Manage resources tactic, 137–139
Manage sampling rate tactic
performance, 137
quality attributes, 72
architect skills, 464
introduction, 419
summary, 432
Management information in modules, 334
Managers, communication with, 29
Managing interfaces tactic, 111
Manifesto for Agile software development, 276
Map architectural strategies in CBAM, 446
Mapping
to source code units, 334
Mapping among architectural elements category
ASRs, 293
availability, 97
interoperability, 114
modifiability, 127
performance, 144
quality design decisions, 75
security, 155
testability, 169
usability, 182
Market position as business goal, 299
Marketability category for quality, 190
Markov analysis, 83
Matrixed team members, 422
McGregor, John, 448
Mean time between failures (MTBF), 80, 255–259
Mean time to repair (MTTR), 80, 255–259
Measured services, 505
Meetings
global development, 426
progress tracking, 428
Methods in product reuse, 484
Metropolis structure
edge-dominant systems, 528–530
Microsoft Azure, 517
Migrates-to relation, 14
Mill, John Stuart, 527
Minimal cut sets, 83
Minor failures, 82
Missile defense system, 104
Missile warning system, 192
Mixed initiative in usability, 177
Mobility attribute, 187
Model driven development, 45
Model-View-Controller (MVC) pattern
user interface, 178
Models
product reuse, 484
transferable and reusable, 35
analytic model space, 259
component-and-connector views, 337
managing, 27
ping/echo, 243
restrict dependencies tactic, 246
scheduling policy tactic, 244–245
summary, 128
and time-to-market, 284
unit testing, 371
in usability, 179
Modularity of core, 532
Modules and module patterns, 10, 205–210
coupling, 121
decomposition structures, 5
MongoDB database, 519
Monitor relation in map-reduce patterns, 235
Monitorability attribute, 188
MoSCoW style, 292
MSMQ product, 224
MTBF (mean time between failures), 80, 255–259
MTTR (mean time to repair), 80, 255–259
Multi-tenancy
description, 505
Multi-tier patterns, 19, 235–237
MVC (Model-View-Controller) pattern
user interface, 178
Mythical Man-Month (Brooks), 47
Names for modules, 333
NASA ECS project, 451
architectural strategies, 452–456
assign utility, 452
collate scenarios, 451
expected quality attribute response level, 453
prioritizing scenarios, 452
Nation as goal-object, 302
National Reconnaissance Office, 481
.NET platform, 212
Netflix
cloud, 522
Network administrators, 55
Networked services, 36
Networks, cloud, 514
Nightingale application, 306–307
No effect failures, 82
Node managers, 516
Nokia, 480
Non-stop forwarding (NSF) tactic, 94
Nondeterminism in testability, 168
Nonlocal changes, 27
Nonrepudiation in CIA approach, 148
Nonrisks in ATAM, 402
Normalization
databases, 520
NoSQL database systems, 518–520, 523
NoSQL movement, 248
Notations
component-and-connector views, 338–339
Notifications
failures, 80
Model-View-Controller pattern, 214
NSF (non-stop forwarding) tactic, 94
Number of events not processed measurement, 134
Object-oriented systems
in testability, 167
use cases, 46
Objects in sequence diagrams, 352
Observability of failures, 80
Observe system state tactics, 164–167
Off-the-shelf components, 36
Omissions
availability faults from, 85
for variation, 491
On-demand self-service, 504
1+1 redundancy tactic, 91
Online documentation, 350
OPC (Order Processing Center) component, 224, 226
Open content systems, 529
Open Group
certification program, 477
governance responsibilities, 430–431
Operation Desert Storm, 104
OR gate symbol, 84
Orchestrate tactic, 111
Orchestration servers, 223, 225
Order Processing Center (OPC) component, 224, 226
Organization
project manager and software architect responsibilities, 422–423
software development teams, 422
Organizational Coordination model, 470, 473, 476
Organizational Learning model, 470, 474, 476
Organizations
activities for success, 468
architect skills, 464
architecture influence on, 33
as goal-object, 302
security processes, 157
structural strategies for products, 497
Outages. See Availability
Outputs
Outsider analysis, 399
Overlay views, 343
Overloading for variation, 491
Overview presentations in PALM method, 305
P2P (peer-to-peer) pattern, 220–222
PaaS (Platform as a Service) model, 505, 517
PALM (Pedigreed Attribute eLicitation Method), 304–305
Parameter fence tactic, 90
Parameter typing tactic, 90
Parameters for variation mechanism, 492
Parser tool, 386
Partitioning CAP theorem, 523
Partnership and preparation phase in ATAM, 403–404
Passive redundancy, 91–92, 256–259
component-and-connector. See Component-and-connector (C&C) patterns and structures
Paulish, Dan, 420
Pause/resume command, 179
Payment Card Industry (PCI), 260
PDF (probability density function), 255
PDM (platform-definition model), 45
Pedigree and value component of business goals, 301
Pedigreed Attribute eLicitation Method (PALM), 304–305
Peer nodes, 220
Peer-to-peer (P2P) pattern, 220–222
Penalties in Incremental Commitment Model, 286
People
managing, 464
in product reuse, 485
Perfect vs. good enough, 398
analytic model space, 259
broker pattern, 241
cloud, 521
component-and-connector views, 336
control resource demand tactics, 137–138
manage resources tactics, 138–139
map-reduce pattern, 232
ping/echo, 243
and quality, 191
quality attributes tactics, 72
summary, 145
views, 341
Performance quality attribute, 307
Performance efficiency quality attribute, 193
Periodic events, 133
Periphery
Metropolis model, 535
requirements, 532
Persistent object managers, 515–516
Personal objectives as business goal, 298
Personnel availability in ADD method, 320
Petrov, Stanislav Yevgrafovich, 192
Phases
metrics, 430
Metropolis model, 534
Philips product lines, 480–481, 487
Physical security, 191
PIM (platform-independent model), 45
Pipe-and-filter pattern, 215–217
Planned increments, 530
Planning
incremental development, 428
tests, 374
Platform as a Service (PaaS) model, 505, 517
Platform-definition model (PDM), 45
Platform-independent model (PIM), 45
Platforms
architect knowledge about, 467
frameworks in, 365
Plug-in architectures, 34
PMBOK (Project Management Body of Knowledge), 423–425
Pointers, smart, 95
Policies, scheduling, 140
Pooling resources, 504
Portability quality attributes, 67, 186, 195
Portfolio as goal-object, 302
Ports in component-and-connector views, 335, 337–338
Potential alternatives, 398
Potential problems, peer review for, 399
Potential quality attributes, 305
Power station catastrophe, 188, 192
Predicting system qualities, 28
Predictive model tactic, 95
Preemptible processes, 141
Preparation-and-repair tactic, 91–93
Preprocessor macros, 167
Presentation
documentation, 346
Lightweight Architecture Evaluation, 416
PALM method, 305
QAW, 295
Primary presentations in documentation, 346
Principles
cloud failures, 522
design fragments from, 72
Incremental Commitment Model, 286
Prioritize events tactic, 137–138, 142
Prioritizing
ATAM scenarios, 410
CBAM weighting, 444
Lightweight Architecture Evaluation scenarios, 416
NASA ECS project scenarios, 452
risk, 429
views, 343
PRIORITY AND gate symbol, 84
Private clouds, 506
Private IP addresses, 514
Proactive enforcement in Metropolis model, 535
Proactive product line models, 495
Probability density function (PDF), 255
Probability for availability, 256–259
Problem relationships in patterns, 204–205
Proceedings scribes, 401
Processes
product reuse, 484
recommendations, 20
security, 157
Processing time in performance, 136
Procurement management, 425
Product-line managers, 55
Product lines. See Software product lines
Product manager roles, 422
Professional context, 51–52, 58
Profiler tools, 386
Programming knowledge of architects, 466
Project context, 57
architecturally significant requirements, 46–47
architecture analysis and evaluation, 47–48
architecture documentation and communication, 47
architecture selection, 47
business cases, 46
implementation conformance, 48
Project Management Body of Knowledge (PMBOK), 423–425
Project managers
description and interests, 55
Project planning artifacts in product reuse, 484
Propagation costs of change, 288
Prosumers in edge-dominant systems, 529
Protection groups, 91
Prototypes
quality attribute modeling and analysis, 264–265
for requirements, 47
Provides-services role, 335
Public clouds, 506
Public IP addresses, 514
Publicly available apps, 36
Publish-subscribe connector, 336
Publish-subscribe pattern, 226–229
Publisher role, 336
QAW (Quality Attribute Workshop), 294–296
Qt framework, 215
Quality attribute modeling and analysis, 251–252
availability analysis, 255–259
experiments, simulations, and prototypes, 264–265
thought experiments and back-of-the-envelope analysis, 262–264
Quality Attribute Workshop (QAW), 294–296
Quality attributes, 185
ATAM, 407
design approaches, 197
grand unified theory, 261
inhibiting and enabling, 26–27
Lightweight Architecture Evaluation, 416
NASA ECS project, 453
peer review, 398
quality design decisions, 72–76
Quality design decisions, 72–73
allocation of responsibilities, 73
data models, 74
element mapping, 75
technology choices, 76
Quality management in global development, 424
Quality of products as business goal, 299
Quality requirements, mapping decisions to, 402–403
Questioners on ATAM teams, 401
Questions for organizational competence, 470, 472–474
Queue sizes tactic, 139
Queuing models for performance, 198–199, 252–255
Quick Test Pro tool, 172
Race conditions, 133
Random access in equipment utilization, 508
Rate monotonic prioritization strategy, 140
Rational Unified Process, 44
Rationale in documentation, 347, 349
Raw view extraction in reconstruction, 382–386
RDBMSs (relational database management systems), 518
React to attacks tactics, 153
Reactive enforcement in Metropolis model, 536
Reactive product line models, 495
Reader role in component-and-connector views, 335
Reconfiguration tactic, 93
Reconstruction and conformance, 380–381
database construction, 386–387
Record/playback method for system state, 165
Recover from attacks tactics, 153–154
Recover-from-faults tactics, 91–94
Reduce computational overhead tactic, 142
Reduce function in map-reduce pattern, 232–235
Reduce overhead tactic, 138
Redundancy tactics, 90, 256–259
Refactor tactic, 124
Refined scenarios
QAW, 296
Reflection for variation, 491
Reflection pattern, 262
Registry of services, 225
Regression testing, 372
Reintroduction tactics, 91, 93–94
Rejuvenation tactic, 95
Relational database management systems (RDBMSs), 518
Relations
architectural structures, 14, 16–17
broker pattern, 211
client-server pattern, 218
component-and-connector views, 337
conformance, 390
in documentation, 346
layered pattern, 207
map-reduce patterns, 235
Model-View-Controller pattern, 213
modular views, 333
multi-tier pattern, 237
peer-to-peer pattern, 222
pipe-and-filter pattern, 216
publish-subscribe pattern, 227
service-oriented architecture pattern, 225
shared-data pattern, 231
view extraction, 384
Release strategy for documentation, 350
Reliability
cloud, 507
component-and-connector views, 336
core, 532
independently developed components for, 36
vs. safety, 188
SOAP, 109
views, 341
Reliability quality attribute, 195
Remote procedure call (RPC) model, 109
Removal from service tactic, 94–95
Replicated elements in variation, 491
Replication tactic, 90
Report method for system state, 165
Reporting tests, 374
Repository patterns, 19
Representation of architecture, 6
Representational State Transfer (REST), 108–110, 223–225
Reputation of products as business goal, 299
Request/reply connectors
client-server pattern, 218
peer-to-peer pattern, 222
ASRs. See Architecturally significant requirements (ASRs)
from goals, 49
Metropolis model, 534
product reuse, 483
prototypes for, 47
software development life cycle changes, 530
tying methods together, 308
Requirements documents
Waterfall model, 56
Reset method for system state, 165
Resisting attacks tactics, 152–153
RESL scale factor, 279
Resource management category
ASRs, 293
availability, 97
interoperability, 115
modifiability, 127
performance, 144
quality design decisions, 74–75
security, 155
software development life cycle changes, 530
testability, 170
usability, 182
Resources
component-and-connector views, 336
equipment utilization, 508
pooling, 504
sandboxing, 166
software development life cycle changes, 530
Response
interoperability, 105, 107–108
performance, 134
quality attributes expressions, 68–70
usability, 176
variability, 489
Response measure
performance, 134
quality attributes expressions, 68–70
usability, 176
variability, 489
Responsibilities
as business goal, 299
modules, 333
quality design decisions, 73
REST (Representational State Transfer), 108–110, 223–225
Restart tactic, 94
Restrict dependencies tactic, 124, 239, 246–247
Restrictions on vocabulary, 36
Results
ATAM, 411
evaluation, 400
Lightweight Architecture Evaluation, 416
Retry tactic, 93
Reusable models, 35
Reuse of software architecture, 479, 483–486
Reviews
Revision history of modules, 334
Revoke access tactic, 153
Rework in agility, 279
Risk
ADD method, 320
ATAM, 402
global development, 425
progress tracking, 429
Robustness of core, 532
Roles
component-and-connector views, 335
product line architecture, 488–490
software development teams, 422
Rollback tactic, 92
Round-robin scheduling strategy, 140–141
Rozanski, Nick, 170
RPC (remote procedure call) model, 109
Runtime conditionals, 492
Rutan, Burt, 159
SaaS (Software as a Service) model, 505
Safety
use cases, 46
Safety attribute, 188
Safety Integrity Level, 268
Salesforce.com, 509
Sample technologies in cloud, 514–520
Sampling rate tactic, 137
Sanity checking tactic, 89
Satisfaction in usability, 175
Saxe, John Godfrey, 379
Scalability
kinds, 187
peer-to-peer systems, 220
WebArrow web-conferencing system, 285
Scalability attribute, 187
Scaling, automatic, 516
Scenario scribes, 401
Lightweight Architecture Evaluation, 416
quality attributes, 67–70, 196–197
for structures, 12
usability, 176
Schedule resources tactic
performance, 139
quality attributes, 72
Scheduled downtimes, 81
Schedulers, hypervisor, 512
Schedules
deviation measurements, 429
estimates, 34
top-down and bottom-up, 420–421
Schemas, database, 519
Scope and summary section in documentation maps, 347
Scrum development methodology, 44
SDL (Specification and Description Language), 354
analytic model space, 259
broker pattern, 242
component-and-connector views, 336
ping/echo, 243
quality attributes checklists, 260
summary, 156
views, 341
Security Monkey, 161
Security quality attribute, 195, 307
SEI (Software Engineering Institute), 59
Selecting
architecture, 47
tools and technology, 463
Selenium tool, 172
Self-organization in Agile, 277
Self-test tactic, 91
Semantic coherence, 178
Semantic importance, 140
Semiformal documentation notations, 330
Sensitivity points in ATAM, 403
Separate entities tactic, 153
Separation of concerns in testability, 167
Sequence diagrams
thought experiments, 263
Servers
client-server pattern, 217–219
Service consumer components, 222, 225
Service discovery in SOAP, 108
Service impact of faults, 81
Service-level agreements (SLAs)
availability in, 81
IaaS, 506
PaaS, 505
SOA, 222
Service-oriented architecture (SOA) pattern, 222–226
Service registry, 223
Service structure, 13
Services for platforms, 532–533
Set method for system state, 165
Shadow tactic, 93
Shared-data patterns, 19, 230–231
Shared documents in documentation, 350
Shareholders, responsibilities to, 299
Siberian hydroelectric plant catastrophe, 188, 192
Siddhartha, Gautama, 251
Side-channel attacks, 521
Side effects in economic analysis, 439, 441
Size
modules, 121
queue, 139
Skeletal systems, 34
Skeletal view of human body, 9
Skills
global development, 423
professional context, 51
SLAs. See Service-level agreements (SLAs)
Small victories, 544
Smart pointers, 95
SOA (service-oriented architecture) pattern, 222–226
SOAP
Social networks in publish-subscribe pattern, 229
Socializing in Incremental Commitment Model, 286
Society
as goal-object, 302
service to, 299
Software architecture importance, 25–26
cost and schedule estimates, 34
evolutionary prototyping, 33–34
independently developed components, 35–36
organizational structure, 33
stakeholder communication, 29–31
summary, 37
system qualities prediction, 28
training basis, 37
transferable, reusable models, 35
vocabulary restrictions, 36
Software architecture overview, 3–4. See also Architecture
contexts. See Contexts
definitions, 4
selecting, 7
as set of software structures, 4–5
system architecture vs. enterprise, 7–8
Software as a Service (SaaS) model, 505
Software Engineering Body of Knowledge (SWEBOK), 292
Software Engineering Institute (SEI), 59, 479
Software Product Line Conference (SPLC), 498
Software Product Line Hall of Fame, 498
organizational structure, 497
quality attribute of variability, 488
Software quality attributes, 190–193
Software rejuvenation tactic, 95
Software upgrade tactic, 92–93
Solutions in relationships, 204–205
Sorting in map-reduce pattern, 232
SoS (system of systems), 106
Source code
mapping to, 334
Source in security scenario, 150
performance, 134
quality attributes expressions, 68–70
security, 148
usability, 176
variability, 489
Specialized interfaces tactic, 165
Specification and Description Language (SDL), 354
SPLC (Software Product Line Conference), 498
Split module tactic, 123
Sporadic events, 133
Spring framework, 166
Staging views, 343
Stakeholders
on ATAM teams, 401
communication among, 29–31, 329
evaluation process, 400
for methods, 272
utility tree reviews, 306
views, 342
Standard lists for quality attributes, 193–196
Standards and interoperability, 112–113
State machine diagrams, 353
State resynchronization tactic, 93
Stateless services in cloud, 522
States, responsibilities to, 299
Static allocation views, 340
Static scheduling, 141
Status meetings, 428
Stein, Gertrude, 142
Steinberg, Saul, 39
Stimulus
performance, 134
quality attributes expressions, 68–70
source. See Source of stimulus
usability, 176
variability, 489
Stochastic events, 133
Stonebraker, Michael, 518
Storage
for testability, 165
Strategies in NASA ECS project, 452–456
Strictly layered patterns, 19
Structural complexity in testability, 167–168
Structure101 tool, 387
Stuxnet virus, 80
Subarchitecture in component-and-connector views, 335
Submodules, 333
Subscriber role, 336
Subsystems, 9
Supernodes in peer-to-peer pattern, 220
Support and development software, 358–359
Support system initiative tactic, 180–181
Support user initiative tactic, 179–180
SWEBOK (Software Engineering Body of Knowledge), 292
Swing classes, 215
Syncing code and architecture, 368
System analysis and construction, documentation for, 329
System architecture vs. enterprise architecture, 7–8
System as goal-object, 302
System availability requirements, 81
System efficiency in usability, 175
System engineers, 55
System exceptions tactic, 90
System Generation Module, 358
System initiative in usability, 177
System of systems (SoS), 106
System overview in documentation, 349
System qualities, predicting, 28
System quality attributes, 190–193
System test manager roles, 422
System testing, 371
patterns relationships with, 238–242
quality attributes, 70–72, 198–199
Tailor interface tactic, 111
Team building skills, 463, 465
Team leader roles, 422
TeamCity tool, 172
Teams
organizing, 422
Technical contexts
architecture influence, 57
Technical debt, 286
Technical processes in security, 157
Technology choices, 76
Technology knowledge of architects, 467
Templates
ATAM, 406
scenarios. See Scenarios
variation mechanism, 492
10-18 Monkey, 161
Terminating generate and test process, 316
Test harnesses, 160
analytic model space, 259
broker pattern, 241
summary, 172
Testable requirements, 292
TestComplete tool, 172
Testers, 55
Tests and testing
black-box and white-box, 372–373
choices, 315
in incremental development, 428
modules, 334
product reuse, 484
summary, 376
Therac-25 fatal overdose, 192
Thousands of source lines of code (KSLOC), 279–281
Threads in concurrency, 132–133
Throughput of systems, 134
Tiers
component-and-connector views, 337
Time and time management
basis sets, 261
global development, 424
performance, 131
Time boxing, 264
Time of day factor in equipment utilization, 508
Time of year factor in equipment utilization, 508
Time-sharing, 503
Time stamp tactic, 89
Time to market
independently developed components for, 36
and modifiability, 284
Timeout tactic, 91
Timing in availability, 85
TMR (triple modular redundancy), 89
Tools
for product reuse, 484
selecting, 463
Top-down adoption, 495
Top-down analysis mode, 284
Topic-based publish-subscribe patterns, 229
Topological constraints, 236
Torvalds, Linus, 530, 535, 538
Total benefit in CBAM, 446
Traces for behavior documentation, 351–353
Tradeoffs
ATAM, 403
implementation, 427
Traffic systems, 142
Training, architecture for, 37
Transactions
availability, 95
SOAP, 108
Transferable models, 35
Transformation systems, 215
Transforming existing systems, 462
Transitions in state machine diagrams, 354
Triple modular redundancy (TMR), 89
Troeh, Eve, 190
Twitter, 528
Two-phase commits, 95
Ubiquitous network access, 504
UDDI (Universal Description, Discovery and Integration) language, 108
UML
activity diagrams, 353
communication diagrams, 353
component-and-connector views, 338–339
connectors, 369
state machine diagrams, 353
Unambiguous requirements, 292
Uncertainty in equipment utilization, 508–509
Undo command, 179
Unified Process, 44
Unity of purpose in modules, 121
Universal Description, Discovery and Integration (UDDI) language, 108
Up-front planning vs. agility, 278–281
analytic model space, 259
general scenario, 176
introduction, 175
quality attributes checklists, 260
Usability quality attribute, 193, 307
Usage
allocation views, 339
component-and-connector views, 337
modular views, 333
Use an intermediary tactic, 245
modifiability, 123
quality attributes, 72
Use cases
ATAM presentations, 406
thought experiments, 263
for traces, 351
“User beware” proviso, 372
User initiative in usability, 177
User interface
exchanging information via, 104–105
separating, 178
User needs in usability, 175
User stories in Agile, 278
Users
communication with, 29
description and interests, 55
Uses
views for, 332
Uses relation in layered patterns, 19
Uses structure in decomposition, 12
Utility
assigning, 452
CBAM, 448
Utility-response curves, 439–443
Utility trees
Lightweight Architecture Evaluation, 416
Utilization of equipment in cloud, 508–509
Value component
business goals, 301
utility trees, 306
Value for cost (VFC), 438, 442
Variability
Variability attribute, 186
Variation
binding time, 75
software product lines, 490–493
Variation points
identifying, 490
Vascular view of human body, 9
Vehicle cruise control systems, 353
Verify and refine requirements in ADD, 321–323
Verify message integrity tactic, 151
Vertical scalability, 187
VFC (value for cost), 438, 442
architectural structures, 9–10
component-and-connector, 335–339, 344, 406
Model-View-Controller pattern, 213–214
Views and Beyond approach, 282, 356–357
Villa, Pancho, 541
Virtual resource managers, 515
Virtual system of systems, 106
Virtualization and virtual machines
layers as, 13
in sandboxing, 166
Visibility of interfaces, 333
Vitruvius, 459
Vlissides, J., 212
Vocabulary
quality attributes, 67
restrictions, 36
Voting tactic, 89
Vulnerabilities in security views, 341
Walking skeleton method, 287
Watchdogs, 89
Waterfall model
description, 44
requirements documents, 56
Weaknesses
client-server pattern, 218
layered pattern, 207
map-reduce patterns, 235
Model-View-Controller pattern, 213
multi-tier pattern, 237
peer-to-peer pattern, 222
pipe-and-filter pattern, 216
publish-subscribe pattern, 227
service-oriented architecture pattern, 225
shared-data pattern, 231
Wealth of Networks (Benkler), 528
Web 2.0 movement, 527
Web-based system events, 131
Web-conferencing systems
considerations, 265
Web Services Description Language (WSDL), 110
WebArrow web-conferencing system, 284–285
WebSphere MQ product, 224
Wells, H. G., 117
West, Mae, 131
“What if” questions in performance analysis, 255
Wikipedia, 528
Wikis for documentation, 350
Wisdom of crowds, 537
Work assignment structures, 14
Work-breakdown structures, 33
Work skills of architect, 465
World Wide Web as client-server pattern, 219
Wrappers, 129
Writer role in component-and-connector views, 335
WSDL (Web Services Description Language), 110
X-ray view of human body, 9
YAGNI principle, 282
Yahoo! map-reduce patterns, 234
Young, Toby, 39
YouTube, 528
Zoning policies analogy in Metropolis model, 536