Reading my Computer magazine, I ended up in an article describing a case study in the General Electric’s Motor division on the use of a model-based approach for “Quickly developing an Information System”. Among others, the paper clearly says that:
A model-based approach to the definition and development of a system
can reduce development costs while matching the system
to the marketplace and business strategy
and, regarding the case study itself,
Motor engineers took about an hour to learn how to put their knowledge into the simple concepts and notations of the models …. A computer-based tool was used to generate error-free SQL code
(for the information system database) from the models. … No-nonsense design engineers
and research scientists worked as a team with the rigorous models as the medium for
exchanging extensive information. Modifying the models and regenerating code could
incorporate any changes made during the development. Using models, obtaining the
information and generating the database structure consumed one-twentieth the time
and effort of the traditional method
Quite impressive, right? And this time it is an industrial case study, no just some poor students as usual.
Go ahead and read the details for yourself. The paper is Optimizing the Organization’s Structure by David W. Oliver (Computer, vol 30, n 7)
Even if you don’t have IEEE access to open the pdf, click on the link and let me know if something stands out. What can we learn from this?
(and btw, the fact that I found this article reading this month’s Computer magazine is still true, if you are a Computer reader as well you’ll quickly figure out how I ended up there)
FNR Pearl Chair. Head of the Software Engineering RDI Unit at LIST. Affiliate Professor at University of Luxembourg. More about me.
Note that the UML standard (and standards are usually late in following industry practice) already had ongoing work to add support for executable models a few years after that article was published (finalized in 2003).
Shlaer-Mellor (the approach that preceded Executable UML, the support for executable models in vanilla UML, and more recent developments such as fUML and Alf) had its heyday in the 1990s.
My conclusion is that we must be getting close to the point model-based development becomes mainstream. It took a couple of decades for 3GLs to become a preferred choice for building applications, over assembly languages. [Note that contrary to programming languages, many different things may be called a modeling language. I am talking here specifically about using models for building programs instead of writing 3GL code, and not about models that serve other purposes (communication between technical and non-technical stakeholders, for instance)].
One way that may happen is that we will realize that 3GL programs we write are so far removed from the computing environments they run on (via programming model restrictions, such as those imposed by some PaaS solutions, such as Google Apps Script) and mobile development tools, that if the code we write is going to be translated/transpiled to some other language anyways, it will become obvious that there really is no reason to limit ourselves to the expressiveness of 3GLs such Javascript, and we may embrace languages that provide higher-level constructs such as state machines, constraints, relationships typical in general purpose modeling languages such as UML.