Designing Software Architectures: A Practical Approach
Designing Software Architectures is the first step-by-step guide to making the crucial design decisions that can make or break your software architecture. SEI expert Rick Kazman and Dr. Humberto Cervantes provide comprehensive guidance for ensuring that your architectural design decisions are consistently rational and evidence-based.
 
Table of Content
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
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 Design Concepts: The Building Blocks for Creating Structures
2.6 Architecture Design Decisions
2.7 Summary
2.8 Further Reading
Chapter 3: The Architecture Design Process
3.1 The Need for a Principled Method
3.2 Attribute-Driven Design
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
Chapter 4: Case Study: FCAPS System
4.1 Business Case
4.2 System Requirements
4.3 The Design Process
4.4 Summary
4.5 Further Reading
Chapter 5: 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
Chapter 6: 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
Chapter 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
Chapter 8: Analysis in the Design Process
8.1 Analysis and Design
8.2 Why Analyze?
8.3 Analysis Techniques
8.4 Tactics-Based Analysis
8.5 Reflective Questions
8.6 Scenario-Based Design Reviews
8.7 Architecture Description Languages
8.8 Summary
8.9 Further Reading
Chapter 9: The Architecture Design Process in the Organization
9.1 Architecture Design and the Development Life Cycle
9.2 Organizational Aspects
9.3 Summary
9.4 Further Reading
Chapter 10: Final Words
10.1 On the Need for Methods
10.2 Next Steps
10.3 Further Reading
Appendix A: 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
Appendix B: Tactics-Based Questionnaires
B.1 Using the Questionnaires
B.2 Availability
B.3 Interoperability
B.4 Modifiability
B.5 Performance
B.6 Security
B.7 Testability
B.8 Usability
B.9 DevOps
B.10 Further Reading
Glossary
About the Authors
Index
|
Salient Features
Discover practical, proven techniques for designing software architectures optimized to meet your specific business goals
• Master a structured, repeatable method for design that helps you get better results fast
• Learn from concrete, extended design case studies using well-documented design primitives
• Get practical design advice for greenfield, evolution, pre-sales, agile, cloud, mobile, big data, and other environments
• Explore new analysis tools and techniques, and learn what and how to document your designs
• The latest title in Addison Wesley's highly respected SEI Series in Software Engineering"
|
|
|
|
|