Item description for Essential Software Architecture by Ian Gorton...
Job titles like "Technical Architect" and "Chief Architect" nowadays abound in the 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 helps resolve this predicament. 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 software structure and quality attributes, through technical issues like middleware components and documentation techniques, to emerging technologies like model-driven architecture, software product lines, aspect-oriented design, service-oriented architectures, and the Semantic Web, all of which will influence future software system architectures.
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 source of knowledge.
"Ian's book helps us to head in the right direction through the various techniques and approaches... An essential guide to computer science students as well as developers and IT professionals who aspire to become an IT architect". (Anna Liu, Architect Advisor, Microsoft Australia)
Promise Angels is dedicated to bringing you great books at great prices. Whether you read for entertainment, to learn, or for literacy - you will find what you want at promiseangels.com!
Est. Packaging Dimensions: Length: 9.37" Width: 6.38" Height: 0.71" Weight: 1.23 lbs.
Release Date Jun 2, 2006
ISBN 3540287132 ISBN13 9783540287131
Availability 0 units.
More About Ian Gorton
Ian Gorton is a Laboratory Fellow in Computational Sciences and Math at Pacific Northwest National Laboratory (PNNL), where he manages the Data Intensive Scientific Computing Group and was the Chief Architect for PNNL's Data Intensive Computing Initiative. Gorton is a Senior Member of the IEEE Computer Society and a Fellow of the Australian Computer Society.
Reviews - What do customers think about Essential Software Architecture?
Complex and Useful Apr 27, 2008
I found the subject matter of the book to be complex in a conceptual manner. Designing large systems is not simple because of the interaction between all of the subsystems that inter-relate to make the system work. I think the information is well worth the read because all good knowledge comes from cognitive work. I personally found that the best way to read this book was to relate that topics that were being discussed with a project that I was working on while using the example case as an added source of cognition.
I feel that this is an incredibly useful resource for those who have to design systems from the "ground up". It has several best practices and examples of where things can go wrong.
I feel this is well worth a read.
This book was not for me... Apr 25, 2008
I initially wrote a far more acerbic review that got some feedback from the author, after ruminating on it for a while I figured I should edit it to express the direction my opinion veered after our discussion. I can't change the number of stars in the editing interface, but I'm not sure I should -- this book is not for me :)
One point of confusion emerged in our conversation -- the book appears to have been originally titled "Essential Software Engineering", and the author refers to it as such. Though I feel that in it's present form it would be quite inadequate as an engineering book, as an architecture book it is actually pretty damn good.
Much of the book is spent explaining different terminology well enough for the reader to be able to hold their own in conversation, but if everyone read the book (and did not do further research) there wouldn't be much discussion to be had. It's definitely an introductory text, not a primary source.
One thing that grated on me is that the book is mostly in nested outline form! The concepts are *well described*, but not too well contrasted. The format does not do a very good job of relating the concepts to one another -- they are presented serially as if in PowerPoint. You'd get a better understanding in a lot of ways by browsing the related Wikipedia articles, simply because hypertext is better suited for explaining multidimensional things (though hypertext obviously does not work on paper). A lot of the subheadings throughout the book are short & shallow -- but the alternative of longer & shallower would be clearly worse :)
The case study is discussed far too abstractly: he enumerates the functional and non-functional requirements, and gives an overview of the chosen architecture at too high of a level -- but does fairly little to justify the choices made. He does not really discuss the various downsides to the chosen architecture, nor does he discuss why other architectures were not chosen. Absolutely no discussion is made of feedback from the 'architect' to the 'client' about weighing the potential usefulness of the dictated features -- especially those which hinder the use of architectures better suited to the problem domain.
A major disappointment that stood out for me was that he didn't really address the *culture* of Big Design Up Front -- where all your mistakes are designed, diagrammed in UML, and ossified well before you start coding. I find that architecture should be something that is put off right up until the point when a qualitative decision about how things should work is no longer avoidable. My favorite definition of Software Architecture is from the original c2 wiki:
> "the set of decisions that we have to live with for the life > of the project or system because it will be too expensive to > change our implementation later if we change our minds"
Most of the technologies are related to the use of middleware to interface a companies' homegrown software and customized versions of commercial software together with commercial backend software. Because of this the primary readership I see for this book is in department-level managers in charge of dealing with the nightmare of deploying 'Enterprise Software' for a large business. I can see this book actually being quite helpful to them, particularly if they do not have a background in Computer Science.
If you're a code monkey and not a decision maker, this book doesn't really contain anything that could help you deal with your task directly -- it might even demoralize you by helping you realize how poorly/over-architected the system you toil on is. If you have any agency it might help you manipulate the managers below and above you into seeing things your way!
If you're an academic, it's probably only really useful for 'gawking at the natives' over in industry. Much of the chafing that I experienced with this book is related to the fact that my course spent 3 credit-hours a week on it for ten weeks -- it did not hold up well at all under our drawn-out usage of it. We were not at all the right audience for it.
Reading through it again now it holds up a lot better, with a lot more mindfulness evident in the text than on the first drudgery-filled pass as a group. Thinking about it now I realize how exceptionally mindful it is for a book in it's field! I would not recommend it's use in an academic Computer Science course, but it would probably work pretty well as a text in courses on Business, Information Systems, or Software Engineering; especially in a coursework-based masters program.
The second edition promises to dismiss most of my criticisms, especially in regards to the case study.
See UML 2 applied to architecture specification Jul 31, 2007
Get this book if you're interested in seeing UML 2 applied to software architecture specification. In any case, it gives a good overview of architecting with emerging technologies as well as state-of-the-industry middleware.
Practical and timely Mar 11, 2007
My Master's project deals with Software Architecture best practices and I turned to this book to help formulate my thoughts. The chapter on Middleware architectures is a valuable read and serves as a unifying framework for thinking about middleware in the architectural sense. The case study used in the book is helpful as well. Overall, you will find this book an excellent introduction to Software Architecture (with a nice dive into middleware and other topics not readily found in other SA books) and a nice read to go along with the other Software Architecture classics from the SEI.
book review -- essential software engineering Jul 10, 2006
This book attempts to bridge the gap between the needs of professional software architects and the current body of knowledge in software architecture. It aims to convey the essence of architecture thinking, practices and supporting technologies and provides concise discussions about the issues, techniques and methods in architectural practices. It also describes and analyzes the general purpose component and middleware technologies that support many of the fundamental architectural patterns used in applications. As an introductory textbook it is very useful for (to be) ICT professionals and students.