Pattern Languages of Program Design 2

Paperback (Print)
Buy New
Buy New from BN.com
$40.78
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 95%)
Other sellers (Paperback)
  • All (11) from $1.99   
  • New (6) from $39.00   
  • Used (5) from $1.99   

Overview

"Having expertise is one thing; conveying it to others is quite another. Patterns do just that."

Patterns are a literary form with roots in literate programming, in a design movement of the same name in contemporary architecture, and in the practices common to the ageless literature of any culture.

This volume, with contributions from the biggest names in the patterns community, is the second in a series documenting patterns for professional software developers. These patterns capture solutions to a plethora of recurring problems in software design and development, including language-specific patterns and idioms; general- and special-purpose patterns; architectural patterns; process and organizational patterns; expositional patterns; and patterns for concurrent programming, distributed systems, and reactive systems. This new collection not only reveals secrets of great software professionals but also makes those secrets easy to apply to your own work.

0201895277B04062001

Read More Show Less

Product Details

  • ISBN-13: 9780201895278
  • Publisher: Addison-Wesley
  • Publication date: 6/14/1996
  • Series: Software Patterns Series
  • Edition description: Older Edition
  • Pages: 605
  • Product dimensions: 7.48 (w) x 9.13 (h) x 1.33 (d)

Meet the Author

John Vlissides is a member of the research staff at the IBM T. J. Watson Research Center in Hawthorne, New York. He has practiced object-oriented technology for more than a decade as a designer, implementer, researcher, lecturer, and consultant. In addition to co-authoring Design Patterns: Elements of Reusable Object-Oriented Software, he is co-editor of the book Pattern Languages of Program Design 2 (both from Addison-Wesley). He and the other co-authors of Design Patterns are recipients of the 1998 Dr. Dobb's Journal Excellence in Programming Award.

James O. Coplien is a premier expert and writer on the object paradigm and C++, having worked with the language since its inception at AT&T. Currently a member of Bell Laboratories Research at Lucent Technologies, his work focuses on multi-paradigm development methods and organizational anthropology for software development processes. His previous books include Pattern Languages of Program Design (with Douglas C. Schmidt), Pattern Languages of Program Design, Volume 2 (with John M. Vlissides and Norman L. Kerth), and Advanced C++ Programming Styles and Idioms.

Norman L. Kerth is a principal consultant with Elite Systems in Portland, Oregon. He works with companies to ensure their successful transition to object-oriented technology. He includes the wider issues of specification and design activities, quality assurance, continuous process improvement, project management and the building of effective teams.

0201895277AB04062001

Read More Show Less

Read an Excerpt

An idea is like a seed blowing in the wind: it has little significance until it lands, takes root, and starts to grow. The idea of patterns, blown about the software field for two decades, has finally landed and begun to flourish. The 1994 Pattern Languages on Programming conference (PLoP '94) marked the germination of the pattern movement as the first conference dedicated to patterns in software. The following year saw publication of several pattern books, magazines rushed to print pattern articles, and patterns surfaced at mainstream software engineering and object-oriented conferences.

Then came PLoP '95, which was as different from its predecessor as a seedling differs from a young plant: it was more robust, its roots went deeper, and it was better attuned to its environment. The emphasis shifted from "What are patterns all about?" to "What makes a pattern good, and a good pattern better?" This is a profound shift, a sign of rapid maturing in people's thinking about patterns. It is a shift away from introspection toward a healthy activism. Many now appreciate that a pattern's value is in neither its discovery nor its definition but in its relevance, its quality, its impact. Patterns in software are as much about great literature as they are about technology.

Writing patterns sounds simple but isn't. The struggle is twofold: recognizing our own wisdom in recurring design problems, and communicating that wisdom effectively.

The authors of these chapters know a great deal about the struggle. It starts with reflection on the problems one has solved recurringly; then characterizing the essence of the recurring solution; and then writing the characterization down. But that's just the beginning. A pattern is invariably useless if it isn't reshaped through criticism, and that's where PLoP comes in. A paper submitted to PLoP enters a "shepherding process" where reviewers iterate with the author(s) to improve the paper. A submission may go through several iterations before it is accepted or rejected.

The struggle continues at PLoP. Papers are not presented there in any traditional sense. Rather, each is reviewed in a "writers' workshop," in which the author listens to readers discuss the paper. He or she is not allowed to participate in the discussion—that would contaminate the process with editorial input unavailable to other readerships. The goal of the workshop is to help the author improve the paper, not defend it.

The author goes home with one more chance to revise the work before submitting it for final review. Papers that clear this last hurdle are included here. Each had to survive the equivalent of thorns, storms, and locusts before blooming as a chapter in this book.

With seeds and new ideas, you never know exactly how they'll grow. Many vines have sprouted from the pattern seed, each growing independently but along one of two paths. Some grow in the path blazed by Christopher Alexander Alexander+77, Alexander79, reflecting his seminal work on patterns of building architecture. Alexander structured his patterns hierarchically into a system he called a "pattern language." But like vines left to find their own way, these Alexandrian-style papers adapt the form to their needs: they deviate from the path when it suits them.

Other vines head in a path blazed by the "Gang of Four" (GOF), the nickname for the authors of the first book on software patterns Gamma+95. These pioneers discovered the value of isolated patterns that capture wisdom in object-oriented software design. Their patterns are larger, more highly structured, and much less interdependent than Alexander's. They have helped many software developers recognize and exploit the benefits of patterns, and they've inspired many more to attempt writing patterns of their own.

This book presents numerous specimens from these paths. As you study each chapter, ask yourself which path suits you best, and why. Look carefully at the style, the format, the problems posed, the forces resolved, the consequences and drawbacks of each pattern.

Then act. A vibrant pattern community requires everyone's participation. Have you found patterns that fit your work? If so, please try them out. Do you find wisdom here that's worth sharing with your colleagues? Please let them know. Can you identify wisdom you've acquired that needs documenting? Please write it down, and have others critique it. And please consider submitting it to an upcoming PLoP!

No book materializes without help from people behind the scenes, but PLoP calls for extraordinary effort. The members of the Hillside Group organized the conference. Brian Foote and his student colleagues from the University of Illinois Urbana-Champaign proved invaluable as they assembled the papers, copied and distributed them repeatedly, and helped run the event with good cheer. The shepherds lived up to their name as selfless overseers of their authoring flocks. The contributions of nonauthor PLoP participants also need acknowledgment, for PLoP is not a passive listening experience; reading multiple papers and giving careful, constructive feedback is hard work. Many thanks to you all.

As in the previous book in this series Coplien+95, we have avoided tampering with details of form and layout in each author's work, even as we yearned for typographical coherence. So our friends at Addison-Wesley are to be doubly commended for their achievement. Deborah Lafferty guided the production effort with a gentle but firm hand; her ability to keep projects on schedule continues to amaze. Rojean Wagner and the staff at Editorial Services of New England were challenged by many an electronic format and emerged victorious. Special thanks to Tom Stone, who took a risk and gave a fledgling movement a voice.

Finally, we recognize the people most critical to this book's success, the pattern authors themselves. They have chosen to share their wisdom with the rest of us, and they sacrifice a great deal in the process. It takes courage and dedication to spend time revealing what could well be one's competitive advantage. We extend heartfelt thanks on behalf of all who will benefit from their labors.


Read More Show Less

Table of Contents

I. LANGUAGE-SPECIFIC PATTERNS AND IDIOMS.

1. Localized Ownership: Managing Dynamic Objects in C++.

2. Lazy Optimization: Patterns for Efficient Smalltalk Programming.

3. Partitioning Smalltalk Code into ENVY/Developer Components.

II. GENERAL-PURPOSE PATTERNS.

4. Command Processor.

5. Implementation Patterns for the Observer Pattern.

6. Patterns for Encapsulating Class Trees.

7. The Proxy Design Pattern Revisited.

8. MOODS: Models for Object-Oriented Design of State.

9. Shopper.

III. SPECIAL-PURPOSE PATTERNS.

10. Detachable Inspector/Removable: A Structural Pattern for Designing Transparent Layered Services.

11. Design Patterns for Object-Oriented Hypermedia Applications.

12. Organizational Multiplexing: Patterns for Processing Satellite Telemetry with Distributed Teams.

13. Backup Pattern: Designing Redundancy in Object-Oriented Software.

14. Crossing Chasms: A Pattern Language for Object-RDBMS Integration.

15. Transactions and Accounts.

IV. ARCHITECTURAL PATTERNS.

16. Some Patterns for Software Architectures.

17. Reflection.

18. Evolution, Architecture, and Metamorphosis.

V. PROCESS AND ORGANIZATION.

19. Prioritizing Forces in Software Design.

20. Decision Deferral and Capture Pattern Language.

21. Organizational Patterns for Teams.

22. Accountability and Organizational Structures.

23. EPISODES: A Pattern Language of Competitive Development.

VI. EXPOSITION.

24. Patterns for Classroom Education.

25. Demo Prep: A Pattern Language for the Preparation of Software Demonstrations.

26. A Pattern Language for an Essay-Based Web Site.

VII. CONCURRENT PROGRAMMING/DISTRIBUTED SYSTEMS.

27. Half-Sync/Half-Async: An Architectural Pattern for Efficient and Well-Structured Concurrent I/O.

28. Resource Exchanger: A Behavioral Pattern for Low-Overhead Concurrent Resource Management.

29. The Client-Dispatcher-Server Design Pattern.

30. Active Object: An Object Behavioral Pattern for Concurrent Programming.

31. Selecting Locking Designs for Parallel Programs.

VIII. REACTIVE SYSTEMS.

32. Object-Oriented Design Patterns in Reactive Systems.

33. Fault-Tolerant Telecommunication System Patterns.

34. Improving Responsiveness in Interactive Applications Using Queues.

35. A Pattern Language for Improving the Capacity of Reactive Systems. 0201895277T04062001

Read More Show Less

Preface

An idea is like a seed blowing in the wind: it has little significance until it lands, takes root, and starts to grow. The idea of patterns, blown about the software field for two decades, has finally landed and begun to flourish. The 1994 Pattern Languages on Programming conference (PLoP '94) marked the germination of the pattern movement as the first conference dedicated to patterns in software. The following year saw publication of several pattern books, magazines rushed to print pattern articles, and patterns surfaced at mainstream software engineering and object-oriented conferences.

Then came PLoP '95, which was as different from its predecessor as a seedling differs from a young plant: it was more robust, its roots went deeper, and it was better attuned to its environment. The emphasis shifted from "What are patterns all about?" to "What makes a pattern good, and a good pattern better?" This is a profound shift, a sign of rapid maturing in people's thinking about patterns. It is a shift away from introspection toward a healthy activism. Many now appreciate that a pattern's value is in neither its discovery nor its definition but in its relevance, its quality, its impact. Patterns in software are as much about great literature as they are about technology.

Writing patterns sounds simple but isn't. The struggle is twofold: recognizing our own wisdom in recurring design problems, and communicating that wisdom effectively.

The authors of these chapters know a great deal about the struggle. It starts with reflection on the problems one has solved recurringly; then characterizing the essence of the recurring solution; and then writing the characterization down. But that's just the beginning. A pattern is invariably useless if it isn't reshaped through criticism, and that's where PLoP comes in. A paper submitted to PLoP enters a "shepherding process" where reviewers iterate with the author(s) to improve the paper. A submission may go through several iterations before it is accepted or rejected.

The struggle continues at PLoP. Papers are not presented there in any traditional sense. Rather, each is reviewed in a "writers' workshop," in which the author listens to readers discuss the paper. He or she is not allowed to participate in the discussion—that would contaminate the process with editorial input unavailable to other readerships. The goal of the workshop is to help the author improve the paper, not defend it.

The author goes home with one more chance to revise the work before submitting it for final review. Papers that clear this last hurdle are included here. Each had to survive the equivalent of thorns, storms, and locusts before blooming as a chapter in this book.

With seeds and new ideas, you never know exactly how they'll grow. Many vines have sprouted from the pattern seed, each growing independently but along one of two paths. Some grow in the path blazed by Christopher Alexander Alexander+77, Alexander79, reflecting his seminal work on patterns of building architecture. Alexander structured his patterns hierarchically into a system he called a "pattern language." But like vines left to find their own way, these Alexandrian-style papers adapt the form to their needs: they deviate from the path when it suits them.

Other vines head in a path blazed by the "Gang of Four" (GOF), the nickname for the authors of the first book on software patterns Gamma+95. These pioneers discovered the value of isolated patterns that capture wisdom in object-oriented software design. Their patterns are larger, more highly structured, and much less interdependent than Alexander's. They have helped many software developers recognize and exploit the benefits of patterns, and they've inspired many more to attempt writing patterns of their own.

This book presents numerous specimens from these paths. As you study each chapter, ask yourself which path suits you best, and why. Look carefully at the style, the format, the problems posed, the forces resolved, the consequences and drawbacks of each pattern.

Then act. A vibrant pattern community requires everyone's participation. Have you found patterns that fit your work? If so, please try them out. Do you find wisdom here that's worth sharing with your colleagues? Please let them know. Can you identify wisdom you've acquired that needs documenting? Please write it down, and have others critique it. And please consider submitting it to an upcoming PLoP!

No book materializes without help from people behind the scenes, but PLoP calls for extraordinary effort. The members of the Hillside Group organized the conference. Brian Foote and his student colleagues from the University of Illinois Urbana-Champaign proved invaluable as they assembled the papers, copied and distributed them repeatedly, and helped run the event with good cheer. The shepherds lived up to their name as selfless overseers of their authoring flocks. The contributions of nonauthor PLoP participants also need acknowledgment, for PLoP is not a passive listening experience; reading multiple papers and giving careful, constructive feedback is hard work. Many thanks to you all.

As in the previous book in this series Coplien+95, we have avoided tampering with details of form and layout in each author's work, even as we yearned for typographical coherence. So our friends at Addison-Wesley are to be doubly commended for their achievement. Deborah Lafferty guided the production effort with a gentle but firm hand; her ability to keep projects on schedule continues to amaze. Rojean Wagner and the staff at Editorial Services of New England were challenged by many an electronic format and emerged victorious. Special thanks to Tom Stone, who took a risk and gave a fledgling movement a voice.

Finally, we recognize the people most critical to this book's success, the pattern authors themselves. They have chosen to share their wisdom with the rest of us, and they sacrifice a great deal in the process. It takes courage and dedication to spend time revealing what could well be one's competitive advantage. We extend heartfelt thanks on behalf of all who will benefit from their labors.

0201895277P04062001

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)