GetTextbooks.co.uk  
 Compare Prices & Save up to 90%
Search by ISBN, title, author, etc ...

Login | Sign up | My Wish List  


Pattern-Oriented Software Architecture Volume 1: A System of Patterns

by Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal

ISBN-10: 0471958697
ISBN-10: 0-471-95869-7
ISBN-13: 9780471958697
ISBN-13: 978-0-471-95869-7
Hardcover
1996-08-08
Wiley


Find Lowest Price

Editorials


Amazon.com
Pattern-Oriented Software Architecture: A System of Patterns looks at how patterns occur on three different levels--in software architecture, in everyday design, and in idioms (which describe how a particular design pattern is implemented in a programming language like C++). This synthetic approach is a little theoretical at times, but the authors also present over a dozen patterns and provide real-world examples wherever possible.

For architectural patterns, the authors look at the Layers pattern, used in operating systems such as Windows NT and virtual machines. They also consider Pipes and Filters, which process streams of data. (This pattern, the authors point out, is a lynchpin of Unix.) Their Blackboard pattern shows how a complex problem, such as image or speech recognition can be broken up into smaller, specialized subsystems that work together to solve a problem. (For recognizing words from a raw waveform input, a Blackboard approach might have separate processes to find phonemes, then words, then sentences.)

This book also looks at today's distributed systems in considering the Broker pattern, which is used on the Internet and in Microsoft's OLE technology. This section also presents several powerful patterns for building effective graphical user interfaces, such as Model-View-Controller.

The authors define several well-known design patterns, such as the Proxy and Command patterns, and also basic, far-reaching patterns, such as Whole-Part and Master-Slave, which are widely used throughout computing. Their survey ends with a discussion on the way objects can communicate (using such patterns as Forwarder-Receiver, Client-Dispatcher-Server, and Publisher-Subscriber), which many developers will recognize as familiar patterns, but are codified here as "official" patterns. The book then discusses some idioms in C++ and a more far-reaching role for patterns in software design and architecture. By fitting patterns into traditional software engineering practices, the authors of Pattern-Oriented Software Architecture successfully argue that the role for patterns will only continue to diversify and enrich tomorrow's software engineering tools and methodologies. --Richard Dragan


Product Description
Pattern - Oriented Software Architecture A System of Patterns Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal of Siemens AG, Germany Pattern-oriented software architecture is a new approach to software development. This book represents the progression and evolution of the pattern approach into a system of patterns capable of describing and documenting large-scale applications. A pattern system provides, on one level, a pool of proven solutions to many recurring design problems. On another it shows how to combine individual patterns into heterogeneous structures and as such it can be used to facilitate a constructive development of software systems. Uniquely, the patterns that are presented in this book span several levels of abstraction, from high-level architectural patterns and medium-level design patterns to low-level idioms. The intention of, and motivation for, this book is to support both novices and experts in software development. Novices will gain from the experience inherent in pattern descriptions and experts will hopefully make use of, add to, extend and modify patterns to tailor them to their own needs. None of the pattern descriptions are cast in stone and, just as they are borne from experience, it is expected that further use will feed in and refine individual patterns and produce an evolving system of patterns. Visit our Web Page http://www.wiley.com/compbooks/

Reviews


Amazing book
This book uses an easy way to explain system patterns. I think every software developer has to read this book; it's a nice reference to help software architects doing a well-done job. Another great reference that you may have in your list of references is the classical book "Design Pattern", also at Amazon.com.

#2 best book about patterns ? yes.
A lot of the reviewers have said that this is the #2 best book about patterns : just trust them. I have bought it with the hope to learn more about patterns, finally it has given me a larger point of view about the subject and has improved a lot my creativity during software designing processes.

If your new to patterns just read the GoF, then buy this one. I think you will then have a nice knowledge about the subject.


The second best pattern book
Second best isn't bad when the #1 book changed forever the way software architecture is talked about. GoF is not only well-written, but it covers all the basic, most-used patterns. Everybody thereafter is going to have to either re-hash GoF, criticize it, or come up with new patterns which are not as fundamental.

This book is full of new patterns, and fortunately they are good ones: Command, Broker, Layers and worth the price of the book in itself Presentation-Abstraction-Controller.

PAC can be seen as a generalization and extension of Model/View/Controller. The Abstraction is the domain-specific part of the architecture, effectively the Model. The Presentation exposes the Model in some interesting way, either as a user-interface in which case it is a View, or as an API, in which case the Presentation becomes a new Abstraction used by the next level up. The Controller is left with the job of coordinating the Presentation and the Model. The key to the pattern is that PAC agents can be built up into layers with the Presentation API of each lower agent creating a higher abstraction for the next level. Thus PAC becomes MVC for all or your architecture, not just the UI.

The book goes into this at length and adds useful discussion of MVC. Highly recommended.

Not concrete enough
First of all, you need to understand the patterns in the gang of four book before you attempt to read this one. They talk about them all over the place without explaining them. That's a warning, it didn't affect my review.

The major thing I don't like about this book is the abstractness with which they talk. They give you a high level description of a pattern and leave you with that fogginess.

I think the examples were poorly chosen. I would have prefered to have examples that are only as complicated as they needed to be. Unfortunately the book uses examples like, "We're going to make a voice recognition application" or "We're going to make an OS that can run applications that were built on Unix or WinNT or Linux". I think the intent was to have some real-world-I've-been-working-for-six-years examples... it would have been smarter to put the real world examples in a separate chapter and keep the design pattern explanations simple.

Also, I hate the diagrams. They should have just copied the diagrams in the GoF book! Instead they chose these diagrams that give less info and IMO are downright ambiguous in some situations. Another thing the GoF book does is have 2 separate diagrams, one that's a (simple) real world example and another that's a diagram of the actual pattern. This book only has the diagram of the actual pattern.

I disagree with those that say this book is better than the GoF book. I think what they like is the material covered. Material aside, the GoF book presents the information in a much clearer way. That's why I prefer the GoF book over this one.

Clear and wide-ranging
This is an unusual book in the pattern genre. It presents a number of patterns, categorized by archtiectural level. That's just the first part of the book, though. The third of the book is about the process of using, relating, collecting, and distributing patterns.

Only chapter 2 really addresses patterns for the strategic, architectural level of a software system. It does a very adequate job, using a variety of notations, examples, and analysis steps. This book is from 1996, so time has changed our view of some patterns. "Reflection," for example, has become pervasive in applications based on plugins and software components. It is also a fundamental API in the major langauges (Java and C#) released since this book was published - perhaps reflection should be downgraded to an "idiom". That's just nitpicking, though, since reflection is even more important now than when the book was written.

For contrast, the authors present additional design patterns (including some from Gamma's book) for use at tactical design levels. They also discuss idioms patterns that typically involve just a few lines of code within on function. The contrast between the three different levels of implementation and design gives a useful discussion. The authors also present a weak chapter on "systems" or "langauges" of patterns The discussion is OK as far as it goes. The weakness is in what it omits. After reading this brief chapter, the programmer has very little practical information about choosing patterns from some library for some task. The poor programmer has no information at all about how to link patterns together, and that's a real stumbling block for beginning pattern users.

The final section of the book is really sociology. It's about the pattern community, what that community is for, and how to be a working member. I find the discussion un-helpful, but I expect opinions to differ.

Even today, this is a good second book (after Gamma's 'Design Patterns') on patterns and pattern usage. It lack the depth and precision of Gamma's book, and tends to add words without adding meaning. On the positive side, it's broader than Gamma's, and addresses a wider range of implementation levels.



Home | Browse | Professors | Merchants | Webmasters | Contact Us

[ United States | Canada ]

Copyright © 2003-2008 GetTextbooks.co.uk