Job titles like “Technical Architect” and “Chief Architect” nowadays abound in software industry, yet many people suspect that “architecture” is one of the most overused and least understood terms in professional software development. Gorton’s book tries to resolve this dilemma. It concisely describes the essential elements of knowledge and key skills required to be a software architect. The explanations encompass the essentials of architecture thinking, practices, and supporting technologies. They range from a general understanding of structure and quality attributes through technical issues like middleware components and service-oriented architectures to recent technologies like model-driven architecture, software product lines, aspect-oriented design, and the Semantic Web, which will presumably influence future software systems. This second edition contains new material covering enterprise architecture, agile development, enterprise service bus technologies, RESTful Web services, and a case study on how to use the MeDICi integration framework. All approaches are illustrated by an ongoing real-world example. So if you work as an architect or senior designer (or want to someday), or if you are a student in software engineering, here is a valuable and yet approachable knowledge source for you.
I am using this book in the course I am teaching at Villanova this semester. The first seven chapters cover the basics of software architecture in Dr. Gorton's concise style. A case study is used to illustrate concepts throughout those chapters. The latter chapters cover different hot topics in the software engineering field, like model-driven architecture, service-oriented architecture, etc., and were written by guest authors. I chose this book because of its recent publication date, its focus on middleware and the author's direct style.
Update - Feb. 2009 - What follows is an excerpt of my review of the book for my "course retrospective", which was written at the end of the semester: "If I were to teach this course again, I would investigate other textbook candidates. The textbook used this semester was Dr. Ian Gorton’s Essential Software Architecture. I had selected this book for several reasons: recent publication date (2006), coverage of current/emerging trends, business solutions focus, realistic case study, concise writing style and availability as an e-book from the library. This book was fine and met our needs, particularly when supplemented with current online articles. However, I found that perhaps it is too concise for students just learning the material. Therefore a more traditional textbook with helpful educational aspects like key words, review questions, homework assignments and a glossary would be more beneficial to students."
One other point I would make is that the latter chapters of the book exhibit a high amount of variability in terms of the quality and tone of the writing. This is due to each chapter being written by a different author, and therefore isn't unexpected -- yet I found it distracting. In particular, inconsistencies in the amount of factual information and the manner in which it was presented posed a challenge when using this book in a classroom setting. Overall, though, Dr. Gorton is clearly an expert in the field, and his experience pervades the sound design advice he dispenses throughout the first half of the text.