Book description
The Definitive, Practical, Proven Guide to Architecting Modern Software--Fully Updated with New Content on Mobility, the Cloud, Energy Management, DevOps, Quantum Computing, and More
Updated with eleven new chapters, Software Architecture in Practice, Fourth Edition, thoroughly explains what software architecture is, why it's important, and how to design, instantiate, analyze, evolve, and manage it in disciplined and effective ways.
Three renowned software architects cover the entire lifecycle, presenting practical guidance, expert methods, and tested models for use in any project, no matter how complex. You'll learn how to use architecture to address accelerating growth in requirements, system size, and abstraction, and to manage emergent quality attributes as systems are dynamically combined in new ways.
With insights for utilizing architecture to optimize key quality attributes--including performance, modifiability, security, availability, interoperability, testability, usability, deployability, and more--this guide explains how to manage and refine existing architectures, transform them to solve new problems, and build reusable architectures that become strategic business assets.
Discover how architecture influences (and is influenced by) technical environments, project lifecycles, business profiles, and your own practices
Leverage proven patterns, interfaces, and practices for optimizing quality through architecture
Architect for mobility, the cloud, machine learning, and quantum computing
Design for increasingly crucial attributes such as energy efficiency and safety
Scale systems by discovering architecturally significant influences, using DevOps and deployment pipelines, and managing architecture debt
Understand architecture's role in the organization, so you can deliver more value
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details..
..
Table of contents
- Cover Page
- About This eBook
- Halftitle Page
- Title Page
- Copyright Page
- Contents
- Preface
- Acknowledgments
-
Part I: Introduction
- 1. What Is Software Architecture?
-
2. Why Is Software Architecture Important?
- 2.1 Inhibiting or Enabling a System’s Quality Attributes
- 2.2 Reasoning about and Managing Change
- 2.3 Predicting System Qualities
- 2.4 Communication among Stakeholders
- 2.5 Early Design Decisions
- 2.6 Constraints on Implementation
- 2.7 Influences on Organizational Structure
- 2.8 Enabling Incremental Development
- 2.9 Cost and Schedule Estimates
- 2.10 Transferable, Reusable Model
- 2.11 Architecture Allows Incorporation of Independently Developed Elements
- 2.12 Restricting the Vocabulary of Design Alternatives
- 2.13 A Basis for Training
- 2.14 Summary
- 2.15 For Further Reading
- 2.16 Discussion Questions
-
Part II: Quality Attributes
-
3. Understanding Quality Attributes
- 3.1 Functionality
- 3.2 Quality Attribute Considerations
- 3.3 Specifying Quality Attribute Requirements: Quality Attribute Scenarios
- 3.4 Achieving Quality Attributes through Architectural Patterns and Tactics
- 3.5 Designing with Tactics
- 3.6 Analyzing Quality Attribute Design Decisions: Tactics-Based Questionnaires
- 3.7 Summary
- 3.8 For Further Reading
- 3.9 Discussion Questions
- 4. Availability
- 5. Deployability
- 6. Energy Efficiency
- 7. Integrability
- 8. Modifiability
- 9. Performance
- 10. Safety
- 11. Security
- 12. Testability
- 13. Usability
- 14. Working with Other Quality Attributes
-
3. Understanding Quality Attributes
- Part III: Architectural Solutions
-
Part IV: Scalable Architecture Practices
- 19. Architecturally Significant Requirements
-
20. Designing an Architecture
- 20.1 Attribute-Driven Design
- 20.2 The Steps of ADD
- 20.3 More on ADD Step 4: Choose One or More Design Concepts
- 20.4 More on ADD Step 5: Producing Structures
- 20.5 More on ADD Step 6: Creating Preliminary Documentation during the Design
- 20.6 More on ADD Step 7: Perform Analysis of the Current Design and Review the Iteration Goal and Achievement of the Design Purpose
- 20.7 Summary
- 20.8 For Further Reading
- 20.9 Discussion Questions
-
21. Evaluating an Architecture
- 21.1 Evaluation as a Risk Reduction Activity
- 21.2 What Are the Key Evaluation Activities?
- 21.3 Who Can Perform the Evaluation?
- 21.4 Contextual Factors
- 21.5 The Architecture Tradeoff Analysis Method
- 21.6 Lightweight Architecture Evaluation
- 21.7 Summary
- 21.8 For Further Reading
- 21.9 Discussion Questions
-
22. Documenting an Architecture
- 22.1 Uses and Audiences for Architecture Documentation
- 22.2 Notations
- 22.3 Views
- 22.4 Combining Views
- 22.5 Documenting Behavior
- 22.6 Beyond Views
- 22.7 Documenting the Rationale
- 22.8 Architecture Stakeholders
- 22.9 Practical Considerations
- 22.10 Summary
- 22.11 For Further Reading
- 22.12 Discussion Questions
- 23. Managing Architecture Debt
- Part V: Architecture and the Organization
- Part VI: Conclusions
- References
- About the Authors
- Index
Product information
- Title: Software Architecture in Practice, 4th Edition
- Author(s):
- Release date: August 2021
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780136885979
You might also like
book
Software Architecture Patterns, 2nd Edition
The success of any software application or system depends on the architecture style you use. This …
book
Fundamentals of Software Architecture
Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real …
book
Software Architecture in Practice, Third Edition
The award-winning and highly influential has been substantially revised to reflect the latest developments in the …
audiobook
Software Architecture: The Hard Parts
There are no easy decisions in software architecture. Instead, there are many hard parts-difficult problems or …