Top JAOO 2003






JAOO 2006
JAOO 2005
JAOO 2004
JAOO 2002
JAOO 2001
JAOO 2000
JAOO 1999


JAOO Conference
Scandinavian Center
Margrethepladsen 3
DK-8000 Aarhus C
Tel.:+45 87 32 87 87
Fax: +45 87 32 87 88
VAT: 25809149



Kevlin Henney

The focus of his work is in programming languages, OO, CBD, UML, patterns and software architecture. He is a regular columnist for Application Development Advisor, JavaSpektrum and C/C++ Users Journal online, and wrote columns in Java Report and C++ Report. He is also a member of Hillside Europe, the EuroPLoP and VikingPLoP programme committees, the OT conference programme committee, and is a regular speaker at conferences in the US and Europe.
Picture of Kevlin  Henney (Curbralan)

Presentation: "Beyond the Gang of Four"

Tuesday 14:00 - 14:45, Tutorial Room

When software developers mention design patterns, the chances are that they are talking about Design Patterns, the classic book by the Gang of Four, rather than design patterns in general. Even when they are talking about the pattern concept, as opposed to specific patterns, they often think in terms of the form and idea presented in GoF, and rarely beyond.

However, the practice of software design is a far larger space than can be covered by a modest vocabulary of 23 patterns. Nor is the pattern concept that is useful in designing software identical with the GoF view. Since the publication of the seminal work by GoF in 1994, a great deal of research and practice in patterns has led to a better understanding of both the pattern concept and the strengths and weaknesses of the GoF patterns themselves.

This talk revisits the GoF patterns, reflects on them, deconstructs them, and re-evaluates them from the practitioner's perspective: why creational patterns such as Abstract Factory and Builder are missing a vital ingredient to be proper parts of an architectural vocabulary; why Singleton decreases a system's flexibility and testability; why Iterator is not always the best solution for traversing aggregates; ...; and what you can do about it.

Beyond the Gang of Four - (slides)

Please notice that the slides are password protected. You should have received an e-mail containing the required username and password.

Presentation: "Beyond Metaphor"

Wednesday 15:15 - 16:00 Conference Hall

Metaphors, analogies and other forms of comparison and contrast are often used to communicate and debate ideas. We use them in politics, we use them in romance, we use them in software development. We also use them to describe the nature of software development. Is it like engineering? Is it like architecture? Is it like craft? Is it like composition? Sometimes these questions can shed light on our discipline. Sometimes they generate more heat than light. This endnote sets out in search of software development's identity.

Beyond Metaphor - (slides)

Please notice that the slides are password protected. You should have received an e-mail containing the required username and password.

Presentation: "Objects and Unicorns"

Wednesday 10:00 - 10:45, Tutorial Room

An object is an instance of a concrete class; unicorns are mythical creatures that do not exist because the class is abstract. There are many myths that go with object orientation and have become part of the language of objects.

In some cases these have come about because of simplifying the subject for easier teaching, but with the consequence that the original deeper concept has been lost. For instance, the proper meaning of encapsulation, the general meaning of polymorphism, the real relationship between polymorphism and inheritance, the practical limitations of classic design by contract, to name but a few.

In other cases words and concepts have lost their original meaning because of a popular (or marketing-driven) movement that has lead to a narrow or distorted understanding of fundamental ideas. For instance, the relationship of models to analysis and analysis to design, the (non)relationship between patterns and objects and components, the idea of reuse as an important and plannable activity, objects as a natural way to model the world, to pick on a few popular areas of misconception.

This myth-busting talk looks at the theory and practice of these ideas, reclaiming the real meaning of words that have been misused and misappropriated over time. The resulting view of object-oriented development is more robust and clearer for this deconstruction and not weaker.

Objects and Unicorns - (slides)

Please notice that the slides are password protected. You should have received an e-mail containing the required username and password.

Tutorial: "Programmer's Dozen - Thirteen Recommendations for Refactoring, Repairing and Regaining Control of Your Code"
Thursday 09:00 - 16:00
Audience: Programmers with one or more of Java, C++, C#, etc. Abstract: There is no shortage of technical wisdom on how to develop clear and robust code, so why is the expression on many a programmer's face so paned (sic) when staring at all those source windows, trying to make sense of the encrypted code? There are companies whose development culture does not encourage pursuit of knowledge of practice: a penny- wise pound-foolish approach. However, there are many companies and developers that want to push themselves to the state of the art, but seem swamped and bemused by how much state there really is to that art. This tutorial offers a concrete thirteen-point list of practices (zero through twelve) that can be applied out-of-the-box to reduce code size and complexity, acting as both guidelines for new code and indicators for refactoring. The short list has no ambition to be all that you needed to know about design but were afraid to ask, but it does offer an easily memorable and easily practised set of guidelines that offer the greatest immediate return on investment - the most bang for your buck or oomph for your euro. The tutorial expands on the advice offered briefly and in outline in Kevlin's Minimalism talk at last year's JAOO.

Trifork EAS