Adaptive Object-Oriented Software: The Demeter Method
by Karl Lieberherr
Publisher: Pws Pub Co 1996
Number of pages: 651
This groundbreaking book presents a complete methodology for adaptive programming in any object-oriented language. Lieberherr's method provides a new approach to object-oriented program design that goes beyond object encapsulation and hard-coded navigation paths to achieve more flexible interactions among objects. Designers using this adaptive method work at a higher, more schematic level of abstraction to design software programs. Graph notation is used to represent the class structure of the program, and a "propagation pattern" language describes how to distribute meaningful methods (including navigation) across the program's structure. Using this method, software designers can create programs that are easily modified and adaptable as needs evolve.
Home page url
Download or read it online for free here:
by S. Demeyer, S. Ducasse, O. Nierstrasz - Elsevier Science
This book collects and distills successful techniques in planning a reengineering project, reverse-engineering, problem detection, migration strategies and software redesign. It is full of practical, hands-on reengineering knowledge and expertise.
by Matthias Felleisen, et al.
The authors put classes and the design of classes into the center of their approach. In this volume, they show students how object-oriented programming languages such as C# and Java support this effort with syntactic constructs.
by Craig Larman - Prentice Hall
This is a lucid and practical introduction to thinking and designing with objects, and creating systems that are well crafted, robust, and maintainable. Developers and students will learn object-oriented analysis and design through case studies.
by Thomas Kühne - Verlag Dr. Kovac
The author promotes the thesis that design patterns inspired by functional programming concepts can advance object-oriented design. The book integrates the areas of object-orientation, functional programming, design patterns, and language design.