1 option
Documenting software architectures : views and beyond
- Format:
- Book
- Author/Creator:
- Clements, Paul, author.
- Series:
- SEI series in software engineering Documenting software architectures
- Language:
- English
- Subjects (All):
- Computer architecture.
- Software documentation.
- Physical Description:
- 1 online resource (xxxix, 537 p.) : ill.
- Edition:
- 2nd ed.
- Place of Publication:
- [Place of publication not identified] Addison Wesley 2010
- Language Note:
- English
- System Details:
- text file
- Summary:
- “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 Fellow Software 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
- Contents:
- 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.
- Notes:
- Bibliographic Level Mode of Issuance: Monograph
- Includes bibliographical references and index.
- Description based on publisher supplied metadata and other sources.
- ISBN:
- 9786612768668
- 9781282768666
- 1282768662
- 9780132488587
- 0132488582
- OCLC:
- 1027128952
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.