By Abstruse Goose, a great cartoon showing in a few vignettes the hard life of people that need to read and understand what others have coded before (in other words, everybody and very often). Needless to say, the same cartoon applies to those of us that regularly read and try to grasp models others have drawn (or written) before.
(with a special dedication to my fellow teachers in MDE and related topics 🙂 )
Source: http://abstrusegoose.com/432
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. Â More about me.
IMO, that shouldn’t be the case, or at least not nearly as common, Jordi.
In code, given the tools we use (low level, 3rd gen languages) and the goals to achieve (not uniquely, but primarily, running on a computer), it is common that the intent is lost in the resulting rendition of the solution. The end result is well described in that cartoon.
However, one of the primary reasons for modeling is to be able to better formalize and communicate knowledge. Modeling allows to preserve and highlight intent via the omission of unnecessary details (that would otherwise be necessary in code) and the use of languages to express knowledge better. The expectation is that models are orders of magnitude easier to understand than code.
The majority of the models out there don’t have to run/compile (while code always has to run). If they are not good for communication, what good are they for then?
I agree that this should happen less with models since they are (in general) more abstract and more aimed at communicating than code. Nevertheless I also think that creating good models is even more difficult than writing good code (for the same reasons) so the end result is that the world is full of terrible models.