Software Architecture in Practice, Second Edition
||Author: Len Bass, Paul Clements, Rick Kazman|
List Price: $54.99
Our Price: Click to see the latest and low price
Publisher: Addison-Wesley Pub Co (09 April, 2003)
Sales Rank: 14,480
Average Customer Rating: 4.53 out of 5
Customer ReviewsRating: 3 out of 5
Some good advice on 'ilities' trade-offs, but not much else
This book will be useful for people looking for tactics for architecting particular 'ilities' into a system, deciding whether or not product lines are relevant, and many of the management / business aspects to maintaining architectural conformance.
I particularly enjoyed the breakdown of concrete architectural tactics to achieve the most important 'ilities' and the tradeoffs involved in implenting them. There were even nice tie-ins later to the cost of implementing them and what the ROI is for making a decision to support, say, a certain level of modifiability, through the CBAM process they present.
The less impressive points in the book were some of the case studies and the software reconstruction chapter. A couple of the case studies discussed projects that failed to produce a real product that deployed and was successful in the real world. While I agree with the authors that there was still research value in them and that good lessons were learned, I question their relevance in a book that contains the words "in Practice" in its title. It would've been nice to instead see more real stories around the tactics and how people really traded off the various architectural decisions, how it affected what they built, and how those decisions impacted the products in subsequent versions.
I also didn't find the architecture reconstruction chapter very compelling. There were a lot of good ideas, but they were interspersed with a lot of confusing diagrams, counts of clusterings of classes and relationships, and talk about manual hypothesis generation and validation. It would've been better for me to see a few scenarios around reconstruction (i.e. "validation of implementation architecture" and "code dropped in your lap") and then some discussions of where there are good tools in place and where the state of the art isn't yet good enough. I didn't get a good sense of whether anything was useable in practice yet and, if it was, what value I could actually get.
Rating: 5 out of 5
A Bible for Software Architects
Being a Software Architect, I can certainly appreciate the work that the authors of this book (L. Bass, P. Clements, R Kazman) have put into this book. Software Architecture in Practice is probably the best book that I have read on the theory and practice of architecture design and software engineering. There is no fair way for me to review this book as it is PACKED with useful information from beginning to the very end. It has a combination of high-level architectural concepts tailored with best software engineering practices. It is not a complete book on software engineering, but it wasn't meant to be - it's meant to cover a very specific topic in software engineering and it does so extremely well. It is a text in which the concepts architecting software applications, evaluating architectures thru various methods, and case studies of major leaps in software architecture have been very well described; depicted and well evaluated. The book is written from an architect's point of view, and it shows how an architect or a group of architects can make or break an organization, and what they need to do in order to be successful. The authors of this book explain why simply architecting something is not good enough and lots of work needs to be done before and after the architectural phase to ensure the quality and the success of the project. This aspect of the book is simply priceless.
The author start by describing software architecture as:
"The Software Architecture of a program or computing system is the structure or structures of the system, which compromise software elements, the externally visible properties of those elements, and the relationships between them."
Throughout the book, the author used this definition to describe various aspects of architecture. One of the methods/techniques that the author uses is called the Architecture Business Cycle (ABC). ABC is method of realizing the "things" that influence the architect and in-turn the architecture - known as the circle of influences. This concept, ABC, is used for all the case studies mentioned in this book:
·A case study on a system that have extreme safety requirements - the Air traffic control.
·A case study on a system with high level of distribution of its subsystems - A flight simulator
·A case study in which it was essential for the organization to be able to share documents instantaneously.
·A case study on an organization where one architecture lead to a product line of applications
·A case study on the need to standardization of architectural approaches across organizations and the community - J2EE and the EJB.
For each case study, the authors depict its ABC and give the reader the reason, business reason, that this project got started to begin with. The reader then walks thru a series of decision-making steps that led to the architecture that was finally chosen. The drivers of the project, the business reason, the architect[s], and the organization are all linked and the authors go into a GREAT DETAIL on how this link can influence the final design.
Architecture Tradeoff Analysis Method or ATAM is a new topic that is added to the second edition of the book. ATAM is a structured method of evaluating architectures.
"It results in a list of risks that the architecture will not meet its business goals"
The authors start by describing the roles and responsibilities of people involved in ATAM, and the output artifacts that ATAM will produce when completed:
·A Concise presentation of the Architecture
·Articulation of the business goals
·Quality requirements in terms of collection of scenarios
·Mapping of architectural decisions to quality requirements
·A set of identified sensitivity and tradeoff points
·A set of risks and non-risks
·A set of risk themes.
The process of ATAM is depicted next in which there are a total of 4 phases:
1)Partnership and preparation: the key project decision makers informally meet to work out the details of the ATAM process.
2)Evaluation phase - the long evaluation process of the architecture with the same project decision makers as in previous phase
3)Evaluation phase, continued - this time the stakeholders are present
4)Follow up - the stakeholders and the evaluation team meets again to follow up.
The process is described very well and examples forms are shown in the book that can be used for your evaluation process. The great thing about this chapter and how it's written is the way that the ATAM process is presented. It is almost like a checklist that the architects need to follow. Very easy to read and follow. The inputs of every phase are clearly identified, and the description of the output is depicted rather clearly. The chapter ends with yet another case study that shows the "theory" just presented. The authors close the chapters by having the following comments about this book:
·ATAM is not an evaluation of Requirements, but only the architecture
·ATAM is not a code evaluation
·ATAM does not actually involved system testing
·ATAM is not a practice instrument, but identifies possible areas of risk within the architecture.
The ATAM is followed by another very well written topic on CBAM (Cost Benefit Analysis Method). This chapter is also new in this edition, but I will leave the details of this chapter for the reader. I like the ATAM method more than the CBAM, because it seems simpler to me.
All and all, the authors in this book did a fantastic job in writing this book. This book is packed with useful information for architects, project leads, and even technical managers.
Rating: 5 out of 5
Soon to appear in an undergraduate software course...
The second edition of the book makes a good journeyman's guidebook, which the first edition didn't since software architecture was still a mystique. The second edition, which has been heavily revamped, makes it clear that software architecture is a mature discipline.
I used the first edition, along with SEI technical papers in a graduate-level software architecture introductory course. After reading the first edition, I still wasn't sure what a software architect should do. The second edition makes it clear. I think a lot of the technical papers that I read are now chapters in the book. Some new chapters are simply great: Understanding Quality Attributes, Achieving Qualities, Designing the Architecture, Documenting Software Architectures, the ATAM, and the CBAM.
I really liked the replacement of ADL with UML, the de facto standard, with all of its warts and blemishes.
For criticism, this book was history as soon as it hit the presses. You'd still need to read SEI technical papers to be current. One of the chapters discusses the performance problems with remote entity beans and makes no reference to EJB 2.0 spec local entity beans with no performance hit on every cross-bean call. Likewise, the final chapter on "The Future" wasn't so bold as to prognosticate on OMG's current work on MDA, but they may be alluding to it with "Moving from architecture to code."
Still more fun to read than a harlequin romance novel and readable in four days.
· Beyond Software Architecture: Creating and Sustaining Winning Solutions
· Documenting Software Architectures: Views and Beyond
· Software Architecture: Perspectives on an Emerging Discipline
· Evaluating Software Architectures: Methods and Case Studies
· Patterns of Enterprise Application Architecture