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. |
Average Customer Review:
( 12 customer reviews )
Write an online review and share your thoughts with other customers.
Most Helpful Customer Reviews
32 of 38 found the following review helpful:
A Bible for Software ArchitectsNov 25, 2003
By ART SEDIGHI 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.
14 of 16 found the following review helpful:
Good software architecture bookJun 07, 2003
By Erik Gfesser My recent software engineering graduate course on software architecture relied mainly on this SEI text, along with several of the many SEI white papers posted on the SEI site, and such texts as Buschmann's Pattern Oriented Software Architecture (POSA) and Stelting/Maassen's Applied Java Patterns. Since the second edition of the text was available just two weeks after the start of the course, I decided not to purchase the first edition, and instead purchased the second edition. However, having used both editions for the course, I must say that the second edition is superior to the first even when only taking the architectural view notation into account (it uses UML rather than a cryptic, proprietary notation used in the first edition, although at this high of a level in modeling, UML sometimes disappoints as well). The addition of content from some SEI white papers to the text is also a benefit of the second edition. The text, regardless of the edition, is well written and very understandable.
8 of 9 found the following review helpful:
Soon to appear in an undergraduate software course...Jul 21, 2003
By Kris L. Holt 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.
2 of 2 found the following review helpful:
Good Foundation BookMay 19, 2008
By Thomas Sprimont This is a solid work on SEI's ADD methodology. The authors fully document the ADD methodology in terms of incorporating this into your practice. Clear text, diagrams, and illustrations depict how you bridge the gap between theory and practice.
If you're looking to use, or enhance, how to leverage your use architecture, I recommend this book. ADD is a method that values the business intent of the software, and constructs a method that delivers value to the customer.
There are some weak chapters, which prevent me from giving a 5-star rating. For example, Chapter 10 addresses reverse engineering an architecture. The focus was on a point exercise that is not useful in either theory or practice. Other case studies in the book (there are a few) were not helpful as they did not have the keys to turn the theory into practice. For example Chapter 16 addressed a J2EE/EJB study; however it was very high-level and omitted important details to be used in practice. However, the case study of an avionics system (Chapter 3) was good; it provided insight in how to apply theoretical concepts.
I recommend this book for those organizations looking for a solid value-add approach to improving your architectures both technically, and in customer value.
1 of 1 found the following review helpful:
Part four very usefulMay 06, 2006
By Pravin Gupta
"PG"
I found part four "Moving from one system to many" quite useful and relevant in today's loosely-coupled distributed enterprise applications scenario. This book is a good read for those architects who are into product development.
See all 12 customer reviews on Amazon.com
|