Thursday, June 10, 2010

Meta Modeling

I am looking at the various ways of approaching problem solving in various domains. It occurs to me that if one had a concise and accurate metamodel of that domain, it would be easier to build expertise in that domain. It seems pretty obvious or may be not so obvious, but when I look at mathematical equations, I can't help but think what in the world are they talking about.

In software design its pretty easy - I suppose. Give me a UML diagram covering the different views of any system and I am pretty confident I understand what is going on, albeit I may not understand all the underlying algorithms. But a model gives me insight and a roadmap for delving deeply into the inner working of the system.

As an IT Architect, Industry/Domain Models ( Reference Architectures) are instrumental in helping my clients update/plan and develop new systems. Actually if I might say, meta models should be taught in schools. Classes in Physics, Chemistry, Math, and other subjects should start with a careful graphical model of the current thinking on a particular topic. Then students can drill down to more minute details of that topic.

Ok sounds like a tall order, but I think its would be really cool if I had a graphical metamodel that described "The Calculus" and resultant work surrounding it before i started learning differentiation and integration. Actually if the meta model was really good it would describe in a new way the domain of "The Calculus". Even without been an expert in the mechanics of differentiation and integration, I would understand the domain quite well. I would be able to identify the dependent and independent variables in any domain, construct a model of "The Calculus" to solve a problem and then let a computer or someone do the actual integration and differentiation.

So, the model really explains how to characterize objects in the real world and model them as problem in "The Calculus". I know mathematicians would say "thats easy" just take a calculus class and you can model with equations. That's what i don't want to do. I think there can be a metamodel that describes calculus equations. A metamodel that is more intuitive and could be object oriented instead of the functional and symbolic equality we currently use.

Couple of years back Jeannette Wing from CMU wrote a viewpoint in the CACM on computational thinking - I think she is dead on. More so Architectural thinking and computational thinking have a lot to offer the world in terms of problem solving and information processing and understanding. The way mathematics has dominated many fields in the past centuries, architectural and computational thinking might be at the precipice of updating our view of the different domains of knowledge.