Buy used:
$6.66
$11.27 delivery July 23 - August 13. Details
Used: Very Good | Details
Condition: Used: Very Good
Comment: Former library book; May have limited writing in cover pages. Pages are unmarked. ~ ThriftBooks: Read More, Spend Less
Access codes and supplements are not guaranteed with used items.
In stock
Added to

Sorry, there was a problem.

There was an error retrieving your Wish Lists. Please try again.

Sorry, there was a problem.

List unavailable.
Other sellers on Amazon
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the author

Something went wrong. Please try your request again later.

Essential Software Architecture Hardcover – April 20, 2006

3.9 3.9 out of 5 stars 7 ratings

There is a newer edition of this item:

Essential Software Architecture
$64.91
(8)
Only 3 left in stock - order soon.
Essential Software Architecture by Gorton, Ian [Springer,2006] [Hardcover]

Product details

  • Publisher ‏ : ‎ Springer; First Edition (April 20, 2006)
  • Language ‏ : ‎ English
  • Hardcover ‏ : ‎ 304 pages
  • ISBN-10 ‏ : ‎ 3540287132
  • ISBN-13 ‏ : ‎ 978-3540287131
  • Item Weight ‏ : ‎ 1.33 pounds
  • Dimensions ‏ : ‎ 9.21 x 0.67 x 6.14 inches
  • Customer Reviews:
    3.9 3.9 out of 5 stars 7 ratings

About the author

Follow authors to get new release updates, plus improved recommendations.
Ian Gorton
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

Ian Gorton is the director of computer science master’s programs and a professor of the practice at the Khoury College of Computer Sciences at Northeastern University’s Seattle campus. He is passionate about analyzing and designing complex, high-performance distributed systems and embodying design and architecture principles in methods and tools that can be exploited by architects in other projects.

Before joining Northeastern in 2015, he was a senior member of the technical staff at the Carnegie Mellon University Software Engineering Institute. He had several projects on the principles of designing massively scalable software architectures for big data applications and building knowledge bases both manually and using machine learning to support engineering tasks. Before this, Gorton was a laboratory fellow in computational sciences and math at Pacific Northwest National Laboratory (PNNL). He managed the Data Intensive Scientific Computing research group and was the chief architect for PNNL’s Data Intensive Computing Initiative. He was also PI for multiple projects in environmental modeling, carbon capture and sequestration, and bioinformatics. This experience has led to a particular interest in the design of large-scale, highly customizable cyber-infrastructures for scientific research.

Gorton is a senior member of the IEEE Computer Society and a Fellow of the Australian Computer Society. Until July 2006, he led the software architecture R&D at National ICT Australia in Sydney, Australia, and previously worked at CSIRO, IBM, Microsoft, and in academia in Australia. A complete list of his publications and citations can be found on Google Scholar and in dlbp.

Customer reviews

3.9 out of 5 stars
3.9 out of 5
7 global ratings

Top reviews from the United States

Reviewed in the United States on January 7, 2013
This discussed a lot background and knowledge about software architecture in theory and practice. Discusses a wide range of scenarios, new technological landscapes, methods to pursure that an architect should be aware of.
Reviewed in the United States on April 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.
12 people found this helpful
Report
Reviewed in the United States on April 18, 2009
This book was the textbook for a introduction course to software architecture. I found the textbook quite helpful in learning architectural principles.

The core chapters of the book are the first 6 chapters, which provided a strong foundation of knowledge. Chapter 1 introduces the topic by discussing architecture definition, abstraction, views and non-functional requirements plus others. Chapter 2 introduces the study study utilized throughout the book. I got alot out of chapters 3 & 4. Chapter 3 discusses software quality attributes that an architecture should take into consideration. Quality attribute are characteristics of an architecture design rather than capability. Quality attributes are such items as scalability, modifiability, security, performance, portability, etc. Chapter 4 discusses architecture design patterns and technologies applicable to architecture design. Chapter 5 discusses development cycle for defining your software architecture. Chapter 6 discusses how to document the architecture design.

I thought chapter 6 was a bit light in discussing architecture documentation. In the course where this book was the textbook, there was much time spent discussing views and viewpoints. I think chapter 6 should have delved deeper into the view discussion.

I thought the author did an excellent job with this book. There are many different types of software architectures that can be built. Therefore, readers would becoming various technological perspectives in reading this book. I felt he discussed the topics in the chapters in a way that was applicable to this wide audience.
3 people found this helpful
Report
Reviewed in the United States on July 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.
7 people found this helpful
Report
Reviewed in the United States on April 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.
2 people found this helpful
Report
Reviewed in the United States on July 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.
13 people found this helpful
Report