January 2015 Blog Posts

Overcoming the one weakness of OOP, comparing solutions

Table of content - Abstract - Which is the one weakness of OOP? - How to overcome the one weakness of OOP? Solutions:   - 1. Professor Karl Lieberherr work on Adaptive programming and the Law of Demeter   - 2. Mock Objects and Growing object-oriented software, guided by tests   - 3. Less, The path to better design - Comparing solutions - References Comparing solutions These are some similarities about the solutions suggested by the 3 sources: One solution uses tools and higher-level navigation specifications to regenerate code whenever there are changes to the relationship between objects and...

Overcoming the one weakness of OOP

Abstract: OOP does not provide a built-in support, comparable to encapsulation for flexibility, in object interrelationship such that relationships between objects or structure of objects in a relationship can change, without affecting the rest of the program.  The work of Professor Karl Lieberherr on Adaptive Object-Oriented software programming, based on the Law of Demeter, is the first to highlight this weakness of OOP, to explain its relevance and to introduce a solution based on a specific design, high-level specifications and automatic code-generation tools. This post describes the work and the solution introduced by Karl Lieberherr and other well-known authors such as Steve Freeman, Nat Pryce, Tim Mackinnon and Sandi...

Which is the one weakness of OOP?

Table of content - Abstract - Which is the one weakness of OOP? - How to overcome the one weakness of OOP? Solutions:   - 1. Professor Karl Lieberherr work on Adaptive programming and the Law of Demeter   - 2. Mock Objects and Growing object-oriented software, guided by tests   - 3. Less, The path to better design - Comparing solutions - References Which is the one weakness of OOP? A key advantage of object-oriented programming is certainly the kind of flexibility that object encapsulation provides. Thanks to that flexibility, the representation of an object (the inside of the object, the internal implementation details, the internals) can be changed without affecting the rest of the...

How to overcome the one weakness of OOP?

Table of content - Abstract - Which is the one weakness of OOP? - How to overcome the one weakness of OOP? Solutions:   - 1. Professor Karl Lieberherr work on Adaptive programming and the Law of Demeter   - 2. Mock Objects and Growing object-oriented software, guided by tests   - 3. Less, The path to better design - Comparing solutions - References How to overcome the one weakness of OOP? How to make OO code less brittle in the face of changes to the relationship between objects and to the structure of objects that are part of an object graph? This post introduces solutions from three well-known...

Professor Karl Lieberherr work on Adaptive programming and the Law of Demeter

Table of content - Abstract - Which is the one weakness of OOP? - How to overcome the one weakness of OOP? Solutions:   - 1. Professor Karl Lieberherr work on Adaptive programming and the Law of Demeter   - 2. Mock Objects and Growing object-oriented software, guided by tests   - 3. Less, The path to better design - Comparing solutions - References Professor Karl Lieberherr work on Adaptive programming and the Law of Demeter In 1987 Ian Holland at Northeastern University formulated a style rule for designing object-oriented systems called The Law of Demeter [3]. The Law of Demeter is best known in its formulation at the method level...

Mock Objects and Growing object-oriented software, guided by tests

Table of content - Abstract - Which is the one weakness of OOP? - How to overcome the one weakness of OOP? Solutions:   - 1. Professor Karl Lieberherr work on Adaptive programming and the Law of Demeter   - 2. Mock Objects and Growing object-oriented software, guided by tests   - 3. Less, The path to better design - Comparing solutions - References Mock Objects and Growing object-oriented software, guided by tests Thanks to Steve Freeman, Nat Pryce and Tim Mackinnon for commenting the draft of this post! Between 1999 and 2010 a group of people from Connextra team first and then from Extreme Tuesday Club (Connextra team...

Less, The path to better design

Table of content - Abstract - Which is the one weakness of OOP? - How to overcome the one weakness of OOP? Solutions:   - 1. Professor Karl Lieberherr work on Adaptive programming and the Law of Demeter   - 2. Mock Objects and Growing object-oriented software, guided by tests   - 3. Less, The path to better design - Comparing solutions - References Less, The path to better design Sandi Metz in her speech 'Less, The path to better design' [2] takes on the challenge of the one weakness of OOP and presents design solutions that deal with changes in unstable object’s dependencies, both in the object structure and...

Overcoming the one weakness of OOP, References

Table of content - Abstract - Which is the one weakness of OOP? - How to overcome the one weakness of OOP? Solutions:   - 1. Professor Karl Lieberherr work on Adaptive programming and the Law of Demeter   - 2. Mock Objects and Growing object-oriented software, guided by tests   - 3. Less, The path to better design - Comparing solutions - References References Adaptive Object-Oriented Software. The Demeter Method. Karl Lieberherr. 1996. http://www.ccs.neu.edu/research/demeter/book/aoos.PDF Chapter 3: From C++ to Demeter. From [0] ...