Note: Italicized page locators indicate figures/tables.
4+1 approach, 404, 406–408, 408, 429
A-7E avionics system, 71–73, 72, 96, 96, 122
Abstract component in AADL, 474
Abstract machines, 99
layered style, 90
Abstractions for connectors, 137–138, 138
Access dependencies in layered style, 95
Accuracy as documentation need, 323
Acme language, 153
Acronyms
in directories, 355
list of, 487–489
overuse, 37
ACSPP (architecture-centered software project planning), 397
Active design reviews, 380–382
Active Reviews for Intermediate Designs (ARID), 396
behavior documentation, 300–302, 301
Actors
element use by, 262–263
use case diagrams, 458
Ada packages, 30
Adventure Builder system
activity diagram, 301
C&C view, 230
decomposition style example, 69
interface documentation, 285
state machine diagrams, 305
uses style example, 79
Advice for question sets, 384
Affected artifacts, 241
Aggregation relations in data model style, 111, 113
Agile Alliance, 429–430
Agile environment
Views and Beyond approach in, 20, 415–418, 418
Akerman, Art, 239, 246, 247, 260, 513
Alexander, Christopher, 34, 338, 355
All-view (AV) in DoDAF, 419–421, 420
Allocated-to relations
allocation style, 191
install style, 199
SysML module view, 470
work assignment style, 203
deployment. See Deployment style
elements and relations, 191
miscellaneous, 206–209
application builders, 320–321, 321
designers of other systems, 319–320, 319
development teams, 317–318, 317
DoDAF, 426
future architects, 325–326, 325
infrastructure support personnel, 324–325, 324
project managers, 316–317, 317
testers and integrators, 318–319, 318
Allowed-to-use relations
layered style, 87–90, 92–93, 92
module views, 57
UML module views, 434
uses style, 79
Alternative frames in sequence diagrams, 298
Alternatives in architectural decisions, 240, 242
Ambiguity
architectural documentation, 40–43
Ambler, Scott W., 117
Analysis
architecture document reviews, 380, 395
module views for, 59–60
Analysis role, layered style for, 91
Analysts
architecture documentation for, 14
documentation needs, 322–324, 324
interface documentation for, 279
Angle brackets (<< >>), 433
Anonymous instances, 438
ANSI/IEEE Std 1471-2000. See ISO/IEC 42010
Anticrises in architectural decisions, 248
Application builders’ documentation needs, 320–321, 321
Application programming interfaces (APIs), 280
Application-specific types in C&C views, 130
Approved status for architectural decisions, 249
Araujo, I., 247
ArchE tool, 85
combined views, 255–256
generalization style example, 85, 86
publish-subscribe style, 177–178, 177
Architects
allocation styles for, 325–326, 325
architecture documentation for, 15
Architectural decisions documentation
alternatives, 242
choices, 242–244
payback, 245–246
purpose, 239
templates, 239–242
Architectural frameworks in ISO/IEC 42010, 404
Architectural knowledge field, 247
Architecture Analysis and Design Language (AADL), 153, 197, 305, 312
behavior documentation, 482–484, 483
interface documentation, 484
module style, 475–477, 476–478
summary, 484–485
Architecture cartoons, 339
Architecture-centered software project planning (ACSPP), 397
Architecture description languages (ADLs)
C&C views, 139
description, 11
notations, 53
Architecture document reviews, 375
active design reviews, 380–382
example construction and conducting, 393–395
steps, 376–380
for changing architectures, 20–21
as decision making, 246–247, 247
economics, 18–19
packages, 362–369
purpose, 9–10
and quality attributes, 17–18
seven rules, 36-44
SysML, 466
terms, 10–12
uses and audiences, 12–16
Views and Beyond approach, 19–20
Architecture Expert (ArchE) tool
combined views, 255–256
generalization style example, 85, 86
publish-subscribe style, 177–178, 177
Architecture overview presentations, 364–365
Architecture patterns, 32–36
Architecture perspectives, 410–411
Architecture styles. See Styles
Architecture Tradeoff Analysis Method (ATAM), 378, 394
Architecture views. See Views
Architectures, product-line, 234
Arguments in architectural decision templates, 240, 242
Army Training Information Architecture-Migrated (ATIA-M)
decomposition style example, 69, 70
Arnold, Ken, 187
Arrows
confusion from, 41–43
UML diagrams, 300–302, 301, 440
Artifacts
architectural decision templates, 241
documents as, 11
Aspect-oriented programming (AOP), 104, 107–108, 108–109
Aspect-oriented software development (AOSD) movement, 108
Aspects style
elements, relations, and properties, 104–105
overview, 104
purpose, 105
relation to other styles, 106
UML module views, 434–435
Aspects views, combined, 255
Associations
view-to-view, 251, 353–354, 354
Assumptions in architectural decision templates, 240–242
Asynchronous calls, 42
Asynchronous communication
behavior documentation, 292
SOA style, 171
ATAM (Architecture Tradeoff Analysis Method), 378, 394
ATM banking system
client-server example, 165–166, 165
Attachment relations
client-server style, 163
peer-to-peer style, 167
pipe-and-filter style, 158
publish-subscribe style, 174
shared-data style, 179
SOA style, 171
Attack resistance in deployment style, 195
Attribute-Driven Design (ADD) method, 345–347
Audiences for architecture documentation, 12–16
Authors in architectural decisions, 248–249
Availability
deployment style, 195
documentation needs, 323
Available options for variation points, 237
Bach, Maurice, 98
Background threads, 478
Backgrounds for presentations, 369–370
Backup modes in AADL, 482
Balconies, 34
Ban decisions in architectural decisions, 248
Bandwidth in deployment style, 194
Barker, Richard, 116
Bass, Len, 5, 32, 47, 71, 122, 510
Batch sequential style, 157
Behavior Annex standard in AAL, 483
Behavior documentation, 289–290
communication types, 291–293, 292
DoDAF, 426
location, 306
notation, 293–306, 295–301, 304–305
purpose, 306–308
questions to answer, 290–291
view documentation, 340
Behavior Hiding Module in A-7E avionics system, 71, 72
Bell LaPadula framework, 482–483
Big design up front (BDUF), 415
Binding time of options for variation points, 237
Black-box testers, documentation needs, 318–319, 319
Blank sections in documentation, 44
Bloch, Joshua, 286
Boehm, B., 428
Boolean algebra, 280
Box-and-line diagrams, 40
Bridging, layer, 88
Britton, Kathryn Heninger, 14
Brooks, Frederick P., Jr., 40, 81, 147
Build-versus-buy decisions, 66
Buschmann, Frank, 33–34, 48, 187, 356
Buses in AADL, 474
Business managers, architecture documentation for, 15
Business Process Execution Language (BPEL) standard
notations, 302–303
obtaining, 311
orchestration server for, 170
Business Process Modeling Notation (BPMN), 303
C&C styles. See Component-and-connector (C&C) styles
C&C views. See Component-and-connector (C&C) views
CAFCR model, 25
Call-return connectors
peer-to-peer style, 167
SOA style, 170–171
Call-return styles, 156, 157, 161–162
client-server, 162–166
service-oriented architecture, 169–172, 172
Callbacks in layered architecture, 100
Calls procedure in C&C view, 150
Candidate view lists, 330–331
Carroll, Lewis, 352
Cataldo, M., 210
Categories
architectural decisions, 249
architecture styles, 29, 49–50
Challenged status for architectural decisions, 249
Child modules in generalization style, 82
Child view packets in context diagrams, 349
Chinese Wall framework, 483
Class diagrams in UML, 436–438, 437, 447
Class inheritance in generalization style, 84
Clements, Paul, 5, 32, 47, 71, 122, 234, 320, 396, 509
Client-server connectors in C&C views, 124
Client-server style
elements, relations, and properties, 162–164
overview, 162
purpose, 163–164
relation to other styles, 164
Cockburn, Alistair, 311, 414, 416, 430
Color in layered style, 95
Combining primary presentations and context diagrams, 347–348, 348
Combining views, 250–251
associations between views, 251
considerations, 254–255, 328–329
process, 252–254, 252–253, 331–332
Comment boxes, 225
Commercial off-the-shelf (COTS) components, 330
Common Language Runtime (CLR), 99
Communicating processes, 182–183
Communication
architectural decision payback, 246
behavior documentation, 291–293, 292
layered style for, 91
module views for, 60
SOA style, 171
Communication capacity matrices (CCMs), 211–212
Communication diagrams
behavior documentation, 299–300, 300
Competence-center style, 208
Complex connectors in C&C views, 135–136, 135
Complexity in module relations, 210–212
Component-and-connector (C&C) styles, 29, 50
communicating processes, 182–183
crosscutting issues, 182–185, 184
data flow. See Data flow styles
dynamic creation and destruction, 184
Component-and-connector (C&C) views
application builders, 321, 321
combined, 255
data flow and control flow models, 146–148
designers of other systems, 319–320, 319
DoDAF, 425–426
elements, 126–129
future architects, 325–326, 325
infrastructure support personnel, 324–325, 324
notations, 132, 133, 139–146, 140–145
primary presentations, 347
relation to other kinds of views, 148–150, 149
style specialization, 221–222
testers and integrators, 318, 319
types and instances, 129–131
Components, 29-32
in multiple views, 349
UML, 139–140
UML for C&C views, 438–443, 439–442
Composite state in state machine diagrams, 304, 457
Comprehensive models
behavior, 294
Comprises relations in architectural decisions, 250
Computational models, 155–157
client-server style, 163
peer-to-peer style, 167
pipe-and-filter style, 158
publish-subscribe style, 174
shared-data style, 179
SOA style, 172
Concept phase in architecture document reviews, 376
Concepts of operations (CONOPS) in DoDAF, 420
Conceptual data model, 110, 110
Concurrency
activity diagrams, 301–302
C&C views, 134
Concurrency views for viewpoint sets, 409, 412–413
Conditional branching in activity diagrams, 302
Conditions of applicability for variation points, 237
Configuration management, 368
Configuration parameters for interfaces, 276
Conflicts With relations in architectural decisions, 250
Conformance checkers, architecture documentation for, 15
Conformance points, 389
Connecting elements, 4–5
Connectors
C&C views, 123, 128–129, 135–138, 135
publish-subscribe style, 174
shared-data style, 179
SOA style, 170–171
UML, 142–143, 438–443, 439–442
Consistency in presentations, 370
Constants in interfaces, 274
Constrains relations in architectural decisions, 250
Constraints
allocation styles, 191
aspects style, 105
behavior documentation, 293
C&C views, 126
client-server style, 163
data model style, 111
decomposition style, 67
deployment style, 192
generalization style, 83
install style, 199
layered style, 89
model, 172
module views, 56
peer-to-peer style, 167
pipe-and-filter style, 158
publish-subscribe style, 175
sequence diagrams, 298
shared-data style, 179
style guides, 51
uses style, 75
work assignment style, 203
Construction, module views for, 59
Containment relations in install style, 199
Context diagrams, 225–226
child view packets, 349
combining primary presentations with, 347–348, 348
content, 228–229
supporting documentation, 229
view documentation, 340–343
vocabulary of view for, 226–228, 226–228
Context views, 341–343
Control flow models in C&C views, 146–148
Control information in documentation, 351–356, 354–355
Conveying risk, architectural decisions for, 246
Coordination views, 209–213
Copy-migrates-to relations in deployment style, 192–193
Costs
architectural decisions, 249
architecture documentation, 18–19
combined views, 255
CPU properties in deployment style, 193
Creates, reads, updates, or deletes data (CRUD) matrices, 118
Cripps, P., 360
Criticality in question sets, 384
Crosscuts relations
aspects style, 104–105
Crow’s foot ERD notation, 116, 116
Crystal Clear approach, 414
CSP language, 304–305
Currency in architectural documentation, 44–45
Dahl, Ole-Johan, 122
Dashofy, E. M., 5
Data accessor component in shared-data style, 179
Data-centric approach in DoDAF, 427
Data communication in behavior documentation, 292
Data elements, 4
Data entities in data model style, 111
relationships, 57, 62, 109, 110, 111, 116, 117, 118, 120
Data flow diagrams, 38–43
Data flow models in C&C views, 146–148
Data flow styles, 156–157, 157
call-return, 161–162
client-server, 162–166
event-based, 172–178, 173, 177
service-oriented architecture, 169–172, 172
Data in AADL, 474
Data integrity, 115
elements, relations, and properties, 111–113, 113–114
entities, 118–119
relationships, 57, 62, 109, 110, 111, 116, 117, 118, 120
relations to other styles, 117–118
UML module views, 435–436, 436
Data ports in AADL, 479–480
Data reading and writing connectors in shared-data style, 179
Data stores style, 207
Data transfer objects (DTOs), 98
Data Types and Constants section in interface documentation, 283
Data types in interfaces, 274, 283
Database access connectors in C&C views, 124
Database administrators, architecture documentation for, 15
Database management systems (DBMSs), 178
de Boer, R. C., 260
de Mille, Agnes, 25
Debugging, uses style for, 82
Decided status in architectural decisions, 249
Decision making, architecting as, 246–247, 247
Decisions in architectural templates, 240
Decomposition refinement, 218–219, 218–219
Decomposition relation, 66
Decomposition style, 65
elements, relations, and properties, 66–67, 67
overview, 65–66
purpose, 67
relation to other styles, 68–69
Decomposition views in combined views, 255–256, 256
Denial of service, 323
Department of Defense Architecture Framework (DoDAF), 377, 404, 419
documentation strategies, 426
and software architecture, 421
and Views and Beyond, 421–425
Dependability in client-server style, 164
Dependencies
in layered style, 95
UML module views, 433–434, 434
variation point options, 237
Dependency arrows in C&C diagrams, 447–448
Dependency structure matrices (DSMs)
layered style, 101–102, 102–103
module views, 62
Depends-on relations
modules, 49
SysML module view, 468
Depends on the correctness of relation in architecture views, 24
Deployers, architecture documentation for, 15
elements, relations, and properties, 192–194
overview, 191–192
purpose, 194–195
relation to other styles, 197
UML allocation view, 443–445, 443–445
Deployment views, 22
4+1 approach, 407
combined views, 255, 257, 257–258
Rozanski and Woods viewpoint sets, 409, 412–413
Deprecated methods, 273
DeRemer, F., 64
Descriptions, architecture, 11
Descriptive architecture documentation, 12
Descriptive completeness, 222–225, 223–225
Design approaches, documenting, 356
Design idioms, 33
Design issues for interfaces, 277
Design reviews, active, 380–382
Design Structure System, 101
Design vs. architecture, 6–9
Designers, architecture documentation for, 15
Designers of other systems, documentation needs, 319–320, 319
Detailed design, 7–8
Details in architecture document reviews, 379, 394–395
Developers, interface documentation for, 278–279
Development activities in behavior documentation, 306–307
Development phase in architecture document reviews, 377
Development teams, documentation needs, 317–318, 318
Development views in viewpoint sets, 409, 412–413
Devices in AADL, 474
Diacrises in architectural decisions, 248
Diagrams
activity. See Activity diagrams
communication, 299–300, 300, 453–454, 454
context. See Context diagrams
interaction overview, 455–456, 456
limitations, 38–43
sequence. See Sequence diagrams
state machine, 303–304, 304, 457, 458
Dickinson, Emily, 375
Dijkstra, Edsger W., 36–37, 121, 242
Directional flow in AADL, 480
Directional relationships, 41–43
Directories, 355–356
Disk capacity in deployment style, 194
Distributed computing applications, 168
Document control information, 351–356, 354–355
Documentation beyond views, 350–351
behavior documentation in rationale, 306
standard organization for, 351–356, 351, 354–355
variations, 356–357
Documentation capacity matrices (DCMs), 211–212
Documentation overview, 9–12
Documentation packages. See Packages
Documentation roadmap, 352
DoDAF. See Department of Defense Architecture Framework (DoDAF)
Downstream filters in pipe-and-filter style, 159
Drawing tools in UML, 462
Dynamic architecture, 234–235
Dynamic creation and destruction in C&C styles, 184
Dynamism and dynamic architectures, 234–235
e-Business Reference Architecture Framework, 260
E-mail communication in behavior documentation, 292
Ease of reference, organization for, 43
Eclipse UI event manager, 177
Economics in architecture documentation, 18–19
Education, architecture as, 12
Eeles, Peter, 360–361, 361, 513
Element catalogs
behavior documentation, 306
view documentation, 340
whole architecture, 356–357
Element developers, interface documentation for, 278
Element-level behavior documentation in DoDAF, 426
Element properties in styles, 52–53
Element substitution, 233, 235
Elements, 4–5
allocation styles, 191
aspects style, 104–105
C&C views, 126–129
client-server style, 162–163
data model style, 111–113
decomposition style, 66–67, 67
deployment style, 192
generalization style, 83
hierarchical, 8
install style, 199–200
interfaces, 262–263
layered style, 89
module views, 56–57
peer-to-peer style, 166–167
pipe-and-filter style, 158–159
publish-subscribe style, 174–175
shared-data style, 179
SOA style, 169–171
style guides, 50
tools for, 371
uses style, 75
in variability, 233
variation points, 236
work assignment style, 202–203
Ellipses (...), 224
Emphasis in presentations, 369
Enables relations in architectural decisions, 250
Encapsulation in module views, 58
End users, documentation needs, 322, 322
Enterprise Architect tool, 472
Enterprise service bus (ESB), 170
Entities in data model style, 118–119
Entity-relationship diagrams (ERDs)
module views, 62
Entry actions in state machine diagrams, 457
Environmental elements
allocation styles, 190–191
deployment style, 192, 196, 443
work assignment style, 203, 446
EOSDIS Core System (ECS)
view selection example, 329–332
work assignment views, 204, 204
Error handling
in interface documentation, 283–284
terms, 277–278
Error Modeling Annex in AADL, 473, 483, 484
Error state machine in AADL, 483
Evaluators, architecture documentation for, 15
Event-based styles, 156, 157, 172–178, 173, 177
Event ports in AADL, 479
Execution-migrates-to relations in deployment style, 192–193
Executive decisions in architectural decisions, 248
Existence decisions in architectural decisions, 248
Exit actions in state machine diagrams, 457
Expected answers in question sets, 383
Extends relation
AADL module style, 475
Extension, generalization style for, 84
External memory from architectural decisions, 245
Extreme Programming, 414
Failover Request/Reply connectors, 144
Fairbanks, George, 289, 513–514
Farenhorst, Rik, 246, 260, 514
Fault tolerance
AADL, 482
deployment style, 194
Feature-Driven Development, 414
Feiler, Peter H., 312, 473–474, 476, 483, 514
Filters in pipe-and-filter style, 158–159
Final state in state machine diagrams, 457
Finkelstein, Clive, 116
Fitness of purpose
architectural documentation, 44–45
document reviews for, 375
Flight Operations Segment (FOS) in ECS module, 204
Flint, Emily, 375
Flow charts in activity diagrams, 450
Flurry, G., 260
Focus in behavior documentation, 291
Forbids relations in architectural decisions, 250
Fork nodes in activity diagrams, 301
Formal notations
architecture views, 53
C&C views, 139
deployment style, 197
Frameworks in variability, 233, 237
Freeman, Eric, 187
FSP language, 304–305
Functional views in viewpoint sets, 408, 411–413
Functionality in C&C views, 133
Future architects, documentation needs, 325–326, 325
Garlan, David, 4, 153, 187, 287, 510
Gelernter, D., 187
Generalization concept in AADL module style, 475
Generalization/specialization relations in data model style, 111, 113
elements, relations, and properties, 83–84
overview, 82–83
purpose, 83–84
relation to other styles, 84
UML module views, 434
Generalization views, combined, 255–256, 256
Generalization vs. inheritance, 120
Generators in variability, 233
Gives computational work to relation, 24
Global policies, 349–350
Glossary of terms
in documentation beyond views, 355
list, 491–496
Gluch, David P., 312
Gnutella peer-to-peer networks, 168–169, 169
Gorton, Ian, 220
Graphical user interfaces in publish-subscribe style, 174
Groups in architectural decision templates, 240
Guard constraints on transitions, 457
Guillemets (<< >>), 433
Hansson, Jörgen, 483
Hardware components in AADL, 474
Hardware Hiding Module in A-7E avionics system, 71, 72
Harvey, Miles, 350
Henderson, Steuart, 9
Herbsleb, James D., 209–213, 514
Hierarchical elements, 8
High Level Architecture (HLA), 187
History in architectural decisions, 248–249
History state in state machine diagrams, 457
Hoare, C. A. R., 40
Hofmeister, Christine, 24, 64, 214, 336
Hohpe, Gregor, 187
Hudak, John, 312
Hughart, Barry, 44
Humphrey, Watts S., 379
Hupfer, Susanne, 187
Hybrid styles in combined views, 253
Hybrid threads, 478
Hyman, Isabelle, 399
Hypertext, 365–366
Hypertext Markup Language (HTML), 164–165
Hypertext Transfer Protocol (HTTP), 165
Idea status in architectural decisions, 249
IDEF1X notation, 116
Identification and overview information in ISO/IEC 42010, 405
Identifying relation in data model style, 113
Identity in interfaces, 271
Implementation constraints in module views, 59
Implementation information property, 58–59
Implementation refinement, 219, 220
Implementation style, 207
UML allocation view, 445–446, 446
Implementation views
4+1 approach, 406–407
combined views, 254
use by infrastructure support personnel, 324
Implementers, architecture documentation for, 15
Implications in architectural decision templates, 240–241
Implicit invocation in publish-subscribe style, 175
Include relations in use case diagrams, 459, 459
Incremental development, uses style for, 81–82
Indexes in directories, 355
Informal notations
architecture views, 53
C&C views, 139
context diagrams, 229–230, 230
decomposition style, 67–68
deployment style, 196
uses style, 76
work assignment style, 203
Information Engineering approach, 116
Information systems, data model style for, 115
Information views in viewpoint sets, 409, 412–413
Infrastructure support personnel, documentation needs, 324–325, 324
Inheritance
vs. generalization, 120
generalization style, 84
as a variation mechanism, 233
Initial state in state machine diagrams, 457
Install style
elements, relations, and properties, 199–200
overview, 198–199
purpose, 200
relation to other styles, 202
UML allocation view, 445–446, 446
Install views in combined views, 255
Instances
of components and connectors, 129–131
UML, 448
Integration testing, uses style for, 82
Integrators
architecture documentation for, 16
documentation needs, 318–319, 319
interface documentation for, 278–279
Interaction overview diagrams in UML, 455–456, 456
Interactions of connectors, 129
Interface Definition Language (IDL), 279
Interface delegation in C&C views, 126, 132
Interface documentation, 261
AADL, 484
behavior documentation in, 306
data types and constants, 274
error handling, 273–276, 276, 283–284
examples, 281–285
extended by generalization, 263
guidelines, 266–267
multiple, 270
provided vs. required, 264–265
quality attributes, 276–277, 284
stakeholders, 278–279
standard organization, 271–277, 271, 276
syntactic information, 279–280
terms, 280–281
variability, 276
Interface inheritance in generalization style, 84
Interface realization in generalization style, 83–84
layered style, 90–91
view documentation, 340
International Council on Systems Engineering (INCOSE), 465
Invokes-services roles in C&C views, 128
Is-a relations
generalization style, 82
module views, 57
modules, 49
SysML module view, 468
UML module views, 434
Is an Alternative To relations in architectural decisions, 250
Is Bound To relations in architectural decisions, 250
Is-part-of relations
A-7E avionics system, 71
architecture views, 24
decomposition style, 65–67
modules, 49
SysML module view, 468
Is Related To relations in architectural decisions, 250
question sets for, 391–393
Views and Beyond approach, 404, 405
Issues in architectural decision templates, 240
Iterations in Agile projects, 414
Ivers, James, 510
Jacobson, Ivar, 4, 122, 187, 311
Jain, Prashant, 187
Jargon, 37
Java EE application, 98–99, 99
Java modules, ATIA server-side, 69, 70
Java Virtual Machine (JVM), 99
JavaScript Object Notation (JSON), 279
JavaServer Faces (JSF) action classes, 98–99
Jazayeri, Mehdi, 2
Jefferson, Thomas, 18
Johnson, Samuel, 36
Join nodes, activity diagrams, 301
Kazman, R., 5, 32, 47, 71, 122, 396
Kiczales, Gregor, 122
Kircher, Michael, 187
Knuth, Donald, 241
Koala language, 306
Komiya, S., 260
Kotermanski, Rick, 187
Kron, H. J., 64
Kruchten, Philippe, 24, 48, 221, 239, 515
4+1 approach, 360, 404, 406–408, 408, 429
architectural decisions, 247–249, 248–249, 260
Kylmäkoski, Roope, 336
Laddad, Ramnivas, 122
Lago, P., 247
Language of quality attributes, 17
Layer bridging, 88
Layer diagrams, 38–39
Layered process for combined views, 253
calling higher layers, 100–101
Dependency Structure Matrix for, 101–102, 102–103
elements, relations, and properties, 89–90
purpose, 89–91
relation to other styles, 96–97, 96
Layered views, 404
combined views, 255
and portability, 22
Life-cycle phases in architecture document reviews, 376–377
Linda programming language, 187
Links in communication diagrams, 299–300, 300
Liskov, Barbara, 122
Little, Reed, 510
Local calls vs. remote calls, 42
Local change and variation, generalization style for, 84
Local communication in behavior documentation, 293
Logical views in 4+1 approach, 406
Lollipop/socket notation, 141, 141, 268, 269
Loop frames in sequence diagrams, 298
MagicDraw tool, 472
Mailing lists, publish-subscribe style for, 174
Maintainers
architecture documentation for, 16
interface documentation for, 278
Major design approaches, documenting, 356
Management information in module views, 59
Many-to-many associations in views, 251
Many-to-many relations in data model style, 111
Many-to-one associations, 251
Mapping
module and C&C views, 149
to requirements, 17, 357–362, 358, 361, 371
to source code units, 59
Mars Climate Orbiter, 281
Mars exploratory robot, 73, 74
Martin, James, 116
Memory for AADL, 474
Memory properties in deployment style, 193
Merge nodes in activity diagrams, 301–302
Merson, Paulo, 187, 287, 373, 511
Message sequence charts, 302
Messaging connectors in SOA style, 171
Meta-Model in AADL, 473
Microsoft .NET Pet Shop application, 118
Migrates-to relations in deployment style, 192–193
Migration triggers in deployment style, 194
Mode transitions in AADL, 482
Model-view-controller (MVC) pattern, 174
Modeling tools in UML, 462
Modifiability
documentation needs, 323
layered style, 98–99
Modula modules, 30
Modularization, 209–212
Module decomposition and layered style, 96, 96
Module interfaces in UML, 460
Module structure in architecture views, 24
data model. See Data model style
decomposition. See Decomposition style
generalization. See Generalization style
layered. See Layered style
use. See Uses style
application builders, 321, 321
designers of other systems, 319–320, 319
DoDAF, 426
elements, 56–57
future architects, 325–326, 325
infrastructure support personnel, 324, 324
purpose, 59–60
relation to other views, 63
relations, 57
testers and integrators, 318, 319
in multiple views, 349
styles, 49
Morale, uses relation for, 81
Multi-part primary presentations, 349
Multiple interfaces, 262–263, 270
Name property in module views, 57
Named frames in sequence diagrams, 297
Naming conventions in UML, 140
Natural language, 280
Navigable associations in UML, 440
Neighbors, J. M., 64
Nesting notation in decomposition style, 68
Nesting of states in state machine diagrams, 304
Network administrators, architecture documentation for, 16
New stakeholders, documentation needs, 325, 325
Nii, H. P., 187
Nonarchitectural design, 7
Nonexistence decisions in architectural decisions, 248
Nonidentifying relations in data model style, 113
Nord, Robert, 24, 64, 214, 336, 511
Normalization in data model style, 113, 113–114
Notations
architecture views, 53
formal, 53
informal, 53
semiformal, 53
behavior documentation, 293–306, 295–301, 304–305
C&C views, 132, 133, 139–146, 140–145
comprehensive models, 303–306, 304–305
context diagrams, 229–231, 230–231
data model style, 116–117, 116–117
decomposition style, 67–68, 68
deployment style, 196–198, 196
explaining, 40–41
style guides, 51
work assignment style, 203–204, 204
Notes in architectural decision templates, 241
Nygaard, Kristen, 122
Object Constraint Language (OCL), 460–461
Object Management Group (OMG), 465
AADL standards, 474
IDL standard, 279
OCL standard, 460
SysML standard, 465
UML specification, 122, 311, 433
Object-oriented designs, generalization style for, 84
Object-relational impedance matching, 117
Object-relational mapping (ORM) tools, 117
Obsolesced status in architectural decisions, 250
Ogilvy, David, 36
OMG. See Object Management Group (OMG)
One-to-many associations in views, 251
One-to-many relations in data model style, 111
One-to-one relations, 111
Online documentation for packages, 365–366
Ontocrises in architectural decisions, 248
Ontology in architectural decisions, 247–250, 248–249
Open questions, 357
Open-source style, 208
Operational view (OV)
Rozanski and Woods viewpoint sets, 410, 413
Orchestration servers in SOA style, 170–171
Order Processing Center (OPC) component in Adventure Builder, 173, 184, 230, 285
Ordering constraints in behavior documentation, 293
OSATE tools, 485
Overhead in layered style, 91
Overlays in combined views, 252–253
Overrides relations in architectural decisions, 250
Overview presentations, 364–365
AADL module style, 475
architecture documentation, 349–350, 362–369
configuration management, 368
documentation beyond views, 350–357, 351, 354–355
mapping to requirements, 357–362, 358, 361
online documentation and hypertext, 365–366
release strategy, 368–369
schemes, 362–364
tooling requirements, 370–372
wikis, 365–368
Pair programming, 414
Parameterization in variability, 233
Parent modules in generalization style, 82
Parnas, David L., 24, 30, 34, 47, 48, 104, 121, 122, 209, 286–287, 396
Partial results in error handling, 278
Pascal, Blaise, 37
Patterns, architectural
and styles, 32–36
and views, 343
Payback from architectural decisions, 245–246
Peer-to-peer style
elements, relations, and properties, 166–167
overview, 166
purpose, 167
relation to other styles, 168
Performance
C&C views, 133
client-server style, 164
deployment style, 194
documentation needs, 323
Pericrises in architectural decisions, 248
Perspectives, architecture, 410–411
Pet Shop application, 118, 119
PetStore application, 85–87, 86
Pipe-and-filter style
elements, relations, and properties, 158–159
overview, 158
purpose, 158–160
relation to other styles and models, 160
Plain old Java objects (POJOs), 98
Platform style, 208
Plus One View, 360
Policies, global, 349–350
Politi, Michael, 311
Portability in layered style, 90, 98–99
Ports
Prabhakar, T. V., 515
Prescriptive architecture documentation, 12
Presentations
C&C views, 347
combining with context diagrams, 347–348, 348
guidelines, 369–370
multi-part, 349
overview, 364–365
view documentation, 338–339
view packets, 344
Prieto-Diaz, R., 64
Primary presentations
C&C views, 347
combining with context diagrams, 347–348, 348
multi-part, 349
view documentation, 338–339
view packets, 344
Priorities in view selection, 329, 332
Process-steps style, 208–209
Process structure in architecture views, 24
Process views in 4+1 approach, 407
Processes in AADL, 474
Processing elements, 4
Processors in AADL, 474
Product-line architectures, 234
Product line implementation in decomposition style, 66
Product line managers, architecture documentation for, 16
Programming in the large, 30
Project managers
architecture documentation for, 16
documentation needs, 316–317, 317
interface documentation for, 279
Properties
in architectural decisions, 248
in architecture documentation, 17
aspects style, 104–105
client-server style, 162–164
data model style, 111–113
decomposition style, 66–67, 67
deployment style, 192–194
generalization style, 83
install style, 199–200
layered style, 89
peer-to-peer style, 166–167
pipe-and-filter style, 158–159
publish-subscribe style, 174–176
SOA style, 169–170
style guides, 50–51
tools for, 371
uses style, 75
view documentation, 340
work assignment style, 202–203
Provided interfaces, 264–265
Provides-services roles in C&C views, 128
Pseudo-states in state machine diagrams, 457
Publish-subscribe connectors in C&C views, 124
Publish-subscribe style
elements, relations, and properties, 174–176
overview, 174
purpose, 175–176
relation to other styles, 176–177
Published styles and views, 343
Publisher roles in C&C views, 128
Quality attributes
and architecture documentation, 17–18
decomposition style, 66
interface documentation, 284
interfaces, 276–277
and software architecture, 2–3
Questions and question sets
architecture document reviews, 379, 382–394, 384
behavior documentation, 290–291
open, 357
for supporting development, 389–391
for supporting evaluation, 386–388
Ran, Alexander, 2
Rapid7 approach, 335–336
Rational Unified Process (RUP)
architecture views, 24
Views and Beyond, 406–408, 408
Rationale
in architectural decisions, 239
architecture documentation, 17, 44
behavior documentation, 306
documentation beyond views, 354–355
interface issues, 277
tools for, 371
view documentation, 340–341
Rationale and Design Issues section in interface documentation, 284
Reader point of view in architectural documentation, 36–37
Reader roles in C&C views, 128
Realization concept in AADL module style, 475
Reallocating resources in variation points, 236
Redundant discussion, architectural decisions for, 246
Reentrant calls in UML, 452, 453
Refactoring Agile projects, 414
Referenced material in directories, 356
References in sequence diagrams, 298
Refinement, 218
decomposition, 218–219, 218–219
spectrum of design, 220–221
style specialization, 221–222
Reid, Thomas, 54
Rejected status in architectural decisions, 250
Related decisions in architectural decision templates, 241
Related requirements in architectural decision templates, 241
Relations, 5
allocation styles, 191
aspects style, 104–105
client-server style, 162–163
data model style, 111–113, 113–114
decomposition style, 66–69, 67
deployment style, 192–193
directional, 41–43
generalization style, 83
install style, 199–200
layered style, 89
module views, 57
peer-to-peer style, 166–167
pipe-and-filter style, 158–159
publish-subscribe style, 174–175
selecting, 52–53
shared-data style, 179
SOA style, 169–172
style guides, 50–51
uses style, 75
view documentation, 340
work assignment style, 202–203
Release-based style, 209
Release strategy in packages, 368–369
Relevant views, 22
Reliability
C&C views, 133
deployment style, 195
Remote calls vs. local calls, 42
Remote communication in behavior documentation, 293
Remote procedure call (RPC), 292
Repetition
architectural documentation, 37–38
across views and view packets, 349–350
Repository component in shared-data style, 179
Repository styles, 156, 157, 178–182, 181
Representation, defined, 11
Representatives of external systems, architecture documentation for, 16
Request/reply connectors in client-server style, 163
Required interfaces, 264–265
Requirements
mapping to, 17, 357–362, 358, 361
tooling, 370–372
viewpoints, 360–361
Resources, 262
C&C views, 133
deployment style, 194
in interface documentation, 281–283
interfaces, 271–274
Respondents in question sets, 383
Responsibilities in modules, 56
Responsibility property in module views, 57–58
REST connectors in SOA style, 170–171
Retrying in error handling, 278
Reuse
generalization style for, 84
interface documentation for, 279
Rhapsody tool, 472
Rings notation in layered style, 93–94, 94
Risk in architectural decisions, 246, 249
Rozanski, Nick, 13, 25 37, 341–343, 350, 408–413, 409, 413, 430, 515
Rugina, Ana-Elena, 483
SaaS (software as a service) model, 287
Safety critical properties in deployment style, 194
Safety views, 404
Saini, Darpan, 516
SARA report, 397
Satisfy relationships in SysML, 466
Scaffidi, Christopher, 287
Schemes, packaging, 362–364
Schmerl, Bradley, 153
Schmidt, Douglas C., 187
Science Data Processing Segment (SDPS) in ECS module, 204
SCM (software configuration management), 214
Scope
architectural decisions, 248
documentation roadmaps, 352
Scrum approach, 414
Security
AADL, 482–483
C&C views, 133–134
client-server style, 164
deployment style, 195
documentation needs, 323
Security views, 404
Segmented layers in layered style, 92–93, 93
Semantics for resource, 272–274
Semiformal notations
architecture views, 53
Send-data-to relations in decomposition refinement, 218
Separate documents in scheme packaging, 363–364
behavior documentation, 297–298, 298–299
SysML, 471
Servers in client-server style, 162
Service-level agreements (SLAs), 277
Service-oriented architecture (SOA) style
module view, 266
overview, 169
properties, 169
purpose, 172
Service-oriented views, 404
Service providers in SOA style, 171
Service registry in SOA style, 170
Services in call-return styles, 161
Servlets, 98
Shared-data stores, 179
Shared-data style, 178
elements, relations, and properties, 179
example, 181–182
overview, 178–179
purpose, 179–180
relation to other styles, 180–181
Shares-part-of-the-same-secret-as relations in architecture views, 24
Sharing and Reusing Architectural Knowledge (SHARK) workshops, 260
Shaw, Mary, 4, 33, 48, 153, 187, 286–287
Short iterations approach, 414
Sidecars, layers with, 94–95, 94
Siemens Four View model, 24, 214
Signatures, 280–281
Simplicity in presentations, 370
Size in layered style, 95
Slices, 73
Smalltalk classes, 30
Snyder, Alan, 122
SOA. See Service-oriented architecture (SOA) style
SOAP connectors
C&C views, 129
SOA style, 170–172
SOAP Web service
interface documentation, 285
synchronous remote calls, 42
Social networks, publish-subscribe style for, 174
Socializing decisions, architectural decisions for, 245
Society of Automotive Engineers (SAE), 312
Software architecture overview, 1–5
vs. design, 6–9
documentation overview. See Architecture documentation overview
and quality attributes, 2–3
Software as a service (SaaS) model, 287
Software components in AADL, 474
Software configuration management (SCM), 214
Software Decision Hiding Module in A-7E avionics system, 71–73, 72
Software elements
allocation styles, 191
deployment style, 192
install style, 199
work assignment style, 203
Software Engineering Institute, 47
Software interfaces. See Interfaces
Software product lines, 320
Specializations
allocations, 208
C&C views, 130–131
styles, 221–222
Specification, defined, 10
Specification and Description Language (SDL), 302, 306
Spectrum of design, 220–221
Spivey, J. M., 311
Spring framework, 222
Stack notation in layered style, 92, 92
Staging in view selection, 329
Stakeholder/view tables, 326–327
Stakeholders, 15–16
architecture documentation for, 13
documentation roadmaps, 352
interface documentation, 278–279
ISO/IEC 42010, 405
quality attributes for, 18
view selection for, 316–328, 317–322, 324–326
architectural documentation, 43–44
for documentation beyond views, 351–356, 351, 354–355
variations, 356–357
for interface documentation, 271–277, 271, 276
for style guides, 50–51
for views, 337–341
State machine diagrams, 303–304, 304, 457, 458
Status in architectural decision templates, 240
Status indicators in interfaces, 277
Stereotypes in UML, 62, 62, 433, 441
Steward, Donald, 101
Stimulation communication, 292
Storage unit capacity in deployment style, 194
Stream of consciousness writing, 37
Style guides, 26
outline, 50–51
presentations, 369
Style specialization, 221–222
Styles, 25
allocation. See Allocation styles
C&C. See Component-and-connector (C&C) styles
element and relation properties, 52–53
examples, 54
module. See Module styles
notations for architecture views, 53
terms, 29–36
Subjects
architecture document reviews, 378–379, 394
use case diagrams, 459
Subprograms in AADL, 474
Subscriber role in C&C views, 128
Substates in state machine diagrams, 304
Subsumes relations in architectural decisions, 250
decomposition style, 66
Support phase in architecture document reviews, 377
Supporting documentation, 341
C&C views, 125
context diagrams, 229
view packets, 344
Swim lanes in UML sequence diagrams 300–301, 450
Symbols in use case diagrams, 459, 459
Synchronous calls, 42
Synchronous communication, 292
Syntactic information, interface documentation for, 279–280
Syntax, resource, 272
SysML. See Systems Modeling Language (SysML)
System analysis and construction, architecture documentation for, 14
System context views, 341–343
System engineers, architecture documentation for, 16
System-level behavior documentation in DoDAF, 426
System overview in documentation beyond views, 353
Systems and services view (SV) in DoDAF, 419, 423–425
Systems in AADL, 474
Systems Modeling Language (SysML), 197, 465–466, 466
architecture documentation, 466
behavior documentation, 471, 471
summary, 472
Systems of interest in ISO/IEC 42010, 401
Szyperski, C., 30
Tables
DoDAF, 419
SysML, 197
work assignment style, 203, 204
Tagged values in UML, 441, 441
TDDT (Training and Doctrine Development Tool), 69
Team allocation in decomposition style, 66
Team morale, uses relation for, 81
Technical standards view (TV) in DoDAF, 419, 425
Telephone communication, 292
Templates. See also Standard organization.
architectural decisions, 239–242
architecture perspectives, 411
in variability, 233
Tentative status in architectural decisions, 249
Terms
in directories, 355
glossary, 491–496
Test-driven development in Agile projects, 414
Test information in module views, 59
Testers
architecture documentation for, 16
documentation needs, 318–319, 318
interface documentation for, 278
Textual representation of views
decomposition view for A-7E example, 72
module views, 61
visibility in module views, 68
work assignment view for ECS, 79–80
The Open Group Architecture Framework (TOGAF), 377
Three-part rule in architecture patterns, 34
Tiered client-server views, 257, 257–258
Tiers
C&C views, 134
layered style, 96–97
Time-based stimulation in behavior documentation, 293
Time constraints in sequence diagrams, 298
Time stamps in architectural decisions, 248–249
Timed threads, 478
Timely development, architectural decisions for, 246
Timing diagrams in UML, 302, 454, 455
Tools
for combined views, 255
requirements, 370–372
UML, 461–463
Top-level context diagrams (TLCDs), 225–226
Topcased project, 472
Traceability of requirements viewpoints, 360
Traces
behavior documentation, 294–295
notations for, 295–303, 295–301
for semantic information, 280
Trachtenberg, Marvin, 399
Training and Doctrine Development Tool (TDDT), 69
Transclusion process, 368
Transitions in state machine diagrams, 303–304, 304, 457
Tuple spaces, 187
Types
of components and connectors, 129–131
Tyree, Jeff, 239, 516, 246, 247, 260
UML. See Unified Modeling Language
Unified Modeling Language (UML), 431
activity diagrams, 300–302, 301, 450, 450
allocation view, 443–447, 443–447
ambiguity traps, 447–449, 448–449
assembly connectors, 142, 146, 440, 440
associations, 57, 117, 117, 197, 251–255, 251–253, 436–437, 440, 448, 448, 459, 459
behavior documentation, 296–305, 296–301, 449–459, 449–459
C&C views, 132, 133, 139–146, 140–145, 438–443, 439–442
class diagrams, 436–438, 437, 447
communication diagrams, 299–300, 300, 453–454, 454
components, 74, 133, 135, 137, 139–146, 140–145, 151, 197, 198, 219, 219, 268, 269, 286, 431, 432, 438–445, 439–444, 448, 449, 451, 451, 460, 461
context diagrams, 230–231, 231
decomposition refinement, 218–219, 219
delegation connectors, 132, 133, 219, 441, 442
interaction overview diagrams, 455–456, 456
interface documentation, 268, 269, 460–461, 460–461
module views, 61–62, 61–62, 433–436, 433–436
packages, 61, 61, 68, 68, 74–77, 77–78, 95, 231, 268, 269, 355, 431, 432, 433–435, 433, 435, 437, 446, 449
port, 127, 140–141, 141, 146, 149, 151, 169, 220, 286, 438, 439, 441, 460
provided interface, 61, 141–142, 264–265, 268, 269, 285, 437, 438, 439, 440–441, 440, 460, 460
required interface, 141–142, 264–265, 268, 269, 285, 437, 438, 439, 440–441, 440, 460, 460
sequence diagrams, 297–298, 298–299, 450–453, 451–453
state machine diagrams, 303–304, 304, 457, 458
timing diagrams, 302, 454, 455
tools, 461–463
Uncertainty relations between modules (UM), 210–212
Unit Training Management Configuration (UTMC), 69
Universal styles, 26
UNIX System V operating system, 97–98, 97
Usability in documentation needs, 323
Usage Guide section in interface documentation, 277, 285
Use cases
4+1 approach, 407
behavior documentation, 296, 296–297
documenting, 356
User stories in Agile projects, 414
Users, architecture documentation for, 16
Uses of architecture documentation, 12–16
Uses relations, 81–82
layered style, 97
module views, 57
UML, 448
Uses structure in architecture views, 24
Uses style, 74–75
elements, relations, and properties, 75
relation to other styles, 79
UML module views, 433
uses relation, 81–82
Uses views in combined views, 255–256, 256
Utilization phase in architecture document reviews, 377
UTMC (Unit Training Management Configuration), 69
van der Linden, Frank, 2
van Gogh, Vincent, 215
van Vliet, H., 247
Variability, 231
dynamism and dynamic architectures, 234–235
variation mechanisms, 232–233
Versions, architecture documentation for, 21
Vertical slices, 73
Vicknair, W., 260
View packets, 344–347
View selection, 315–333
examples, 329–335
prioritizing and staging, 329, 332
stakeholder documentation needs, 316–328, 317–322, 324–326
stakeholder/view tables, 326–327
View-to-view associations in documentation beyond views, 353–354, 354
Viewpoints
ISO/IEC 42010, 402–403, 403, 405
Rozanski and Woods viewpoint sets, 408–413, 409, 413
Views, 22–23
associations between, 251
combining. See Combining views
component-and-connector. See Component-and-connector (C&C) views
coordination, 209–213
documentation beyond views, 350–356, 351, 354–356
in documentation packages, 337, 363–365
repetition across, 349–350
standard organization, 337–344, 338
standard organization variations, 344–349, 348
documentation roadmaps, 352
history of, 23–25
ISO/IEC 42010, 401
module. See Module views
notations, 53
and published styles and patterns, 343
Views and Beyond approach, 19–20, 339
in Agile development environment, 20, 415–418, 418
architecture decisions, 239
architecture documentation, 19–20
context diagrams, 341
compared to DoDAF, 421–425
compared to ISO/IEC 42010, 400–405
compared to Rozanski and Woods, 411–413
compared to RUP, 406–408
Virtual buses in AADL, 474
Virtual machines, 99
layered style, 90
Virtual processors in AADL, 474
Visibility of interface property in module views, 58, 58
Visual styles in presentations, 369
Vitruvius, 399
Vocabulary of view for context diagrams, 226–228, 226–228
Voelter, Markus, 356
von Goethe, Johann Wolfgang, 289
Web-based documentation, 365–366. See also Wikis.
Web modules, ATIA server-side, 69
Web Services Description Language (WSDL), 279
Weeks, Edward, 375
Weiss, David M., 121, 122, 380, 396, 516
Weiss, M., 247
Wikis, 365–368
Windowsapps, 69
Wolf, Alexander L., 4, 11, 24, 33, 48
Wolff, Bobby, 187
Woods, Eoin, 3, 13, 25, 37, 341–343, 350, 408–413, 409, 413, 430, 516
Work assignment style, 205–206
elements, relations, and properties, 202–203
overview, 202
purpose, 203
relation to other styles, 204–205
specializing, 208
Work assignment views in combined views, 255
Work breakdown structure (WBS), 202
World Wide Web in client-server style, 164–165
Wright, Frank Lloyd, 14, 55, 316
Writer roles in C&C views, 128
Wuerges, H., 286
XMI model in AADL, 473
XZip component, 281
Yang, Chen Ning, 315
Zachman, J. A., 404
Zip component API, 281–285