
Because Knetbooks knows college students. Our rental program is designed to save you time and money. Whether you need a textbook for a semester, quarter or even a summer session, we have an option for you. Simply select a rental period, enter your information and your book will be on its way!
| About the Cover | p. xix |
| Foreword | p. xxi |
| Preface | p. xxv |
| Acknowledgments | p. xxix |
| Reader's Guide | p. xxxi |
| Prologue: Software Architectures and Documentation | p. 1 |
| The Role of Architecture | p. 1 |
| Coming to Terms: Software Architecture | p. 2 |
| Perspectives: What's the Difference Between Architecture and Design? | p. 5 |
| Comin... MORE | p. 8 |
| Uses of Architecture Documentation | p. 10 |
| Interfaces | p. 12 |
| Views | p. 13 |
| Coming to Terms: Architectural Views | p. 15 |
| Viewtypes and Styles | p. 18 |
| Viewtypes | p. 18 |
| Styles | p. 18 |
| Summary: Viewtypes, Styles, and Views | p. 20 |
| Coming to Terms: Module, Component | p. 21 |
| Seven Rules for Sound Documentation | p. 24 |
| Rule 1: Write Documentation from the Reader's Point of View | p. 24 |
| Rule 2: Avoid Unnecessary Repetition | p. 25 |
| Rule 3: Avoid Ambiguity | p. 25 |
| Rule 4: Use a Standard Organization | p. 26 |
| Rule 5: Record Rationale | p. 27 |
| Rule 6: Keep Documentation Current But Not Too Current | p. 27 |
| Rule 7: Review Documentation for Fitness of Purpose | p. 28 |
| Perspectives: Quivering at Arrows | p. 28 |
| Summary Checklist | p. 30 |
| Discussion Questions | p. 31 |
| For Further Reading | p. 32 |
| Software Architecture Viewtypes and Styles | |
| Viewtypes and Style Catalog | p. 35 |
| Module Viewtype | p. 35 |
| Component-and-Connector Viewtype | p. 36 |
| Allocation Viewtype | p. 38 |
| Style Guides: A Standard Organization for Documenting a Style | p. 39 |
| The Module Viewtype | p. 41 |
| Overview | p. 41 |
| Elements, Relations, and Properties of the Module Viewtype | p. 42 |
| Elements | p. 43 |
| Relations | p. 43 |
| Properties | p. 44 |
| Coming to Terms: Substitutability | p. 46 |
| What the Module Viewtype Is For and What It's Not For | p. 47 |
| Notations for the Module Viewtype | p. 48 |
| Informal Notations | p. 48 |
| UML | p. 48 |
| Relation to Other Viewtypes | p. 48 |
| Summary Checklist | p. 50 |
| Discussion Questions | p. 50 |
| For Further Reading | p. 51 |
| Styles of the Module Viewtype | p. 53 |
| Decomposition Style | p. 53 |
| Overview | p. 53 |
| Elements, Relations, and Properties | p. 54 |
| What the Decomposition Style Is For and What It's Not For | p. 55 |
| Notations for the Decomposition Style | p. 56 |
| Relation to Other Styles | p. 57 |
| Examples of the Decomposition Style | p. 57 |
| Coming to Terms: Subsystem | p. 62 |
| Uses Style | p. 64 |
| Overview | p. 64 |
| Elements, Relations, and Properties | p. 65 |
| What the Uses Style Is For and What It's Not For | p. 65 |
| Notations for the Uses Style | p. 65 |
| Relation to Other Styles | p. 67 |
| Example of the Uses Style | p. 67 |
| Coming to Terms: Uses | p. 68 |
| Generalization Style | p. 71 |
| Overview | p. 71 |
| Elements, Relations, and Properties | p. 72 |
| What the Generalization Style Is For and What It's Not For | p. 73 |
| Notations for the Generalization Style | p. 74 |
| Relation to Other Styles | p. 74 |
| Coming to Terms: Generalization | p. 76 |
| Examples of the Generalization Style | p. 77 |
| Layered Style | p. 77 |
| Overview | p. 77 |
| Elements, Relations, and Properties | p. 80 |
| What the Layered Style Is For and What It's Not For | p. 82 |
| Notations for the Layered Style | p. 83 |
| Relation to Other Styles | p. 88 |
| Examples of the Layered Style | p. 91 |
| Coming to Terms: Virtual Machines | p. 93 |
| Perspectives: Upwardly Mobile Software | p. 94 |
| Perspectives: Levels of Distraction | p. 95 |
| Perspectives: UML Class Diagrams: Too Much, Too Little | p. 97 |
| Summary Checklist | p. 99 |
| Discussion Questions | p. 99 |
| For Further Reading | p. 100 |
| The Component-and-Connector Viewtype | p. 103 |
| Overview | p. 103 |
| Elements, Relations, and Properties of the C&C Viewtype | p. 106 |
| Elements | p. 107 |
| Relations | p. 110 |
| Properties | p. 111 |
| Perspectives: Are Connectors Necessary? | p. 112 |
| Perspectives: Choosing Connector Abstractions | p. 114 |
| What the C&C Viewtype Is For and What It's Not For | p. 116 |
| Perspectives: Data Flow and Control Flow Projections | p. 117 |
| Notations for the C&C Viewtype | p. 118 |
| Relation to Other Viewtypes | p. 118 |
| Summary Checklist | p. 120 |
| Discussion Questions | p. 121 |
| For Further Reading | p. 123 |
| Styles of the Component-and-Connector Viewtype | p. 125 |
| The Pipe-and-Filter Style | p. 126 |
| Overview | p. 126 |
| Elements, Relations, and Properties | p. 126 |
| What the Pipe-and-Filter Style Is For and What It's Not For | p. 127 |
| Relation to Other Styles | p. 127 |
| Examples of the Pipe-and-Filter Style | p. 128 |
| Shared-Data Style | p. 129 |
| Overview | p. 129 |
| Elements, Relations, and Properties | p. 129 |
| What the Shared-Data Style Is For and What It's Not For | p. 131 |
| Relation to Other Styles | p. 131 |
| Example of the Shared-Data Style | p. 132 |
| Publish-Subscribe Style | p. 132 |
| Overview | p. 132 |
| Elements, Relations, and Properties | p. 133 |
| What the Publish-Subscribe Style Is For and What It's Not For | p. 134 |
| Relation to Other Styles | p. 134 |
| Examples of the Publish-Subscribe Style | p. 135 |
| Client-Server Style | p. 135 |
| Overview | p. 135 |
| Elements, Relations, and Properties | p. 136 |
| What the Client-Server Style Is For and What It's Not For | p. 137 |
| Relation to Other Styles | p. 138 |
| Examples of the Client-Server Style | p. 138 |
| Peer-to-Peer Style | p. 139 |
| Overview | p. 139 |
| Elements, Relations, and Properties | p. 139 |
| What the Peer-to-Peer Style Is For and What It's Not For | p. 140 |
| Relation to Other Styles | p. 141 |
| Examples of the Peer-to-Peer Style | p. 141 |
| Communicating-Processes Style | p. 142 |
| Overview | p. 142 |
| Elements, Relations, and Properties | p. 142 |
| What the Communicating-Processes Style Is For and What It's Not For | p. 143 |
| Relation to Other Styles | p. 143 |
| Examples of the Communicating-Processes Style | p. 143 |
| Notations for C&C Styles | p. 143 |
| Informal Notations | p. 144 |
| Formal Notations | p. 145 |
| Perspectives: Using Classes to Represent Component Types and Instances | p. 159 |
| Coming to Terms: Components Versus UML Components | p. 161 |
| Summary Checklist | p. 163 |
| Discussion Questions | p. 164 |
| For Further Reading | p. 165 |
| The Allocation Viewtype and Styles | p. 167 |
| Overview | p. 167 |
| Elements, Relations, and Properties of the Allocation Viewtype | p. 168 |
| Deployment Style | p. 169 |
| Overview | p. 169 |
| Elements, Relations, and Properties | p. 170 |
| What the Deployment Style Is For and What It's Not For | p. 172 |
| Notation for the Deployment Style | p. 173 |
| Relation to Other Styles | p. 175 |
| Examples of the Deployment Style | p. 175 |
| Implementation Style | p. 175 |
| Overview | p. 175 |
| Elements, Relations, and Properties | p. 177 |
| What the Implementation Style Is For and What It's Not For | p. 178 |
| Notation for the Implementation Style | p. 178 |
| Relation to Other Styles | p. 179 |
| Example of the Implementation Style | p. 179 |
| Work Assignment Style | p. 179 |
| Elements, Relations, and Properties | p. 179 |
| What the Work Assignment Style Is For and What It's Not For | p. 180 |
| Notations for the Work Assignment Style | p. 181 |
| Relation to Other Styles | p. 181 |
| Example of the Work Assignment Style | p. 182 |
| Summary Checklist | p. 183 |
| Discussion Questions | p. 183 |
| For Further Reading | p. 184 |
| Software Architecture Documentation in Practice | |
| Advanced Concepts | p. 187 |
| Chunking Information: View Packets, Refinement, and Descriptive Completeness | p. 188 |
| View Packets | p. 188 |
| Refinement | p. 191 |
| Descriptive Completeness | p. 192 |
| Using Context Diagrams | p. 195 |
| Top-Level Context Diagrams | p. 196 |
| Content of a Context Diagram | p. 197 |
| Context Diagrams and Other Supporting Documentation | p. 197 |
| Notations for Context Diagrams | p. 198 |
| Example of a Context Diagram | p. 200 |
| Combined Views | p. 200 |
| When to Combine Views | p. 201 |
| Types of Mapping | p. 203 |
| Elements, Relations, and Properties | p. 205 |
| Documenting Combined Views | p. 206 |
| Examples of Combined Views | p. 207 |
| Other Examples | p. 208 |
| Documenting Variability and Dynamism | p. 209 |
| Variability | p. 209 |
| Dynamism | p. 210 |
| Recording the Information | p. 211 |
| Notations for Variability and Dynamism | p. 212 |
| Perspectives: What Time Is It? | p. 213 |
| Creating and Documenting a New Style | p. 215 |
| Coming to Terms: Styles, Patterns | p. 217 |
| Summary Checklist | p. 219 |
| Discussion Questions | p. 220 |
| For Further Reading | p. 220 |
| Documenting Software Interfaces | p. 223 |
| Overview | p. 223 |
| Interface Specifications | p. 226 |
| A Standard Organization for Interface Documentation | p. 228 |
| Coming to Terms: Exceptions and Error Handling | p. 233 |
| Stakeholders of Interface Documentation | p. 237 |
| Notation for Interface Documentation | p. 239 |
| Showing the Existence of Interfaces | p. 239 |
| Conveying Syntactic Information | p. 241 |
| Conveying Semantic Information | p. 242 |
| Summary | p. 242 |
| Perspectives: Multiple Interfaces | p. 242 |
| Coming to Terms: Signature, Interface, API | p. 245 |
| Examples of Interface Documentation | p. 246 |
| SCR-Style Interface | p. 246 |
| IDL | p. 252 |
| Custom Notation | p. 253 |
| XML | p. 255 |
| Summary Checklist | p. 257 |
| Discussion Questions | p. 257 |
| For Further Reading | p. 258 |
| Documenting Behavior | p. 259 |
| Beyond Structure | p. 259 |
| Where to Document Behavior | p. 260 |
| Why to Document Behavior | p. 260 |
| System Analysis | p. 261 |
| Driving Development Activities | p. 262 |
| What to Document | p. 263 |
| Types of Communication | p. 264 |
| Constraints on Ordering | p. 264 |
| Clock-Triggered Stimulation | p. 265 |
| How to Document Behavior: Notations and Languages | p. 266 |
| Traces | p. 268 |
| Static Models | p. 275 |
| Summary Checklist | p. 284 |
| Discussion Questions | p. 285 |
| For Further Reading | p. 285 |
| Choosing the Views | p. 289 |
| Stakeholders and Their Documentation Needs | p. 290 |
| Perspectives: Architecture Trade-off Analysis Method | p. 302 |
| Making the Choice | p. 305 |
| Two Examples | p. 306 |
| A Small Project: A-7E | p. 306 |
| A Large Project: ECS | p. 308 |
| Summary Checklist | p. 312 |
| Discussion Questions | p. 312 |
| For Further Reading | p. 313 |
| Building the Documentation Package | p. 315 |
| One Document or Several? | p. 315 |
| Perspectives: What the Meaning of "Is" Is | p. 316 |
| Documenting a View | p. 317 |
| Perspectives: Presentation Is Also Important | p. 321 |
| Documentation Beyond Views | p. 323 |
| How the Documentation Is Organized to Serve a Stakeholder | p. 324 |
| What the Architecture Is | p. 326 |
| Why the Architecture Is the Way It is: Background, Design Constraints, and Rationale | p. 328 |
| Perspectives: Global Analysis | p. 332 |
| Validating Software Architecture Documentation | p. 335 |
| Perspectives: A Glossary Would Have Helped | p. 339 |
| Summary Checklist | p. 340 |
| Discussion Questions | p. 340 |
| For Further Reading | p. 341 |
| Other Views and Beyond | p. 343 |
| Overview | p. 343 |
| Rational Unified Process/Kruchten 4+1 | p. 344 |
| UML | p. 349 |
| Class and Object Diagrams | p. 349 |
| Component Diagrams | p. 350 |
| Deployment Diagrams | p. 351 |
| Behavioral Diagrams | p. 352 |
| Siemens Four Views | p. 352 |
| Global Analysis | p. 352 |
| Conceptual Architecture View | p. 353 |
| Module Architecture View | p. 354 |
| Execution Architecture View | p. 355 |
| Code Architecture View | p. 355 |
| Summary | p. 356 |
| C4ISR Architecture Framework | p. 356 |
| Common Architectural Views of the C4ISR Framework | p. 357 |
| Common Products | p. 358 |
| ANSI / IEEE-1471-2000 | p. 361 |
| Data Flow and Control Flow | p. 363 |
| Data Flow Views | p. 364 |
| Control Flow Views | p. 365 |
| Perspectives: You're All Just Guessing! | p. 367 |
| RM-ODP | p. 372 |
| Where Architecture Documentation Ends | p. 373 |
| Architecture Description Languages | p. 374 |
| Commercial Components | p. 376 |
| Hypertext Documentation | p. 378 |
| Configuration Management | p. 378 |
| A Final Word | p. 379 |
| For Further Reading | p. 380 |
| Excerpts from a Software Architecture Documentation Package | p. 381 |
| ECS Software Architecture Documentation Beyond Views | p. 383 |
| ECS Software Architecture Views | p. 410 |
| Glossary | p. 469 |
| References | p. 473 |
| Index | p. 483 |
| Table of Contents provided by Syndetics. All Rights Reserved. |