<p style="margin:0px;"> <b> <i>Designing Software Architectures</i> </b> will teach you how to design any software architecture in a systematic, predictable, repeatable, and cost-effective way.</p> <p style="margin:0px;"> <br> </p> <p style="margin:0px;">This book introduces a practical methodology
Designing Software Architectures: A Practical Approach
โ Scribed by Humberto Cervantes, Rick Kazman
- Publisher
- Addison-Wesley Professional
- Year
- 2024
- Tongue
- English
- Leaves
- 455
- Series
- SEI Series in Software Engineering
- Edition
- 2
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
Learn how to create successful architectural designs and improve your current design practices!
Designing Software Architectures, 2nd Edition, provides a practical, step-by-step methodology for architecture design that any professional software engineer can use, with structured methods supported by reusable chunks of design knowledge and rich case studies that demonstrate how to use the methods.
The Attribute-Driven Design method may not have changed since this book's first printing, but almost everything else about the industry has. In this newly updated edition, you will find new chapters on supporting business agility through API-centric design, deployability, cloud-based solutions, and technical debt in design.
Humberto Cervantes and Rick Kazman illuminate best practices for how architects should design complex systems so you can make design decisions in systematic, repeatable, and cost-effective ways. This book will help you become a better, more confident designer who can create high-quality architectures with ease.
The new edition includes:
- A clear explanation of the Attribute-Driven Design method
- New chapters focused on the technical environments and contexts of contemporary design
- Two new case studies on The Hotel Pricing System and Digital Twin Platform
- Coverage of current architecture topics like cloud computing, DevOps, and large-scale systems
- Methods to make architecture design agile and achievable
โฆ Table of Contents
Cover
Half Title
Title Page
Copyright Page
Contents
Preface
Acknowledgments
About the Authors
CHAPTER 1 Introduction
1.1 Motivations
1.2 Software Architecture
1.3 The Role of the Architect
1.4 A Brief History of ADD
1.5 Summary
1.6 Further Reading
1.7 Discussion Questions
CHAPTER 2 Architectural Design
2.1 Design in General
2.2 Design in Software Architecture
2.3 Why Is Architectural Design So Important?
2.4 Architectural Drivers
2.5 Summary
2.6 Further Reading
2.7 Discussion Questions
CHAPTER 3 Making Design Decisions
3.1 Making Design Decisions
3.2 Design Concepts: The Building Blocks for Creating Structures
3.3 Design Concepts to Support Performance
3.4 Design Concepts to Support Availability
3.5 Design Concepts to Support Modifiability
3.6 Design Concepts to Support Security
3.7 Design Concepts to Support Integrability
3.8 Summary
3.9 Further Reading
3.10 Discussion Questions
CHAPTER 4 The Architecture Design Process
4.1 The Need for a Principled Method
4.2 Attribute-Driven Design 3.0
4.3 Applying ADD to Different System Contexts
4.4 Identifying and Selecting Design Concepts
4.5 Producing Structures
4.6 Defining Interfaces
4.7 Creating Preliminary Documentation During Design
4.8 Tracking Design Progress
4.9 Summary
4.10 Further Reading
4.11 Discussion Questions
CHAPTER 5 API-centric Design
5.1 Business Agility
5.2 API-centric Design
5.3 API-centric Design and ADD
5.4 Summary
5.5 Further Reading
5.6 Discussion Questions
CHAPTER 6 Designing for Deployability
6.1 Deployability Principles and Architectural Design
6.2 Design Decisions to Support Deployability
6.3 Deployability and ADD
6.4 Summary
6.5 Further Reading
6.6 Discussion Questions
CHAPTER 7 Designing Cloud-Based Solutions
7.1 Introduction to the Cloud
7.2 Drivers and the Cloud
7.3 Cloud-Based Design Concepts
7.4 ADD in the Design of Cloud-Based Solutions
7.5 Summary
7.6 Further Reading
7.7 Discussion Questions
CHAPTER 8 Case Study: Hotel Pricing System
8.1 Business Case
8.2 System Requirements
8.3 Development and Operations Requirements
8.4 The Software Design Process
8.5 Summary
8.6 Further Reading
8.7 Discussion Questions
CHAPTER 9 Case Study: Digital Twin Platform
9.1 Business Case
9.2 System Requirements
9.3 The Design Process
9.4 Summary
9.5 Further Reading
9.6 Discussion Questions
CHAPTER 10 Technical Debt in Architectural Design
10.1 Technical Debt
10.2 The Roots of Technical Debt in Design
10.3 Refactoring and Redesign
10.4 Technical Debt and ADD
10.5 Summary
10.6 Further Reading
10.7 Discussion Questions
CHAPTER 11 Analysis in the Design Process
11.1 Analysis and Design
11.2 Why Analyze?
11.3 Analysis Techniques
11.4 Tactics-Based Analysis
11.5 Reflective Questions
11.6 Scenario-Based Design Reviews
11.7 Summary
11.8 Further Reading
11.9 Discussion Questions
CHAPTER 12 The Architecture Design Process in the Organization
12.1 Architecture Design and the Development Life Cycle
12.2 Architecture Design and the Organization
12.3 Summary
12.4 Further Reading
12.5 Discussion Questions
CHAPTER 13 Final Thoughts
13.1 On the Need for Methods
13.2 Future Directions
13.3 Next Steps
13.4 Further Reading
13.5 Discussion Questions
Appendix Tactics-Based Questionnaires
Index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
โฆ Subjects
Software Architecture Design; Software Engineering; Attribute-Driven Design; System Analysis; System Design
๐ SIMILAR VOLUMES
"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 method
It has now been nearly 8 years since the first edition of Designing Software Architectures appeared. Much has changed in the world of technology since then. Cloud architectures, IoT architectures, DevOps, the rise of AI/ML, containers, micro-services, and much more. Was our advice from
Learn how to create successful architectural designs and improve your current design practices!Designing Software Architectures, 2nd Edition, provides a practical, step-by-step methodology for architecture design that any professional software engineer can use, with structured methods supported by r
<span>Design higher-quality embedded software from concept through production.ย This book assumes basic C and microcontroller programming knowledge and is organized into three critical areas: Software Architecture and Design; Agile, DevOps, and Processes; and Development and Coding Skills.<br>You'll