Models Everywhere

Various considerations about Model Driven Engineering

YADOMAP (Yet Another Discussion On Modeling And Programming)

Posted by jbezivin on February 9, 2013

YADOMAP (Yet Another Discussion On Modeling And Programming)

There are several issues that are related but not completely equivalent. For example we may separate the two discussions threads:

  1. What is the relation between models and programs?
  2. What is the relation between model engineering (or modeling) and program engineering (or programming)?

In the first case we only compare mere artifacts. In the second case, the comparison is much more general, about processes and contexts. Of course models are the main artifact of model engineering and programs are the main artifact of program engineering.

There is another interesting dimension that could be considered in this discussion. Model and program artifacts have the particularity of conforming to languages. So we could ask the question:

  1. What is the relation between a Programming Language (PL) and a Modeling Language (ML)?

A good indication of the consensual community agreement on this could be obtained by presenting a list of languages or notations to members of the community, asking them the following question: For each language do you thing of it as a PL (directly contributing to executable code) or as a ML, i.e. a language that may somewhat contribute or help producing code but that does not directly produce executable code for applications (i.e. not a PL). Let us suppose people have no choice of other categories of languages.

PL

ML

Java

X

UML

X

C

X

Assembler 360

X

Flowchart

X

SADT/IDEF

X

Prolog

X

BPMN

X

Z

X

Lisp

X

B

X

SQL

X

R

X

Javascript

X

SysML

X

HTML5

X

JSON

X

XML

X

Petri nets

X

Excel

X

DFD

X

ADA

X

xUML

X

SPEM

X


Do these answers correspond to what most people consider as Programming Languages (PL) or as languages that are not PL and that we may name Modeling Languages (ML)?

The history of programming languages is well known; there has been plenty of papers and books written on this.

The history of modeling languages is much more obscure. The reason is that most of these languages have not been originally considered as modeling languages because the expression is quite recent. They have been associated to:

  • methods (formal or semi-formals)
  • requirements
  • specifications
  • etc.

In the simplified drawing below, one can see that such general “modeling languages” are nearly as old as programming languages. Furthermore the history of modeling languages parallels the history of programming languages.

PLML.Tracks

So what we need is some kind of consolidated history of modeling languages. If we look at all these notations from the modern point of view of DSLs, we may find there a rich matter for reflection, that does not reduce to UML only ;)

About these ads

One Response to “YADOMAP (Yet Another Discussion On Modeling And Programming)”

  1. TY said

    I think the differences between ML and PL is depended on their targets (models and programs) and may be the different ways to use them, so, we have to first discuss the the differences between models and programs if want to discuss the differences or relationships between ML and PL.

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

 
Follow

Get every new post delivered to your Inbox.

Join 31 other followers

%d bloggers like this: