When I saw the cover of the October 2009 issue of IEEE Computer magazine, I was quite intrigued. Just what was “models@run.time”? I had never heard of the concept before, but it turned out to both simple and profound.
The idea is to not only use model-based development as a way to create code to run, but also to have models which are live at run-time, reflecting on the software which is being run. The core idea is very much like reflection as found in languages like C# and Python.With the key difference that there is a mandatory user-interface aspect, allowing end users to really look at the software (if they have the tools, one would assume).
If you take this one step further, you are entering even more interesting land. If you let a programmer modify the model of their entire software system during run time, we are really in the same area as classic LISP machines and Forth systems. Essentially, you could imagine a “UML machine” where you redraw diagrams and change the machine interactively, kind of like an interpreted model-driven programming system. Replace an interactive prompt with a model editor, and you get something really interesting.
So it is a feature worth reading about, unfortunately it either costs money or requires you to be an IEEE Computer Society member.