Product Details
|
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
Two alternative versions of a string copy function, written in C are compared: one by a devotee of Kernighan & Ritchie's terse style takes three lines and includes masterpieces of compaction such as (*d++=*s++); while the other by a Pascal enthusiast takes eight lines but is more readable. There is plenty of discussion and explanation and two interesting closing chapters. One describes the leading figures in the 'Pattern Community', many of them the authors reviewed here, plus Ward Cunningham and Kent Beck who first translated Alexander's ideas into software. The other asks where patterns are heading, for example a new area is organisational structures to support software development, such as Architect Controls Product which ensures team output is elegant and cohesive, not shapeless and nondescript. Other shadows in the crystal ball are the use of repositories and indexing (this has, inevitably, given birth to a new creature; the pattlet) and the development of specific pattern languages. -- Unix & NT News, January 99
Suggested Tags from Similar Products(What's this?)Be the first one to add a relevant tag (keyword that's strongly related to this product)
|
|
Share your thoughts with other customers:
|
||||||||||||||||||||||
|
Most helpful customer reviews
4.0 out of 5 stars
Clear and wide-ranging,
By
This review is from: Pattern-Oriented Software Architecture, A System of Patterns (Hardcover)
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.
5.0 out of 5 stars
This book rocks!,
By Markandeya Udhayasooriyan (India) - See all my reviews
This review is from: Pattern-Oriented Software Architecture, A System of Patterns (Hardcover)
This book is ten times better than GoF or Fowler's book. I would love to see another volume in this series covering Web Services and Integration patterns, maybe written by Ambler, Naggapan, and Cooper would be excellent.Check out Eric Newcomer's book on Web Services as a great companion.
4.0 out of 5 stars
Decent software patterns book,
By
This review is from: Pattern-Oriented Software Architecture, A System of Patterns (Hardcover)
POSA1 is written far better than other related texts, such as GoF. (And be aware of the fact that GoF only contains design level patterns - it does not contain system architecture level patterns.) At the same time, after its nth reprinting and redesigned book cover, the text still contains non-UML diagrams (although there are some UML-like sequence diagrams included), and very few real code examples. The lack of code examples, though, can in some ways be seen as a positive aspect of the text. Compare this text with Applied Java Patterns, for example. AJP has very extensive code examples, but because the code examples for each pattern run for pages (rather than simply providing code snippets), the reader may be inclined to narrow their view of how the pattern is applied. For example, MVC is definitely not a pattern limited to GUI user interfaces! The point on which I think that POSA1 seems to come out ahead is that the stronger-than-ususal pattern descriptions and applicability, with a small amount of code provided where deemed especially relevant to the point being attempted to make, helps one understand the patterns better rather than memorizing language-specific implementations of patterns. This point is why I think the text was chosen to accompany Software Architecture in Practice for the graduate software engineering course in software architecture I just took.
Share your thoughts with other customers: Create your own review
Want to see more reviews on this item?
|
Most recent customer reviews |
|
|
|