Book Review - Enterprise Patterns And MDA by Jim Arlow and Ila Neustadt
Over the last month or so, I've been reading Enterprise Patterns And MDA - Building Better Software With Archetype Patterns And UML by Jim Arlow and Ila Newstadt (Addison-Wesley). This is another one of those books that I thought would deliver one thing and instead produced much more than I expected.
Chapter breakdown: Archetypes and Archetype Patterns; Model Driven Architecture with Archetype Patterns; Literate Modeling; Party Archtype Pattern; PartyRelationship Patter; Customer Relationship Management Pattern; Product Pattern; Inventory Pattern; Order Pattern; Quantity Pattern; Money Pattern; Rule Pattern; Summary; Archetype Glossary; Bibliography; Index
Now, when I requested this for review, I was expecting something in terms of programming patterns and technical material. What I got was a great business tool for modeling typical business objects and transactions. The authors take a business concept like Inventory, and they build a model around it. The model is an archetype, or a entity that exists in some shape in every business. Through UML diagrams, you'll see all the parts that make up the archetype and how to take the parts you need to build your own version of the entity. While the Inventory model is very comprehensive in the book, you can also pull the pieces you need to model the reality that exists in your own business.
There's some very practical benefits you can gain from this book. If you're building an application and need to track a customer (for example), you can turn to the Party model and see all the parts that make up that type of entity. This will help you to understand all the data elements that make up a Party, such as address (web, email, telephone, geographic), organization, person/gender/ethnicity, relationship, etc. These are elements you might think of and/or remember to include, but having the model there helps you get it right early on.
If you're a business analyst, you will really get your value from this book. And if you're a developer who also has to design the systems, you'll look like a wizard when you complete a solid design with features the customer didn't even realize they needed.