๐”– Scriptorium
โœฆ   LIBER   โœฆ

๐Ÿ“

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

โฌ‡  Acquire This Volume

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: A Prac
โœ Humberto Cervantes, Rick Kazman ๐Ÿ“‚ Library ๐Ÿ“… 2016 ๐Ÿ› Addison-Wesley Professional ๐ŸŒ English

<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 prac
โœ Cervantes, Humberto;Kazman, Rick ๐Ÿ“‚ Library ๐Ÿ“… 2016 ๐Ÿ› Addison-Wesley ๐ŸŒ English

"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

Designing Software Architectures: A Prac
โœ Humberto Cervantes & Rick Kazman ๐Ÿ“‚ Library ๐Ÿ“… 2024 ๐Ÿ› Independently Published ๐ŸŒ English

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

Designing Software Architectures: A Prac
โœ Humberto Cervantes;Rick Kazman;; Rick Kazman ๐Ÿ“‚ Library ๐Ÿ“… 2024 ๐Ÿ› Pearson Education (US) ๐ŸŒ English

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

Embedded Software Design: A Practical Ap
โœ Jacob Beningo ๐Ÿ“‚ Library ๐Ÿ“… 2022 ๐Ÿ› Apress ๐ŸŒ English

<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