Software Architecture in Practice

Status:: 🟥
Links:: Software Architecture

Metadata

Authors:: Bass, Len; Clements, Paul; Kazman, Rick
Title:: Software Architecture in Practice
Date:: 2021
Publisher:: Addison-Wesley
URL::
DOI::

Bibliography

Bass, L., Clements, P., & Kazman, R. (2021). Software Architecture in Practice (Fourth edition). Addison-Wesley.

Zotero

Type:: #zotero/book
Zotero::

Keywords:: [💎, Architectural Tactics, Energy Efficiency, Software Architecture]

Relations

Abstract

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.

Notes & Annotations

Energy Efficiency

Energy Efficiency Tactics

bassSoftwareArchitecturePractice2021-1664460894469.jpeg

bassSoftwareArchitecturePractice2021-1664461826556.jpeg

bassSoftwareArchitecturePractice2021-1664461894792.jpeg

Energy Efficiency Patterns

bassSoftwareArchitecturePractice2021-1664461906397.jpeg

bassSoftwareArchitecturePractice2021-1664461960482.jpeg

For Further Reading

bassSoftwareArchitecturePractice2021-1664462037891.jpeg|700
bassSoftwareArchitecturePractice2021-1664462065566.jpeg|700

Performance

Control Resource Demand

bassSoftwareArchitecturePractice2021-1664461999712.jpeg

bassSoftwareArchitecturePractice2021-1664462144658.jpeg

bassSoftwareArchitecturePractice2021-1664462161406.jpeg

bassSoftwareArchitecturePractice2021-1664462170148.jpeg

📑 Annotations (imported on 2024-01-19#17:58:18)

bass.etal.2021.softwarearchitecturepractice (pg. 66)

A tactic is a design decision that influences the achievement of a quality attribute response—it directly affects the system’s response to some stimulus. Tactics may impart portability to one design, high performance to another, and integrability to a third.

📑 Annotations (imported on 2024-01-19#18:03:35)

bass.etal.2021.softwarearchitecturepractice (pg. 121)

At both the low end and the high end, energy consumption of computational devices has become an issue that we should consider. This means that we, as architects, now need to add energy efficiency to the long list of competing qualities that we consider when designing a system. And, as with every other quality attribute, there are nontrivial tradeoffs to consider: energy usage versus performance or availability or modifiability or time to market.

bass.etal.2021.softwarearchitecturepractice (pg. 121)

An architectural approach is necessary to gain control over any important system quality attribute, and energy efficiency is no different. If system-wide techniques for monitoring and managing energy are lacking, then developers are left to invent them on their own. This will, in the best case, result in an ad hoc approach to energy efficiency that produces a system that is hard to maintain, measure, and evolve. In the worst case, it will yield an approach that simply does not predictably achieve the desired energy efficiency goals.

bass.etal.2021.softwarearchitecturepractice (pg. 122)

Most architects and developers are unaware of energy efficiency as a quality attribute of concern, and hence do not know how to go about engineering and coding for it. More fundamentally, they lack an understanding of energy efficiency requirements—how to gather them and analyze them for completeness. Energy efficiency is not taught, or typically even mentioned, as a programmer’s concern in today’s educational curricula. In consequence, students may graduate with degrees in engineering or computer science without ever having been exposed to these issues.

bass.etal.2021.softwarearchitecturepractice (pg. 122)

Most architects and developers lack suitable design concepts—models, patterns, tactics, and so forth—for designing for energy efficiency, as well as managing and monitoring it at runtime. But since energy efficiency is a relatively recent concern for the software engineering community, these design concepts are still in their infancy, and no catalog yet exists.