Software architecture is the subject of much debate currently with a number of vendors putting forward their platform (Microsoft DNA or Web Services, Sun J2EE - Java 2 Platform Enterprise Edition, Oracle 8i...) as a software architecture for developers to use as the foundation for their applications. To appreciate the cost/benefit of any of these, one has to understand the ideas behind it and its driving philosophy.
The sub-text of the title of this book is 'Adopting and evolving a product-line approach'. This encapsulates its focus - describing its approach to software architecture design, based on experience from a number of industrial projects. The text, which is clearly written, takes the reader through a process based on functionality-based architectural design, discussing also how to assess its quality attributes. This is illustrated with some case studies such as a fire alarm system. Assessing and transforming (evolving) the software architecture is discussed and then onto the use of a product-line approach, or application family, which is again illustrated with case studies such as Symbian and its EPOC operating system. Finally, it finishes with a discussion on developing components, frameworks and organisational processes.
For application developers there is plenty of interesting material regarding software architecture, presented at a model level. There is very little discussion of technology or implementation considerations and for those who like to see copious code examples there is none of that. Given the references to industrial experiences it would have been useful to see more depth applied to examining the case and the issues that arose, particularly in terms of applying the design in terms of technology and implementation. The book contains some interesting ideas, which some may appreciate as introductory material and touches on much research (design patterns...) in the field but generally it lacks sufficient depth to be highly recommended.