hide all comments


The Model Repository (was: The CASE Repository)

March 16, 2009 17:19:43 +0200 (EET)

At last year's OOPSLA Workshop on Domain-Specific Modeling I had the pleasure and privilege of giving the keynote. One nice thing about keynotes is that you are given more freedom than for normal talks. I decided to take that to its limit by giving as my keynote a paper that was written 20 years earlier. As far as I could tell, nobody noticed :-). Actually, not wanting the audience to feel they had been fooled, I came clean near the start of the talk. All the same, the message in the talk was news to the lion's share of the audience.

In 1988 Dr. Richard J. Welke, with 26 years of computing experience and two CASE tool companies behind him, wrote a white paper on how model data should be structured, stored and manipulated -- irrespective of the modeling language. In a series of four tiny example model fragments he shows the problems we get into if we try to to represent models using just binary or Entity-Relationship-Attribute concepts, or to store models using just files or relational databases.

With today's users of Microsoft or Eclipse modeling tools only just finding out these problems through their own painful experience, now seemed a good time to revisit that paper. Prof. Welke has kindly allowed me to make it available here: The CASE Repository: More than another database application.

The sad truth is that for my keynote, the starting position was worse than for this article 20 years ago. Back then, people knew that storing models in files didn't work, and most were trying to store them in relational databases. They knew that by default, things just existed on their own, and had association links to other things, either directed or undirected. Nowadays, people are trying to store model data in files again, and worse in XML files -- with the in-built assumption that the world can be shoehorned into a tree structure, a hierarchy of strong containment aggregation.

Another difference between then and now is version control: back then it was obvious from databases that you couldn't talk about versions of individual pieces of data or tables, only of the whole set of inter-related data. The loss of fine granularity of versioning was a small price to pay for the gain in being able to support multiple simultaneous users working in the same set of data. Now, version control's "check out, edit, merge" has become the de facto poor man's multi-user capability -- so much so that few realise there could even be an alternative.

So, the only things I had to add to my keynote on top of the original paper were actually steps backward, hence the two titles: "The Model Repository: More than just XML under version control", or: "Domain-Specific Modeling: 20 years of progress?". Of course there has been progress, at least in the tools like MetaEdit+ or GME that have been around for a decade or more. For the others, all I can do is refer them to Welke's paper, and to the quote from the start of the tools chapter in our book on DSM :-)

"Those who cannot remember the past are condemned to repeat it."
- George Santayana, The Life of Reason (1905)