<<< Previous speaker Next speaker >>>

Erik Dörnenburg, ThoughtWorks

 Erik  Dörnenburg Erik Dörnenburg is a senior developer and technical architect at ThoughtWorks, Inc., where he is helping clients with the design and implementation of large-scale enterprise solutions. Before joining ThoughtWorks, Erik was Technical Director at Pixelpark UK, a new media company, where he integrated enterprise systems with web- based solutions and a variety of digital delivery channels. His career in enterprise software began in the early nineties on the NEXTstep platform and Erik has been an advocate of agile, test-driven, object-oriented development and OpenSource software for many years. He holds a degree in Informatics from the University of Dortmund and has studied Computer Science and Linguistics at the University College Dublin.

Presentation: "Domain Annotations"

Track:   .NET Client Applications

Time: Tuesday 16:00 - 16:45

Location: SAS Suecia

Abstract:

Modern development platforms provide annotations that can be added to various language elements. (We use the general term annotation as we feel it describes the concept more precisely than the term attribute which is used on the .NET platform.) The developer community is still exploring the use of annotations but we can identify several distinct usage patterns. We have also learned some lessons and have principles that guide our use of annotations.

This session explains different patterns of annotation usage. The key contribution of the session is a detailed discussion of a pattern that we have found during the development of an enterprise application and have used successfully since. We call this pattern Domain Annotations, and the idea is to enhance the domain model with domain specific annotations that can be used for a variety of purposes. This pattern has not played a major role in public debate yet but we have found that it is one of the most powerful usages of annotations.

Password protected Download slides

Tutorial: "Test-Driven Development"

Track:   Tutorial

Time: Sunday 13:00 - 16:00

Location: To be announced

Abstract:

This tutorial demonstrates the development of a small example application using test-driven development and related technologies. The system will comprise a handful of Java classes that exemplify typical components found in enterprise applications, including domain objects and a service layer. The tutorial is structured into three 'iterations' which cover

  • state-based testing with JUnit
  • interaction-based testing with JUnit and jMock
  • deployment in lightweight containers such as PicoContainer and Spring.

The iterations not only introduce the concepts but also provide room for the discussion of trade-offs and edge cases, e.g. how to deal with testing private methods and when not to use dynamic mocks but fake objects. The implementation will make use of the Dependency Injection pattern and the last iteration examines how this is supported by lightweight containers.

Attendees gain an understanding of how proper use of test-driven development fosters good design; through decoupling and interface discovery for example. Attendees will also gather a nice catalogue of the most commonly used patterns used in conjunction with test-driven development.