January 2007


It’s time we did something about our colleges and universities turning out armies of programmers who know how to code, but very little about how to get from a set of requirements through a well-factored design, and then to a maintainable set of code. One of the main goals of the Theory and Practice book is to provide a suitable text for a computer science course in this area.

We’ve written this book as a teaching book. Chapters are organized into Theory, Practice, and More Practice sections. The Theory sections explain the concepts, and include small, thought-provoking exercises. The Practice sections present examples with mistakes deliberately left in, and present the answers to these questions a few pages later. The More Practice section at the end presents challenge questions, half multiple-choice, and half essay. If you’re a computer science instructor and would like to build a course around this book, email us, we’d like to talk with you.

One process is much larger
And the other’s way too small
And the full UML that OMG gives you
Is incomprehensible to all . . .

(Sing to the tune of “Go Ask Alice” by Jefferson Airplane)

In theory, every single aspect of the UML is potentially useful, but in practice, there never seems to be enough time to do modeling, analysis, and design. There’s always pressure from management to jump to code, to start coding prematurely because progress on software projects tends to get measured by how much code exists.

The ICONIX Process is a minimalist, streamlined approach that focuses on that area that lies in between use cases and code. Its emphasis is on what needs to happen at that point in the life cycle where you’re starting out: you have a start on some use cases, and now you need to do good analysis and design.