Documenting software architectures : views and beyond

“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 kno...

Descripción completa

Detalles Bibliográficos
Otros Autores: Clements, Paul, author (author), Clements, Paul Contributor (contributor)
Formato: Libro electrónico
Idioma:Inglés
Publicado: [Place of publication not identified] Addison Wesley 2010
Edición:2nd ed
Colección:SEI series in software engineering Documenting software architectures
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009629089906719
Tabla de Contenidos:
  • Cover
  • Contents
  • About the Cover
  • Foreword to the Second Edition
  • Foreword to the First Edition
  • Preface
  • Acknowledgments
  • Reader's Guide
  • Prologue: Software Architectures and Documentation
  • P.1 A Short Overview of Software Architecture
  • P.1.1 Overview
  • P.1.2 Architecture and Quality Attributes
  • Coming to Terms: What Is Software Architecture?
  • Perspectives: What's the Difference Between Architecture and Design?
  • P.2 A Short Overview of Architecture Documentation
  • P.2.1 Why Document Software Architecture?
  • Coming to Terms: Specification, Representation, Description, Documentation
  • P.2.2 Uses and Audiences for Architecture Documentation
  • P.2.3 Architecture Documentation and Quality Attributes
  • P.2.4 Economics of Architecture Documentation
  • P.2.5 The Views and Beyond "Method"
  • P.2.6 Views and Beyond in an Agile Environment
  • P.2.7 Architectures That Change Faster Than You Can Document Them
  • P.3 Architecture Views
  • Coming to Terms: A Short History of Architecture Views
  • P.4 Architecture Styles
  • P.4.1 Three Categories of Styles
  • Coming to Terms: Module, Component
  • Coming to Terms: "Architecture Style" and "Architecture Pattern"
  • P.5 Seven Rules for Sound Documentation
  • Perspectives: Beware Notations Everyone "Just Knows"
  • Perspectives: Quivering at Arrows
  • P.6 Summary Checklist
  • P.7 Discussion Questions
  • P.8 For Further Reading
  • Part I: A Collection of Software Architecture Styles
  • I.1 Three Categories of Styles
  • I.2 Style Guides: A Standard Organization for Explaining a Style
  • I.3 Choosing Which Element and Relation Properties to Document
  • I.4 Notations for Architecture Views
  • I.5 Examples
  • Chapter 1 Module Views
  • 1.1 Overview
  • 1.2 Elements, Relations, and Properties of Module Views
  • 1.3 What Module Views Are For
  • 1.4 Notations for Module Views.
  • 1.5 Relation to Other Views
  • 1.6 Summary Checklist
  • 1.7 Discussion Questions
  • 1.8 For Further Reading
  • Chapter 2 A Tour of Some Module Styles
  • 2.1 Decomposition Style
  • 2.2 Uses Style
  • 2.3 Generalization Style
  • 2.4 Layered Style
  • 2.5 Aspects Style
  • 2.6 Data Model
  • 2.7 Summary Checklist
  • 2.8 Discussion Questions
  • 2.9 For Further Reading
  • Chapter 3 Component-and-Connector Views
  • 3.1 Overview
  • 3.2 Elements, Relations, and Properties of C&C Views
  • 3.3 What C&C Views Are For
  • 3.4 Notations for C&C Views
  • 3.5 Relation to Other Kinds of Views
  • 3.6 Summary Checklist
  • 3.7 Discussion Questions
  • 3.8 For Further Reading
  • Chapter 4 A Tour of Some Component-and-Connector Styles
  • 4.1 An Introduction to C&C Styles
  • 4.2 Data Flow Styles
  • 4.3 Call-Return Styles
  • 4.4 Event-Based Styles
  • 4.5 Repository Styles
  • 4.6 Crosscutting Issues for C&C Styles
  • 4.7 Summary Checklist
  • 4.8 Discussion Questions
  • 4.9 For Further Reading
  • Chapter 5 Allocation Views and a Tour of Some Allocation Styles
  • 5.1 Overview
  • 5.2 Deployment Style
  • 5.3 Install Style
  • 5.4 Work Assignment Style
  • 5.5 Other Allocation Styles
  • 5.6 Summary Checklist
  • 5.7 Discussion Questions
  • 5.8 For Further Reading
  • Part II: Beyond Structure: Completing the Documentation
  • Chapter 6 Beyond the Basics
  • 6.1 Refinement
  • 6.2 Descriptive Completeness
  • 6.3 Documenting Context Diagrams
  • 6.4 Documenting Variation Points
  • 6.5 Documenting Architectural Decisions
  • 6.6 Combining Views
  • 6.7 Summary Checklist
  • 6.8 Discussion Questions
  • 6.9 For Further Reading
  • Chapter 7 Documenting Software Interfaces
  • 7.1 Overview
  • 7.2 Interface Documentation
  • 7.3 A Standard Organization for Interface Documentation
  • 7.4 Stakeholders of Interface Documentation
  • 7.5 Conveying Syntactic Information
  • 7.6 Conveying Semantic Information.
  • 7.7 Examples of Interface Documentation
  • 7.8 Summary Checklist
  • 7.9 Discussion Questions
  • 7.10 For Further Reading
  • Chapter 8 Documenting Behavior
  • 8.1 Beyond Structure
  • 8.2 How to Document Behavior
  • 8.3 Notations for Documenting Behavior
  • 8.4 Where to Document Behavior
  • 8.5 Why to Document Behavior
  • 8.6 Summary Checklist
  • 8.7 Discussion Questions
  • 8.8 For Further Reading
  • Part III: Building the Architecture Documentation
  • Chapter 9 Choosing the Views
  • 9.1 Stakeholders and Their Documentation Needs
  • 9.2 A Method for Choosing the Views
  • 9.3 Example
  • 9.4 Summary Checklist
  • 9.5 Discussion Questions
  • 9.6 For Further Reading
  • Chapter 10 Building the Documentation Package
  • 10.1 Documenting a View
  • 10.2 Documentation Beyond Views
  • 10.3 Documenting a Mapping to Requirements
  • 10.4 Packaging the Architecture Documentation
  • 10.5 Summary Checklist
  • 10.6 For Further Reading
  • Chapter 11 Reviewing an Architecture Document
  • 11.1 Steps of the Procedure
  • 11.2 Sample Question Sets for Reviewing the Architecture Document
  • 11.3 An Example of Constructing and Conducting a Review
  • 11.4 Summary Checklist
  • 11.5 Discussion Questions
  • 11.6 For Further Reading
  • Epilogue: Using Views and Beyond with Other Approaches
  • E.1 ISO/IEC 42010, née ANSI/IEEE Std 1471-2000
  • E.1.1 Overview
  • E.1.2 42010 and Views and Beyond
  • E.2 Rational Unified Process/Kruchten 4+1
  • E.2.1 RUP/4+1 and Views and Beyond
  • E.3 Using the Rozanski and Woods Viewpoint Set
  • Coming to Terms: Architecture Perspectives
  • E.3.1 Rozanski and Woods Viewpoints and Views and Beyond
  • E.4 Documenting Architecture in an Agile Development Project
  • E.4.1 Overview
  • E.4.2 Agile Development and Views and Beyond
  • E.5 U.S. Department of Defense Architecture Framework
  • E.5.1 Overview of DoDAF
  • E.5.2 DoDAF and Software Architecture.
  • E.5.3 DoDAF and Views and Beyond
  • E.5.4 A Strategy to Use DoDAF to Document Software Architecture
  • E.6 Where Architecture Documentation Ends
  • E.7 A Final Word
  • E.8 For Further Reading
  • Appendix A: UML-Unified Modeling Language
  • A.1 Introduction
  • A.2 Documenting a Module View
  • A.2.1 Decomposition Style
  • A.2.2 Uses Style
  • A.2.3 Generalization Style
  • A.2.4 Layered Style
  • A.2.5 Aspects Style
  • A.2.6 Data Model Style
  • Perspectives: UML Class Diagrams: Too Much, Too Little
  • A.3 Documenting a Component-and-Connector View
  • A.4 Documenting an Allocation View
  • A.4.1 Deployment Style
  • A.4.2 Install and Implementation Styles
  • A.4.3 Work Assignment Style
  • A.5 Documenting Behavior
  • A.5.1 Activity Diagram
  • A.5.2 Sequence Diagram
  • A.5.3 Communication Diagram
  • A.5.4 Timing Diagram
  • A.5.5 Interaction Overview Diagram
  • A.5.6 State Machine Diagram
  • A.5.7 Use Case Diagram
  • A.6 Documenting Interfaces
  • Perspectives: UML Tools
  • Appendix B: SysML-Systems Modeling Language
  • B.1 Architecture Documentation
  • B.2 Requirements
  • B.3 Documenting a Module View
  • B.4 Documenting a Component-and-Connector View
  • B.5 Documenting an Allocation View
  • B.6 Documenting Behavior
  • B.7 Documenting Interfaces
  • B.8 Summary
  • Appendix C: AADL-The SAE Architecture Analysis and Design Language
  • C.1 Introduction
  • C.2 Documenting a Module Style
  • C.3 Documenting a Component-and-Connector View
  • C.4 Documenting a Deployment View
  • C.5 Documenting Behavior
  • C.6 Documenting Interfaces
  • C.7 Summary
  • Acronyms
  • Glossary.