Designing Software Architectures: A Practical Approach (SEI Series in Software Engineering) 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
"Devoted" by Dean Koontz
For the first time in paperback, from Dean Koontz, the master of suspense, comes an epic thriller about a terrifying killer and the singular compassion it will take to defeat him. | Learn more
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
Frequently bought together
Customers who viewed this item also viewed
About the Author
Humberto Cervantes is a professor at Universidad Autónoma Metropolitana Iztapalapa in Mexico City. His primary research interest is software architecture and, more specifically, the development of methods and tools to aid in the design process. He is active in promoting the adoption of these methods and tools in the software industry. Since 2006, Cervantes has been a consultant for software development companies in topics related to software architecture. He has authored numerous research papers and popularization articles, and has also coauthored one of the few books in Spanish on the topic of software architecture. Cervantes received a master’s degree and a Ph.D. from Université Joseph Fourier in Grenoble, France. He holds the Software Architecture Professional and ATAM Evaluator certificates from the SEI.
Rick Kazman is a professor at the University of Hawaii and a principal researcher at the Software Engineering Institute of Carnegie Mellon University. His primary research interests are software architecture, design and analysis tools, software visualization, and software engineering economics. Kazman has created several highly influential methods and tools for architecture analysis, including the SAAM (Software Architecture Analysis Method), the ATAM (Architecture Tradeoff Analysis Method), the CBAM (Cost-Benefit Analysis Method), and the Dali and Titan tools. He is the author of more than one hundred fifty peer-reviewed papers, and is coauthor of several books, including Software Architecture in Practice, Third Edition (Addison-Wesley, 2013), Evaluating Software Architectures (Addison-Wesley, 2002), and Ultra-Large-Scale Systems. Kazman received a B.A. (English/music) and M.Math (computer science) from the University of Waterloo, an M.A. (English) from York University, and a Ph.D. (computational linguistics) from Carnegie Mellon University.
- Item Weight : 1.29 pounds
- Hardcover : 320 pages
- ISBN-13 : 978-0134390789
- ISBN-10 : 0134390784
- Product Dimensions : 6.5 x 0.95 x 9.55 inches
- Publisher : Addison-Wesley Professional; 1st Edition (May 13, 2016)
- Language: : English
- Best Sellers Rank: #450,264 in Books (See Top 100 in Books)
- Customer Reviews:
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
I also read Microsoft Application Architecture Guidance (which is a very good book on its own) several years ago and recognized many ideas taken from there (the authors explicitly mentioned that).
The book gives good examples on how to apply structural thinking to sophisticated tasks that a software architect usually faces. It also deliberates on the necessity of principled methods applied to the field of software architecture and the justification is quite convincing. Now I’m frequently referring to the book during my day to day activities because I’ve found some patterns (i.e. method of defining and relating together usecases, quality attribute scenarios and constraints) extremely useful and practical.
Now for the area of possible improvements...
While reading the book I had the feeling that the material is substantially scoped to describing ‘information systems’ architecture where you’ve got the data, store it somewhere, transform and show to a user. Obviously the architecture of anti-virus, OS, computer game with intensive GPU usage, car's autipilot will be quite different and the particularities will be rather specific – the book doesn’t touch those topics much, at least that’s my impression. Obviously one can tell that 'the generic principles are the same' or 'use ADD and move forward', but to my mind that's not enough to get the gist of architectural concepts for those non 'information systems' software.
The book talks mostly about ADD method for designing software architecture and shows how to apply this method in various cases. The method is quite good on its own, but has a very strong prerequisite – you have to have primary functionality and quality attribute scenarios identified and prioritized before applying ADD. In reality it’s a very tedious task in large-scale systems with myriads of stakeholders (make assumptions, refine them, throw away wrong assumptions etc..). The book very briefly touches upon other methods, i.e. ACDM, and I’d like to read more on how to apply them as well.
There’s some overlap with Software Architecture in Practice book. Most noticeable is chapter 8 Analysis in the Design Process that is very similar to some parts of chapter 14 Quality Attribute Modeling and Analysis of Software Architecture in Practice book. Not a huge issue though.
There are some nasty issues with colors on diagrams. Seemingly originally some images had been created in color and afterwards they were converted into grayscale with slight adjustments. Sometimes it is well enough and I was able to grasp the meaning easily but quite often that conversion significantly impaired the understanding. The worst example of this issue is on p.77 – Use case model for the FCAPS system.
The book seemingly has borrowed the reference architecture diagrams and concepts from Microsoft P&P Application Architecture Guide 2nd edition. With very slight adjustments. The bad thing is that some structures are outdated, mostly because Microsoft’s book was published in 2009 – the time when Silverlight and Flash reigned the space of rich internet applications. Today it’s not 100% clear how Angular-based apps fit into this picture – whether those are web applications? RIA applications? In addition the meaning of ‘Web Applications’ reference architecture borrowed from Microsoft’s book is not clear in relation to today’s reality. The original concept talked about server-side rendering of HTML whereas that technical concept is not widely used anymore for building web applications.
The example of applying ADD to brownfield domain is too contrived in my opinion. It’s so contrived that the value brought by the example is seriously diminished. In reality we deal with much more sophisticated multilevel changes in existing systems of large scale. I didn’t get the feeling of that ‘large scale’ and ‘multilevelness’.
Quite a long list of possible improvements, but that’s not to say that the book is bad. I definitely recommend reading this book to any software/solution architect, but at the same time there is an obvious room for improvement in substance and form.
As others have said, you really should read Software Architecture in Practice before reading Designing Software Architectures because there are concepts referenced in this book that are explained in detail in the other.