0%

Book 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 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

  • Table of Contents

    1. Title Page
    2. Copyright Page
    3. Contents
    4. Praise for the First Edition of Documenting Software Architectures
    5. About the Cover
    6. Foreword to the Second Edition
    7. Foreword to the First Edition
    8. Preface
    9. Acknowledgments
    10. Reader’s Guide
    11. P. Prologue: Software Architectures and Documentation
    12. Part I. A Collection of Software Architecture Styles
      1. 1. Module Views
      2. 2. A Tour of Some Module Styles
      3. 3. Component-and-Connector Views
      4. 4. A Tour of Some Component-and-Connector Styles
      5. 5. Allocation Views and a Tour of Some Allocation Styles
    13. Part II. Beyond Structure: Completing the Documentation
      1. 6. Beyond the Basics
      2. 7. Documenting Software Interfaces
      3. 8. Documenting Behavior
    14. Part III. Building the Architecture Documentation
      1. 9. Choosing the Views
      2. 10. Building the Documentation Package
      3. 11. Reviewing an Architecture Document
    15. E. Epilogue: Using Views and Beyond with Other Approaches
    16. A. UML—Unified Modeling Language
    17. B. SysML—Systems Modeling Language
    18. C. AADL—The SAE Architecture Analysis and Design Language
    19. Acronyms
    20. Glossary
    21. References
    22. About the Authors
    23. About the Contributors
    24. Index
    25. Footnotes
      1. Chapter 2
      2. Chapter 4
      3. Chapter 7
      4. E. Epilogue
    26. IFC Page
    27. IBC Page