Bass.book Page 495 Thursday, March 20, 2003 10:29 PM

Index

ABC. See Architecture Business Cycle Aircraft systems, and airframe, 193, 195 ABM. See Atomic Broadcast Manager Air traffic control case study, 129–151 “Abstract common services” tactic, 106, 135, architectural solution in, 135–149 138, 148–149, 442 requirements and qualities in, 132–135 Abstraction, 21, 37, 43, 210, 477, 478 Air traffic controllers, 132, 133, 134 mastering at CelsiusTech, 375–376 Air traffic control system, 132, 150 and packaging, 142 ABC applied to, 132 and SS2000, 396 availability requirements for architecture Abstract syntax tree, for information of, 155 extraction, 235, 236 Air vehicle model, 182, 183 Access control, 117, 118 application modules, 187–192 Accessibility, and the Web, 331 executive modules, 185–187 Access layer, for libWWW, 336 n-square chart for, 194, 195 Access (Microsoft), 468, 470 AIX (IBM), operating system, 144 Access procedures, 54, 64 Ada tasks mapped onto processes, 142 access_read relationship, 235 and SS2000, 373 access_write relationship, 235 Algorithms, voting, 102 Account bean, 414, 415, 416, 419 “Allocated-to” relation, 38 Acronyms, 218, 485 Allocation structures, 36, 38–39 Activation, of stateful bean, 410 Allocation views, 41, 206 Activation list, in Active Object design options in, 208–209 pattern, 124 in UML, 227–229 Active design review, 268 Allowed-to-use structure, 60, 61, 62, 63 Active Object design pattern, 124 Amazon.com, 348–349 “Active redundancy” tactic, 103, 141 Analysis results, in architecture background, ActiveX, 343 209 Activity control problems, 162 Analyze architectural approaches actually_calls relation, 240 in ATAM evaluation phases, 282–284, 285 Ada, 132, 139, 144, 371, 380, 387, 462 in Nightingale system evaluation phases, Ada package specification, and signature 297–299, 302 specification, 212 “And” states, 210 Ada programs, 142, 147, 378, 390 Annotations, interfaces as, 224 Adaptation data, 147–148 Anomaly detection, 118 Adapters, 109 “Anonymity of processor assignment,” and ADD. See Attribute-Driven Design SS2000, 390 Address spaces, 139, 140 “Anticipate expected changes” tactic, 107, “Adherence to defined protocols” tactic, 111 138, 148, 442 and client-server view, 142 AOLbyPhone, 454 and code templates, 149 AOL/Netscape, 347 and integrability, 175 Apache project, 346, 347 Ad hoc tools, for information extraction, 236 Aperiodic operations, 187, 191 Advanced Automation System (AAS), 129, 131 Aperiodic processing, and flight simulator, 183 Aerodynamics, and flight simulator, 181, 182 AppleScript, CGI scripts in, 339, 340 Aggregate, 122 Application constituent, of Structural Model Aggregation, in UML, 219–221 architectural pattern, 185 Aircraft structure, unclear mapping between Application Data Type Module, 57, 62 software structure and, 181 Application module layer, for libWWW, 336

495

Bass.book Page 496 Thursday, March 20, 2003 10:29 PM

496 Index

Application programming interfaces (APIs), 457 Architectural drivers, 154, 157, 166, 277 and libWWW, 336 choosing in ADD, 158 and Luther architecture, 441 determining, 155 Application proxies, 343, 344 Architectural evaluations, ATAM and limited Applications, 138, 139, 147 time for, 288 and Ada packages, 142 Architectural integrity, 96 as clients and servers, 141 Architectural metrics, 265 and Luther architecture, 432, 433–434, Architectural mismatch, 33, 43, 456–462, 476 440–442 Architectural patterns, 24–25, 26, 33, 42, 62, Application servers, for modifiability, 99, 100, 126, 127, 232, 462 performance, and scalability, 345 choosing, 157, 158, 159 Application-specific business logic, and and off-the-shelf components, 456 Luther architecture, 441 and query languages, 237 Architects, 69, 108, 233, 245, 285 and reconstruction, 242 and ABC for the Web, 347 and styles, 124–125 and architectural approaches, 285 tactics related to, 123–124 and architectural documentation, 202–203 use of, 279 architecture and background/experience Architectural quality, and system quality, 92 of, 8 Architectural reconstruction, using results and architecture reconstruction, 232 of, 232 and ATAM, 272, 277 Architectural representation, 42 and conceptual integrity, 96 Architectural solution for the Web, 334–340 design decisions by, 261 common gateway interface, 339–340 and EJB system design, 423 early client-server architecture using and evaluations, 267 libWWW, 337–339 and impact of components, 482 and libWWW, 334–337 model problems used by, 463 Architectural solution, in air traffic control and Nightingale system, 289 case study, 135–149 product line, 360 adaptation data, 147–148 and recovery of “lost” architecture, 247 client-server view, 141–142 and relationship of tactics to architectural code templates, 148–149 patterns, 123–124, 126 code view, 142 and scheduling policies, 115 fault tolerance view, 144–147 and stakeholders, 7 ISSS physical view, 135–138 tactics used by, 99, 100 layered view, 142–144 and testing cost reduction, 118 module decomposition view, 138 and usability, 122 process view, 138–141 and viable product lines, 398 relating views to each other in, 147 views produced by, 145 Architectural solution in flight simulation Architectural abstractions, as hypotheses, 245 case study, 182–196 Architectural approaches decomposing groups into systems, 195–196 and ATAM, 279, 282–284, 285 functionality allocated to controller example of analysis, 283 children, 192–193 and Nightingale system, 293–294, group decomposition, 193–195 297–299, 302 modules of air vehicle model, 185–192 Architectural changes, 31 skeletal system, 192 Architectural decisions, 231 Structural Modeling architectural pattern, architecture reconstruction and 185 redetermination of, 246 time treatment in flight simulator, 183–184 benefits of, 307 Architectural solutions costs with, 309 achievement of application needs and, 150 quality requirements mapped to, 274 for J2EE and EJB, 406–419 Architectural design, 23, 355 and Luther architecture, 434–451

Bass.book Page 497 Thursday, March 20, 2003 10:29 PM

Index 497

Architectural strategies, 99, 100 pivotal role of, 19 and benefit and normalization process-centered definitions of, 24 determination, 313 for product lines, 360–363 and CBAM, 309, 316 purposes of, 205 ROI value for, 313 qualities in, 96–97 and scenarios addressed in NASA ECS and quality attributes, 73–74, 453 Project, 320–323 rationale for, 218 side effects, 312–313 relationship between organization and, 167 Architectural structures representations, 35 for A-7E avionics system, 47, 48 and re-use, 351, 353 choosing, 41–42 and software product lines, 363 and organizational structure, 168, 169 sources of, 6–12 relationships between, 40–41 stakeholders and communication needs Architectural style, 25, 349 served by, 27–29, 204 Architectural tradeoffs, and ATAM, 307 stakeholders and influence on, 6–8 Architectural views, 43, 66 technical environment and influence on, 9 and architecture presentation, 278 Architecture activities, 12–14 and ATAM, 308 Architecture analysis, 261–269 in Dali, 242 costs and benefits, 263–265 Architecture, 3, 25, 31, 43–45, 67, 71, 217, planned or unplanned, 266 218, 478. See also Software preconditions, 266–267 architecture results, 268 analyzing/evaluating, 14 techniques, 265–266 and architects’ background/experience, 8 when, 262 for A-7E avionics system, 54–65 why, 261–262 behavior of elements in, 22 Architecture background, in documenting a communicating about, 13–14 view, 209 components, connectors, and, 24 Architecture Business Cycle, 6, 11, 12, 69, components and impact on, 455–456 71, 261, 271 constraints on implementation, 29 and air traffic control system, 132 creating/selecting, 13, 69–70 and Celsius Tech, 370–371, 383, 399 designing, 155–166, 171, 479–481 backward flow of, 452 developing organization and, 8 current state of, 346–347 ensuring conformance to, 14 flight simulators and relationship to, evaluations of, 23, 265 176–177 feedback loops and, 9–12 and future of software architecture, 479 functionality and, 72 relationship of, to A-7E avionics system, future of, 477–484 48–49 goals/requirements for, 266 relationship of, to Inmedius and Luther “good,” 14–16 architectures, 429–432 hierarchy of test interfaces in, 120 software processes and, 12–14 as high-level design, 23 and story of Vasa, 4–5 implementing based on, 14 and Sun and J2EE/EJB, 402, 403 influences on, 9, 10 and Web-based architectures, 340–342 layered, 62 and the Web, 327, 328–329 in life cycle, 153–155, 481–482 Architecture documentation Mk2, 376 in ATAM-based evaluation, 274 moving from, to code, 482 importance of, 22 .NET, 402 and Nightingale system, 290 Nightingale system and presentation of, stakeholders and helpfulness of, 206 292–293 and structures, 41 organizational structure dictated by, 29–30 uses of, 203–203 as overall structure of system, 23 Architecture presentation, example, 278

Bass.book Page 498 Thursday, March 20, 2003 10:29 PM

498 Index

Architecture reconstruction, 22, 231, 232, “As-built” architecture, 231, 232, 481 activities, 233, 234 “As-designed” architecture, 232, 252, 481 complexity with, 258 ASEILM example. See Automated SEI motives for, 481, 482 Licensee Management system and redetermination of architectural A-7C aircraft, 49 decisions, 246 A-7E architecture, 54–65 Architecture stakeholders, and ATAM, 272 allowed-to-use specification, 61 Architecture Tradeoff Analysis Method, 14, modifiability and performance 31, 203, 262, 265, 268, 271–305, 307, requirements for, 154 465, 466 Physical Models Module of, 168 and evaluation team roles, 273–274 A-7E avionics system case study, 47–68 historical roots of, 305 A-7E project description, 52–53 initial draft on training course on, 304 architectural structures, 47, 48 in Nightingale system, 288–303 process structure, 63–65 outputs with, 274–275 relationship to ABC, 48–49 participants with, 272 requirements and qualities, 49–52 reviews based on, 263 uses structure, 61–63 stakeholders and evaluations with, 267 A-7E Corsair II, 49, 51 steps and outputs, correlated, 287 A-7E module decomposition structure, Architecture Tradeoff Analysis Method 56–59, 73 evaluation phases steps, 276–285 quality goals achieved by, 56 analyze the architectural approaches A-7E module decomposition view, textual (step 6), 282–284 primary presentation in, 208 analyze the architectural approaches A-7E software, 49, 59 (step 8), 285 coarse-grained data-flow view for, 67 brainstorm and prioritize scenarios design of, 461 (step 7), 284–285 primary sensors read/managed by, 50 generate quality attribute utility tree As-implemented architectures, as-designed (step 5), 279–282 architectures related to, 252 identify architectural approaches Aspect-oriented programming, 120 (step 4), 279 Aspect-oriented software development, 481 present architecture (step 3), 277–279 Assemblies of compatible components, 453 present results (step 9), 285 Assembling elements, 33 present the ATAM (step 1), 277 Assembly language, 477 present the business drivers (step 2), 277 Asset base, and CelsiusTech product line, 396 Architecture Tradeoff Analysis Method Asset re-use, 8 phases, 275–288 Assign utility step, 316, 319 evaluation (phase 1), 276, 277–284 Association classes, connector types as, 226 evaluation (phase 2), 276, 284–287 Association role, UML, 225 follow-up (phase 3), 276 Associations partnership and preparation (phase 0), 275 connector types as, 225 Arch/Slinky pattern, 123, 127 and nodes, 228 Arcs, decomposition in UML with, 221 Assurance, 86, 116 ArithmeticOp class, 239 AST. See Abstract syntax tree ARM, 258 Asymmetric encryption, 117 Artifact AT&T, architectural evaluations at, 263, 269 of modifiability general scenarios, 82 ATAM. See Architecture Tradeoff Analysis of performance general scenarios, 84 Method of security general scenarios, 87 ATC. See Air traffic control of testability general scenarios, 89 Atomic Broadcast Manager, 144 of usability general scenarios, 91 Attachment relation, 38 Artifact stimulated, in quality attribute AttachOp class, 239 scenarios, 75 Attacker identification, 118

Bass.book Page 499 Thursday, March 20, 2003 10:29 PM

Index 499

Attacks, 85, 86, 87 Beans, 443 detecting, 118 Behavior, 7, 230 recovering from, 118 documenting, 209–211 resisting, 116–117 of elements, 22 Attribute-Driven Design method, 155–166, Behavior-hiding module, in A-7E module 171, 203 decomposition structure, 56 Attribute requirements, and product line Benefit, of architectural strategy, 313 architecture, 362 Best-case quality attribute level, in Auditing, 86 utility-response curve, 311–312 Audit trails, 87, 118 Best-case response, for NASA ECS Project Authentication, 116, 339 scenario, 317 Authorization, 117 Billing, 345 Authorship, in documenting a view, 209 Binding time, 124, 209 Automated SEI Licensee Management Biometric identifications, 116 system, 466, 467 “Bird’s-eye” program overview capability, 258 example, 466–476 Blackboard architectural pattern, 57 Automatic build checking, 211 “Black box” elements, 3 Automatic detection, 434 Blocked time, 112–113 Automatic repair strategies, 79 Boolean algebra, 213 Automotive industry, and architecture “Borgs,” 428 reconstruction, 232 Bottlenecks, 40, 171 Availability, 7, 69, 79, 86 Bottom-up adoption, of product line, 364 and air traffic control system, 132–133 Bottom-up approach, for architecture and component repair, 457 reconstruction, 258 databases for, 345 Bound execution times tactic, 114 and e-commerce, 341 Bound queue sizes tactic, 114 load balancing for, 344 Box-and-line diagrams, 230 and Nightingale system, 292 Box-and-line sketches, 24 of resources, 112 Brainstorm and prioritize scenarios, 284–285, Simplex architecture for, 127 300–302 and SS2000 product line, 388 Branching, and work-flow component, 445 and system quality attributes, 74 Branching statements, 477 and tactics, 100 “Brick-and-mortar” bookstores, 348 and Web-based applications, 404 Bridge pattern, 109 Availability scenarios, 76, 77, 80, 81 Bridges, 458–459 Availability tactics, 101–105, 125 and Logical Communications Network, 137 fault detection, 102 Broadly scoped product lines, 358 fault prevention, 104–105 Broker bean, 414, 415, 417, 418 fault recovery, 102–104 Broker EJB, 413 and process view, 141 Broker pattern, 110 Avionics, 168, 193, 478 Broker remote interface, 414 awk, 232, 239 Browser-based clients intended use for, 439 Back-office systems, front-line workers and Luther architecture, 437, 439 integrated with, 427, 432, 452 Browsers, 329, 342 Backup Communications Network, 137, 138 BSpline element, 255 Balanced specificity, with J2EE and EJB, 406 B-2 Weapons System Trainer, 177 Base System, 382 Budgets, 170, 354, 355 Base System 2000, 392 Buffers, 112 Basic SS2000 Configuration Project, at Buhr-style use case maps, 248 CelsiusTech, 385, 387 Buildability, 97, 480 BCN. See Backup Communications Network of EJB-based systems, 416 Bean-managed persistence entity beans, 410 Build files, 234, 236

Bass.book Page 500 Thursday, March 20, 2003 10:29 PM

500 Index

Build first, buy-later strategy, 433 A-7E avionics system, 47–68 Built-in monitors, and internal monitoring, 120 CelsiusTech AB, 369–399 Business case, 12–13 flight simulation, 175–199 Business component tier, in J2EE multi-tier Luther architecture, 427–452 model, 408 NASA ECS Project, 317–324 Business constraints, and Nightingale Nightingale System, 288–303 system, 291 the World Wide Web, 327–349 Business context, for CelsiusTech, 378–380 CBAM. See Cost Benefit Analysis Method Business delegate pattern, 441, 452 CDL. See Chart description language Business drivers CelsiusTech, 351, 355, 431, 432 ATAM and presentation of, 277 corporate evolution of, 370, 371, 377 Nightingale system and presentation of, CelsiusTech AB case study, 369–399 291–292 architectural solution, 390–398 and risk themes, 302 business context analysis, 378–380 and SS2000 product line, 377 economics of product lines results, 373–374 Business goals mastering abstraction, 375–376 and ATAM, 271, 274, 308 motivations at CelsiusTech, 376–377 identifying, 155 organizational structure at CelsiusTech, and quality requirements, 99 380–387 and risk themes, 275 product schedules, 373 Business influences, and software relationship to ABC, 370–374 architecture, 5, 6 requirements and qualities, 387–388 Business logic, and component packaging, 443 CERN. See European Laboratory for Particle Business qualities, 74, 95–96 Physics Business requirements, 154 cfx program, 258 and Nightingale system, 291 CGI. See Common gateway interface and Web architecture, 340 Champions, and product line adoption, 364 Business rules, 345 Change Business-to-business Web sites, 340 architecture and management of, 31 Business-to-consumer Web sites, 340 cost of, 80 Business units, and product development, 366 timing of, 81 Buttons, 435 Change histories, in documenting a view, 209 Chart description language, 470 , 144, 339 ChartWorks (Visual Mining), 468, 469, C&C. See Component-and-connector views 470, 472 C++, 239, 339 C header (.h) files, and signature Caching, 114, 336, 343, 345 specification, 212 Calculate total benefit from architectural Checklists, 265 strategy, 316, 322 Checkpointing, and database models, 237 Callback methods, 413 “Checkpoint” tactic, 104 Call graph, 235 Checksums, 117 Call-out functions, 336 Child modules, 157, 161, 163–164 calls relationship, between functions, 60, Choose architectural strategies based on ROI, 235, 240 316, 323–324 Cancel, 122 Choose deadline-driven scheduling policy, 159 Candidate view lists, producing, 206–207 “Chunking” design work, 156 Capability, and CelsiusTech product line, 396 Circle Module, 222 Capability partitioning, and Luther Class box, in UML, 219 architecture, 442 Class containment, code segments for, 254 Captured rationales, and architectural class_contains-method relation, static and evaluations, 264 dynamic information about, 240 Case studies Classes air traffic control and designing for high connector types as, 226 availability, 129–151 interfaces as, 225

Bass.book Page 501 Thursday, March 20, 2003 10:29 PM

Index 501

structure of, 38 Common gateway interface, 338, 339–340 in UCMEdit model, 250 Common object manager, 391 UML, 223 Common Object Request Broker Architecture Classifiers, in UML, 219, 220 (CORBA), 236, 292, 345, 401–402, Class symbol, in UML, 219 403, 425, 458 Clients, 334 and EJB architecture interoperation applications as, 141 with, 405 and EJB, 414 Common services, abstracting, 106, 107 testing by, 89 Common System Services, in ISSS, 138 Client-server pattern, 25 Communication Client-server structure, 38, 40 and architecture, 13–14 Client-server system, 170 restricting paths of, 109 Client-server view, 141–142, 147, 207 skills, 9 Client tier, in J2EE multi-tier model, 407 Communication virtual machine module, in Clustering services, 422 example, 165, 166 Coarse-grained EJBs, and J2EE, 450 generators, 12 Cockpit display devices, in A-7E aircraft, 50 Compile-time artifacts, 236 Code, 234 Compile-time switches, 81 moving from architecture to, 482 Completeness, 96 repair, 458 Complexity, of flight simulators, 180, 181 re-use, 32, 374 Component-and-connector structure, 36, 38, servlet, 408 40, 41 structure, 47 Component-and-connector views, 66, 139, Code coverage analysis tools, 236 162, 206, 207, 212 Code instrumentation, 236 and architecture presentation, 278 Code patterns, 125 options in, 208 Coders, and architecture, 27 in UML, 222–227 Code segments, 242, 244 Component-based systems, 342 for class/file containment, 254 and architectural mismatch, 456–457 developing, 246 design of, 462 and UCMEdit, 252, 255 Component design Code templates, 135, 141, 148–149, 150 at Inmedius, 442 Code view, 42, 142, 147 and J2EE, 450 Cognitive psychologists, and Luther Component developers, and Luther architecture user interface, 436, 437 architecture, 444 Cohesion, and teams, 168 Component Development Group, at Cohesion metrics, 106 Inmedius, 431 Cold restarts, 145, 146 “Component glue,” 457 Collaboration diagrams, in UML, 227 Component/interface repair, 457 Collate scenarios step, 316, 317 Component projects, and SS2000, 383 COM, 236 Component qualification, 460 COM+, 425 Component replacement, 111 Command, control, and communication (C3) “Component replacement” tactic, and systems, 370, 394 client-server view, 142 Command-and-control systems, CelsiusTech Components, 24, 224, 436, 441 as supplier of, 370 and allocation views in UML, 228 Commercial components, growth in core, 442 capability/availability of, 482 and design process, 453 Commercial off-the-shelf (COTS) products, elements related to, 255, 256 33, 95, 398. See also Off-the-shelf future impact of, 482–483 components impact of on architecture, 455–456 and Nightingale system, 289, 290, 292, life-cycle services, 401 298, 303 for Luther architecture, 442–444 Commercial world, success and failure in, 65–66 and object containment, 227

Bass.book Page 502 Thursday, March 20, 2003 10:29 PM

502 Index

Components continued contains class, 235 types, in patterns and styles, 125 Contention for resources, 112 in UML, 223–224 Content on the Web, labeling of, 333 Composing elements, 33 Content providers, and ABC for the Web, Composition of systems, and SS2000, 387 346, 347 Composition relation, in UML, 221 Context Computation, dependency on, 112–113 of availability scenarios, 80 Computational efficiency, increasing, 113 diagrams, 208, 278 Computational overhead, reducing, 113 of modifiability general scenarios, 82 Compute method, 239 of performance general scenarios, 85 Computer Software Components, 37 of quality attribute scenarios, 75 Computer Software Configuration Items, 37 of security general scenarios, 87 in ISSS, 138, 147 of testability general scenarios, 89 .com Web sites, growth of, 332 of usability general scenarios, 92 Conceptual integrity, 13, 16, 44, 74, 96 Control, sequence of, 108 Conceptual view, 42 Control frequency of sampling tactic, 113 Concrete scenarios, 75, 78 Controller children, 192–193, 198 Concurrency, 25, 210 Controller children module, and air vehicle enhancing, 124 structural model, 187, 190–192 introducing, 114 Control mechanisms, 41 Java servlet ensemble and management Control Process (CP), 20, 21 of, 475 Controls (or widgets), 97 structure, 38 Conversational with respect to calling view, 147, 161–162, 164 process, 409, 410 and work-flow model, 446 COOB. See Common object manager Confidence, increasing, 91 Cooperating sequential processes, 52 Confidentiality, 86, 116, 117 Coordinating processes structure, 38 Configuration control data, in documenting a CORBA. See Common Object Request view, 209 Broker Architecture Configuration control system, 167 Core asset base, 354, 357 “Configuration files” tactic, 111, 147 Core assets, and CelsiusTech, 374 Configuration management, and software Core layer, for libWWW, 335, 336 product lines, 363 Correctness, 96 Configuration management systems, software Cost and benefit, as business quality goal, 95 architecture within, 481–482 Cost Benefit Analysis Method, 14, 265, 268, Configuration parameters, 213 304, 308–325, 479 configure operation, 187, 189, 190, 191 basis for, 309–313 Configure state, in flight simulator, 179 decision-making context for, 308–309 Confirm results with intuition step, for implementing, 314 CBAM, 316 and NASA ECS Project, 317–324 Connector instances, 225, 226 process flow diagram for, 315 Connectors, 24, 36, 225–226 and product line evaluations, 363 Connector types, 225, 226 results of exercise with, 324 constituent_event operation, 187 Cost-effectiveness, with evaluations, 267 Constraints, 9, 165 Cost efficiency, and Web-enabled enterprise Construction problems, and electronic flight systems, 423 simulators, 176 Cost estimates, and software architecture, 32 Contained objects, systems as, 227 Cost modeling, 325 Container-managed persistence, 410, 415, 422 and buildability, 97 Containers importance of, 314 EJB, 408, 410, 413 Costs J2EE-compliant, 443–444 with architectural decisions, 309 Container services, 413 and architectural evaluations, 263, 265

Bass.book Page 503 Thursday, March 20, 2003 10:29 PM

Index 503

of change and modifiability, 80 Data Access Working Group, of ECS Project, development, 95 317, 321 and flight simulators, 181, 196 Data analysis, and the Web, 331 of testing, 118 Data Banker Module, 57–58 COTS products. See Commercial off-the- Database construction shelf products and database tables, 239 Coupling, 106 guidelines for, 239 metrics, 127 and reconstruction, 233, 237–239, 248–249 of scenarios and tactics, 480 Database management, 478 Crew simulator training, 179 Database management systems, 453 “Cross-cutting” requirements, 481 Database models, choosing, 237 Cross-side scripting, 474 Databases, for performance, scalability, and Cross-view documentation, 215, 216 availability, 345 Cross-view rationale, 218 Data confidentiality, maintaining, 117 Cryptography, 349 Data controllers, 133–134 CSCI. See Computer Software Configuration Data exchange problems, 162 Item Data extraction tools, 233 CSCs. See Computer Software Components Data-flow analysis, 477 C-17 Aircrew Training System, 177 Data-flow view, 66 C Shell, CGI scripts written in, 340 Data integrity problems, 162 Currencies, and Nightingale system, 291 Data loss, 85 Current-case response, for NASA ECS Data-producing conventions, and COOB, 391 Project scenario, 317 Data publishing, and the Web, 331 Current utility level, for scenario, 312 Data sources, separation and abstraction of, 435 Custom clients, in J2EE, 439 Data tags, and ISSS physical view, 136 Custom component, and Miva Script Data type definitions, in interface applications, 467 documentation, 213 Customer projects, and SS2000, 383 Data types, and avionics applications, 57 Customer relations management, 345 DAWG. See Data Access Working Group Customer requirements, 11 Deadline monotonic, and fixed-priority Customers scheduling, 115 and ABC for the Web, 347 Deadlines in processing, 84 and architecture, 27 Deadlock, 40, 209 and evaluations, 267 avoidance of, 64 Custom user interfaces, advantages with Dead man timer, 102 custom Web-based clients over, 440 DBMS. See Database management systems Custom Web-based clients, and Luther Debugging, and cost with flight simulator, 181 architecture, 437, 439–440 Decision Support and Report Generation Cutovers, 146 Manager, 292, 298 C/X-band antenna, on Göteborg class, 371 Declarative transaction management, 450, 451 “Cyberporn” industry, 333 Decomposition structure, 36–37, 40 Cyclic executive schedule, 115 for A-7E avionics system, 54–59 Decomposition view, 147, 206–207 Dali, 233, 238, 242, 247, 258 Defect elimination, and re-use, 356 code segments created in, 248 “Defer binding time” tactic, 110–111, and visualization and interaction, 241 159, 417 workbench, 238 Define the starting evaluation criteria (step 2), Dashed-arrow dependencies, and allocation in model problem process, 469 views in UML, 228 Demand process, 63 Data, 109 Demilitarized zone, 117 semantics and sequence of, 108 Denial-of-service attacks, 86, 87 syntax of, 107 Dependency, UML notation for, 222 Data access, designer’s decisions, J2EE, and Dependency types, 107–108 implementation of, 450 Deployment, and quality attributes, 73

Bass.book Page 504 Thursday, March 20, 2003 10:29 PM

504 Index

Deployment descriptors Developers, 13 for Account entity bean, 419 and architectural integrity, 96 for Broker bean, 417, 418 and ATAM, 272 and EJBs, 417 changes made by, 81, 82 and support for Sun’s J2EE quality and usability, 123 attribute requirements, 418 Developing organizations, 8, 10 Deployment structure, 38–39 Development costs, 95 Deployment time, 110 Development department model, and product Deployment type diagram, 228 development, 366 Deployment view, 41, 164, 205 Development Group, at CelsiusTech, 384, 385 with ADD, 163 Development view, 41 and architecture presentation, 278 Device Interface Module, 58, 62, 62 of Luther applications, 436 Device Interface procedure, 64 in UML, 229 Device types, and Luther architecture, 432, 433 UI as a C&C view mapped onto, 439 Diagnosis module, in example, 165, 166 Design Dials, 435 artifacts, 236 Digital artifacts, and work-flow component, 445 attribute-driven, 155–156 Digital certificates, 116 beginning, 154–155 dir_contains_dir, 235, 239 of flight simulator software, 181 dir_contains_file, 235 improving, 480–481 Directory structure, code segments based and interface documentation, 214 on, 246 judging, 69 Display Management, in ISSS, 138 and quality attributes, 73 Distributed computing questions, 464 growth of, 402 rationale for, 214 and Luther architecture, 432, 434 reviews, 119 Distributed object-oriented systems, 401 as search, 462–465 Distributed objects, 8 work-flow component, 445–447 Distributed object technology, and enterprise Design alternatives, restricting vocabulary information systems, 403 of, 33 Distributed operations, and work-flow model Design decisions, 261 definition, 449–450 quality attribute requirements related Distributed systems, and deployment to, 305 structure, 39 and software architecture, 26, 29–32 Distributed transactions, and EJB systems, 423 Designers, and evaluations, 267 Diversity, 103 Design patterns, 99, 125, 173 DMZ. See Demilitarized zone and ARM, 258 Documentation, 70, 211–214, 354 Business Delegate, 441 of architectures, 14 EJB, 422 in ATAM-based evaluations, 274, 275 Design teams, model problems used by, 463 of behavior, 209–211 Design-time tactics, 123 of decomposition structure, 55 Desired-case response, for NASA ECS of interfaces of modules in ADD, 163–164 Project scenario, 317 as introduction to software architecture, 203 Desired utility level, for scenario, 312 and Nightingale system, 290, 303 Detached operations, and work-flow model for product line architecture, 361 definition, 449 for software interfaces, 58 Determine utility of “expected” quality stakeholder access and organization of, attribute response levels step 216–218 for CBAM, 316 within tool environment, 481 in NASA ECS Project, 321–322 Documenting software architectures, 201–230 Develop architectural strategies for scenarios basic principle of, 205 step, 316, 320 choosing relevant views, 205–207

Bass.book Page 505 Thursday, March 20, 2003 10:29 PM

Index 505

documentation across views, 215–218 EJBs. See Enterprise JavaBeans and UML, 218–229 Electronic flight simulators, 176 Documenting views, 204–205, 207–214 Electronic warfare systems, 370 architecture background, 209 Element catalog, in documenting a view, 208 context diagram, 208 Element list, 217 element catalog, 208 Elements, 21, 22, 44, 47 glossary of terms, 209, 210 clustering of, into Path and Component, 256 primary presentation, 207–208 extraction of, from UCMEdit, 248 variability guide, 208–209 graphical representation and subset of, 243 Documents, 478 and information extraction, 234, 235 Document Type Definition (DTD), 417 raw set of, 249 Domain engineering units, and product requirements, in interface documentation, development, 366, 367 214 Domain experts, and Luther architecture user and re-use, 355 interface, 436, 437 elements table, 238, 250 Domain model, 53 Ellipsis (...), in UML, 222 Domain name services, 117, 118 e-mail, 117 Domains, 168, 478 Emergency mode, 85 Domain-specific architectures, availability Encapsulation, 66 of, 482 Encryption, 117, 332, 343 Domain-specific components, 442 End demand process, 64 Downdrafts, 179 Ending evaluation criteria, 465 Downtimes, 79, 104 End periodic process, 63 Drift angle, 50 End users DSRGM. See Decision Support and Report changes made by, 81, 82 Generation Manager and Luther architecture, 429–430 Dual redundancy, 103 Engine control systems, 83 Dynamic extraction, 241 Enhanced Direct Access Radar Channel Dynamic information, 235, 236, 237, 239, 240 (EDARC), 137 Dynamic link libraries (DLLs), 361 En route centers, 130, 131, 133, 147 Dynamic priority scheduling, 115 En route display consoles, and ISSS physical Dynamic views, 15, 236 view, 136 Ensembles Earliest deadline first, and dynamic priority model-process work flow and definition scheduling, 115 of, 468 Earth Core System (ECS), 317 of off-the-shelf components, 462, 463 Earth Observing System Data Information Enterprise information systems tier, in J2EE System (EOSDIS), 317 multi-tier model, 408 e-commerce architecture, 332, 341 Enterprise JavaBeans, 345, 346, 351, 352, and ABC, 340–342 401, 425, 443, 482 applications, and J2EE framework, 403 ABC for, 402, 403 quality goals achieved by, 346 aims of, 404–405 e-commerce systems architectural approach for, 408–410 deployment view of, 342 and dependence on JVM performance, 424 and entity beans, 422 deployment descriptors, 417 and performance, 349 and distributed transactions, 423 Economic models, of software, 307, 308 and J2EE containers, 443–444 Efficiency, and usability, 90 package diagram, 413 EJB client code, simplified example of, 415 programming, 413–416 EJBContext interface, 413 resource pooling with, 424 EJBHome, 413 and system deployment decisions, 419–420 EJBObject interface, remote interfaces and and work-flow component packaging, extension of, 413 447, 448, 449 Bass.book Page 506 Thursday, March 20, 2003 10:29 PM

506 Index

Enterprise software systems, requirements Examples. See also Case studies for, 404 ASEILM, 465, 466–476 Entity beans, 410, 443 garage door opener, 156–166 and EJB, 409, 410 reconstruction, 248–257 using or not using?, 422 Exception definitions, in interface work-flow component packaged as, 447 documentation, 213 Entity-relation diagrams, 477 Exception handler, 102 Environment Exceptions, 44 and airframe, 193 Exceptions tactic, 102, 147 in ATAM scenarios, 280 “Excludes” relation, 65 in CBAM scenarios, 310 Execution times, bounding, 114 and flight simulator, 178, 182, 183 Execution traces, 234 Errors, 44 Execution view, 42 minimizing impact of, 91 Executive constituent, of Structural Modeling Nightingale system and recovery of, 303 architectural pattern, 185 ESI. See External System Interface Executive states, of flight simulators, 189 e-stores, 348–349 Exemplar systems, and re-use, 356 European Laboratory for Particle Physics, Existence of A dependency type, 108, 110 328, 329, 332, 334, 346, 347 Expectations, evaluations and management Evaluate the model solution (step 6), in model of, 267 problem process, 471–472 Expected changes, anticipating, 107 Evaluation criteria, 469, 470–471 Explicit invocation, 125 Evaluation leader Exposure, limiting, 117 ATAM and role of, 273, 277 Extended Computer Module, 56, 57, 62, 63 in Nightingale system, 289 Extensibility, and the Web, 329 Evaluation of model solution, 465 Extension points, 361 Evaluation phases External sources, and product line evolution, and ATAM, 276 365 in Nightingale system, 290–303 External System Interface (ESI), 137 Evaluations, importance of, 262 Evaluation teams FAA. See Federal Aviation Administration architecture approaches analysis and, 285 Facade pattern, 109 and ATAM, 272, 275, 276, 279 Factory pattern, 109, 110 competent, 267 Failures, 101 and Nightingale system, 289, 290 differing standards for, 65–66 and risk theme identification, 286 faults versus, 79 and scenario brainstorming, 284 within SAS, 140 Evaluators Fast attack craft (FAC), 371 and ATAM, 275 FAST process, 358, 367 and utility tree, 282 Fat clients, 440 Event-based time management, in flight Fault detection, and availability, 102 simulator, 184 Fault prevention, and availability, 104–105 Event handler Fault recovery in air vehicle model executive, 185, 187 and availability, 102–104 for flight simulator, 192 and ISSS, 146 Event rate, managing, 113 Faults, 101 Events, 82, 83 discovering, 119 Event streams, and resource demand, 113 failures versus, 79 Event systems, subpatterns in, 125 Fault tolerance, 139 Evolutionary Delivery Development Process, 63 ISSS C&C hierarchy for, 145 Evolutionary Delivery Life Cycle, 154, 171, 173 mechanisms, 150 Evolutionary prototyping, and architecture, view, 144–147 31–32 Fault-tolerant hierarchy, 146 Bass.book Page 507 Thursday, March 20, 2003 10:29 PM

Index 507

Fault-tolerant ISSS applications, code Frame rates structure template for, 149 for flight simulators, 179–180 Federal Aviation Administration, 70, 129, and periodic time management, 183 130, 132 Frameworks, 478, 482 Fidelity, range of and flight simulators, 179 Front-line workers, computer support for, File containment, code segments for, 254 427, 429 Files, 234 FTP. See File Transfer Protocol in UCMEdit model, 250 Fuel system, in air vehicle model, 196 File Transfer Protocol, 336 Functional group (FG), 139, 140 Filter architectural type, 227 Functionality, 72 Filter Behavior Module, 58 allocating in example, 160, 161 Filter class, 223 and architecture, 72 Filtering, 118 for controller children, 192–193 Filters, and bridges, 459 and market share, 95 Financial benefits, from architectural Functional requirements, for child modules in inspections, 263 ADD, 164–165 findByPrimaryKey method, 415 Functional subsets, rapid identification of, 60 finder method, 415 Function calls, disambiguating, 241 Finite-state-machine models, 13 function_calls_function, 239 Fire control systems, 370, 372 Function Driver modules, 58, 62, 65, 66 Firewalls, 87, 117, 336, 343–344, 471, 472 Function pointers, 236 First-in/First-out (FIFO), 115 Functions, 234, 253 First-order effects, and flight simulator, 193 Function type, 244 “Fitness for use” criteria, and component Fused views, items, 240 qualification, 460 Future, in Active Object design pattern, 124 Fitness of purpose, evaluating software product line for, 362 Garage door opener example, 156–166, 480 Fixed-priority scheduling, 115 Garbage collection, and heap size, 424 Flight controls system, in air vehicle model, 195 Gateways, 336 Flight data, and ISSS physical view, 136 -gcverbose compiler option, 424 Flight simulation case study, 175–199 Gen++, 235 architectural solution, 182–196 Generalization, in UML, 221–222 relationship to ABC, 176–177 Generalized capability components, 442 requirements and qualities, 177–181 “Generalize the module” tactic, 107, 147 Flight simulators, 70 and code templates, 149 and ABC, 176–177 and module decomposition view, 138 design challenges with, 175 General quality scenarios, generation of, 78 execution states with, 179–181, 189 General scenarios, 75, 97 geographically distributed areas, 180 availability, 76 properties of, 179–181 communicating concepts and use of, 93–94 purpose of, 177 Generate quality attribute utility tree reference model for, 182 in ATAM evaluation phase 1, 279–282 roles in, 177–178 in Nightingale system evaluation phase 1, Flight simulator software, 155 294–295, 297 Flight strips, 136, 151 Generators for systems, 478 Follow-up (phase 3) Generic utilities, for libWWW, 335, 336 and ATAM, 276 get method, 422 in Nightingale system, 303 get_outbound_msg operation, 187 Formal specification languages, 13 Global Availability Management, 144 Fortran, CGI scripts in, 339 Global variables, in UCMEdit model, 250 Fortran libraries, 458 GNU make utility, 248 Forward-looking radar, 50, 51 Good design, promotion of, 265 “Four Plus One” approach, 41 Gopher, 336 Bass.book Page 508 Thursday, March 20, 2003 10:29 PM

508 Index

Göteborg class (Swedish), 371, 372 Hot spots, 343 goto statement, 477 Human–computer interaction research, 122 gprof, 236 Human–computer interface (HCI), 150, 382, Graphical images, 478 383, 388, 391, 394 Graphical notations, in primary presentation, Hypertext, 349 208 HyperText Markup Language (HTML), Graphical user interface (GUI) facilities, and 158, 329 ISSS, 135 Hypertext systems, 329 Graphic artists, and Luther architecture user criteria/features with, 331 interface, 436, 437 HyperText Transfer Protocol (HTTP), 334, Graphics, 331, 332, 343 336, 343, 470 Graphics element, 252 and browser-based interfaces, 439 grep, 232, 236 and custom Web-based clients, 440 grok fact manipulator tool, 258 and load balancers, 344 Ground control, 130 and Luther architecture, 435 Group decomposition, in air vehicle model, HyperText Transfer Protocol Secure 193–195 (HTTPS), 332, 336, 343, 344, 470 Groups, 195–196 Hypotheses, 250, 255 GUI-builder tools, 405 architectural abstractions as, 245 in identify a design question, 469 Hackers, 71, 86, 457, 474 and reconstruction, 233, 234 Halt state, in flight simulator, 179 Handheld computers, 352, 427 IDE. See Integrated development Handheld, pen-based tablets, 433 environment Hard real time, 129 Identify a design question (step 1), in model Hardware-hiding module, in A-7E module problem process, 468–469 decomposition structure, 56 Identify architectural approaches, in ATAM Hash results, 117 evaluation phase 1, 279 has_subclass relation, 240 Identify ending evaluation critiera (step 5), in Header files, 234 model problem process, 470–471 Head-mounted displays, 428, 429, 430 Identify implementation constraints (step 3), Heads-up displays, 50, 51, 63 in model problem process, 469 Health monitoring, and availability, 101 Identity of an interface of A, 108, 110 Heap, 424 Idioms, 125 “Heartbeat” tactic, 102, 146 IDL. See Interface Definition Language Helicopter guidance systems, architecture IEEE. See Institute of Electrical and reconstruction used for, 232 Electronics Engineers Heterogeneity, and the Web, 330 IEEE 802.11b, 435 Hierarchical domain engineering units, and IIOP (Internet Inter-ORB Protocol), 440 product development, 367 IIS. See Internet Information Server High-bandwidth communication, 167, 168 Imagix, 235 High-level design, architecture as, 23 Immediate business influence, and Highly distributed software applications, 129 architectures, 8 High-order effects, and flight simulator, 193 Implementation hold_parameter, 190 architecture and defining constraints on, 29 home class, 417 architecture versus, 43 Home information system, and example, changes made to, 81 157, 166 constraints, 465 home interface, 413, 414, 416 interface separated from, 120 “Horizontal” scaling (or scaling out), 344, and quality attributes, 73 422, 425 structure, 39 Host Computer System (HCS), 134, 135–136 Implicit invocation, 8, 125 Hot restart, 103 import operation, 186, 189, 190 Bass.book Page 509 Thursday, March 20, 2003 10:29 PM

Index 509

includes relationship, 235 Integrability, 100 “Increase available resources” tactic, 114 designing for, 175 “Increase computational efficiency” tactic, and flight simulators, 180, 196 113, 480 Structural Modeling pattern and Index, 217 achievement of, 198 Industrial development projects, architectural Integral factor of base rate, and flight views in, 43 simulator, 180 Inertial measurement set (IMS), 50 Integrated development environment, 345 Information extraction, 234–237 Integration, 354 guidelines for, 237 Integration mechanisms, 96 and reconstruction, 233, 248 Integration testers, 89 typical extracted element and relations, Integrators, and ATAM, 272 234, 235 Integrity, 86, 116 Information hiding, 16, 42, 44, 45, 49, 66, Intelligent data fusion, and mediation, 459 159, 168, 477 Interaction mechanisms, in architectural and Active Object design pattern, 124 patterns and styles, 125 and A-7E module decomposition, 54–56 Interchangeability, 33 and A-7E Project, 52 Interconnection strength, 255 and packaging, 142 Inter-element communication, 30 prevention of ripple effects and, 108–109 Interface Definition Language, 212, 458 Infrastructure technology, and CelsiusTech, 379 Interface documentation template, 212–214, 215 Inheritance, 219, 477 data type definitions, 213 “Inherits-from” relation, 38 element requirements, 214 initialize state, 190 exception definitions, 213 Initial Sector Suite System, 130–131 interface identity, 212 availability requirement for, 132–133 quality attribute characteristics of, 214 C&C hierarchy for fault tolerance, 145 rationale and design issues, 214 functions required of, 134–135 resources provided, 212–213 levels in fault-tolerant hierarchy, 146 usage guide, 214 physical view, 135–138 variability provided by, 213–214 scale of, 134 Interface mismatch, 457 software architecture layers, 143 avoidance techniques for, 461–462 software audit of architecture, 150–151 detection techniques for, 460–461 Inmedius, 352, 427, 428, 435, 443, 452 repair techniques, 457–460 ABC as it pertains to, 429 Interfaces, 230 and components, 436 adding, 109 device types and, 433 as annotations, 224 library of components at, 442 of child modules, 157 Luther architecture, and business of child modules, in example, 163–164 approach at, 431–432 as classes, 225 and Luther’s quality goal achievement, 450 as class/object attributes, 225 solution development at, 430 documenting, 211–214 and user interfaces, 432 and information hiding, 54 work-flow design rationale at, 445 no explicit representation of, 224 Input/output (I/0), managing for testing, 120 separating from implementation, 120 InputValue method, 239 to software element, 44–45 Instance-level collaboration diagram, 227 specification of, 211 Instances, as objects in UML, 223 stability, 109 Institute of Electrical and Electronics subsystems, 194 Engineers, 98 translation of, 458 Instructors, simulation, 178 in UML, 219, 224–225 Instructor station, and flight simulators, <>, in UML, 212 182, 183 Intermediaries, using, 109–110 Bass.book Page 510 Thursday, March 20, 2003 10:29 PM

510 Index

Intermediary (modifiability), and Active ABC for, 402, 403 Object design pattern, 124 and aims of EJBs, 404–405 “Intermediary” tactic, 413 browser-based clients and, 437 Internal monitoring tactic, 120 business needs and creation of, 425 Internal sources, and product line evolution, 365 and component packaging, 443 Internal Time Synchronization, 144 deployment view of multi-tier architecture Internet, 117, 329, 404 for, 406 backbones, in United States, 333 EJB support for quality attribute growth of, 332 requirements of, 411–412 and security, 332 and Luther architecture, 428, 431, Internet-enabled business systems, 434–435, 450–451 requirements of, 403 major platform features, 406 Internet Information Server (Microsoft), 467, Sun’s quality attribute requirements for, 405 468, 470, 475 and system deployment decisions, 419–420 Internet Protocol (IP), 332 and transaction and security services, 408 Interoperability, 7, 94, 478, 480 and the Web, 403–405 and language-independent interfaces, 58 Java Virtual Machine (JVM), 402, 408, 424, World Wide Web case study in, 327–349 443, 448 Interprocess communication, for SS2000, 390 Jini, 236 Inter-product commonality, and software Jitter, 84, 85 product lines, 354 JNDI. See Java Naming and Directory “Introduce an intermediary” tactic, and Interface SS2000, 391 J2EE. See Java 2 Enterprise Edition “Introduce concurrency” performance tactic, 124 “Keeping interfaces small, simple, and “Introduce concurrency” tactic, 114, 345 stable” tactic, and integrability, 175 Intrusion detection systems, 118 Keys, 117, 208 Inventory, 345 Kinetics, and airframe, 193 Inverse mappings Kinetics group, systems in, 195–196 and extracted information, 244 Knowledge and insight, reconstruction and reconstruction, 233 process guided by, 258 IP addresses, 343 “is-an-instance-of” relation, 38 LAN. See Local area network “is-a” relation, 125, 126 Landing gear system, in air vehicle model, 195 and module class view, 219 Language-independent interfaces, 58 “is-a-submodule-of” relation, 36, 54 Language requirements, and Nightingale “is-part-of” relation, 208, 219 system, 291 ISSS. See Initial Sector Suite System Late binding, 236, 237 is_subclass_of class, 235 Latency, 84, 85, 111 IT architecture, 478 and contention for resource, 112 Iterative prototyping, 9 reducing, 113, 114 Layered architectures, 62 Java applets, 343 Layered patterns, 279 Java Database Connectivity (JDBC), 435 Layered structure, 37, 44 Java Naming and Directory Interface, 413 Layered view, 41, 142, 144, 147, 205, 207 Java programming language, 346, 401, 402, and architecture presentation, 278 404, 425 for SS2000, 392 JavaScript, 439 Layers, 37, 62 JavaServer Pages (JSP), 407, 437, 473 LCN. See Logical Communications Network Java servlet ensemble LCN interface units (LIU-H), 137 evaluation of, 472, 474–476 Learning system features, 90 layers of custom component, 474 “Least effort” extraction, 237 Java 2 Enterprise Edition (Sun Microsystems), “Leftover” functions, in UCMEdit model, 250 351, 352, 401, 407, 452, 482 Legacy systems, 96, 232, 257, 341 Bass.book Page 511 Thursday, March 20, 2003 10:29 PM

Index 511

Lexicon analyzers, for information extraction, Long-term business influences, and 235, 236 architectures, 8 lex/yacc, 232 Looping, and work-flow component, 445 libWWW, 329, 330, 334–336, 349 Loose coupling, and teams, 168 content producers/consumers interacting “Lost” architecture, beginning process of through clients/servers, 334 recovering, 246–247 deployment view of Web client server, 338 Low-bandwidth communication, between early client-server architecture use of, teams, 167 337–339 lsedit visualization tool, 258 layered view of, 335 LSME, 235 lessons from, 336–337 Luther applications, deployment view of, 436 Life cycle Luther architecture, 427–452 architecture in, 153–155, 481–482 ABC as it pertains to, 429–432 electronic flight simulators and problems and browser-based clients, 437, 439 with, 176 and business approach, 431–432 evolutionary delivery, 154 and business delegate pattern, 452 “Limit exposure” tactic, 144 components for, 442–444 “Limit possible options” tactic, 107 and custom Web-based client, 439–440 Links, 435 and organizational structure, 431 connector instances as, 225 quality goals achieved by, 451 and the Web, 331 requirements/qualities met by, 432–434 Linux system, 258 and software developers’ experience, 431 List class, 254, 255 strategy and quality goals achieved by, 451 List element, 255 and use of J2EE, 450–451 ListItem class, 254, 255 work-flow component and, 444–450 ListIterator class, 254, 255 Luther system, 358 List method, 239 Load balancing, 114, 443 M&C. See Monitor-and-Control consoles and e-commerce sites, 344 mailcap, 338 and EJB container, 444 main procedure, 241 and Luther architecture, 434 Maintainability, and Nightingale system, 291 Loading factors, and arrival patterns, 83 “Maintain an audit trail” tactic, 118 Load time, 110 Maintainers Local area network, and SS2000, 371 and architectural integrity, 96 Local Availability Manager, 144, 146 and ATAM, 272 Local changes, 31 Maintain existing interfaces, prevention of Local file systems, 336 ripple effects and, 109 “Localize changes” tactic, 159 “Maintain interface stability” tactic “Localize modifications” tactic, 106–107 and client-server view, 142 Local variable aggregation, and SQL and and code templates, 149 , 244 and module decomposition view, 138 Location independence, and Luther “Maintain multiple copies” tactic, 114 architecture, 434 “Maintain semantic coherence” tactic, 106–107 Location of A (runtime), 108, 110 Maintenance phase, 14 Location sensing, 434 Makefiles, 236 Locks, and work-flow model definitions, 447, Malfunctions, 191, 193 448, 449 Manageability, and Web-based applications, 404 Logging, 336 “Manage event rate” tactic, 113 Logical Communications Network, 137, 138 Manage input/output tactics, 120 Logical_Interaction architectural element, 244 Management information, in documenting a query for identifying, 245 view, 209 Logical threads, 38 Many-to-many mappings, between Logical view, 41 structures, 40 Lollipop notation, in UML, 219, 225 Mapping between views, 217, 481 Bass.book Page 512 Thursday, March 20, 2003 10:29 PM

512 Index

Marketing Plan, at CelsiusTech, 383, 384 Model problems, work flow, 463, 464 Market segmentation, and product scope, 358 Models Marshalling, 112 flight simulators and use of, 179 Measuring techniques, 265–266 and system initiative tactics, 122 Mediator pattern, 109 Model solution, 463, 465 Mediators, 459–460 evaluating, 471–472 Melard Sidearm, 433 for Java servlet ensemble, 472 Memory footprints, for various device producing, 469–470 classes, 433 Model-View-Controller pattern, 109, 123, 127 Memory leaks, preventing, 105 Modifiability, 7, 16, 25, 30, 69, 73, 80–81, Memory utilization, 7 127, 442 MergeAndSort, in UML, 223, 224 application servers for, 345 Merging, and work-flow component, 445 and avoidance of interface mismatch, 461 Mesa, 250 and common services, 106 Message passing, 139 and component repair, 457 Method request, in Active Object design and e-commerce, 341 pattern, 124 and flight simulators, 196 Metrics, 265, 269 performance versus, 159 Microsoft, 347 and software architecture, 201 Access, 468, 470 and SS2000 product line, 388 COM+, 425 Structural Modeling pattern and development practices at, 173 achievement of, 198 and Evolutionary Delivery Life Cycle, 171 and system quality attributes, 74 IIS, 467, 468 Web browsers for, 342–343 .NET, 402 Modifiability scenarios, 76–77, 82, 83 Passport, 332 Modifiability tactics, 105–111, 125, 480 Middleware Company, The, 425, 478 and client-server view, 142 “Migrates-to” relation, 38 and code templates, 148 Migration, and COTS adoption, 476 defer binding time, 110–111 mimerc, 338 design-time tactics related to, 121 Mining machinery, and architecture localize modifications, 106–107 reconstruction, 232 and module decomposition view, 138 Mismatch correction, 457 prevention of ripple effects, 107–110 Miss rate, 85 Modification, and flight simulators, 180, 181 Misuse detection, 118 MODN. See Noise Model MIT, Media Laboratory at, 428 MODP. See Prop Loss Model Miva Empressa ensemble, 467, 468–472 MODR. See Reverb Model Miva Script applications, 467 Modularity, and Nightingale system, 292 Mixed initiative, 122 Module-based programming languages, 477 Mixed-time systems, in flight simulator, 184 Module-based structures, 36–38 Mk2, 376 Module decomposition Mk2.5, 376, 377, 378, 380, 381 goals of, 55 Mk3, 377 SS2000, and units of software in, 394 ML polymorphism, 462 Module decomposition structure, 40, 41, 47, 48 Mobile devices, 439 and A-7E system, 66 and Luther architecture, 437 and team structure, 168 Modeling and analysis, and re-use, 355 Module decomposition view, 138, 147, 164 Model problem process steps with ADD, 161 define the starting evaluation criteria, 469 of A-7E software architecture, 59 evaluate the model solution, 471–472 for SS2000, 392, 394–395 identify a design question, 468–469 Module guide, 55, 57, 58 identify ending evaluation criteria, 470–471 Module interconnection view, 42 identify implementation constraints, 469 Module re-use, and CelsiusTech product produce a model solution, 469–470 line, 397 Bass.book Page 513 Thursday, March 20, 2003 10:29 PM

Index 513

Modules, 35, 36, 97, 477 National Reconnaissance Office, 354 of air vehicle model application, 185–192 Natural language, semantic information and avoidance of interface mismatch, 461 conveyed with, 213 choosing those for decomposition in Naval Business Unit, at CelsiusTech, 384 ADD, 157 Naval product lines, SS2000, 371–373 in decomposition structure, 54 Naval Research Laboratory (NRL), 52, 66 for flight simulator, 192 Negotiated interface, 462 instantiating in example, 160 Negotiated resolutions, 264 and SS2000, 396 Nesting, 210, 221 structures, 35–36 Nesting of symbols, and node symbol in in UML, 219 UML, 229 Module views, 17, 41, 206 .NET architecture, 402 and architecture presentation, 278 Netscape Secure Sockets Layer, 343 options in, 208 Network address translation (NAT), 343 in UML, 218–222 Network interface sublayer (NISL), 144 Monitor-and-Control (M&C) consoles, 137 Network News Transport Protocol, 336 MRI scanners, 232, 233 Network-related conventions, and COOB, 391 Multi-process applications, name clashes in, 241 Network usage, 7 Multi-processor systems, 170, 236 NeXT platform, 329 Multi-threaded servers, 344 Nightingale ATAM exercise, tabular form of MVC pattern. See Model-View-Control pattern utility tree for, 296–297 Nightingale system case study, 288–303 Name clashes, in multi-process applications, analyze architectural approaches step 241 (phase 1: evaluation), 297–299 Names, in ATAM utility tree, 281 analyze architectural approaches step Name servers, 110 (phase 2: evaluation), 302 Naming conventions, code segments based brainstorm and prioritize scenarios step on, 246 (phase 2: evaluation), 300–302 Naming services, 401 catalog architectural approaches step Narrowly scoped product lines, 358 (phase 1: evaluation), 293–294 NASA ECS Project case study follow-up (phase 3), 303 architectural strategies and scenarios generate quality attribute utility tree step addressed, 320–322 (phase 1: evaluation), 294–295, 297 assign utility step, 319 hospital installation scenario in, 302 calculate total benefit obtained from archi- partnership and preparation (phase 0), tectural strategy step, 322–323 288–290 CBAM applied to, 317–324 present architecture step (phase 1: choose architectural strategies based on evaluation), 292–293 ROI value step, 323–324 present business drivers step (phase 1: collate scenarios step, 317 evaluation), 290–292 collected scenarios, 318 present results step (phase 2: evaluation), determine utility of “expected” quality 302–303 attribute response levels step, present the ATAM step (phase 1: 321–322 evaluation), 290 prioritize scenarios step, 318–319 NNTP. See Network News Transport Protocol refine scenarios step, 317, 319 NobelTech AB, 370 response goals for refined scenarios, 318 Nodes, 227, 228, 388 ROI of architectural strategies, 323 Noise Model, 20 NASA satellite data system, ATAM applied Noncentralization, and the Web, 331 to, 305 Nonintegral factor of base rate, and flight NASA systems, architecture reconstruction simulator, 180 used for, 232 Nonlocal changes, 31 National Airspace System Modification Non-real-time systems, 6 (NASM), in ISSS, 138 Nonrepudiation, 86, 116, 118 Bass.book Page 514 Thursday, March 20, 2003 10:29 PM

514 Index

Non-risks Operating system threads, 162 and architectural approaches, 282, 283, 284 Operational modes, 85 and ATAM, 274, 304 Operational units, 139, 140–141 and Nightingale system, 299, 302, 303 Opportunistic evaluation, 269 Normalization, and architectural strategy, 313 Options, 208, 209 Normal mode, 85 Optronic directors, on Göteborg class Notation, UML, 219 multi-role corvette, 372 n-square charts, 194–195, 198 Organizational structure, 8, 32, 70, 171 n-tier applications, 345 and architectural structure, 168, 169 n-tier architecture, 341 architecture and dictation of, 29–30 Numerical analysis, 168 for CelsiusTech, 380–387 and Luther architecture, 431 Object-based design, 44, 53, 55 and system structure, 167 Object containment, and systems, 227 Outputs, ATAM, 285–287 Object Management Group, 112, 230 Output values, of avionics software, 63 and CORBA, 401–402 Overloading, 361 Object-oriented analysis, 13 Overload mode, 85 Object-oriented decomposition, and Ownership changes, for CelsiusTech, 378–379 controller children, 192 Object-oriented design methods, 160 Packages/packaging, 142, 147 Object-oriented systems, 401 UML, 219, 222, 226 Object request broker (ORB), 402 work-flow components, 447–449 Objects, 45, 477, 478 Packet filter firewalls, 344 and allocation views in UML, 228 Packet filters, 343 connector instances as, 226 PAC pattern. See Presentation-Abstraction- within work-flow model definition, 448 Control pattern Object technology, and CelsiusTech, 379 Paging, and heap size, 424 Obstacle detection algorithm, 480 Parallelism, 38, 97 Obstacle detection module, in example, 160, Parallel systems 165, 166 architectures for, 16 ODBC, 435 and deployment structure, 39 Off-the-shelf components, 476 Parameterized function call, 477 and architectural mismatch, 456–462 Parameterized interface, 462 challenges with, 456 Parameterized modules, and CelsiusTech ensembles of, 462, 463 product line, 397–398 and Quack.com, 454–455 Parameter setting, 81 requirements negotiation with, 467 Parsers, for information extraction, 235, 236 systems built from, 453–476 Partitioning OMG. See Object Management Group flight simulator sample, 192–193 Omission, 80 and n-square charts, 194–195 One-time passwords, 116 Partnership and preparation (phase 0) Online bookshop example, and state in ATAM-based evaluation, 275 management, 420–422 in Nightingale system, 288–299 Online stores, 348–349 PAS. See Primary address space OnLine Transaction Manager (OLTM), 298 PAS failures, and switchovers, 139–140 communication, data flow, and processors Passivation of, 294 and scalability, 420 data flow architectural view of, 295 of stateful bean, 410 layered view of, 293 Passive redundancy tactic, 103–104 and Nightingale system, 292 Passwords, 116, 118 Openness, and air traffic control system, 133 Paths, elements related to, 255, 256 operate operation, 187 Pattern definition and recognition, and operate state, 179, 189 reconstruction, 241 Operating systems, 373, 453 Pattern matching, 236 Bass.book Page 515 Thursday, March 20, 2003 10:29 PM

Index 515

Pattern-oriented software architecture, 42, 127 Perl proxy server, 470, 471 Patterns, 33, 261 Persistence services, 401 architectural, 24–25, 232, 242, 279 Personal computers, price/performance ratio and ARM, 258 for, 402 business delegate, 452 Personal digital assistants (PDAs), 433 in Dali, 242 Personnel, and re-use, 356 design, 259 Philips Elektronikindustrier AB, 370 and Nightingale system, 290 Philips Research, 258, 358, 367 and tactics, 100, 480–481 Physical distribution, 40 Payload sizes, 118 Physical Models Module, 58 PDF. See Portable Document Format of A-7E architecture, 168 .pdf files, 337 Physical Models procedure, 62 Performance, 7, 69, 73, 82–84, 100, 171 Physical view, 41 and air traffic control system, 133 and ISSS, 135, 136–138 application servers for, 345 Physics simulation systems, and architecture databases for, 345 reconstruction, 232 and e-commerce, 341, 349 Ping/echo fault detectors, 102 and entity beans, 422 “Ping/echo” tactic, 102, 146 for flight simulators, 179, 196 Pipe-and-filter style, in UML, 223 and JVM, 424 Pittsburgh Digital Greenhouse, Spot, 433 load balancing for, 344 Planned evaluations, 266 and market share, 95 Planning function, with mediators, 459 modifiability versus, 159 Platform changes, 81 and Nightingale system, 291 Platform compatibility, 7 proxy servers for, 343 Platform for Internet content selection and quality attributes, 74 (PICS), 333 and software architecture, 201 Plug-and-play operation, 110 and SS2000 product line, 388 Plug-ins, 335 Structural Modeling pattern and Polygon Module, 222 achievement of, 197–198 Polymorphism, 111, 236 and system quality attributes, 74 Portability, 25, 81, 94, 100 Web servers for, 344–345 and Java, 402 Performance engineers, and ATAM, 272 with J2EE/EJB, 425 Performance scenarios, 83 and language-independent interfaces, 58 generation of, 85 and Luther architecture, 434 sample, 84 and market share, 95 Performance tactics, 111–116, 125 and quality attributes, 74 goal of, 111, 112 and the Web, 340 resource arbitration tactic, 114–116 Portable Document Format, 459 resource demand tactic, 113–114 Port number, 118 resource management tactic, 114 Ports, 224 Periodic event arrival, 83, 84 POSIX, and SS2000, 373 Periodic operations, and controller children, 191 Postconditions, 213 Periodic process, 63 POSTGRES relational database, 238 Periodic sequencer Post-mortem meetings, and ATAM, 276 in air vehicle model executive, 185, 186 PostScript, 337 for flight simulator, 192 Preconditions, 213 Periodic time management, in flight Prepare BCN Messages, 144 simulator, 183 Prepare Messages (PMS) layer, 144 perk, 239 Preprocessor macros, 120 perl, 232, 236, 238, 243, 339 Present architecture step expressions and Dali, 242 in ATAM evaluation phase 1, 277–279 and local variable aggregation, 244 in Nightingale evaluation phase 1, 292–293 Bass.book Page 516 Thursday, March 20, 2003 10:29 PM

516 Index

Presentation-Abstraction-Control pattern, Process recommendations, in “good” 123, 127 architecture, 15 Presentation class, 250, 254, 255 <> stereotype, 224 Presentation logic, and Java servlets, 472 Process structure, 38, 40, 47, 48 Present results step for A-7E, 63–65, 66 in ATAM evaluation phase 2, 285 Process views, 41, 138–141, 147, 207 in Nightingale evaluation phase 2, 302–303 and element catalog, 208 Present the ATAM step for SS2000, 390–392 in ATAM evaluation phase 1, 277 Produce a model solution (step 4), in model in Nightingale evaluation phase 1, 290 problem process, 469–470 Present the business drivers step Product architectures, results of evaluation of, in ATAM evaluation phase 1, 277 362–363 in Nightingale evaluation phase 1, 290–292 Product-based organizations, 375 Preset adaptation data, 147 Product line architects, considerations by, 360 “Prevent the ripple effect” tactic, 107–110, 159 Product line architecture, 11, 388 Primary address space, 139, 148 evaluating, 362–363 Primary component, 103, 104 Product-line-based organization, 375 Primary presentation Product line development, for SS2000, 369 in documenting a view, 207–208 Product line organizational models, types of, and UML, 218 366–367 PrimitiveOp class, 239, 240 Product line pitch, 203 PrimitiveOp::Compute, 240 Product lines, 45, 367 printf function, 248 architecture-based, 232 Prioritization, and utility tree generation, 280 and CelsiusTech’s organizational Prioritization strategies, common, 115 structure, 380–387 Prioritize scenarios step failure with, 359 for CBAM, 316 scope of, 357–358 in NASA ECS Project, 318–319 SS2000 architecture and achievement Private interfaces, 461 of, 396 Private keys, 117, 343 summary of CelsiusTech’s conversion to, Private links, and the Web, 331 398–399 Proactive product lines, and scope, 364 and variation, 82 Problems, early detection of, 264 Product line support, for SS2000, 390–392 Procedures, processes and systems, and Product Line Users Group, at CelsiusTech, 384 Luther architecture, 432, 433 Product (or structural) recommendations, 15 Proceedings scribe, ATAM and role of, 273 Product Plan, at CelsiusTech, 383, 384 Process communication, 40 Products Group, at Inmedius, 431 Process enforcer Profilers, for information extraction, 236 ATAM and role of, 273 Profiling tools, 236 in Nightingale system, 289 Program families, 42, 44, 45 Processes, 138 Programmatic transaction management, for A-7E, 63 450, 451 and re-use, 356 Programming, 33 process_event operation, 189, 190, 191 and EJBs, 413–416 Processing deadlines, 84 Programming languages, early, 477 process_malfunction, 190 Project decision makers “Process monitor” tactic, 105 and ATAM, 272, 275, 276, 304 Process observer and utility tree, 279 ATAM and role of, 273 Project glossary, 218 in Nightingale system, 289 Project managers, 272 Processor groups, 139, 140 and architecture, 27 Processors, 139 and Nightingale system, 290 Processor speeds, for various device classes, 433 Project planning, and re-use, 355 Bass.book Page 517 Thursday, March 20, 2003 10:29 PM

Index 517

Prop Loss Model, 20 availability scenario, 76, 79–80 Propulsion subsystem, 196 generation of, 77 Propulsion system, in air vehicle model, 195 modifiability scenario, 76–77, 80–82 Protocols, 118, 214 performance scenario, 82–85 Prototypes/prototyping in practice, 78–94 and architecture, 31–32 security scenario, 85–88 creation of, 13 testability scenario, 88–90 and Luther architecture user interface, 437 usability scenario, 90–93 Provides assumptions, 457, 458 Quality-attribute-specific tables, 78 Proxy, in Active Object design pattern, 124 Quality attribute utility tree Proxy pattern, 109 ATAM and generation of, 279 Proxy servers, 336, 343 Nightingale system and generation of, Pseudo-threads, and libWWW, 337 294–295, 297 Public keys, 117, 343 Quality goals Publish-subscribe A-7E module decomposition structure and in example, 161 achievement of, 56 patterns, 109 A-7E process structure and achievement registration, 110 of, 64 python, 232 A-7E uses structure and achievement of, 61 Luther and achievement of, 451 Quack.com, 453, 454–455 Quality of service/data provided by A Qualification, and COTS adoption, 476 dependency type, 108 Quality, 69 Quality requirements, 99 Quality attribute characteristics of interface, and architectural drivers, 158 in interface documentation, 214 and Attribute-Driven Design, 156 Quality attribute names, in ATAM utility mapping of architectural decisions to, 274 tree, 281 Quality scenarios Quality attribute parts, 75 and architectural drivers, 158 Quality attribute requirements, 305 and business goals, 155 and future impact of components, 483 for example, 156 for J2EE, 405 verifying/refining as constraints for child meaningful generation of, 78 modules, 164, 165–166 for typical Web-based applications, 404 Queries, and database models, 237 Quality attributes, 14, 16, 42, 69, 99, 480 Questioner and architectural structures, 40 ATAM and role of, 274 and architecture, 73–74, 453 in Nightingale system, 289 and ATAM, 279, 280 Questioning techniques, 265, 266 and Attribute-Driven Design, 155 Questionnaires, 265 and CBAM, 324 Queue sizes, bounding, 114 and cross-cutting requirements, 481 and documentation, 205 R&D group, at CelsiusTech, 385 functionality and architecture, 72 Radar controllers, 133 importance of architecture and, 144–145 Radar reports, 134 and integrability, 175 Radio buttons, 435 and Nightingale system, 292 Raising/lowering door module, in example, and patterns, 25 165, 166 and scenarios, 75–78 Rate monotonic, and fixed-priority and software architecture, 30–31 scheduling, 115 stimuli, 94 Rate Monotonic Analysis, 110 system, 74–75 Rationales and tactics, 100 in architecture background, 209 understanding, 71–98 capturing, 264 Quality-attribute scenarios, 13, 70, 74, 75, in interface documentation, 214 78–94 Rational Unified Process, 41, 43, 155, 173 Bass.book Page 518 Thursday, March 20, 2003 10:29 PM

518 Index

Reactive model, and product family, 364–365 Relations Reactive systems, and statecharts, 210 extraction of from UCMEdit, 248 Reader’s viewpoint, 230 and information extraction, 234, 235 and architectural documentation, 202 raw set of, 249 Real-time deadlines, 6 Relationship models, 26 Real-time embedded software systems, 53 Relationships Real-time performance, with Structural graphical representation of, 243 Modeling pattern, 197 subset of, 243 Real-time performance constraints, for flight tables, 238 simulators, 179–180 Releases, and Evolutionary Delivery Life Real-time scheduling mechanism, 163 Cycle, 154, 173 Re-architecting tool suite, 258 Relevant views, choosing, 205–207, 229 Reconstructing software architectures, Reliability, 7, 44 231–259, 481 and market share, 95 database construction, 237–239 and SS2000 product line, 388 example, 248–257 Remote access, and the Web, 329 information extraction, 234–237 remote class, 417 reconstruction, 241–246 remote interface, 413, 414, 416 reconstruction activities, 233–234 Remote method invocation, 113, 402, 440 view fusion, 239–241 “Removal from service” tactic, 104–105, 141 workbench approach, 232–233 Reorganizations, at CelsiusTech, 379 Reconstruction, 203, 233 Repair code, classes of, 458 Reconstruction example, 248–257 Repair of system failure, 79 database construction, 248–249 Repairs, 101 information extraction, 248 Replay state, in flight simulator, 179 view fusion, 249–257 Replicas, purpose of, 114 Reconstruction workbenches, 258 Replication, 163 Reconstructors, 233, 244, 245 Reports and UCMEdit example, 248 after ATAM-based evaluations, 275, 276 Recording, Analysis, and Playback, in ISSS, evaluation, 268 138 Repositories, 109 “Record/playback” tactic, 179 Repository structure, 38 and managing input/output for testing, 120 Requirements, 12, 479 Recovery, 101 for garage door opener example, 158 “Reduce computational overhead” tactic, 113 and re-use, 355 Reduce demand, 159 specification, 6 Redundancy, 70, 146 understanding, 13 and availability, 101 Requirements analysis and Web-enabled enterprise systems, 423 and architecture design, 171 “Redundancy” tactic, 100 preliminary, 154 Re-engineering workbench, 258 Requirements document, 3, 7, 8 Reference architectures, 25, 26, 42, 53 for A-7E Project, 53 for e-commerce systems, 341 Requirements validation, 264 Reference model, 25, 42 “Requires assumptions” interface, 457, 458 for flight simulator, 182 Research world, success and failure in, 65–66 Refine, 235 Resource allocation decisions, and Refine scenarios step implementations, 29 for CBAM, 316 “Resource arbitration” tactic, 114–116, 159 in NASA ECS Project, 317 Resource behavior of A, 108, 110 Reflective programs, 361 Resource consumption, 112 Relational database model, and Dali Resource contention areas, 15 workbench, 238 Resource contention problems, 162 Relational databases, 12 Resource demand tactics, 113–114, 159 Bass.book Page 519 Thursday, March 20, 2003 10:29 PM

Index 519

Resource management tactics, 114 Reverb Model, 20 Resource managers, 110 Reverse-direction arrows, 155 Resource name, 212 Reverse engineering expert, 232 Resource ownership, 108 Reviews, forced preparations for, 264 Resource pools, 424, 425 rigiparse, 235 Resources, contention for, 112 Rigi Standard Form, 233, 238, 258 Resource semantics and syntax, in interface Rigi tool, 241, 258 documentation, 212–214 Risks, 268 Resource usage restrictions, in interface and architectural approaches, 282, 283, 284 documentation, 213 and ATAM, 274, 304, 309 Response, 80 and COTS adoption, 476 in ATAM scenario, 280 and Nightingale system, 299, 302, 303 of availability scenario, 80 Risk themes CBAM and scenarios in, 310 and ATAM, 275, 285, 286 jitter of, 84 for Nightingale system, 303 of modifiability general scenario, 82 rlogin, 336 of performance general scenario, 85 RMI. See Remote method invocation of quality attribute scenario, 75 ROI. See Return on investment of security general scenario, 87 Roles, in flight training simulator, 177–178 tactics for control of, 100 Rollback tactic, 104 of testability general scenario, 90 Rollout schedule, 96 of usability general scenario, 92 Root node, utility of, 279 Response measure Rose model, and Nightingale system, 303 of availability scenario, 80 Round robin, and dynamic priority of modifiability general scenario, 82 scheduling, 115 of performance general scenario, 85 Routers, for security, 343 in quality attribute scenario, 75 RTL/2, 376, 378 of security general scenario, 87–88 Rule-based system, 170 of testability general scenario, 90 Rules engine, and Nightingale system, of usability general scenario, 92–93 298–299, 303 Response time, 112–113 Runtime, 237 Restrict communication paths, prevention of architectural and interface mismatch and ripple effects and, 109 errors in, 457 “Restrict communication” tactic, 188 binding at, 110 Results, Nightingale system and presentation components, 36 of, 302–303 parameterization, 236 return function, 248 registration, 110 Return on investment (ROI), 309, 310, 315 structure, 47 calculating, 313 Runtime tactics, 121–122 CBAM and architectural strategies based RUP. See Rational Unified Process on, 316 Re-use/reusability, 44, 353 SAAM. See Software Architecture Analysis and architecture, 351 Method and CelsiusTech product line, 396, 397 Safety, and SS2000 product line, 388 and components, 442 Safety-critical systems, 13, 129 failures with, 356 Sampling, control frequency of, 113 of Java components, 405 SAS. See Standby address space and Luther architecture, 444–450 Satellites, and architecture reconstruction, 232 of modules, 477 Scalability, 30, 94 and software architecture, 26, 32–35 application servers for, 345 and software product lines, 355 databases for, 345 of work-flow component, 445 and e-commerce, 341 Re-use library, 356, 357 load balancing for, 344 Bass.book Page 520 Thursday, March 20, 2003 10:29 PM

520 Index

Scalability continued designer’s decisions, J2EE, and imple- and Luther architecture, 434 mentation of, 450 and Nightingale system, 292 and e-commerce, 341 and passivation strategies, 420 and EJB container, 444 and Web-based applications, 404 HTTPS for, 343 and the Web, 329 and Java servlet ensemble, 472, 474 Scaling out (or “horizontal” scaling), 422 and Nightingale system, 292 Scaling up (or “vertical” scaling), 422 routers and firewalls for, 343–344 scanf function, 248 and software architecture, 201 Scenario-based techniques, 14 and system quality attributes, 74 Scenarios, 13, 40, 99, 265 and the Web, 332, 340, 349, 404 and ATAM, 280, 304 Security general scenarios, 86–88 ATAM and brainstorming/prioritizing of, Security kernel, 73 284–285 Security scenarios, sample, 87 CBAM and collating/prioritizing/refining Security tactics, 116–119, 125 of, 316 detecting attacks, 118 coupling tactics and, 480 recovering from, 118 and Luther architecture, 449 resisting attacks, 116–117 and Nightingale system, 295, 297, sed, 232 300–301, 302 Seeheim pattern, 123, 127 and product line architecture, 362 SEI. See Software Engineering Institute quality attribute, 69, 70 Self-configuring software, 462 and quality attribute names, 281 Semantic coherence, 107, 123, 159 usability, 122 and CSCIs, 138 utility and priorities of, 312 maintaining, 106 utility and variations of, 310 “Semantic coherence” tactic and utility tree, 280 and code templates, 149 Scenario scribe and separation of concerns with EJB, 417 ATAM and role of, 273 Semantic constraints, in architectural patterns in Nightingale system, 289 and styles, 125 Schedule estimates, and software Semantic importance, and fixed-priority architecture, 32 scheduling, 115 Scheduler, in Active Object design pattern, 124 Semantics, 108 Scheduler module, in example, 165, 166 Semicolon, 477 Schedules, 170, 354, 355 send operation, 187 Scheduling policies, 114–115, 159 Sensitivity points and Active Object design pattern, 124 and architectural approaches, 282, 283, 284 and flight simulator, 183 and ATAM, 274, 309 Scheduling theory, 115, 127 and Nightingale system, 298, 299, 302, 303 Scope/scoping, 354 Sensor/actuator virtual machine, synchron- controlled, 267 ization mechanisms for, 162, 165 and product lines, 357–358, 364 Sensory inputs, and flight simulator, 180 SCR. See Software Cost Reduction “Separate user interface” tactic, 123, 435, 442 Screen shots, and Luther architecture user “Separating interface from implementation” interface, 437 tactic, and managing input/output for Scribe, 279 testing, 120 Scripts, and bridges, 459 Separation of concerns, 41, 45, 55, 417 Secondary address space (SAS), 139, 148 Sequence, 108 Sector suite, controllers at, 133, 134 Sequence diagrams, 209, 211 Secure communications, between IIS and perl Servant, in Active Object design pattern, 124 proxy server, 470 Servers, 334 Secure Sockets Layer, 117, 332, 343 applications as, 141 Security, 7, 25, 69, 85–86, 127, 443 multi-threaded, 344 Bass.book Page 521 Thursday, March 20, 2003 10:29 PM

Index 521

Server-side components, EJB, 413 Simulation algorithm, for controller children, 190 Server tier, processing power increases in, Simulation instructor, and flight simulator, 178 422–423 Simulation parameters, and controller Service, 109 children, 191 semantics of, 108 Simulator development, 180 syntax of, 107 Simulator sickness, 180 Service providers, and ABC for the Web, Site-specific adaptation data, 147 346, 347 Size, of flight simulators, 180 Service request message, 139 Skeletal system, 15, 31, 70, 173 Servlet code, 408 creating, 170–171 Servlets, 407, 437 for flight simulator, 192 Session beans, 409, 443 SLOC. See Source lines of code Session EJBs, and work-flow component SNiFF+, 235 packaging, 448 Social influences, and software architecture, 5 Session state, and Luther architecture, 441 Socket connections, and resource pooling, 424 set method, 422 Software set_parameter, 190 A-7E, 49 SF300 class multi-role patrol vessels economic models of, 307, 308 (Danish), 371 flight simulator, 181 “Shadowing” tactic, and process view, 141 self-configuring, 462 “Shadow mode,” 104 Software architects, 25, 97 “Shadow operation” tactic, 104 Software architecture, 19–23, 43, 69. See also Shadow pages, 104 Architecture Tradeoff Analysis Shape Module, 222 Method; Reconstructing software Shared data structure, 38 architectures Shared data view, 207 central role of, 201 Shared Services procedure, 62 and change management, 31 “Shares-a-secret-with” relation, 54 common structures, 37 Shipboard systems, requirements of, 388 within configuration management Ship System 2000 systems, 481–482 applying architecture, 395–398 and cost/schedule estimates, 32 architectural goals for, 395 definition of, 3, 21 history behind product line, 377 and design decisions, 29–32 layered software architecture for, 393 documentation as introduction to, 203 layered view for, 392 in education, 483 module decomposition view for, 392, and evolutionary prototyping, 31–32 394–395 future of, 477–484 naval product line, 371–373 importance of, 26–35 organization, 381–383, 384, 385 and product lines, 360 process view for, 390–392 and quality attributes, 30–31 product line development for, 369 relationship between reference models, staffing, 385–387 architectural patterns, reference and STRIC, 374 architecture, and, 26 Show multiple views, 122 re-use of, 353 Side effects, 457 system architecture versus, 34 and architectural strategies, 312–313 and template-based development, 34–35 Signature(s) and training, 35 of elements, 212 as transferable, re-usable model, 26, 32–35 interface, 211, 219 typical, uninformative presentation of, 20 matching, 211 and usability, 91, 92, 97 and resource syntax, 212 Software Architecture Analysis Method, 305 Simplex approach, 103 Software architecture documentation, Simplex architecture for availability, 127 fundamental principle of, 230 Bass.book Page 522 Thursday, March 20, 2003 10:29 PM

522 Index

Software Cost Reduction, 52, 66 Special Operations Forces family of trainers, Software decision module, 56–57 177 Software design patterns, 173 Specification-level collaboration diagram, 227 Software elements, architecture and definition Spline Module, 222 of, 21 Splitter class, 223 Software engineering, 42 Splitter role, 227 education, future of software architecture Sporadic event arrival, 83, 84 in, 483 Spot (Pittsburgh Digital Greenhouse), 433 and software product lines, 354 “Spot the Architecture,” playing, 246–247 Software Engineering Institute, 268, 399 Spreadsheets, 12, 478 ASEILM developed at, 466 SQL (Structured Query Language) code, Dali developed by, 258 generation of in Dali, 238 practice areas identified by, in fielding SQL dialect, and Nightingale system, 298 product lines, 363 SQL format, conversion of extracted software architecture Web page, 43 information to, 238 Software engineers, 233 SQL queries, 243 Software interfaces, documentation for, 58 and Dali, 242 Software life cycle, testing within, 89 and local variable aggregation, 244 Software process, and ABC, 12–14 and recovery of “lost” architecture, 247 Software product lines, 170, 351, 353–368, 367 SQL Server, 472 adoption of, 364–365 SS2000. See Ship System 2000 architectures for, 360–363 SSL. See Secure Sockets Layer common architecture shared by, 32 stabilize state, 189 and crafting common components, 442 Staff-days, and architectural evaluations, 263 creating products and evolution of, 365–366 Stakeholder communication, and difficulties with, 363–367 architecture, 27–29 failure of, 359 Stakeholder list, 206 and organizational structure, 366–367 Stakeholders, 201, 229, 479 scoping of, 357–358 and air traffic control system, 133 working discussion of, 355–357 and architectural integrity, 96 Software quality evaluation, 262 architecture reviewed by, 15 Software renovation factories, 258 and ATAM, 271, 272, 275, 285–287, 304 Software re-use, and Luther architecture, 433 and CBAM, 309 Software structures, 39–40 in CelsiusTech experience, 369, 370 unclear mapping between aircraft and communication needs served by structures and, 181 architecture, 204 Software systems, acquiring, 262 documentation organization for, 216–218 Software testability, 88 engagement of, 9 Software Utility Module, 58 and future impact of components, 483 Solution Group, at Inmedius, 431 general scenarios and communication Source code, 236 with, 93 Source lines of code, 376 helpful architecture documentation for, 206 Source of stimulus influence on architectures by, 6–8 of availability scenario, 80 and Nightingale system, 289, 300, 301 of modifiability general scenario, 82 and scenario brainstorming, 284 of performance general scenario, 84 seasoned and new, 202 of quality attribute scenario, 75 software architecture and communication of security general scenario, 86 among, 26, 42 of testability general scenario, 89 and utility-response curves, 310, 311, 312 of usability general scenario, 91 Standards, source of, 172 Spare tactic, 104, 147 Standby address space, 139 “Specialized access routes/interfaces” tactic, and Standby components, 103, 104 managing input/output for testing, 120 Starting evaluation criteria, 464 Bass.book Page 523 Thursday, March 20, 2003 10:29 PM

Index 523

Statecharts, 209, 210 goals achieved with, 197–198 Stateful model, and EJB server tier, 420 uses for, 177 Stateful session bean instances, clients’ static Structural rules, for “good” architecture, 16 bindings to, 421 Structures, 35, 40–41 Stateful session beans, 409, 410 Stubbing implementations, 120 in online bookshop example, 420 “Stubbing out” code sections, 170, 171 Stateful session EJBs, and work-flow Stubs, 109 component packaging, 448 Styles, architectural, 125 Stateless model, and EJB server tier, 420 Subclassing, 38 Stateless session bean instances, clients’ Subcontractors, 167 dynamic bindings to, 421 Submodules, 55, 157 Stateless session beans, 409, 414, 417, 425, 443 Subprograms, 142 advantages with, 420–421 Subroutines, 477 in online bookshop example, 420 Subsets, 62 work-flow component packaged as, 447 delivery of, 63 Stateless session EJBs, and work-flow of systems, 42 component packaging, 448, 449 Subsystem controllers, 198 State management for air vehicle model, 192 and EJB, 420–422 capabilities of, 189 J2EE and simplification of, 441 for flight simulator, 192 “State resynchronization” tactic, 104, 141 module, and air vehicle structural model, Static extraction, 241 187, 188–190 Static extractor tool, 239 <> package stereotype, 226 Static information, 235, 239, 240 Subsystems, 157 Static libraries, 361 and groups, 193 Static scheduling, 115 integrating, 198 Static views, 15 malfunctions with, 191 Station Manager, 144 and periodic sequencer, 186 Stimuli, tactics and responses to, 100 propulsion, 196 Stimulus skeletal, 171 of ATAM scenario, 280 and surrogates, 187 of availability scenario, 80 in UML, 219, 226 of CBAM scenario, 310 Success, differing standards for, 65–66 of modifiability general scenario, 82 Sun Microsystems, 347 of performance general scenario, 84 home page, 425 of quality attribute scenario, 75 Java 2 Enterprise Edition, 401, 404 of security general scenario, 86 Supersets, of systems, 42 of testability general scenario, 89 Supportability, and Nightingale system, 292 of usability general scenario, 91 <> stereotype, 228 Stochastic arrival, 83, 84 Surrogates Storyboards, and Luther architecture user in air vehicle model executive, 187 interface, 437 for flight simulator, 192 Strategy pattern, 109 Surveillance data, and ISSS physical view, 136 Stream layer, for libWWW, 336 Surveys, 276 STRIC, 374 Swedish Navy, CelsiusTech contract with, StringOp class, 239 370, 376 Strong typing, and SS2000, 390, 391 Switchovers, 104 Structural-model-based flight simulators, 176 and PAS failures, 139–140 Structural Modeling pattern, 181, 185–187 Symmetric encryption, 117 of air vehicle system processor with focus Synchronization, 40, 70 on executive, 186 and active redundancy, 103 and controller children, 188 and passive redundancy, 104 and flight simulation, 176 Synchronization points, 162 Bass.book Page 524 Thursday, March 20, 2003 10:29 PM

524 Index

Synchronization tactic, 100 availability, 101–105, 125 “Synchronize-with” relation, 64 coupling scenarios and, 480 Syntax, 107 and design, 99 Synthetic interviewing, 434 and integrability, 175 System administrators, changes made by, introduction to, 100–101 81, 82 modifiability, 105–111, 125 System architecture performance, 111–116, 125 and e-commerce, 341 predicting results of application of, 480 software architecture versus, 34 security, 116–118, 125 System design, and tactics, 100 selecting, 158 System development, architectural testability, 118–121, 125 constraints in, 462 usability, 121–123, 125 System failures, 79, 80 “weaving” of into systems, 481 System functions/function groups Targeted markets, 95–96 for CelsiusTech, 390, 392 Task models, 122 in SS2000, 394, 395 Tasks, Ada, 142 System Generation Module, 58 TCP (Transmission Control Protocol) flags, 118 System initiative, 122 TCP/IP, 137, 343, 435 System overview, 215, 217 Team leaders System quality, 31 ATAM and role of, 273 and architectural quality, 92 in Nightingale system, 289 System quality attributes, 74–78, 94–95 Teams, 30 component-dominated architectures and formation of, 10, 167–170 achievement of, 463 Technical-Architecture Plan, at CelsiusTech, problems with previous discussions of, 74 383, 384 System requirements, and design, 154 Technical constraints, and Nightingale Systems, 42, 479 system, 291 architectural structures of, 39–40 Technical documentation ASEILM, 466–476 fundamental principle of, 230 building from OTS components, 453–476 and reader viewpoint, 202 as collaborations, 227 Technical environment, influence on concurrency in, 162 architectures by, 9 as contained objects, 227 Technical influences, and software elements in, 47 architecture, 5, 6 and groups, 193 Technical Steering Group, at CelsiusTech, 385 in kinetics group, 195–196 Technology changes, at CelsiusTech, 379–380 maintaining model of, 122 Technology development, and Luther projected lifetime of, 95 architecture, 431 qualities of, 74 Telephone switches, architecture in UML, 226–227 reconstruction used for, 232 Systems Definition Group, at CelsiusTech, TELNET, 336 384, 385 Telub, 370 Systems of systems, 478 Template-based development, and System-specific scenarios, 78, 156 architecture, 34–35 System structure, and organizational Templates, for documenting interfaces, 212–214 structure, 167 Terminal control area (TCA), 130 System testers, 89 Testability, 69, 88–89, 98, 127 and Nightingale system, 292 Table-driven operating systems, 12 and SS2000 product line, 388 Tables and system quality attributes, 74 fusing, 241 Testability scenarios, 89–90 in primary presentation, 208 Testability tactics, 118–121, 125 Tactics, 127, 129 internal monitoring, 120 architectural patterns and, 123–124, 125 managing input/output, 120 Bass.book Page 525 Thursday, March 20, 2003 10:29 PM

Index 525

Test and Training subsystems, 137 Training Testers, 14 architecture as basis for, 35 and architecture, 27 and documentation, 203 and ATAM, 272 with flight simulators, 179, 180 Test harness, 89, 119, 120 Transaction management, and J2EE, 450 Testing, 354 Transaction monitors/processors, 345 cost of with flight simulator, 181 Transactions services, 401 and re-use, 355 “Transactions” tactic, 105 Test plans and cases, 354 Transaction support, 443 Textual primary presentations, 208 designer’s decisions, J2EE, and Thin clients, 440 implementation of, 449, 450 Thread model, for Java servlet ensemble, 475 and EJB container, 444 Threads, and resource pooling, 424 Translator library layer, 458 Thread safety, and libWWW, 337 Triggering events, 63 Tiers, 341 Triple redundancy, 103 Time budgets, 15 TSG. See Technical Steering Group with Structural Modeling pattern, 197 Turbulence, 179 Timekeeper type field, 249 ATAM and role of, 273 Types, as classes in UML, 223 in Nightingale system, 289 Timeline synchronizer UCMEdit model in air vehicle model executive, 185 after application of common code for flight simulator, 192 segments, 255 Time sequences, in sequence diagrams, 211 after application-specific direct Time-to-market, 95, 97 manipulation, 256 Timing/time, 80 after clustering based on application in flight simulator, 183–184 domain, 257 and performance, 82 classes, files and “leftover” functions Token ring networks, Logical Communications shown in, 251 Network composed of, 137 graphics subsystem, code, classes, files, and Tomcat remaining functions in, 252, 253 application server, 472 reconstruction of architecture for, and IIS, 475 248–257 Tool environment, documentation within, 481 UI. See User interface Tools Ultrix (Digital), and SS2000, 373 and architecture reconstruction, 258 Unauthorized access, protection from, 117 for information extraction, 235 Underwriters Laboratories, 482 and re-use, 356 undo command, 122 Tool support Unified Modeling Language (UML), 201, for architecture reconstruction, 232 218–229 for design process, 481 aggregation in, 219–221 Top-down adoption, of product line, 364 allocation views, 227–229 Top-down approach, for architecture and behavioral descriptions, 209 reconstruction, 258 C&C views, 222–227 “Top-level architecture,” 19 connectors in, 225–226 Topological layout, in architectural patterns decomposition in with nesting, 221 and styles, 125 dependency in, 222 Traces, semantic information conveyed deployment view in, 229 with, 213 detail representation, 223 Tradeoff points generalization documented in, with two and architectural approaches, 282, 283, 284 line styles, 221 and ATAM, 274, 309 interfaces in, 219 and Nightingale system, 299, 302, 303 layers represented in, 222 Bass.book Page 526 Thursday, March 20, 2003 10:29 PM

526 Index

Unified Modeling Language continued revising, 123 module views and, 218–222 separating from rest of application, 123 and Nightingale system, 303 “User interface agnostic” applications, 441 for primary presentation, 208 User interface module, in example, 164, 166 systems in, 226–227 User manuals, 354 Uniform Resource Locators (URLs), 329 User needs, system adapted to, 91 United States, Internet backbones in, 333 User profile data, 118 Unit tests, 89 Users Universal Description, Discovery, and and architecture, 27 Integration (UDDI), 347 and ATAM, 272 UNIX operating system, 142, 298 authorization of, 117 UNIX processes, Ada tasks mapped onto, 142 uses relation, 37, 60–61 Unplanned evaluations, 266 Uses structure, 37, 40, 42, 44, 47, 48, Unstructured evaluations, 269 62, 170 updateAccount method, 414, 415 and A-7E system, 53, 60–63, 66 update method, 415, 416 Uses view, 207 update operation, 186, 190, 191 Utility and subsystem controllers, 189–190 architectural strategies, 312–313 Updating, 190 and CBAM, 309, 316 Updrafts, 179 priorities of scenarios, 312 U.S. Air Force, 176 utility-response curves, 310–312 and simulator design problems, 180–181 and variations of scenarios, 310 U.S. Department of Defense standards, 37 Utility-response curves, 310–312, 324 U.S. Naval Research Laboratory, 48 Utility scores, scenarios with (NASA ECS Usability, 7, 25, 69, 73, 90–91, 121, 127 Project), 319 and market share, 95 Utility trees, 155, 282, 284, 305, 309 and Nightingale system, 291 ATAM and generation of, 279 and software architecture, 97 Nightingale system and generation of, and system quality attributes, 74 294–295, 297 Usability engineers, 123 tabular form of, for Nightingale ATAM Usability scenarios, 91–93, 122 exercise, 296–297 Usability tactics, 121–123, 125 design-time, 123 Validation agencies, 482 runtime, 121–122 Validation of extracted information, 237 Usage guide, in interface documentation, 214 Variability guide, in documenting a view, “Use an intermediary” tactic, and surrogates, 187 208–209 Use case maps, computer-based editing of, 254 Variability provided by interface, in interface Use cases, 155 documentation, 213–214 and concurrency in system, 162 Variability techniques, 367 verifying/refining as constraints for child Variables, 234 modules, 164 Variation, 82 Usenet, 172 in event arrival time, 85 Usenet messages, 336 in latency, 84 User, maintaining model of, 122 Variation points User experience paradigm, and J2EE, 435 core assets designed with, 354 User initiative, 122 identifying in product lines, 360 User input devices, for various device supporting in product lines, 361–362 classes, 433 Vasa (Swedish ship), 4–5 User interaction styles, and Luther archi- VAX/VMS minicomputers, 378 tecture, 433 “Vertical” scaling (or scaling up), 345, 422 User interface View catalog, 215–216 and libWWW, 337 View fusion, 235, 239–241 and Luther architecture, 432, 436–437, and architecture reconstruction, 233 439–440 and database models, 237 Bass.book Page 527 Thursday, March 20, 2003 10:29 PM

Index 527

disambiguating function calls, 241 Web sites, successful, 404 and reconstruction, 249–257 Web site software, and client surges, 404 Views, 35, 129, 204–205 Web spiders, 335 allocation of, 206, 227–229 Web tier, in J2EE multi-tier model, 407 architecture represented with, in example, White noise, 249 161–163 Wide Area Information Server (WAIS), 336 choosing, 205–207, 229 Widgets, 97 combining, 207 Windowing systems, 12 C&C, 206, 222–227 Windows-based platforms, and .NET, 402 documentation across, 215–218 Windows CE PC devices, handheld, with pen documenting, 207–209 and keyboard, 433 improving, 239–240 Windows 98 and NT 4.0 operating system, 468 mapping between, 217, 481 Windows NT platform, 298 module, 206, 218–222 Wireless access, and Luther architecture, 432 prioritizing, 207 Wireless Application Protocol (WAP), 437 View template, 215, 216 Wireless Markup Language (WML), 437 Virtual documents, 339 Wireless technology, 352 Virtual hardware, 56 Work assignment structure, 39 Virtual machines, 37, 62, 159 Work assignment view, 167 Virtual private network (VPN), 117 Workbench approach, 232–233, 238, 258 Virtual threads, 162, 163 Work breakdown structure, 29–30, 167 Viruses, 86 Work flow, 345 Vision, 201 Work-flow component Visual Basic, 339, 340, 405, 455 class diagram for, 446 Visualization and interaction, and recon- design rationale for, 445–447 struction, 241 distributed and detached operations and, Visual Mining, 468 449–450 Voice input, 435 and Inmedius, 442 Votes and Luther architecture, 444–450 refined scenarios with (NASA ECS packaging for, 447–449 Project), 319 Work-flow management, and Luther and scenario brainstorming, 285 architecture, 427, 435 Voting tactic, 102 Workflow Management Coalition, 452 at Inmedius, 445, 446 Warm restarts, 103, 146 Work-flow model definition, 446 Weapons control, and system function Work practices, 167 groups, 394 World Wide Web (WWW), 12, 268, 327–349, Wearable computing, 352, 452 479 devices, 433 and Amazon.com, 348–349 history of, 428 current ABC for, 346, 347 Wearable Project, at Carnegie Mellon growth of, 330, 332 University, 427, 428 initial quality goals achieved by, 340 Weather patterns, modeling, 179 and J2EE, 403–405 Web-based applications, quality attribute original ABC for, 328 requirements for, 404 original requirements for, 330–332 Web-based financial systems, 83 requirements and qualities for, 329–332 Web browsers, 329, 342–343 success of, 348 Web-enabled enterprise systems, distribution World Wide Web Consortium (W3C), 334, and scaling issues with, 422–423 346 Web pages, 167 Reference Library, 349 Web servers, 332, 342, 344–345 Worms, 86 Web server styles, comparison of, 349 Worst-case quality attribute level, in Web services, 117 utility-response curve, 312 Bass.book Page 528 Thursday, March 20, 2003 10:29 PM

528 Index

Worst-case response, for NASA ECS Project XForms, 250 scenario, 317 Xlib, 250 Wrappers, 458, 462 XML (eXtensible Markup Lnnguage), 343, Wrapper session beans, 422 417 “Write Once, Run Anywhere,” 408