Documenting Software Architectures : Views and Beyond (Sei Series in Software Engineering) (2ND)

個数:

Documenting Software Architectures : Views and Beyond (Sei Series in Software Engineering) (2ND)

  • 提携先の海外書籍取次会社に在庫がございます。通常2週間で発送いたします。
    重要ご説明事項
    1. 納期遅延や、ご入手不能となる場合が若干ございます。
    2. 複数冊ご注文の場合、分割発送となる場合がございます。
    3. 美品のご指定は承りかねます。
  • 製本 Hardcover:ハードカバー版/ページ数 537 p.
  • 言語 ENG,ENG
  • 商品コード 9780321552686
  • DDC分類 005.15

Full Description


"This new edition is brighter, shinier, more complete, more pragmatic, more focused than the previous one, and I wouldn't have thought it possible to improve on the original. As the field of software architecture has grown over these past decades, there is much more to be said, much more that we know, and much more that we can reflect upon of what's worked and what hasn't-and the authors here do all that, and more." -From the Foreword by Grady Booch, IBM FellowSoftware architecture-the conceptual glue that holds every phase of a project together for its many stakeholders-is widely recognized as a critical element in modern software development. Practitioners have increasingly discovered that close attention to a software system's architecture pays valuable dividends. Without an architecture that is appropriate for the problem being solved, a project will stumble along or, most likely, fail. Even with a superb architecture, if that architecture is not well understood or well communicated the project is unlikely to succeed. Documenting Software Architectures, Second Edition, provides the most complete and current guidance, independent of language or notation, on how to capture an architecture in a commonly understandable form. Drawing on their extensive experience, the authors first help you decide what information to document, and then, with guidelines and examples (in various notations, including UML), show you how to express an architecture so that others can successfully build, use, and maintain a system from it. The book features rules for sound documentation, the goals and strategies of documentation, architectural views and styles, documentation for software interfaces and software behavior, and templates for capturing and organizing information to generate a coherent package. New and improved in this second edition:Coverage of architectural styles such as service-oriented architectures, multi-tier architectures, and data models Guidance for documentation in an Agile development environment Deeper treatment of documentation of rationale, reflecting best industrial practices Improved templates, reflecting years of use and feedback, and more documentation layout options A new, comprehensive example (available online), featuring documentation of a Web-based service-oriented system Reference guides for three important architecture documentation languages: UML, AADL, and SySML

Table of Contents

About the Cover                                    xxi
Foreword to the Second Edition xxiii
Foreword to the First Edition xxv
Preface xxix
Acknowledgments xxxiii
Reader's Guide xxxv
Prologue: Software Architectures and 1 (48)
Documentation
P.1 A Short Overview of Software 1 (8)
Architecture
P.1.1 Overview 1 (1)
P.1.2 Architecture and Quality 2 (1)
Attributes
Coming to Terms: What is Software 3 (3)
Architecture?
Perspectives: What's the Difference 6 (3)
Between Architecture and Design?
P.2 A Short Overview of Architecture 9 (13)
Documentation
P.2.1 Why Document Software 9 (1)
Architecture?
Coming to Terms: Specification, 10 (2)
Representation, Description,
Documentation
P.2.2 Uses and Audiences for 12 (5)
Architecture Documentation
P.2.3 Architecture Documentation and 17 (1)
Quality Attributes
P.2.4 Economics of Architecture 18 (1)
Documentation
P.2.5 The Views and Beyond "Method" 19 (1)
P.2.6 Views and Beyond in an Agile 20 (1)
Environment
P.2.7 Architectures That Change Faster 20 (2)
Than You Can Document Them
P.3 Architecture Views 22 (3)
Coming to Terms: A Short History of 23 (2)
Architecture Views
P.4 Architecture Styles 25 (11)
P.4.1 Three Categories of Styles 29 (1)
Coming to Terms: Module, Component 29 (3)
Coming to Terms: "Architecture Style" 32 (4)
and "Architecture Pattern"
P.5 Seven Rules for Sound Documentation 36 (9)
Perspectives: Beware Notations Everyone 38 (3)
"Just Knows"
Perspectives: Quivering at Arrows 41 (4)
P.6 Summary Checklist 45 (1)
P.7 Discussion Questions 46 (1)
P.8 For Further Reading 47 (2)
Part I A Collection of Software Architecture 49 (166)
Styles
1.1 Three Categories of Styles 49 (1)
1.2 Style Guides: A Standard Organization 50 (2)
for Explaining a Style
1.3 Choosing Which Element and Relation 52 (1)
Properties to Document
1.4 Notations for Architecture Views 53 (1)
1.5 Examples 54 (1)
Chapter 1 Module Views 55 (10)
1.1 Overview 55 (1)
1.2 Elements, Relations, and Properties 56 (3)
of Module Views
1.2.1 Elements 56 (1)
1.2.2 Relations 57 (1)
1.2.3 Properties 57 (2)
1.3 What Module Views Are For 59 (1)
1.4 Notations for Module Views 60 (3)
1.4.1 Informal Notations 60 (1)
1.4.2 Unified Modeling Language 61 (1)
1.4.3 Dependency Structure Matrix 62 (1)
1.4.4 Entity-Relationship Diagram 62 (1)
1.5 Relation to Other Views 63 (1)
1.6 Summary Checklist 63 (1)
1.7 Discussion Questions 64 (1)
1.8 For Further Reading 64 (1)
Chapter 2 A Tour of Some Module Styles 65 (58)
2.1 Decomposition Style 65 (9)
2.1.1 Overview 65 (1)
2.1.2 Elements, Relations, and 66 (1)
Properties
2.1.3 What the Decomposition Style Is 67 (1)
For
2.1.4 Notations for the Decomposition 67 (1)
Style
2.1.5 Relation to Other Styles 68 (1)
2.1.6 Examples Using the Decomposition 69 (4)
Style
Coming to Terms: Subsystem 73 (1)
2.2 Uses Style 74 (8)
2.2.1 Overview 74 (1)
2.2.2 Elements, Relations, and 75 (1)
Properties
2.2.3 What the Uses Style Is For 75 (1)
2.2.4 Notations for the Uses Style 76 (3)
2.2.5 Relation to Other Styles 79 (1)
2.2.6 Examples Showing the Uses Style 79 (2)
Coming to Terms: Uses 81 (1)
2.3 Generalization Style 82 (5)
2.3.1 Overview 82 (1)
2.3.2 Elements, Relations, and 83 (1)
Properties
2.3.3 What the Generalization Style Is 84 (1)
For
2.3.4 Notations for the Generalization 84 (1)
Style
2.3.5 Relation to Other Styles 84 (1)
2.3.6 Examples Using the Generalization 85 (2)
Style
2.4 Layered Style 87 (17)
2.4.1 Overview 87 (2)
2.4.2 Elements, Relations, and 89 (1)
Properties
2.4.3 What the Layered Style Is For 90 (2)
2.4.4 Notations for the Layered Style 92 (4)
2.4.5 Relation to Other Styles 96 (1)
2.4.6 Examples Using the Layered Style 97 (2)
Coming to Terms: Virtual Machines 99 (1)
Perspectives: Calling Higher Layers 100 (1)
Perspectives: Using a DSM to Maintain a 101 (3)
Layered Architecture
2.5 Aspects Style 104 (5)
2.5.1 Overview 104 (1)
2.5.2 Elements, Relations, and 104 (1)
Properties
2.5.3 What the Aspects Style Is For 105 (1)
2.5.4 Notations for the Aspects Style 105 (1)
2.5.5 Relation to Other Styles 106 (1)
2.5.6 Examples Using the Aspects Style 106 (1)
Coming to Terms: Aspect-Oriented 107 (2)
Programming
2.6 Data Model 109 (11)
2.6.1 Overview 109 (2)
2.6.2 Elements, Relations, and 111 (3)
Properties
2.6.3 What the Data Model Is For 114 (2)
2.6.4 Notations for the Data Model Style 116 (1)
2.6.5 Relations to Other Styles 117 (1)
2.6.6 Examples 118 (1)
Coming to Terms: Entity 118 (2)
2.7 Summary Checklist 120 (1)
2.8 Discussion Questions 120 (1)
2.9 For Further Reading 121 (2)
Chapter 3 Component-and-Connector Views 123 (32)
3.1 Overview 123 (3)
3.2 Elements, Relations, and Properties 126 (10)
of C&C Views
3.2.1 Elements 127 (2)
3.2.2 Component-and-Connector Types and 129 (2)
Instances
3.2.3 Relations 131 (2)
3.2.4 Properties 133 (2)
Perspectives: Are Complex Connectors 135 (1)
Necessary?
3.3 What C&C Views Are For 136 (3)
Perspectives: Choosing Connector 137 (2)
Abstractions
3.4 Notations for C&C Views 139 (9)
3.4.1 Informal Notations 139 (1)
3.4.2 Formal Notations 139 (1)
3.4.3 Semiformal Notations: UML 139 (7)
Perspectives: Data Flow and Control 146 (2)
Flow Models
3.5 Relation to Other Kinds of Views 148 (2)
3.6 Summary Checklist 150 (1)
3.7 Discussion Questions 151 (1)
3.8 For Further Reading 152 (3)
Chapter 4 A Tour of Some 155 (34)
Component-and-Connector Styles
4.1 An Introduction to C&C Styles 155 (2)
4.2 Data Flow Styles 157 (4)
4.2.1 Pipe-and-Filter Style 158 (3)
4.3 Call-Return Styles 161 (11)
4.3.1 Client-Server Style 162 (4)
4.3.2 Peer-to-Peer Style 166 (3)
4.3.3 Service-Oriented Architecture 169 (3)
Style
4.4 Event-Based Styles 172 (6)
4.4.1 Publish-Subscribe Style 174 (4)
4.5 Repository Styles 178 (4)
4.5.1 Shared-Data Style 178 (4)
4.6 Crosscutting Issues for C&C Styles 182 (3)
4.6.1 Communicating Processes 182 (1)
4.6.2 Tiers 183 (1)
4.6.3 Dynamic Creation and Destruction 184 (1)
4.7 Summary Checklist 185 (1)
4.8 Discussion Questions 186 (1)
4.9 For Further Reading 187 (2)
Chapter 5 Allocation Views and a Tour of 189 (26)
Some Allocation Styles
5.1 Overview 189 (2)
5.2 Deployment Style 191 (7)
5.2.1 Overview 191 (1)
5.2.2 Elements, Relations, and 192 (2)
Properties
5.2.3 What the Deployment Style Is For 194 (2)
5.2.4 Notation for the Deployment Style 196 (1)
5.2.5 Relation to Other Styles 197 (1)
5.3 Install Style 198 (4)
5.3.1 Overview 198 (1)
5.3.2 Elements, Relations, and 199 (1)
Properties
5.3.3 What the Install Style Is For 200 (1)
5.3.4 Notations for the Install Style 200 (2)
5.3.5 Relation to Other Styles 202 (1)
5.4 Work Assignment Style 202 (4)
5.4.1 Overview 202 (1)
5.4.2 Elements, Relations, and 202 (1)
Properties
5.4.3 What a Work Assignment Style Is 203 (1)
For
5.4.4 Notations for the Work Assignment 203 (1)
Style
5.4.5 Relation to Other Styles 204 (1)
Perspectives: Why Is a Work Assignment 205 (1)
View Architectural?
5.5 Other Allocation Styles 206 (7)
Perspectives: Coordination Views 209 (4)
5.6 Summary Checklist 213 (1)
5.7 Discussion Questions 213 (1)
5.8 For Further Reading 214 (1)
Part II Beyond Structure: Completing the 215 (98)
Documentation
Chapter 6 Beyond the Basics 217 (44)
6.1 Refinement 218 (4)
6.1.1 Decomposition Refinement 218 (1)
6.1.2 Implementation Refinement 219 (1)
6.1.3 Spectrum of Design 220 (1)
6.1.4 Style Specialization 221 (1)
6.2 Descriptive Completeness 222 (3)
6.3 Documenting Context Diagrams 225 (6)
6.3.1 Create Context Diagrams Using the 226 (2)
Vocabulary of the View
6.3.2 Content of a Context Diagram 228 (1)
6.3.3 Context Diagrams and Other 229 (1)
Supporting Documentation
6.3.4 Notations for Context Diagrams 229 (2)
6.4 Documenting Variation Points 231 (8)
6.4.1 What Are Variation Points? 231 (1)
6.4.2 Variation Mechanisms 232 (2)
Coming to Terms: Product-Line 234 (1)
Architectures
6.4.3 Dynamism and Dynamic Architectures 234 (1)
6.4.4 Documenting Variation Points 235 (4)
6.5 Documenting Architectural Decisions 239 (11)
6.5.1 Why Document Architectural 239 (1)
Decisions?
6.5.2 A Template for Documenting 239 (3)
Architectural Decisions
6.5.3 Documenting Alternatives 242 (1)
6.5.4 Which Decisions to Document 242 (2)
Perspectives: "It may sound like a lot 244 (1)
of effort to do this, but here's how we
do It in the trenches,"
6.5.5 The Payback for Documenting 245 (1)
Architectural Decisions
Perspectives: From Documenting 246 (1)
Architectures to Architecting As
Decision Making
Perspectives: An Ontology of 247 (3)
Architecture Decisions
6.6 Combining Views 250 (8)
6.6.1 Types of Associations Between 251 (1)
Views
6.6.2 Combined Views 251 (3)
6.6.3 When to Combine Views 254 (1)
6.6.4 Examples of Combined Views 255 (3)
6.7 Summary Checklist 258 (1)
6.8 Discussion Questions 259 (1)
6.9 For Further Reading 260 (1)
Chapter 7 Documenting Software Interfaces 261 (28)
7.1 Overview 261 (4)
Coming to Terms: Provided vs. Required 264 (1)
Interfaces
7.2 Interface Documentation 265 (6)
7.2.1 Showing the Existence of 268 (3)
Interfaces in Diagrams
7.3 A Standard Organization for Interface 271 (7)
Documentation
Coming to Terms: Error Handling 277 (1)
7.4 Stakeholders of Interface 278 (1)
Documentation
7.5 Conveying Syntactic Information 279 (1)
7.6 Conveying Semantic Information 280 (1)
Coming to Terms: Signature, Interface, 280 (1)
API
7.7 Examples of Interface Documentation 281 (4)
7.7.1 Zip Component API 281 (4)
7.7.2 Interface to a SOAP Web Service 285 (1)
7.8 Summary Checklist 285 (1)
7.9 Discussion Questions 286 (1)
7.10 For Further Reading 286 (3)
Chapter 8 Documenting Behavior 289 (24)
8.1 Beyond Structure 289 (1)
8.2 How to Document Behavior 290 (5)
8.2.1 Step 1: Decide What Kinds of 290 (1)
Questions You Need to Answer
8.2.2 Step 2: Determine What Types of 291 (2)
Information Are Available or Can Be
Constrained
8.2.3 Step 3: Choose a Notation 293 (2)
8.3 Notations for Documenting Behavior 295 (11)
8.3.1 Notations for Capturing Traces 295 (8)
8.3.2 Notations for Capturing 303 (3)
Comprehensive Models
8.4 Where to Document Behavior 306 (1)
8.5 Why to Document Behavior 306 (2)
8.5.1 Driving Development Activities 306 (1)
8.5.2 Analysis 307 (1)
8.6 Summary Checklist 308 (1)
8.7 Discussion Questions 309 (2)
8.8 For Further Reading 311 (2)
Part III Building the Architecture 313 (86)
Documentation
Chapter 9 Choosing the Views 315 (22)
9.1 Stakeholders and Their Documentation 316 (10)
Needs
9.2 A Method for Choosing the Views 326 (3)
Perspectives: Listening to the 327 (2)
Stakeholders
9.3 Example 329 (6)
Perspectives: How Not to Introduce an 333 (2)
Architecture
9.4 Summary Checklist 335 (1)
9.5 Discussion Questions 335 (1)
9.6 For Further Reading 335 (2)
Chapter 10 Building the Documentation 337 (38)
Package
10.1 Documenting a View 337 (13)
10.1.1 A Standard Organization for 337 (4)
Documenting a View
Perspectives: From Context Diagrams to 341 (3)
a Context View
10.1.2 Useful Variations in the 344 (5)
Standard Organization for a View
10.1.3 Avoiding Unnecessary Repetition 349 (1)
Across Views or View Packets
10.2 Documentation Beyond Views 350 (7)
10.2.1 A Standard Organization for 351 (5)
Documenting Information Beyond Views
10.2.2 Useful Variations in the 356 (1)
Standard Organization for Documentation
Beyond Views
10.3 Documenting a Mapping to Requirements 357 (5)
Perspectives: A Mapping to 362 (1)
Requirements: You Might Already Have It
10.4 Packaging the Architecture 362 (10)
Documentation
10.4.1 Packaging Schemes 362 (3)
10.4.2 Online Documentation, Hypertext, 365 (1)
and Wikis
Coming to Terms: Wiki 366 (2)
10.4.3 Configuration Management 368 (1)
10.4.4 Follow a Release Strategy 368 (1)
Perspectives: Presentation Is Also 369 (1)
Important
Perspectives: Tooling Requirements 370 (2)
10.5 Summary Checklist 372 (1)
10.6 For Further Reading 373 (2)
Chapter 11 Reviewing an Architecture 375 (24)
Document
11.1 Steps of the Procedure 376 (6)
Coming to Terms: Active Design Reviews 380 (2)
11.2 Sample Question Sets for Reviewing 382 (11)
the Architecture Document
11.2.1 Example Question Set for 385 (1)
Capturing the Right Stakeholders and
Concerns
11.2.2 Example Question Set for 386 (3)
Supporting Evaluation
11.2.3 Example Question Set for 389 (2)
Supporting Development
11.2.4 Example Question Set for 391 (2)
Reviewing for Conformance to ISO/IEC
42010
11.3 An Example of Constructing and 393 (2)
Conducting a Review
11.4 Summary Checklist 395 (1)
11.5 Discussion Questions 396 (1)
11.6 For Further Reading 396 (3)
Epilogue: Using Views and Beyond with Other 399 (32)
Approaches
E.1 ISO/IEC 42010, nee ANSI/IEEE Std 400 (6)
1471-2000
E.1.1 Overview 400 (4)
E.1.2 42010 and Views and Beyond 404 (2)
E.2 Rational Unified Process/Kruchten 4+ 1 406 (2)
E.2.1 RUP/4+1 and Views and Beyond 406 (2)
E.3 Using the Rozanski and Woods 408 (6)
Viewpoint Set
Coming to Terms: Architecture 410 (1)
Perspectives
E.3.1 Rozanski and Woods Viewpoints and 411 (3)
Views and Beyond
E.4 Documenting Architecture in an Agile 414 (5)
Development Project
E.4.1 Overview 414 (1)
E.4.2 Agile Development and Views and 415 (4)
Beyond
E.5 U.S. Department of Defense 419 (9)
Architecture Framework
E.5.1 Overview of DoDAF 419 (2)
E.5.2 DoDAF and Software Architecture 421 (1)
E.5.3 DoDAF and Views and Beyond 421 (5)
E.5.4 A Strategy to Use DoDAF to 426 (2)
Document Software Architecture
E.6 Where Architecture Documentation Ends 428 (1)
E.7 A Final Word 429 (1)
E.8 For Further Reading 429 (2)
Appendix A UML---Unified Modeling Language 431 (34)
A.1 Introduction 431 (2)
A.2 Documenting a Module View 433 (5)
A.2.1 Decomposition Style 433 (1)
A.2.2 Uses Style 433 (1)
A.2.3 Generalization Style 434 (1)
A.2.4 Layered Style 434 (1)
A.2.5 Aspects Style 434 (1)
A.2.6 Data Model Style 435 (1)
Perspectives: UML Class Diagrams: Too 436 (2)
Much, Too Little
A.3 Documenting a Component-and-Connector 438 (5)
View
A.4 Documenting an Allocation View 443 (6)
A.4.1 Deployment Style 443 (2)
A.4.2 Install and Implementation Styles 445 (1)
A.4.3 Work Assignment Style 446 (3)
A.5 Documenting Behavior 449 (11)
A.5.1 Activity Diagram 450 (1)
A.5.2 Sequence Diagram 450 (3)
A.5.3 Communication Diagram 453 (1)
A.5.4 Timing Diagram 454 (1)
A.5.5 Interaction Overview Diagram 455 (2)
A.5.6 State Machine Diagram 457 (1)
A.5.7 Use Case Diagram 458 (2)
A.6 Documenting Interfaces 460 (5)
Perspectives: UML Tools 461 (4)
Appendix B SysML---Systems Modeling Language 465 (8)
B.1 Architecture Documentation 466 (1)
B.2 Requirements 466 (2)
B.3 Documenting a Module View 468 (1)
B.4 Documenting a Component-and-Connector 469 (1)
View
B.5 Documenting an Allocation View 470 (1)
B.6 Documenting Behavior 471 (1)
B.7 Documenting Interfaces 472 (1)
B.8 Summary 472 (1)
Appendix C AADL---The SAE Architecture 473 (14)
Analysis and Design Language
C.1 Introduction 473 (2)
C.2 Documenting a Module Style 475 (3)
C.3 Documenting a Component-and-Connector 478 (3)
View
C.4 Documenting a Deployment View 481 (1)
C.5 Documenting Behavior 482 (2)
C.6 Documenting Interfaces 484 (1)
C.7 Summary 484 (3)
Acronyms 487 (4)
Glossary 491 (6)
References 497 (12)
About the Authors 509 (4)
About the Contributors 513 (4)
Index 517