I attended Pavel Hruby’s tutorial on model-driven design using REA (Resource-Event-Agent) today at JAOO 2006. I left after the first break, not my cup of tea, I guess.
Why did I leave? Well essentially, although Mr. Hruby seems to have done a fabulous job of modeling and extending the REA and while it may prove of significant value as an analysis pattern, as the basis for a DSL, I think it’s a complete waste of time. I have very little patience for meta meta models, particularly when you propose to strap Domain Specific Languages on top of them.
So what is REA?
REA was originally intended as a basis for accounting information systems by W.E. McCarthy (1982) and focused on representing increases and decreases of value in an organisation. The presenter has extended REA to form a foundation for domain specific languages and other enterprise information systems architecture tools (http://www.amazon.com/Model-Driven-Design-Using-Business-Patterns/dp/3540301542).
But really, what is REA? It’s really a model of economics. As far as I’m concerned, economics is itself a model used to explain commercial and sometimes other human interactions. So, let’s see, suppose I were to create a Domain Specific Language based on REA. The code generated from the REA would be a model based on a meta model(the DSL), based on a meta meta model (the extended REA), based on a meta meta meta model (Economics), based on reality. Gee that’s only 4 degrees or is it 5 degrees of seperation from reality.
On the positive side, Cesar and I got a solid 4 hours to experiment with DDD techniques on our favourite business process project. Now that was time well spent.