Å·±¦ÓéÀÖ

Jump to ratings and reviews
Rate this book

Software Architecture in Practice

Rate this book

This award-winning book, substantially updated to reflect the latest developments in the field, introduces the concepts and best practices of software architecture—how a software system is structured and how that system's elements are meant to interact. Distinct from the details of implementation, algorithm, and data representation, an architecture holds the key to achieving system quality, is a reusable asset that can be applied to subsequent systems, and is crucial to a software organization's business strategy.

Drawing on their own extensive experience, the authors cover the essential technical topics for designing, specifying, and validating a system. They also emphasize the importance of the business context in which large systems are designed. Their aim is to present software architecture in a real-world setting, reflecting both the opportunities and constraints that companies encounter. To that end, case studies that describe successful architectures illustrate key points of both technical and organizational discussions.

Topics new to this edition include:

Architecture design and analysis, including the Architecture Tradeoff Analysis Method (ATAM) Capturing quality requirements and achieving them through quality scenarios and tactics Using architecture reconstruction to recover undocumented architectures Documenting architectures using the Unified Modeling Language (UML) New case studies, including Web-based examples and a wireless Enterprise JavaBeans™ (EJB) system designed to support wearable computers The financial aspects of architectures, including use of the Cost Benefit Analysis Method (CBAM) to make decisions

If you design, develop, or manage the building of large software systems (or plan to do so), or if you are interested in acquiring such systems for your corporation or government agency, use Software Architecture in Practice, Second Edition, to get up to speed on the current state of software architecture.

512 pages, Hardcover

First published January 1, 2021

305 people are currently reading
2,306 people want to read

About the author

Len Bass

11Ìýbooks13Ìýfollowers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
206 (29%)
4 stars
264 (37%)
3 stars
178 (25%)
2 stars
50 (7%)
1 star
12 (1%)
Displaying 1 - 30 of 44 reviews
Profile Image for Ha Truong.
61 reviews54 followers
November 27, 2014
The book introduces many aspects of an architecture and responsibilities of an architect. There are many things I haven't known before. But all the knowledge is at the level of fundamental and kinda overview, so you have to read it along with other specific books.

If I could rewrite the title, I would put it as "Introduction to Software Architecture" because everything looks like theory lessons in school, not practical. The writing is kinda daunting: lengthy, jargon and duplication.
Profile Image for Mohannad Hassan.
193 reviews61 followers
July 20, 2020

By the time I’m writing this, I have about eight years of experience in software engineering. For a big part of it, software architecture has been a major concern for me. One of the earliest questions I pondered was the difference between software architecture as it’s practiced by the community and described in the canon and just developing some proper OOP. This distinction, although it started to clear early on, remained a bit vague for me. One of the longest-standing questions was the relationship between agile development and software architecture.

This book, as far as I can tell, is an acknowledged reference on the subject. It covers a lot of the related topics of software architecture and investigates the mutual interactions between them. The book covers a lot of theory and delves deeply into methods. I regard this as my official introduction to the field.



For several reasons, I’ll not dive into analysis. Instead, I’ll list some key takeaways:

Software architecture is the first step in guaranteeing the quality attributes of a system. It’s not alone, and the details of implementation have a significant part to play here, but the software architecture lays out the big directions.

Software architecture, if properly done, can play a great part in easing and guaranteeing many functions on the lifecycle of a software project. Starting from requirements gathering and elicitation, to testing and deployment. It operates within many contexts, such as the organizational context and the business context.

The software architecture is an abstraction. A single architecture can lead to different implementations.

Although it’s hard to draw a defining line between them, quality attributes and functional attributes are two different things. A some-what basic definition is that the functional requirements define what needs to be done, and quality attributes define how this is done.

The elicitation of most quality attributes is the job of the software architect.

Agile and software architecture can co-exist. In fact, software architecture can contribute many capabilities that are crucial for agile development, mainly quick prototyping and predictability about the system.

Documentation is just like any other kind of writing, it has to have its intended audience and expected uses while it’s being written.

The architecture is a set of views, where each view is concerned with a certain aspect and describes a set of elements and the connections between them. This approach is important while developing an architecture and while documenting it.

While explaining the software product lines, it was explained that the best cost-effective way for code reuse is sharing the full artifacts of a software, starting from the requirements, to the architecture and implementation and down to the testing artifacts. It means that quality concerns, deployment environment, organizational structures, and more, have a lot of effects on any developed software. Using any such software means adopting all these factors. That’s why the compromise is made during requirements elicitation between the expected economic gain from reusing a product line (or reusing an architecture) with the possible feature or requirements to drop that can’t be supported by this architecture.

Speak the right language. We, engineers, when we transform into hardcore nerds, tend to forget that a lot of other factors affect the project, and some factors that play a bigger role than technical aestheticism into the success of a project. The architecture’s main strong arguments are its economic and life cycle gains. Speaking about these effects is what’s likely to change the organization’s directions towards adopting a software architecture.

36 reviews1 follower
February 18, 2019
This bookÌýexplains the concepts and practices of software architecure discipline as it is defined by Software engineering institute.ÌýIn particular the authors share their proven methods on:

How to elicit and prioritize architecturally significant requirements (ASRs), e.g. Utility tree method

HowÌýtoÌýaddress these requirements with architectural tacticsÌýand patterns

How to document architecture using various views, e.g. module viewÌý(source code model), run time view (components and connectors model), allocation viewÌý(computational resources and development teams allocation models)

How to evaluate architecture, e.g. using Architectural tradeoff analysis method (ATAM)

Even though I am not a programmer it was easyÌýforÌýme to read the book. I learned and confirmed for myself a lot about the practical aspect and the implications of architecure on software product life cycle.

In comparison to Just Enough Architecture by George Fairbanks, this book gives much more details.
Profile Image for Denis Romanovsky.
214 reviews
October 27, 2018
This book did not let me make a single simple opinion. It is great on the role and responsibilities of an architect, architecture qualities, architecture significant requirements, economy modeling. Then it is extremely boring on architecture process and governance, very shallow on agile and cloud. But in the end again it surprises with a “metropolis� model of architecture in holocratic-like organizations. Not a bad book after all.
Profile Image for Anatolij Grigorjev.
31 reviews
October 26, 2023
A lot about everything, one thing at a time.
A thorough and descriptive compendium on modern thinking around methodical enterprise architecture
There wasn’t much humor in the book, but every new occurrence was a pleasant surprise
While I appreciate the content of this book, if nothing else the Further Reading sections at the end of every chapter are a goldmine
Profile Image for Balki Kodarapu.
8 reviews1 follower
June 5, 2020
Picked up this book to get more familiar with large-scale architecture nuances. Good read overall. Wasn't as dense as had expected. Definitely targeted towards larger companies that need more formal processes. The authors were pragmatic and humble enough to give credibility to the emergence of agile and the inherent conflict that exists there. Another big wild-card that diminishes the value of such a book is that transition to cloud / microservices is a new normal now. Many of the elements highlighted in this book are not as relevant anymore!
(I double checked to make sure there isn't a newer edition than what I read - 3rd edition 2013)
Profile Image for Michael.
122 reviews
August 26, 2020
This book is great if you adhere to Carnegie Mellon's SEI approach and standards to Architecture. If anything, it serves a nice place to get started, but the book gets repetitive very quickly, and almost seemingly for the point of getting more pages, rather than providing valuable content. Microsoft has published works on software architecture which covers a larger and different area of emphasis than this book, but with far fewer words and less redundancy. I think this book basically could have been written much more efficiently.
Profile Image for Danial Kalbasi.
49 reviews7 followers
October 1, 2020
This book is both great and overwhelming. It covers all the aspects of Software Architect responsibilities and relevant techniques. And at the same time, it has much information which makes it not easy to read.

I think the level of information that this book provides is just enough. I really don't expect, a book with this agenda provides technology-specific advice or even goes into each subject deeply. That being said, this book is good to read if you already familiar/experienced with at least a few of the software architecture aspects, otherwise, it might feel too theoretical.
Profile Image for Eoin Cos.
51 reviews1 follower
November 11, 2017
Absolutely incredible book on the soft and hard skills of being an architect. It goes into the different roles a software architect will have and gives thoroughly comprehensive advice. This is a great book on anyone wondering what it is a software architect does and gives a great starting point for anyone interested.
Profile Image for Matt Hartzell.
380 reviews11 followers
February 20, 2017
It took far, far, FAR too long to read this. Don't let that speak to the quality of the text. I'm just too busy. :)

This is probably the best formal book you can read on architecture. If you are an architect, or want to be an architect, this had better be on your shelf.
Profile Image for Gabriel Santos.
62 reviews13 followers
October 27, 2019
O livro é bem abrangente e com excelente conteúdo referente a atributos qualitativos de arquitetura de software. Recomendo a leitura por todo profissional que deseja evoluir em aspectos arquiteturais.
78 reviews1 follower
November 20, 2020
This book tells that architecture is not built on intuitions but well thought out process. It tries to bring order into the world of design chaos. A lot to digest but definitely a lighthouse for readers who wants to advance their career into architect roles.
Profile Image for Franck Chauvel.
119 reviews5 followers
November 8, 2020
Why should you read about Software architecture? Who even cares in these Agile and DevOps times. Should you, for whatever reason, still be interested, this book is the gate to approach software architecture from its theory side.

Here comes a book I had on my reading list for decades: Software Architecture in Practice, by L. Bass, P. Clements, and R. Kazman. I should have read this one when I was a PhD student, but I guess I was too lazy by then. Having enjoyed and , I took it upon myself and gave it a try, despite its price: EUR 24 on Amazon.

Ready for 650 pages about software architecture? Let’s go. Part I sets up key concepts: What it is, why it matters, and where it shows up. Part II dives into the many quality attributes (e.g., availability, modifiability, performances) that shape software architecture. Part III explains how software architecture fits into development processes for larger and� less convincingly� smaller teams. Part IV looks at the context and discusses product-lines and economic concerns before Part V opens up on two new technologies: Cloud and crowdsourcing.
I believe this is the reference textbook in the field. The three authors (Len Bass, Paul Clements and Rick Kazman) are all leading researchers in Software Architecture. I know some of their work though I never worked directly on this.

I see it as a tour of software architecture: It’s comprehensive and contains a load of references to research articles. The only thing I did not find is a chapter for developers, dealing with modules, dependencies, code layouts, etc. Something like day-to-day software architecture for the lay programmer. Conversely, I found it shallow on several topics, such as development processes and product-lines, to name a few.
It felt tiresome and not really relevant to me. It focuses on “heavy processes� and targets larger systems with multiple teams distributed over the globe. I liked best the discussion of quality attributes and what patterns/styles/tactics help enforce them (cf. Part II). This I can use.

I think it deserves its status of the reference textbook. I would recommend it m master students or to those building a course. I would not recommend it to programmers though, except if work on larger systems. To my fellow programmers, I recommend or . I also found by S. Brown, but I haven’t read it, yet.
Profile Image for Moran Danieli-Cohen.
35 reviews1 follower
February 24, 2023
Software Architecture in Practice by Len Bass, Paul Clements, and Rick Kazman is an informative and practical guide to designing and implementing software architectures. The book covers various software architecture styles, patterns, and techniques, as well as the challenges and best practices associated with software architecture development.

One of the most valuable lessons I learned from this book is the importance of understanding and balancing the quality attributes of a software system. The authors explain that quality attributes, such as performance, scalability, maintainability, and security, are often interdependent and have trade-offs. For example, optimizing performance may lead to sacrificing maintainability or security. The book provides practical advice and techniques for identifying and prioritizing quality attributes and making trade-offs to achieve the desired balance.

Another interesting aspect of the book is the focus on architecture evaluation and validation. The authors emphasize the importance of evaluating and validating software architectures before implementation to ensure they meet the desired quality attributes and requirements. The book provides several techniques for architecture evaluation, such as scenario-based evaluation and architectural prototyping, as well as tools and frameworks for automating evaluation and validation.

The book also covers various software architecture styles and patterns, such as the client-server architecture, layered architecture, and model-view-controller pattern. The authors explain the benefits and drawbacks of each style and pattern and provide practical examples of how to implement them in real-world scenarios.

Overall, Software Architecture in Practice is an essential resource for software architects, designers, and developers who want to enhance their knowledge and skills in software architecture development. The book provides valuable insights and practical techniques for designing, evaluating, and implementing software architectures that meet the desired quality attributes and requirements. I highly recommend this book to anyone interested in software architecture development.
Profile Image for The Viet.
27 reviews2 followers
Read
November 8, 2023
This book is quite an exceptional resource. The concepts presented are easy to grasp, which is a pleasant departure from other architecture books that often focus heavily on best practices. Unlike the majority, which tends to lean towards engineering and implementation perspectives, this text successfully bridges the theoretical with the practical. In comparison to documents like TOGAF, which I found to be somewhat impractical and overwhelming at first glance, this book serves as a valuable intermediary. It has given me the confidence to revisit TOGAF with renewed hope for better comprehension on a second pass.
Profile Image for Dstuffle.
50 reviews
May 30, 2017
This was a required textbook for a certification (software architecture) course I was taking. My one really big frustration was that one of the tests had questions that required the use of charts on this book's back cover, which the e-book format version did not have.

Was far heavier on the how to gather user requirements than how to determine which design pattern will fit the user's requirements than I was expecting.

Overall, It was a good book for the course.

10 reviews
March 15, 2020
The book is very challenging to read, although it has plenty of useful information in it.
I think myself as a Junior Solutions Architect and that's why I decided to read it.
I must say that this book covered a lot of my Software Engineering courses in the University (this is a good thing as these things tend to be forgotten).

Overall I would suggest this book for every aspiring Developer that wants to go in the Architects career path.
Profile Image for Michael.
88 reviews3 followers
May 14, 2022
An incredible compilation of all the information you could ever need on software architecture. It contains a thorough list of patterns to achieve stability, performance, security, testability... but also covers more general topics such as integrating architecture into your Agile practices, methods for auditing an architecture, project management, skills...

I have found in this book many things I've learnt from experience that I wished I had read about sooner. Strongly recommend.
Profile Image for David Carpinteiro.
91 reviews
February 22, 2023
A very complete detail on Software Architecture and what is expected from a person a that role.
Gives great ideas, and explains things a a reasonably clear format.
Only bad thing to say, is probably there's a lot more in this book than the pages it has, it's lacking a bit on more clear examples and a few times the idea is not easily understood.
But in general, a good book.
7 reviews1 follower
June 27, 2019
I wrote 3rd version of this book. The book is organized and explained smoothly. What i loved most is it introduce the QA, RSA and the relationship, impact among architecture, business goal, pattern, tactics.
4 reviews
November 27, 2019
Extensive and useful

So far I liked the book. It really covers everything in a good level of detail. If you’re new to software/solution architecture you can use this book as a strong starting point.
Profile Image for Christian Oleson.
15 reviews2 followers
May 31, 2023
Redundant. The idea behind the book is alright, but the writing and resources provided feel very redundant. After reading, I'm not sure I'm better off being a software architect. I just have found it more confusing and entirely impractical to gain knowledge from this book and apply it anywhere.
Profile Image for Jaiprakash.
209 reviews4 followers
June 20, 2021
Great ideas. Book could have been better written to be engaging and more relevant to startups.
4 reviews
July 5, 2021
Good book but outdated. I feel it has twice the size it should have. Same could have been said in half of it.
Profile Image for Dima.
9 reviews
September 5, 2021
Way to pass "Examination of Software Architecture: Principles and Practices"
Profile Image for Alison.
15 reviews7 followers
December 17, 2021
A good textbook to learn and review software architecture. Good examples available in each chapter.
Profile Image for Sergey Machulskis.
99 reviews9 followers
March 14, 2020
The book is very complex. The topic is not easy and the writing style of the authors makes it worse.

Some ideas are good but explanations are overly long. It could be much shorter, maybe a medium-sized blog post. I had a feeling that authors tried to cram into it everything they find useful about architecture. Links to aerospace standards (who need them in a book like this?), clumsy discussion of product lines (an entire chapter is useless) and many more. Authors use “Source of stimulus - Stimulus - Environment - Artifact - Response - Response measure� framework to discuss quality attributes like modifiability, performance and so on. It’s a pretty interesting attempt but it’s worthless, in my humble opinion.

Some chapters are very useful. One explains how to deal with architecture documentation. It even has advice on how to structure the architecture presentation. Another chapter explains why architecture and implementation part ways sometimes. Using this book you can find new ways to improve a particular quality attribute.

I loved a section with questions at the end of each chapter. Most of them are open-ended and very deep.

Profile Image for Kai Weber.
505 reviews43 followers
March 14, 2015
Knowledge on software architecture is probably much less common than knowledge on software analysis and design. The three authors of this book have spent their life teaching software architecture and convincing people of the benefits and importance of architecture. So, there's a little bit of a missionary undertone at work here. But if you as a reader can cope with that, it's an interesting book, presenting a wide overview of aspects where software architecture integrates with other IT and business disciplines. At the core there's a discussion of quality attributes, like availability, interoperability, modifiability, performance, security, etc. Architectural measures to achieve those attributes are presented in a systematic fashion.
The book is introductory and general in nature, so it is a good start for students or programmers who want to learn to respect their architect.
Displaying 1 - 30 of 44 reviews

Can't find what you're looking for?

Get help and learn more about the design.