, ,

Software Architecture in Practice

E-book Engels 2021 9780136886020
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

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

Updated with eleven new chapters, Software Architecture in Practice, Fourth Edition, thoroughly explains what software architecture is, why it's important, and how to design, instantiate, analyze, evolve, and manage it in disciplined and effective ways.

Three renowned software architects cover the entire lifecycle, presenting practical guidance, expert methods, and tested models for use in any project, no matter how complex. You'll learn how to use architecture to address accelerating growth in requirements, system size, and abstraction, and to manage emergent quality attributes as systems are dynamically combined in new ways.

With insights for utilizing architecture to optimize key quality attributes--including performance, modifiability, security, availability, interoperability, testability, usability, deployability, and more--this guide explains how to manage and refine existing architectures, transform them to solve new problems, and build reusable architectures that become strategic business assets.
Discover how architecture influences (and is influenced by) technical environments, project lifecycles, business profiles, and your own practices Leverage proven patterns, interfaces, and practices for optimizing quality through architecture Architect for mobility, the cloud, machine learning, and quantum computing Design for increasingly crucial attributes such as energy efficiency and safety Scale systems by discovering architecturally significant influences, using DevOps and deployment pipelines, and managing architecture debt Understand architecture's role in the organization, so you can deliver more value Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.

Specificaties

ISBN13:9780136886020
Taal:Engels
Bindwijze:e-book

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Inhoudsopgave

Preface xv<br>Acknowledgments xvii <br> <br> Part I: Introduction 1<br><br>Chapter 1: What Is Software Architecture? 1 <br>1.1 What Software Architecture Is and What It Isn't 2 <br>1.2 Architectural Structures and Views 5 <br>1.3 What Makes a "Good" Architecture? 19 <br>1.4 Summary 21 <br>1.5 For Further Reading 21 <br>1.6 Discussion Questions 22 <br> <br> Chapter 2: Why Is Software Architecture Important? 25 <br>2.1 Inhibiting or Enabling a System's Quality Attributes 26 <br>2.2 Reasoning about and Managing Change 27 <br>2.3 Predicting System Qualities 28 <br>2.4 Communication among Stakeholders 28 <br>2.5 Early Design Decisions 31 <br>2.6 Constraints on Implementation 31 <br>2.7 Influences on Organizational Structure 32 <br>2.8 Enabling Incremental Development 33 <br>2.9 Cost and Schedule Estimates 33 <br>2.10 Transferable, Reusable Model 34 <br>2.11 Architecture Allows Incorporation of Independently Developed Elements 34 <br>2.12 Restricting the Vocabulary of Design Alternatives 35 <br>2.13 A Basis for Training 36 <br>2.14 Summary 36 <br>2.15 For Further Reading 37 <br>2.16 Discussion Questions 37 <br> <br> Part II: Quality Attributes 39<br><br>Chapter 3: Understanding Quality Attributes 39 <br>3.1 Functionality 40 <br>3.2 Quality Attribute Considerations 41 <br>3.3 Specifying Quality Attribute Requirements: Quality Attribute Scenarios 42 <br>3.4 Achieving Quality Attributes through Architectural Patterns and Tactics 45 <br>3.5 Designing with Tactics 46 <br>3.6 Analyzing Quality Attribute Design Decisions: Tactics-Based Questionnaires 48 <br>3.7 Summary 49 <br>3.8 For Further Reading 49 <br>3.9 Discussion Questions 50 <br> <br> Chapter 4: Availability 51 <br>4.1 Availability General Scenario 53 <br>4.2 Tactics for Availability 55 <br>4.3 Tactics-Based Questionnaire for Availability 62 <br>4.4 Patterns for Availability 66 <br>4.5 For Further Reading 68 <br>4.6 Discussion Questions 69 <br> <br> Chapter 5: Deployability 71 <br>5.1 Continuous Deployment 72 <br>5.2 Deployability 75 <br>5.3 Deployability General Scenario 76 <br>5.4 Tactics for Deployability 78 <br>5.5 Tactics-Based Questionnaire for Deployability 80 <br>5.6 Patterns for Deployability 81 <br>5.7 For Further Reading 87 <br>5.8 Discussion Questions 87 <br> <br> Chapter 6: Energy Efficiency 89 <br>6.1 Energy Efficiency General Scenario 90 <br>6.2 Tactics for Energy Efficiency 92 <br>6.3 Tactics-Based Questionnaire for Energy Efficiency 95 <br>6.4 Patterns 97 <br>6.5 For Further Reading 98 <br>6.6 Discussion Questions 99 <br> <br> Chapter 7: Integrability 101 <br>7.1 Evaluating the Integrability of an Architecture 102 <br>7.2 General Scenario for Integrability 104 <br>7.3 Integrability Tactics 105 <br>7.4 Tactics-Based Questionnaire for Integrability 110 <br>7.5 Patterns 112 <br>7.6 For Further Reading 114 <br>7.7 Discussion Questions 115 <br> <br> Chapter 8: Modifiability 117 <br>8.1 Modifiability General Scenario 120 <br>8.2 Tactics for Modifiability 121 <br>8.3 Tactics-Based Questionnaire for Modifiability 125 <br>8.4 Patterns 126 <br>8.5 For Further Reading 130 <br>8.6 Discussion Questions 131 <br> <br> Chapter 9: Performance 133 <br>9.1 Performance General Scenario 134 <br>9.2 Tactics for Performance 137 <br>9.3 Tactics-Based Questionnaire for Performance 145 <br>9.4 Patterns for Performance 146 <br>9.5 For Further Reading 149 <br>9.6 Discussion Questions 150 <br> <br> Chapter 10: Safety 151 <br>10.1 Safety General Scenario 154 <br>10.2 Tactics for Safety 156 <br>10.3 Tactics-Based Questionnaire for Safety 160 <br>10.4 Patterns for Safety 163 <br>10.5 For Further Reading 165 <br>10.6 Discussion Questions 166 <br> <br> Chapter 11: Security 169 <br>11.1 Security General Scenario 170 <br>11.2 Tactics for Security 172 <br>11.3 Tactics-Based Questionnaire for Security 176 <br>11.4 Patterns for Security 179 <br>11.5 For Further Reading 180 <br>11.6 Discussion Questions 180 <br> <br> Chapter 12: Testability 183 <br>12.1 Testability General Scenario 186 <br>12.2 Tactics for Testability 187 <br>12.3 Tactics-Based Questionnaire for Testability 192 <br>12.4 Patterns for Testability 192 <br>12.5 For Further Reading 194 <br>12.6 Discussion Questions 195 <br> <br> Chapter 13: Usability 197 <br>13.1 Usability General Scenario 198 <br>13.2 Tactics for Usability 200 <br>13.3 Tactics-Based Questionnaire for Usability 202 <br>13.4 Patterns for Usability 203 <br>13.5 For Further Reading 205 <br>13.6 Discussion Questions 205 <br> <br> Chapter 14: Working with Other Quality Attributes 207 <br>14.1 Other Kinds of Quality Attributes 207 <br>14.2 Using Standard Lists of Quality Attributes--Or Not 209 <br>14.3 Dealing with "X-Ability": Bringing a New QA into the Fold 212 <br>14.4 For Further Reading 215 <br>14.5 Discussion Questions 215 <br> <br> Part III: Architectural Solutions 217<br><br>Chapter 15: Software Interfaces 217 <br>15.1 Interface Concepts 218 <br>15.2 Designing an Interface 222 <br>15.3 Documenting the Interface 228 <br>15.4 Summary 230 <br>15.5 For Further Reading 230 <br>15.6 Discussion Questions 231 <br> <br> Chapter 16: Virtualization 233 <br>16.1 Shared Resources 234 <br>16.2 Virtual Machines 235 <br>16.3 VM Images 238 <br>16.4 Containers 239 <br>16.5 Containers and VMs 241 <br>16.6 Container Portability 242 <br>16.7 Pods 242 <br>16.8 Serverless Architecture 243 <br>16.9 Summary 244 <br>16.10 For Further Reading 245 <br>16.11 Discussion Questions 245 <br> <br> Chapter 17: The Cloud and Distributed Computing 247 <br>17.1 Cloud Basics 248 <br>17.2 Failure in the Cloud 251 <br>17.3 Using Multiple Instances to Improve Performance and Availability 253 <br>17.4 Summary 261 <br>17.5 For Further Reading 262 <br>17.6 Discussion Questions 262 <br> <br> Chapter 18: Mobile Systems 263 <br>18.1 Energy 264 <br>18.2 Network Connectivity 266 <br>18.3 Sensors and Actuators 267 <br>18.4 Resources 268 <br>18.5 Life Cycle 270 <br>18.6 Summary 273 <br>18.7 For Further Reading 274 <br>18.8 Discussion Questions 275 <br> <br> Part IV: Scalable Architecture Practices 277<br><br>Chapter 19: Architecturally Significant Requirements 277 <br>19.1 Gathering ASRs from Requirements Documents 278 <br>19.2 Gathering ASRs by Interviewing Stakeholders 279 <br>19.3 Gathering ASRs by Understanding the Business Goals 282 <br>19.4 Capturing ASRs in a Utility Tree 284 <br>19.5 Change Happens 286 <br>19.6 Summary 286 <br>19.7 For Further Reading 287 <br>19.8 Discussion Questions 287 <br> <br> Chapter 20: Designing an Architecture 289 <br>20.1 Attribute-Driven Design 289 <br>20.2 The Steps of ADD 292 <br>20.3 More on ADD Step 4: Choose One or More Design Concepts 295 <br>20.4 More on ADD Step 5: Producing Structures 298 <br>20.5 More on ADD Step 6: Creating Preliminary Documentation during the Design 301 <br>20.6 More on ADD Step 7: Perform Analysis of the Current Design and Review the Iteration Goal and Achievement of the Design Purpose 304 <br>20.7 Summary 306 <br>20.8 For Further Reading 306 <br>20.9 Discussion Questions 307 <br> <br> Chapter 21: Evaluating an Architecture 309 <br>21.1 Evaluation as a Risk Reduction Activity 309 <br>21.2 What Are the Key Evaluation Activities? 310 <br>21.3 Who Can Perform the Evaluation? 311 <br>21.4 Contextual Factors 312 <br>21.5 The Architecture Tradeoff Analysis Method 313 <br>21.6 Lightweight Architecture Evaluation 324 <br>21.7 Summary 326 <br>21.8 For Further Reading 327 <br>21.9 Discussion Questions 327 <br> <br> Chapter 22: Documenting an Architecture 329 <br>22.1 Uses and Audiences for Architecture Documentation 330 <br>22.2 Notations 331 <br>22.3 Views 332 <br>22.4 Combining Views 339 <br>22.5 Documenting Behavior 340 <br>22.6 Beyond Views 345 <br>22.7 Documenting the Rationale 346 <br>22.8 Architecture Stakeholders 347 <br>22.9 Practical Considerations 350 <br>22.10 Summary 353 <br>22.11 For Further Reading 353 <br>22.12 Discussion Questions 354 <br> <br> Chapter 23: Managing Architecture Debt 355 <br>23.1 Determining Whether You Have an Architecture Debt Problem 356 <br>23.2 Discovering Hotspots 358 <br>23.3 Example 362 <br>23.4 Automation 363 <br>23.5 Summary 364 <br>23.6 For Further Reading 364 <br>23.7 Discussion Questions 365 <br> <br> Part V: Architecture and the Organization 367<br><br>Chapter 24: The Role of Architects in Projects 367 <br>24.1 The Architect and the Project Manager 367 <br>24.2 Incremental Architecture and Stakeholders 369 <br>24.3 Architecture and Agile Development 370 <br>24.4 Architecture and Distributed Development 373 <br>24.5 Summary 376 <br>24.6 For Further Reading 376 <br>24.7 Discussion Questions 377 <br> <br> Chapter 25: Architecture Competence 379 <br>25.1 Competence of Individuals: Duties, Skills, and Knowledge of Architects 379 <br>25.2 Competence of a Software Architecture Organization 386 <br>25.3 Become a Better Architect 387 <br>25.4 Summary 388 <br>25.5 For Further Reading 388 <br>25.6 Discussion Questions 389 <br> <br> Part VI: Conclusions 391<br><br>Chapter 26: A Glimpse of the Future: Quantum Computing 391 <br>26.1 Single Qubit 392 <br>26.2 Quantum Teleportation 394 <br>26.3 Quantum Computing and Encryption 394 <br>26.4 Other Algorithms 395 <br>26.5 Potential Applications 396 <br>26.6 Final Thoughts 397 <br>26.7 For Further Reading 398 <br> <br> References 399<br>About the Authors 415<br>Index 417

Managementboek Top 100

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        Software Architecture in Practice