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

๐Ÿ“

Designing Software Architectures: A Practical Approach (SEI Series in Software Engineering), 2nd Edition

โœ Scribed by Humberto Cervantes;Rick Kazman;; Rick Kazman


Publisher
Pearson Education (US)
Year
2024
Tongue
English
Leaves
336
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 Page
About This eBook
Halftitle Page
Title Page
Copyright Page
Dedication Page
Contents
Preface
Acknowledgments
About the Authors
Humberto Cervantes
Rick Kazman
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
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
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
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
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
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
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
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
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
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
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
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
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
A.1 Availability
A.2 Deployability
A.3 Energy Efficiency
A.4 Integrability
A.5 Modifiability
A.6 Performance
A.7 Safety
A.8 Security
A.9 Testability
A.10 Usability
A.11 Further Reading
Index
From Ch. 4. of Designing Software Architectures, First Edition: Case Study: FCAPS System
4.1 Business Case
4.2 System Requirements
4.3 The Design Process
4.4 Summary
4.5 Further Reading
From Ch. 5. of Designing Software Architectures, First Edition: Case Study: Big Data System
5.1 Business Case
5.2 System Requirements
5.3 The Design Process
5.4 Summary
5.5 Further Reading
From Ch. 6. of Designing Software Architectures, First Edition: Case Study: Banking System
6.1 Business Case
6.2 Existing Architectural Documentation
6.3 The Design Process
6.4 Summary
6.5 Further Reading
From Appendix A. of Designing Software Architectures, First Edition: A Design Concepts Catalog
A.1 Reference Architectures
A.2 Deployment Patterns
A.3 Architectural Design Patterns
A.4 Tactics
A.5 Externally Developed Components
A.6 Summary
A.7 Further Reading
Code Snippets


๐Ÿ“œ SIMILAR VOLUMES


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

Software Architecture in Practice (SEI S
โœ Len Bass, Paul Clements, Rick Kazman ๐Ÿ“‚ Library ๐Ÿ“… 2021 ๐Ÿ› Addison-Wesley Professional ๐ŸŒ English

<b>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</b> Updated with eleven new chapters, <i><b>Software Architecture in Practice, Fourth Edition</b></i>, thorou

Software Architecture in Practice (SEI S
โœ Len Bass, Paul Clements, Rick Kazman ๐Ÿ“‚ Library ๐Ÿ“… 2021 ๐Ÿ› Addison-Wesley Professional ๐ŸŒ English

<b>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</b> Updated with eleven new chapters, <i><b>Software Architecture in Practice, Fourth Edition</b></i>, thorou

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 ๐Ÿ› Addison-Wesley Professional ๐ŸŒ English

<p><span>Learn how to create successful architectural designs and improve your current design practices!<br> <br> </span></p><p><span>Designing Software Architectures, 2nd Edition, </span><span>provides a practical, step-by-step methodology for architecture design that any professional software engi