Book description
Designing Software Architectures will teach you how to design any software architecture in a systematic, predictable, repeatable, and cost-effective way.
This book introduces a practical methodology for architecture design that any professional software engineer can use, provides structured methods supported by reusable chunks of design knowledge, and includes rich case studies that demonstrate how to use the methods.
Using realistic examples, you’ll master the powerful new version of the proven Attribute-Driven Design (ADD) 3.0 method and will learn how to use it to address key drivers, including quality attributes, such as modifiability, usability, and availability, along with functional requirements and architectural concerns.
Drawing on their extensive experience, Humberto Cervantes and Rick Kazman guide you through crafting practical designs that support the full software life cycle, from requirements to maintenance and evolution. You’ll learn how to successfully integrate design in your organizational context, and how to design systems that will be built with agile methods.
Comprehensive coverage includes
Understanding what architecture design involves, and where it fits in the full software development life cycle
Mastering core design concepts, principles, and processes
Understanding how to perform the steps of the ADD method
Scaling design and analysis up or down, including design for pre-sale processes or lightweight architecture reviews
Recognizing and optimizing critical relationships between analysis and design
Utilizing proven, reusable design primitives and adapting them to specific problems and contexts
Solving design problems in new domains, such as cloud, mobile, or big data
Table of contents
- Cover Page
- About This eBook
- Title Page
- Copyright Page
- Contents
- Dedication Page
- Preface
- Acknowledgments
- 1. Introduction
- 2. Architectural Design
-
3. The Architecture Design Process
- 3.1 The Need for a Principled Method
-
3.2 Attribute-Driven Design 3.0
- 3.2.1 Step 1: Review Inputs
- 3.2.2 Step 2: Establish the Iteration Goal by Selecting Drivers
- 3.2.3 Step 3: Choose One or More Elements of the System to Refine
- 3.2.4 Step 4: Choose One or More Design Concepts That Satisfy the Selected Drivers
- 3.2.5 Step 5: Instantiate Architectural Elements, Allocate Responsibilities, and Define Interfaces
- 3.2.6 Step 6: Sketch Views and Record Design Decisions
- 3.2.7 Step 7: Perform Analysis of Current Design and Review Iteration Goal and Achievement of Design Purpose
- 3.2.8 Iterate If Necessary
- 3.3 Following a Design Roadmap According to System Type
- 3.4 Identifying and Selecting Design Concepts
- 3.5 Producing Structures
- 3.6 Defining Interfaces
- 3.7 Creating Preliminary Documentation During Design
- 3.8 Tracking Design Progress
- 3.9 Summary
- 3.10 Further Reading
- 4. Case Study: FCAPS System
- 5. Case Study: Big Data System
- 6. Case Study: Banking System
-
7. Other Design Methods
- 7.1 A General Model of Software Architecture Design
- 7.2 Architecture-Centric Design Method
- 7.3 Architecture Activities in the Rational Unified Process
- 7.4 The Process of Software Architecting
- 7.5 A Technique for Architecture and Design
- 7.6 Viewpoints and Perspectives Method
- 7.7 Summary
- 7.8 Further Reading
- 8. Analysis in the Design Process
- 9. The Architecture Design Process in the Organization
- 10. Final Words
- A. A Design Concepts Catalog
- B. Tactics-Based Questionnaires
- Glossary
- About the Authors
- Index
Product information
- Title: Designing Software Architectures: A Practical Approach
- Author(s):
- Release date: May 2016
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780134390857
You might also like
book
Software Architecture in Practice, Third Edition
The award-winning and highly influential has been substantially revised to reflect the latest developments in the …
book
Software Architecture in Practice, 4th Edition
The Definitive, Practical, Proven Guide to Architecting Modern Software--Fully Updated with New Content on Mobility, the …
book
Software and Systems Architecture in Action
This book explores practices that can be helpful in the development of architectures of large-scale systems …
audiobook
Fundamentals of Software Architecture: An Engineering Approach
Salary surveys worldwide regularly place software architect in the top 10 best jobs, yet no real …