Software Architecture In Practice

Author: Len Bass, Dr. Paul Clements and Rick Kazman
Publisher: Addison-Wesley Professional
Pages: 464
ISBN: 978-0136886099
Print: 0136886094
Kindle: B094CPJ96B
Audience: Software architects
Rating: 4.5
Reviewer: Kay Ewbank

This is the fourth edition of a book widely regarded as a classic since its first publication over twenty years ago.

The authors set out to explain what what software architecture is, why it matters, and how to be a software architect.

 

Banner

The first part of the book goes through these questions one by one, asking what is software architecture, what makes for a 'good' architecture, and why is it important.

The second part of the book looks in detail at what the authors describe as 'quality attributes'. They first explain what they mean by this in a chapter on understanding quality attributes in which they look at the factors that can be used to measure the 'utility' of a product.

They then look at each of those attributes in turn, with chapters on availability, deployability, energy efficiency, the ability to integrate, and modifiability. Chapters on performance, safety, security, testability, usability, and working with other quality attributes complete this section. In each chapter, the authors lay out the general scenario for the particular feature they're exploring, then discuss tactics for how to achieve the topic - safety, say. Readers then get a questionnaire that they can work through to test whether they've met the requirements for that feature. A set of patterns for the topic is then explained, and each chapter finishes with a section on further reading and discussion questions.

As its title Architectural Solutions, suggests Part III looks at different options for applications - what interfaces you might use, virtualization, the cloud, distributed computing, and mobile systems. Each chapter looks in detail at the advantages and considerations to take into account, so the chapter on virtualization considers shared resources, containers, pods, virtual machines and VM images, while the chapter on mobile systems discusses energy use, network connectivity, sensors and actuators.

Part IV moves on to Scalable Architecture Practices. Specifically, the authors ask what the architecturally significant requirements are for a project to be successful, and look at how you can work out the requirements for your specific project. They then move on to how to design your architecture using the technique of attribute driven design. Chapters on evaluating an architecture and documenting it follow, and this part of the book ends with a chapter on managing architecture debt - in other words, the problems caused by choosing a particular architecture when you need to maintain and further develop the project over time.

The final part of the book looks at the role of software architects in projects and at their competence, and a concluding chapter looking at quantum computing as a glimpse of the future.

If you've already read a previous edition of the book, what this edition adds is more emphasis on project safety, on how to achieve energy efficiency, and how to make sure your projects are easy to integrate with other projects. There are new chapters on virtualization, interfaces, mobility and the cloud to reflect modern requirements.

This book became a classic for good reasons. It has a definite feel of a textbook, but the material is well written and the recommendations for further reading probably make it worth getting without the usefulness of the rest of the material. Recommended.

To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.

Banner


Swift Programming In Easy Steps

Author: Darryl Bartlett
Publisher: In Easy Steps
Pages: 192
ISBN: 978-1840787775
Print:1840787775
Kindle:B07RJZNYPS
Audience: Novice developers interested in Swift
Rating: 4
Reviewer: Lucy Black
Swift - Is this iOS-oriented language worth learning?



Learn to Code by Solving Problems

Author: Dr. Daniel Zingaro
Publisher: No Starch Press
Date: June 2021
Pages: 335
ISBN: 978-1718501324
Print: 1718501323
Kindle: B08FH92YL8
Audience: People wanting to learn Python
Rating: 4
Reviewer: Mike James
Solving problems - sounds good?


More Reviews

 

 

Last Updated ( Tuesday, 26 July 2022 )