Acronym Mayhem in Application Modeling Land
BPMN,UML,MDD,DSL,MOF,OMG, YAAaaaa! - I cheated YAA stands for Yet Another Acronym! Modeling methods for application software appears rife with different views on how software should be designed and documented. Or at least until now, as Microsoft has joined the open source consortium in this space - OMG - The Object Management Group. According to Forrester in a recent report this development hopefully means two seperate camps will be united. Microsoft did not support UML v2(Uniform Mark Up Language) favoring DSLs (Domain Specific Languages) - whereas OMG supported UML. A DSL is essentially a competing form of notation that is, as it states, domain centric (think database modelling or similar approaches that can be limited also to products). But does this mean that anything will really be clearer?
I don’t think so because UML is a just another DSL of another flavor! The fact that it is more common across different technologies does not mean that it is the kind of language or a set of representations that someone other than a developer can understand. At best its only common if everyone on a development and broader project team agrees its so, and interprets the content as similarly as possible.
There is a lot of research that shows that collaboration breaks down in multidisciplinary teams because of a tendency for individuals to have different mental models causing “representative gaps”. These gaps aren’t always obvious - but they can be fatal. Its important for segments of IT to step away from their own internal language discussions and see the bigger collaborative picture. A really good analogy is a weather chart - a layman will look at it and at best recognize probably the country that the isobars are surrounding - whereas the expert will know that a big storm is coming.
MDD, another one of those acronyms above - stands for “Model Driven Development” - (the holy grail of groups like OMG) whereby BPMN (Business Process Modeling Notation) is translated to UML and then to code as automatically as possible. But we are a long way from this dream. If the main purpose of modeling today is to provide a tangible representation of what is being built and to not yet support some automated process - then what really matters is how understandable the model is in practical group terms.
A closer examination of UML though reveals that it really is a world built around its own highly specific language and definitions. What this means is that you really have to learn it to understand it. I recommend you check out the Wikipedia
discussion of it and you will see what I mean. OMG defines UML as essentially a Meta Object Facility (MOF). This is really the dreaded ontology tack. Ontologies are a developer’s rabbit hole. What you will find inside this rabbit hole is essentially a big dictionary of how things work (rules) and what words mean - the biggest one and one of my favorites is SBVR (Semantics of Business Vocabulary and Business Rules). The trouble with ontologies (think my version of the world vs your version of the world) is that really that is how it is. It won’t change because I choose to build some complicated metamodel of how things need to be explained. What it does become is a specific language of the ontology owner.
Since there is lots of evidence that the two biggest problems IT has is complexity and human factor failures (IT project success rates) - things that help are simplification strategies and truly common communication techniques and approaches. Maybe Microsoft can inject some of both into the debate on how to model applications.
this article has not been tagged































































