Enterprise Model Patterns: Describing the World Book Review
|When I first started reading this book I became discouraged because it seemed as thought the author had bastardized UML. As I read on it became apparent that the author had merely created a DSL (Domain Specific Language) using the UML syntax. The domain? Business, from the highest to the lowest level of abstraction. He simply calls it data modeling.|
The author starts the book out with an explanation as to why a new way of data modeling (using his UML syntax) is needed. He then covers the conventions of his DSL (by the way, he does not refer to is as a DSL… that is just how I classified it in my own mind) which is a constrained UML language consisting of only class diagrams.
Using only class diagrams bothered me at first too. How do you show state, communication, timing, deployment, etc.? Well it turns out that one of the constraints of the DSL is to limit activities to the data in an activity, not the activities themselves. He leaves that to the other diagrams, that are not part of his modeling goals.
I became more and more comfortable with the constraints as I read on. I think the author made the right choice in limiting the DSL the way he did. He goes through 4 levels of abstraction in his process. If he had not out boundaries in place, it would have been way too big in scope to be usable.
The author the then continues on with several chapters that take you through all 4 levels (Level 0, 1, 2, and 3) of abstraction used in the author's modeling process.
Level 0: An abstract template that underlies level 1.
Level 1: A model of an enterprise in general. Includes chapters on People and Organization, Geographic Locations, Assets, Activities, and Timing.
Level 2: A more detailed model describing specific functional areas. Includes chapters on Facilities, Human Resources, Communications and Marketing, Contracts, Manufacturing, and The Laboratory.
Level 3: A model of a specific industry. Includes chapters on Criminal Justice, Microbiology, Banking, Oil Field Production, and Highway Maintenance.
Each chapter contains tons of diagrams.
This book is an excellent guide to abstraction as well as business modeling. Following the author through the different levels of models will greatly increase your analysis skills and modeling skills.
If you are a business analyst, DBA, or software architect this book is mandatory reading.