you're reading...
App & Architecture, Fundamentals

Transformation between Models and Code: Can Be or Can Not Be, That is the Question

Last month, I had launched a discussion “What is the essential difference between MODELING and PROGRAMMING?” in the forum of MDSN; I proposed my opinion “Model is not code.” and some of possible aspects for the discussion on the differences between models/modeling and code/programming:
– the perspective
– the business/problem vs. computer/platform
– the interpretation context
– what is it oriented?
– how it can be specified?

I think, the issue is significant but not sufficient enough yet.

Recently, Vincent Hanniet discussed the topic in his essay “MDA/MDD: don’t round-trip!” focus on another concern about round-trip. He said also “Mode is not code.” and implied that we should not be “coupling modeling and coding through round-trip”, “So please, don’ t round-trip!” Further, in a  comment on the post, he stated his opinion more clearly

In brief:
1) Model is not code,
2) Code may be (partly) generated from models,
3) Code may be reverse-modelized but this usage is not appropriate in MDA/MDD

Here, I want to try to write some of my thoughts relating and following Vincent’s excellent thinking.

First, I think, the round-trip engineering is not the matter but the basic question is: whether it is feasible, and by what kind of restrictions? It may be not “To Do or Not To Do” but “Can Be or Can Not Be”, that is the question.

Perhaps, this issue can be boiled down to transformation-ability or transformation-ness (Sorry, I’m not sure is it the appropriate expression?) It can be investigated in many certain situations: A transformation from certain models to code or certain code to model(s) is possibly effective, non-effective, effective and reversible, or effective and non-reversible. Further more, even if a transformation is reversible, the result is possibly recovered fully or partially, or as the same or similar.

More specifically,

  • Whether should the models or code be taken (required) certain restrictions for the implementation of a transformation? and what influence, on our means or purposes that using models, will be brought by the restrictions?
  • What kind of a model can be transform into code?
    (and what is the meaning about “a model is transformed into code”?)
  • What kind of code can be transform into certain model(s)?
    (and what is the meaning about “some code is transformed into model”?)
  • Is a result of trasformation unique?
    (or what factors/conditions/context will affect the results of transformation?)
  • If a “model” is so-called executable, finally, is it code or model?
  • Is the code generation (from model) equal to model transformation?

Ultimately, these issues will lead to a more general question, as I often mentioned:

  • What is a model?
  • How does a model work?

They need more explicit answers.


Updated:  April 23, May 30 (to correct a serious mistake in grammar)


About TY

interested in models & modeling, software, information systems, applications & engineering for enterprises


7 thoughts on “Transformation between Models and Code: Can Be or Can Not Be, That is the Question

  1. > What is a model?

    So, you’re not really happy with the available definitions (like e.g. that of Stachowiak)?


    Posted by modelpractice | April 27, 2011, 18:25
    • No, they are not satisfactory. I think, it is an origin of many problems in both practice and theory. I have some idea about this issue, it seems able to connect the concept of ‘model’ in both Model Theory and much common understanding (such as in software engineering field).

      Posted by TY | April 27, 2011, 19:53
  2. I personally agree with both definitions (Wüstneck & Stachowiak) given here: http://iwi.uibk.ac.at/wikiwi/index.php?title=Model.

    But with a comment on Wüstneck’s properties/Stachowiak’s abbreviation definition: a model does not “reproduce” properties/attributes of the original system but only represent them, give an image of them, through a non explicit mental transformation. Considering the contexts of both original and modeled systems, even if restricted to a study field, theses properties/attributes are not equals nor isomorphics in an absolute way. Problems in practicing modeling come partly from this very initial transformation which can be also viewed as a non explicitly defined isomorphism.

    I don’t think software engineering field is so particular when dealing with models. But for sure, IT model transformation has trouble with non explicit transformations…

    Posted by vhanniet | April 27, 2011, 21:05
    • “I don’t think software engineering field is so particular when dealing with models.”
      — I agree, and I think there are some ‘different types’ of models, all of them are needed in the software engineering or IT fields.

      I have read some of definitions (included the Wüstneck’s & Stachowiak’s), some of which, like the Stachowiak’s definition, is very fine and classical. I basically accepted some of them such as Stachowiak’s work, but it not able to be fully satisfactory yet. I think, we can/need define ‘models’ more explicitly. (I have been writing some about the issues in English, it is difficult for me and very slowly… :-)

      On the other hand, It seems also not very fully be understood and applied that such as the Stachowiak’s basic definition of models, in such as the software field. I think, it needs to deal with the concept of models more carefully, more deeply, more explicitly. For example, to deal with the distinctions between models and code carefully.

      Posted by TY | April 27, 2011, 23:09
    • As far as I know, Stachowiak’s concept of attribute also covers attributes of higher order, that may stand for more complex properties, i.e. also the implied ones.

      This makes the definition nicely generic on one hand, but on the other it does not help (or isn’t intended to help) the problem you described, which is indeed a very fundamental one.


      here mathematical Model Theory is maybe more helpful

      Posted by modelpractice | April 28, 2011, 02:08
      • Very agree.
        Some of general definitions of model, like the Stachowiak’s, maybe more close to a philosophical level, or more the sense of epistemology…
        but on the other hand, It seems some people are often unconsciously overlooked or confused at some of the basic elements of concept of model, such as for the ‘object’ of a model (the ‘original’ by Stachowiak, ‘SUS’ by Seidewitz, 2003 ). In this aspects, may be it is helpful that to take them more seriously or carefully.

        Posted by TY | April 28, 2011, 10:07


  1. Pingback: MDA/MDD: Model is not code!? « Vincent Hanniet * IT Modernization - April 29, 2011

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s



Subscribe notifications of new posts by email.

Join 60 other followers

%d bloggers like this: