Practical Software Architecture

Author: Tilak Mitra
Publisher: IBM Press / Pearson
Pages: 304
ISBN: 978-0133763034
Print: 013376303X
Kindle: B0186FU898
Audience: Software Architects
Rating: 4.5
Reviewer: Alex Denham

Is there a way to use software architecture techniques while taking a practical approach to development?

This is a book that attempts to provide pragmatic suggestions and prescriptions that are practical enough to be executable. The author is an IBM Distinguished Engineer and Chief Technology Officer who has also written books on SOA.


The book opens with a case study that describes a business problem that a typical software architect might encounter. This is used to illustrate the ideas introduced in the later chapters. The next chapter has the title Software Architecture, The What and the Why, and gives the background to software architecture and the drivers that justify its adoption. Mitra then goes on to discuss which aspects of architecture he feels are just enough to ensure a successul project. The chapters are mainly quite short - many are under ten pages in length - and the content is remarkably down to earth and practical.

Next is a chapter on system context and how that sets out the external systems, information flow, and external events. A case study illustrating the ideas is also introduced. Having set out the system context, Mitra next explains the architecture overview, introducing the enterprise view, layered view, and IT system view, and shows how these can be use in terms of the case study from the previous chapter.



One of the trickier parts of designing a system is that of moving from a high level overview to the more detailed level, and a chapter on architectural decisions comes next, explaining what decisions need to be made, again using the case study for examples. Next is a chapter on the functional model, specifically how to develop and document the macro-level design elements of the functional aspects of a system. 

The operational model is next on the agenda, with good descriptions of how to take the functional model and use it to work out what actual hardware is needed. Systems integration is next to be examined in terms of the different approaches to making unconnected systems talk to each other. Infrastructure, and in particular hosted solutions and storage, are the next topic, followed by a good chapter on analytics that looks at real-time, descriptive, predictive, and prescriptive analytics, along with cognitive computing. The main part of the book closes with a chapter titled 'sage musings' where the author shares some of his real-life experiences, followed by an appendix of 25 topic goodies where the author answers questions such as 'what is the difference between architecture and design', and 'what is the difference between complext event processing and stream computing'.

Overall, I thought the book managed to keep to its practical remit for the majority of the time, and to introduce the concepts of software engineering clearly and with practical backup. 


Related Reviews
The Process Of Software Architecting 

Common Information Models For An Open, Analytical And Agile World

Enterprise Software Delivery

The Process Of Software Architecting


To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.


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?

The Art of WebAssembly

Author: Rick Battagline
Publisher: No Starch
Date: May 2021
Pages: 304
ISBN: 978-1718501447
Print: 1718501447
Kindle: B08TSYXJTS
Audience: WebAssembly developers
Rating: 5
Reviewer: Ian Elliot
WebAssembly is the coming thing - or so we are told.

More Reviews

Last Updated ( Tuesday, 28 June 2016 )