<<< Previous speaker Next speaker >>>

Martin Fowler, ThoughtWorks

 Martin  Fowler

I'm an author, speaker, consultant and general loud-mouth on software development.

I concentrate on designing enterprise software - looking at what makes a good design and what practices are needed to come up with good design. I've pioneered object-oriented technology, refactoring, patterns, agile methodologies, domain modeling, the Unified Modeling Language (UML), and Extreme Programming.

I'm the Chief Scientist at ThoughtWorks - an international application development company. I've written five books on software development: Analysis Patterns, UML Distilled (now in its 3rd edition), Refactoring, Planning Extreme Programming (with Kent Beck), and Patterns of Enterprise Application Architecture. I also write articles regularly on my site at Martin Fowler.

Presentation: "Final Panel"

Time: Wednesday 17:15 - 18:15

Location: Conference Hall

Abstract: TBA

Tutorial: "TDD tutorial"

Track:   Tutorial

Time: Friday 09:00 - 12:00

Location: SAS Room 13/14

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

  1. state-based testing with JUnit
  2. interaction-based testing with JUnit and jMock
  3. 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.

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.