ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Google+ ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1918 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Title:
Designing Software Architecture. A practical approach (SEI Series in Software Engineering)
Author:
Humberto Cervantes, Rick Kazman
ISBN:
978-0134390789
Publisher:
Addison-Wesley Professional; 1 edition (2016)
Pages:
320pp
Price:
£
Reviewer:
Marco Dinacci
Subject:
Software Architecture
Appeared in:
28-6

Reviewed: January 2017

Designing Software Architecture eschews formal architectural models such as the IEEE standards or the “4+1” view model and provides instead a more practical (according to the authors) view of architecting a software system. The authors refer to the design process they adopted as ADD Attribute-Driven-Design (ADD).

The book is essentially split into four main sections.

The first part is a definition of architectural design and is mostly aimed in my opinion to new software architects. The second part goes into the description of the ADD architectural design process. The third, probably the most useful part of the book, focuses on use cases. This is where one can actually see what ADD involves in practice. The last part are appendixes on design useful for reference.

The first part of ADD consists on capturing functional and non functional requirements using what the authors call Use Case Model, Quality Attribute Scenarios and Constraints.

There is a refreshing focus on iterations in this methodology, which is something usually missing from other architecture methodologies but still enough rigour so that an inexperienced architect won’t feel lost during the process.

The first part of the design process is about capturing the overall software architecture in text and diagrams and recording the design decisions. The last bit of the first iteration is about cross-referencing the use case model with the chosen architecture to make sure all use cases are addressed.

The second iteration is about selecting technologies and explaining the rational for selecting one or another. The following iterations goes more in detail into aspects specific to the chosen architecture.

Overall I recommend this book to all software architects. ADD may not be the most suitable methodology for every project but it’s another tool at our disposal. The use cases are well described and serve as a reference while attempting to use this system in the real world.