Chapter 12: Test-Driven Development with ICONIX Process

In the previous chapter, we put together an example system using “vanilla” test-driven development (TDD). In this chapter, we repeat the example using a mixture of TDD and ICONIX modeling.

How Agile ICONIX Modeling and TDD Fit Together

There’s a prevailing opinion in the agile world that “formal” up-front design modeling and TDD are mutually exclusive. This is summed up in the book Test-Driven Development: A Practical Guide by David Astels, in which he refers to the concept of Big Design Up Front:

I feel very strongly that, while it is a cornerstone of XP, TDD can be used in many development processes. The caveat is that Big Design Up Front (BDUF) conflicts with TDD, so you do need to be using a fairly agile process that lets you evolve the design organically. In particular, you need to be practicing an agile approach to modeling and design.[1.]

In this chapter, we’re going to demonstrate that TDD can in fact be particularly effective with an up-front design method like ICONIX Process.

ICONIX Process takes the design to a low level of detail via sequence diagrams—one sequence diagram for each use case. These diagrams are used to allocate behaviors to the class diagrams. The code can then be written quickly without much need for refactoring. However, the coding stage is still not exactly a brainless activity. The programmer (who, incidentally, should also be actively involved in the design modeling stage) still needs to give careful thought to the low-level design of the code. This is an area to which TDD is perfectly suited.

[1.]David Astels, Test-Driven Development: A Practical Guide (Upper Saddle River, NJ: Prentice-Hall, 2003), p. 203.



Agile Development with ICONIX Process. People, Process, and Pragmatism
Agile Development with ICONIX Process: People, Process, and Pragmatism
ISBN: 1590594649
EAN: 2147483647
Year: 2005
Pages: 97

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net