|
<<< Previous speaker
|
next speaker >>>
|
Martin Fowler, ThoughtWorks
Martin Fowler is an author, speaker, consultant and general loud-mouth on software development.
He concentrates on designing enterprise software - looking at what makes a good design and what practices are needed to come up with good design. He has pioneered object-oriented technology, refactoring, patterns, agile methodologies, domain modeling, the Unified Modeling Language (UML), and Extreme Programming.
He's the Chief Scientist at ThoughtWorks - an international application development company, and has 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: "Enterprise Patterns"
Time:
Monday 13:00 - 13:45
Location:
Bayside 204
Abstract: One of the challenges of our profession is how to capture and communicate the art of software design (or architecture if you prefer a more pretentious word). I like to use the notion of patterns, as developed by the software patterns community since the early 1990's. I'll talk about the role patterns can play in Enterprise Software, and touch lightly on the patterns I've written up both in my book and ongoing on martinfowler.com
Presentation: "Enterprise Systems panel"
Time:
Monday 16:30 - 17:15
Location:
Bayside 204
Presentation: "Keynote - Simplicity in Design"
Time:
Monday 17:30 - 18:30
Location:
Bayside 204
Abstract: The problems we are looking to solve with software are becoming increasingly harder and more complex, but how do we best deal with this complexity? Martin and Erik will argue that the answer is simplicity. More than twenty years ago Fred Brooks identified accidential complexity, that is complexity that is not inherent in the problem but is caused by the approach we have chosen, as the only area left where significant gains in productivity could be made. So, if we manage to achieve simplicty in design and approach we can successfully tackle the real complexity of the problem we are solving. What we have seen, though, is that it is anything but easy to achieve simplicity. All too often we end up with designs that are either too simplistic or too complicated. The real skill in designing software lies in finding a good middle ground.
Workshop: "Test Driven Development"
Time:
Wednesday 09:00 - 16:00
Location:
Bayside 203
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.
|
|
|