But at least two things have remained constant throughout the history of computing. Software design remains hard (Gamma et al. 1995), and its functionality still expands to fill the memory available (Potter 1948). This book addresses both these issues. Patterns have proved a successful format to capture knowledge about software design; these patterns in particular tackle memory requirements.
As authors we had several additional aims in writing this book. As patterns researchers and writers we wanted to learn more about patterns and pattern writing, and as software designers and architects we wanted to study existing systems to learn from them. In particular:
¥ we wanted to gain and share an in-depth knowledge of portable small memory techniques; techniques that work in many different environments;
¥ we wanted to write a complete set of patterns dealing with one single force Ñ in this case, memory requirements;
¥ we wanted to study the relationships between patterns, and to group and order the patterns based on these mutual relationships, and lastly
¥ we wanted an approachable book, one to skim for fun rather than to suffer as a penance.
This book is the result. It's written for software developers and architects, like ourselves, whether or not you happen to be facing memory constraints in your immediate work.
To make the book more approachable (and more fun to write) we've taken a light-hearted slant in most of our examples for the patterns and with Duane Bibby's cartoons. If frivolity doesn't appeal to you, please ignore the cartoons and the paragraphs describing the examples: the remaining text is as rigorous as we can make it.
This book is still a work in progress. We have incorporated the comments of many people, and we welcome more. You can contact us at our website, smallmemory/
acknowledgements
No book can be the work of just its authors. First, we need to thank John Vlissides, our indefatigable series editor: we still have copies of the e-mail where he suggested this mad endeavour, and we're grateful for his many comments on our patterns, from the original EuroPLoP paper to the final drafts. Second, this book would not be the same without Duane Bibby's illustrations, and we hope you like them as much as we do.
We take the blame for this book's many weaknesses, but credit for most of its strengths goes to those members of the Memory Preservation Society (and fellow travellers) who took the time to read and comment on drafts of the patterns and the manuscript. These people include but are not limited to John Vlissides (again), Paul Dyson, Linda Rising, Klaus Marquardt, and Liping Zhao (EuroPLoP and KoalaPLoP shepherds for these patterns), Tim Bell, Jim Coplien, Frank Buschmann, Alan Dearle, Martine Devos, Martin Fowler, Nick Grattan, Neil Harrison, Benedict Heal, David Holmes, Ian Horrocks, Nick Healy, Dave Mery, Matt Millar, Alistair Moffat, Eliot Moss, Alan OÕCallaghan, Will Ramsey, Michael Richmond, Hans Rohnert, Andreas Rping, Peter Sommerlad, Laurence Vanhelsuwe, Malcolm Weir, and the Software Architecture Group at the University of Illinois and Urbana-Champaign, including: Federico Balaguer, John Brant, Alan Carrol, Ian Chai, Diego Fernandez, Brian Foote, Alejandra Garrido, John Han, Peter Hatch, Ralph Johnson, Apu Kapadia, Aaron Klish, An Le, Dragos-Anton Manolescu, Brian Marick, Reza Razavi, Don Roberts, Paul Rubel, Les Tyrrell, Roger Whitney, Weerasak Witthawaskul, Joseph W. Yoder, and Bosko Zivaljevic.
The team at Addison-Wesley UK (or Pearson Education, we forget which) have been great in dealing with two authors on opposite sides of the globe. We'd like to thank Sally Mortimore (for starting it all off), Allison Birtwell (for finishing it all up), and Katherin Ekstrom (for staying the distance). Credit goes also to two artists, George Platts for suggesting illustrations and Trevor Coard for creating many of them.
Finally, we must thank all the members of the patterns community, especially those who have attended the EuroPLoP conferences in Kloster Irsee. We are both admirers of the patterns literature (in the same way one might be might be a fan of science fiction literature) and hope this collection of patterns will be a worthy contribution to the canon.
0201596075P04062001
'Anyone who has ever uttered the joyous words, "I saved eight bytes!" will feel at home with this coherent, easy-to-use set of patterns for limited memory systems. As the computing world moves toward hand-held and specialized tiny computing devices, these patterns will continue to show their worth. This book should be on the shelf of every person who writes software for small systems.'
- Neil Harrison, Avaya Inc.
"Many of us have been waiting for someone to tackle the hard problems of resource shortages. In the growing collection of patterns, this book will provide some guidelines for these problems in a well-written, thoroughly enjoyable style. The authors share their real-world experience in the best patterns tradition--all the examples provide ample opportunity to see the solutions at work. This is a "must have!""
- Linda Rising
"The 1980s and 1990s can be described, harshly but accurately, as decades when software developers were increasingly careless about how much memory their software consumed. In "Small Memory Software", Weir and Noble give a timely wake-up call, pointing out some unexpected merits of more thoughtful usage of memory - and giving clear practical advice that should help reverse what has been a most unfortunate historical trend."
- David Wood, Executive Vice President, Symbian
The market for PDA software is huge and growing. Within five years, a significant proportion of the world population will use an smart, Internet-ready mobile phone. A PC in every home? Maybe, but just as likely is a PDA in every pocket! This book offers you state-of-the-art programming solutions for small memory devices. You will learn the best, most successful design techniques for object-oriented programming in constrained memory.
If you are a developer, team leader, or manager building applications for limited-memory systems, you will find everything you need to design and implement effective software with success.
· 27 patterns, fully illustrated with implementation notes for reference plus example code in C++ or Java
· Patterns organized into five major techniques: small data structures, memory allocation, compression, secondary storage, and small architecture
· Easy-to-use layout, with a quick-reference pattern index on the inside covers
· Tips on efficient memory allocation, dealing with memory exhaustion, using ROM instead of RAM, avoiding memory leaks, and automatically recycling unused memory
· An accompanying web-site, www.smallmemory.com, containing detailed implementations of all the substantial examples in the book, which can be used as templates for your own implementations
Product Details
Would you like to update product info or give feedback on images?
|
|
Share your thoughts with other customers:
|
||||||||||||||||||||||
|
Most Helpful Customer Reviews
5 of 5 people found the following review helpful:
3.0 out of 5 stars
OK but nothing special,
This review is from: Small Memory Software: Patterns for systems with limited memory (Software Patterns Series) (Paperback)
The book is well written and covers relevant issues. On the other hand, these issues are rather trivial: if you've done this kind of work, you'll find that you already know some, or most, or even all of this; some of this stuff is downright self-evident (after all, even if you're new to the small-memory context, isn't it obvious that if you cannot afford to run out of memory you have to pre-allocate all you need on startup, or that if your objects come and go and you must allocate, it's simpler and more predictable to manage fixed- rather than variable-size allocations?)
Like any other patterns book I've seen, this one overdoes it. What can be said in two paragraphs will be diagrammed, over-formalized, and over-elaborated on a dosen of pages. This makes it look very scientific, but, besides taking more time than is necessary to understand, may also make it more difficult to understand. To belabor excessively is a general fault with all patterns books though; this one is no worse than the rest in that respect. All in all, this is an OK book that, while holding no conceptual breakthroughs, may be helpful for a new person -- provided he's willing to persevere through the excessive verbiage and diagramming.
6 of 7 people found the following review helpful:
5.0 out of 5 stars
If you like Design Patterns and efficient programming,
By
This review is from: Small Memory Software: Patterns for systems with limited memory (Software Patterns Series) (Paperback)
Certainly a wonderful book coming at a very appropriate time, when people write more complex code for various devices. There is a certain gap in the industry in the embedded software field, where object oriented techniques and patterns are not always part of the arsenal of the developers. This book successfully bridges this gap and provides many useful examples as well as proofs for the ideas presented there. The requirements for the reader seem to require some C++ (and/or) Java , but all object oriented programmers and even traditional C users can benefit from it. There is some inclination from the authors to provide more examples from EPOC, rather than more diverse examples but that is not always the case. I recommend the book for the patterns enthusiast as well as the curious software engineer who wants to have a broader vision in his/her software development practices.
7 of 9 people found the following review helpful:
5.0 out of 5 stars
Another triumph in practicality for the Pattern paradigm,
By D E H Nutting (London United Kingdom) - See all my reviews
This review is from: Small Memory Software: Patterns for systems with limited memory (Software Patterns Series) (Paperback)
This book is an excellent working companion for any software developer. A very readable addition to the growing volume of literature on Software Patterns.While it focuses tightly on situations where memory is a major constraint, the authors' vision extends much further. A read through the discussion of the wide range of Forces addressed by the Patterns the book describes is very illuminating. Speed, reliability, usability, programmer effort and discipline - even security are all there. I've never worked on software for mobile phones, embedded devices, PDAs . . . but, with hindsight, I can readily recognise all the Patterns described - and have even used quite a few! More important, I now have a better understanding of the consequences of using Pooled rather than Variable Allocation, the benefits (and drawbacks) of using Embedded Pointers, the ways in which Secondary Storage can assist . . . The range of practical examples of Known Uses testifies to the authors' breadth of experience - and the relevance of the Patterns described to almost every software environment. From the Sinclair ZX-81 (and earlier) to the latest mobile technologies - with DOS, UNIX, VMS, Windows and many others in-between - and all the applications they support. Read it like a novel, browse it or use it as a reference book as you please (or, as the authors suggest, leave it open on a radiator for 3 days so that it looks well read and put it on your desk to impress your boss). I'm just waiting for the launch of the Strap-It-On wrist mounted PC with morse code keypad, coindisc, voice output (with vocal emotions), RainSight weather prediction system and all the other memory-challenged applications invented for it!
Share your thoughts with other customers: Create your own review
|
|
Tags Customers Associate with This Product(What's this?)Click on a tag to find related items, discussions, and people.
|
|
This product's forum
Active discussions in related forums
Search Customer Discussions
|
Related forums
|