Author Topic: Code Generation  (Read 3372 times)

Roman Bretz

  • EA Novice
  • *
  • Posts: 16
  • Karma: +0/-0
    • View Profile
Re: Code Generation
« Reply #15 on: April 13, 2011, 12:36:19 am »
Quote
...  
Then we're talking about taking a (in OMG terms) a PSM, generating an artifact into the real world then reverse engineering the artifact into a PSI (my invention - the Platform Specific Implementation.
...

Oh, it's basically a good idea to talk about it in OMG terms of Model Driven Architecture (MDA).
1. The term "problem domain" I described can be easily mapped to Business Model or Computation Independent Model (CIM)
2. The term "solution domain" is more complex and has to mapped to
 a) Platform Independent Model (PIM) is a technology-neutral system specification that conforms to a business model
 b) Platform Specific Model (PSM) is a technology specification that conforms to the PIM system specification
 c) And finally - Platform Specific Implementation (PSI)

The "easiest" part of code generation is conversion between PSM and PSI. It can be more or less complex depends on technologies and the decision what is the master. In case the code is the master, means, the user is allowed to modify the code after generation and he/she is allowed to use every feature of the target programming language also, then even that "easy" part becomes very-very complex.

The next level is the conversion from PIM to PSI. It is only possible if you do it in two steps: first one - modeling PIM, next one enriching it by the platform specific part but keeping it separately, so the user can change PSM without touching PIM later on. You can also make platform specific part exchangeable / configurable. In both cases it is not a trivial job.
I believe it is possible, but there are a number of challenges to be solved.

So, we are working on that  ;)
« Last Edit: April 13, 2011, 12:50:06 am by rbretz »

Roman Bretz

  • EA Novice
  • *
  • Posts: 16
  • Karma: +0/-0
    • View Profile
Re: Code Generation
« Reply #16 on: April 13, 2011, 12:56:05 am »
How ever :), I repeat my question: why round-trip engineering at all?

Manufacturer should focus on usable code generation solution (let us start with PSM to PSI), which allows me to keep the same abstraction level at every development step (develop, debug, test).

Do you know even one?
« Last Edit: April 13, 2011, 12:57:21 am by rbretz »

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 6259
  • Karma: +104/-89
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Code Generation
« Reply #17 on: April 13, 2011, 10:24:11 am »
Quote
How ever :), I repeat my question: why round-trip engineering at all?

Manufacturer should focus on usable code generation solution (let us start with PSM to PSI), which allows me to keep the same abstraction level at every development step (develop, debug, test).

Do you know even one?
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Josef Stadelmann

  • EA User
  • **
  • Posts: 59
  • Karma: +0/-0
  • as simple as possible, but not too simple
    • View Profile
Re: Code Generation
« Reply #18 on: May 04, 2011, 06:17:04 pm »
Where CIM comes originally from the CAD worl and stands for "Computer Integrated Manufacturing"; But as we are experts we'r able to differentiate all such abreviations.

Or does it mean "Computer Independent Modell"?

Josef  ;)

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 8479
  • Karma: +207/-26
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Code Generation
« Reply #19 on: May 04, 2011, 06:34:28 pm »
Josef,

In this context (MDA) the term CIM means Computational Independent Model.
So in fact a model that does not take into account which part(s) are automated an which part(s) aren't.
Typically you will find CIM level models in Business (Process) Models.

Geert

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 6259
  • Karma: +104/-89
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Code Generation
« Reply #20 on: May 04, 2011, 09:02:49 pm »
Quote
Josef,

In this context (MDA) the term CIM means Computational Independent Model.
So in fact a model that does not take into account which part(s) are automated an which part(s) aren't.
Typically you will find CIM level models in Business (Process) Models.

Geert
To be fully rigorous Geert, CIM means Computationally Independent Model which reinforces the part that you emphasized.

CIM models are typically Conceptual Models (for structures) and -as you say- Business Process Models for behaviour.

For my part, the structural model is used to get all the stake holders to agree on what they see (out of the window) that is , we model the real world and get agreement on what we see.  It's amazing how often the views differ!

Paolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 8479
  • Karma: +207/-26
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: Code Generation
« Reply #21 on: May 04, 2011, 09:18:46 pm »
Hmm, you go my doubting, so I downloaded the MDA Guide Version 1.0.1 from OMG, and there it clearly states
Quote
2.2.11 The Computation Independent Model (CIM)

But aside from this nitpicking, I agree with you on the actual subject  :)

Geert

Paolo F Cantoni

  • EA Guru
  • *****
  • Posts: 6259
  • Karma: +104/-89
  • Inconsistently correct systems DON'T EXIST!
    • View Profile
Re: Code Generation
« Reply #22 on: May 04, 2011, 11:17:30 pm »
Quote
Hmm, you go my doubting, so I downloaded the MDA Guide Version 1.0.1 from OMG, and there it clearly states
Quote
2.2.11 The Computation Independent Model (CIM)

But aside from this nitpicking, I agree with you on the actual subject  :)

Geert
What would they know?  ;)

They're Americans - they don't even speak English!   ;D

(Ducks for cover...)

My bad in that case...

PAolo
Inconsistently correct systems DON'T EXIST!
... Therefore, aim for consistency; in the expectation of achieving correctness....
-Semantica-
Helsinki Principle Rules!