{"product_id":"0137213743","title":"Programming on Purpose: Essays on Programming Design","description":"\n\n\u003cp\u003e\u003c\/p\u003e\n\u003cp\u003eA guided tour of numerous software design methods, this volume collects into book form a variety of articles from P.J. Plauger's monthly column Programming on Purpose which has been entertaining readers of Computer Language Magazine for years.\u003c\/p\u003e\n\u003cp\u003eTopics span the gamut from how to be a software entrepreneur, the innards of floating point arithmetic, and the turbulent world of software design methodologies, including structured analysis and data-structured design, why “bottom-up” design isn't always foolish, and why “top-down” design isn't always wise. MARKETS: For supplemental reading in an intermediate or advanced course on software design methods or software engineering, and for practicing programmers, software engineers, and specialists.\u003c\/p\u003e Electronic Review of Computer Books - Fernando Berzal \u003cp\u003eWhy is software design so hard? Maybe because there aren't any guidelines for developing successful working systems. And although many design methods have been proposed, most too often teach us nothing more than their proponents' methodology and not how to make the best use of them. Most classical analysis and design books fall short of telling us when to use the methods and techniques they advocate. Since there are no silver bullets (that is, no \"one-size-fits-all\" method in software engineering) and, as P.J. Plauger says in Programming on Purpose: Essays on Programming Design, \"we often cannot articulate why we do what we do when we do it,\" our experience ends up being the only guide we have when facing new projects. This leads many software projects to failure, rather than repeatable successes. \u003c\/p\u003e\n\u003cp\u003e\u003c\/p\u003eThe patterns movement has filled a niche by cataloging well-crafted solutions to many analysis and design problems (see, for example, Erich Gamma et al.'s Design Patterns: Elements of Reusable Object-Oriented Software or Martin Fowler's Analysis Patterns: Reusable Object Models). But even before the patterns fad, P.J. Plauger disseminated simple but powerful ideas in dozens of magazine articles and a column, mainly in late Computer Language magazine. In some sense, Programming on Purpose complements the pattern approach because patterns are usually employed to describe solutions at the architectural level, while the principles Plauger describes are focused on detailed design and coding. \u003cp\u003e\u003c\/p\u003e\nProgramming on Purpose is the keystone of a three-volume collection of essays he wrote between 1986 and 1993. This volume focuses on software design while the others collect articles on people and technology. In spite of its somewhat dated context (part of it was written before the widespread use of object-oriented techniques, WIMP interfaces, and other prevailing practices), the ideas and principles in this book are surprisingly fresh. In fact, Plauger's observations are timeless and will be always relevant to software professionals because they tackle the problem of mastering complexity that lies at the heart of software development. \u003cp\u003e\u003c\/p\u003e\nProgramming on Purpose presents excellent discussions on a wide range of design methods and techniques, from the stepwise refinement used in top-down design to the use of grammars to parse input data (left-to-right design) or a structure approach to build programs that model the structure of the output data (right-to-left design). A total of 12 design methods are presented, along with their strengths and weaknesses. Although Plauger's design methods categorization technique is somewhat artificial, the book's value is in no way diluted since all methods are put into a context of guiding you using analogies and advice. \u003cp\u003e\u003c\/p\u003e Apart from his survey of software design methods, Plauger provides some interesting nuggets such as three essays on demystifying object-oriented programming (a novel trend when the essays were written), some ideas on software development that could seem to be counterintuitive (\"software design heresies,\" as Plauger calls them), and a curious approach to teaching software engineering that could be an eye-opener for many instructors. \u003cp\u003e\u003c\/p\u003eA couple of chapters with interesting references to further reading and Plauger's view on landmark software design publications complete this superb book. Programming on Purpose is a must have book for anyone involved in professional software development. \u003cbr\u003e\u003cp\u003eCategories:\u003c\/p\u003e\u003cul class=\"category-tree\"\u003e\n\u003cli\u003eComputers \u0026amp; Technology\u003cul class=\"category-tree\"\u003e\n\u003cli\u003eProgramming\u003cul class=\"category-tree\"\u003e\u003cli class=\"category-tree\"\u003eSoftware Design, Testing \u0026amp; Engineering\u003c\/li\u003e\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cul class=\"category-tree\"\u003e\u003cli class=\"category-tree\"\u003eSoftware\u003c\/li\u003e\u003c\/ul\u003e\n\u003cul class=\"category-tree\"\u003e\n\u003cli\u003eComputer Science\u003cul class=\"category-tree\"\u003e\u003cli class=\"category-tree\"\u003eSystems Analysis \u0026amp; Design\u003c\/li\u003e\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cul class=\"category-tree\"\u003e\n\u003cli\u003eScience \u0026amp; Math\u003cul class=\"category-tree\"\u003e\u003cli class=\"category-tree\"\u003eMathematics\u003c\/li\u003e\u003c\/ul\u003e\n\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch2\u003eBook details\u003c\/h2\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eAuthor:\u003c\/strong\u003e Plauger, P.J.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat:\u003c\/strong\u003e paperback\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eEdition:\u003c\/strong\u003e Facsimile\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePublisher:\u003c\/strong\u003e Prentice Hall\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLanguage:\u003c\/strong\u003e English\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePages:\u003c\/strong\u003e 248\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eISBN-13:\u003c\/strong\u003e 9780137213740\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Prentice Hall","offers":[{"title":"Used - Very Good","offer_id":49361679319230,"sku":"0137213743-3","price":8.76,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0640\/9689\/5166\/files\/51DHBRDA3ZL._SL500.jpg?v=1792515979","url":"https:\/\/shop.sustainablebooks.com\/fr\/products\/0137213743","provider":"Sustainable Books","version":"1.0","type":"link"}