Book Review
Patterns of Enterprise Application Architecture


A collection of high level construction concepts for (typically) web-based enterprise applications.

With Contributions by
David Rice, Matthew Foemmel, Edward Hieatt, Robert Mee, Randy Stafford
For more detailed information, view the publishers homepage: Addison-Wesley Professional

Author:Martin Fowler
Page Count:560 pages
Publication Date:05/2002
Covered UML Versions:1.4
Used Programming
Java, C#

Subjects:  Software Engineering

About the Author

Martin Fowler is one of the most renowned authors on object oriented technologies. He works as chief scientist at ThoughtWorks in Chicago and provides his experience from practice in OO software development in a whole series of books. His most famous writings were UML Distilled and Refactoring.


FocusApplying UML
Theoretical Foundation
PrerequisitesUML Modeling
Possibilities to searchGlossary
not suited at all, very little content, doesn't apply
  very well suited, right on the spot


If we tried to separate technical authors into the group of those presenting new and innovative material and those collecting and resorting existing knowledge, Martin Fowler is certainly in the second group. However, within this group he is a master. He has the ability to gather the current state of mind of our industry, give it a concise and precise shape and in doing so form the language we as a community use ever after. He has done so in his books on UML and even more so in his book on refactoring. This book does the same for the area of enterprise architectures.

The domain of the book is quite sharply addressed at large scale application with (typically) a web interface and a database backend. The different possible approaches of how to fill the gap in-between these two on a coarse grained level of layers, components and patterns is its content.

On the first 100 pages he provides a birds eye view on such systems and describes different patterns that he found in existing solutions and how they fit together in a narrative way. He perceives such systems in basically three layers, the presentation logic, domain logic and data source. He advises to build such systems by starting with the domain logic. For this layer he basically identifies three alternative patterns, which he calls by the names Transaction Script, Domain Model, and Table Module. As an OO warrior he has a clear tendency to Domain Model but gives precise advise on when to use (or not to use) the others. From there he describes patterns how to map to the data source layer, and how to construct the presentation layer.

His primary focus for the data layer is relational databases. Consequently, a large part of the patterns describe solutions for mapping Domain Models to rows and tables. The focus for the Presentation layer is the web, for which he describes template based approaches as well as transformation based approaches and the controller level that connects these to the Domain Model.

On the remaining 430 pages he provides detailed descriptions of patterns for each of the alternatives in the layers in a style of a reference. He explains how a pattern works, gives reasoning when to use it and shows examples, some in UML, some in Java code.

The biggest value the book provides is that it gives us a common language we can use to discuss different alternative approaches to building enterprise architectures. The second biggest alternative is that he shows what alternatives there are.

Marko Boger, Chief Executive Officer, Gentleware AG, 11/2004

For Book Orders

In Partnerschaft mit In Partnerschaft mit

© 2000 - 2010 Gentleware AG
 support  modeling knowledge  literature