Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » GMF (Graphical Modeling Framework) » To develop domain specific modeling language - GMF or SysML(Choice of Eclipse based modeling technologies )
To develop domain specific modeling language - GMF or SysML [message #835830] Tue, 03 April 2012 18:27 Go to next message
Arnaldo Caprai is currently offline Arnaldo CapraiFriend
Messages: 17
Registered: April 2012
Junior Member
Hi All,

I need domain specific modeling language with code generation for a very specific domain (Analysis techniques), for non IT domain experts.

What would by my best bet between GMF/EMF or by SysML.

My aim is to develop domain specific modeling language with code generation with an editor.

I would really appreciate, if someone can please pass me any information, link, tip on it, highlighting the pro and cons of GMF/EMF vs SysML.

Kindly,
Arnaldo
Re: To develop domain specific modeling language - GMF or SysML [message #835956 is a reply to message #835830] Tue, 03 April 2012 22:27 Go to previous messageGo to next message
Elvis Dowson is currently offline Elvis DowsonFriend
Messages: 65
Registered: December 2011
Member
Hi,
If you want something workable, and robust, I would recommend that you try out IBM Rhapsody 7.6.1. Rhapsody has a component called Rules Composer, which will allow you to parse a Rhapsody model (UML or SysML), and generate code. Depending upon the language to which you are generating the code, e.g. if you have a SysML project, simulation/executable code is generated in C++, and you will be able to animate the SysML diagrams. If you generate code from a UML project to Java, C, C++ or ADA, you can also animate the UML diagrams, while the code is running on a target operating system, using a TCP/IP connection between the host and the target environment. If you code generation target is C#, you won't get animation support, because the Rhapsody framework hasn't been ported for C# .NET.

My experience so far, in terms of DSLs and DSMs with Rhapsody, is that Rhapsody allows me to get things done, quickly.

In terms of Eclipse, I've been exploring/learning GMF, but I'm having a hard time getting the tooling to behave consistently or reliably. For example, if I create a gmfmap, and then explore the mapping in using the GMF mapping editor, all the mappings are wrong. I end up spending a lot of time, cleaning up the errors introduced by the GMF tooling.
EMF is very mature and reliable, but GMF isn't.

I also spent sometime, looking up how to create DSLs and graphical editors using Visual Studio 2010, and the Microsoft implementation, works really well. It doesn't have a whole lot of flexibility or power, but it gets the job done nicely, without too many tooling related inconsistencies. You'd only consider the Microsoft route if you had to develop code in .NET, else Eclipse, Rhapsody or Rational Software Architect are you best bets.

For the Microsoft side of things, here is an intro: http://code.msdn.microsoft.com/windowsdesktop/Visualization-and-Modeling-313535db

You might find reading the following books useful:

Common for all platforms:
Domain-Specific Languages by Martin Fowler - Addison Wesley -2010.

For Eclipse:
Eclipse Modeling Project - A Domain-Specific Language Toolkit - Addison Wesley - 2009.
The Eclipse Graphical Editing Framework - Addison Wesley - 2011.
EMF Eclipse Modeling Framework 2nd Edition - Addison Wesley - 2008.

For Visual Studio:
Practical Code Generation in .NET - Addison Wesely - 2010

On the topic of your end users being IT savvy or not, GMF might allow you to create more user friendly diagrams, but you might struggle with the tooling, to get the job done (my experience so far, still learning). If you have technical users, the SysML language is more formal, and is usually used for embedded systems modeling and design or systems engineering tasks. You need qualified people, to wield the SysML language. The diagrams might not be so appealing, but in terms of code generation, you have better control, especially when it comes to execution behavior specification and observability at runtime (depending upon your tool's capabilities).

Elvis Dowson

[Updated on: Wed, 04 April 2012 08:06]

Report message to a moderator

Re: To develop domain specific modeling language - GMF or SysML [message #836249 is a reply to message #835956] Wed, 04 April 2012 09:17 Go to previous messageGo to next message
Ralph Gerbig is currently offline Ralph GerbigFriend
Messages: 702
Registered: November 2009
Senior Member
Hi,

you should consider to use EMF/GMF/XTEXT.

EMF: You will get a clean domain model
GMF: You can rapidly set up a graphical model on your domain model. Try out the mind map example from the Wiki
XTEXT: You can easily define textual syntaxes for your domain model and get editor generated out of each other.

There is an example in the XTEXT documentation on how to get GMF and XTEXT work with each other. I think this should tackle your problem with 100% open source software.

Ralph

[Updated on: Wed, 04 April 2012 09:17]

Report message to a moderator

Re: To develop domain specific modeling language - GMF or SysML [message #836314 is a reply to message #835956] Wed, 04 April 2012 10:40 Go to previous messageGo to next message
Arnaldo Caprai is currently offline Arnaldo CapraiFriend
Messages: 17
Registered: April 2012
Junior Member
Hi All,

Thanks for your informative replies.

@Elvis
As you had mentioned that "GMF might allow you to create more user friendly diagrams" and "If you have technical users, the SysML language is more formal".

Can you please highlight on this, what it means by more user friendly ? is it any comparison conducted or article. What I mean how to support this statement:

GMF based diagrams can be more user friendly than SysML and provides better support for non technical users.

Please I would really appreciate your guide and effort for me and others who read this topic to make better choice.

Best regards,
Arnaldo
Re: To develop domain specific modeling language - GMF or SysML [message #836328 is a reply to message #836314] Wed, 04 April 2012 10:58 Go to previous messageGo to next message
Ed Merks is currently offline Ed MerksFriend
Messages: 33113
Registered: July 2009
Senior Member
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Arnaldo,<br>
<br>
I think the point is that you can make the diagrams look <b>exactly
</b>like how you want them to look for your own specialized purpose
and hence you can make them friendly to your users, whatever that
means to your users.  But of course it's quite a bit of work to make
things look really nice...<br>
<br>
<br>
On 04/04/2012 12:40 PM, Arnaldo Caprai wrote:
<blockquote cite="mid:jlh8fi$pgf$1@xxxxxxxxe.org" type="cite">Hi
All,
<br>
<br>
Thanks for your informative replies.
<br>
<br>
@Elvis
<br>
As you had mentioned that "GMF might allow you to create more user
friendly diagrams" and  "If you have technical users, the SysML
language is more formal".
<br>
<br>
Can you please highlight on this, what it means by more user
friendly ? is it any comparison conducted or article. What I mean
how to support this statement:
<br>
<br>
GMF based diagrams can be more user friendly than SysML and
provides better support for non technical users. <br>
Please I would really appreciate your guide and effort for me and
others who read this topic to make better choice.
<br>
<br>
Best regards,
<br>
Arnaldo
<br>
</blockquote>
</body>
</html>


Ed Merks
Professional Support: https://www.macromodeling.com/
Re: To develop domain specific modeling language - GMF or SysML [message #837675 is a reply to message #836314] Fri, 06 April 2012 00:45 Go to previous messageGo to next message
Elvis Dowson is currently offline Elvis DowsonFriend
Messages: 65
Registered: December 2011
Member
Hi Arnaldo,
Arnaldo Caprai wrote on Wed, 04 April 2012 12:40

GMF based diagrams can be more user friendly than SysML and provides better support for non technical users.

Please I would really appreciate your guide and effort for me and others who read this topic to make better choice.


SysML is based on a sub-set of the UML modeling language, with a few additions. Please refer the following book, for more details on using the SysML language for modeling systems (spanning systems requirements, architecture, design and behavior).

A Practical Guide To SysML - The Systems Modeling Language - Morgan Kaufmann - 2008

If you look back on the history of UML, it was initially used to express and communicate software design. Tooling was initially developed to support visual modeling of software designs. For example, way back in 1996, Rational Rose 0.8 used to be free, and had support for 3 types of UML diagrams, a use case, a sequence diagram and a class diagram.

Later on, the tooling was improved to support skeleton code generation from class diagrams. In parallel, work was being done on executable UML (say between 1999 and 2000), and tools like Rhapsody were one of the first ones to fully support real-time executable UML (where you could specify, model, generate production quality code and simulate/debug it on a live running target).

Fast forward to around 2005, SysML was created, as a UML profile, to support domain specific modeling for systems engineering. In very simplistic terms, change a class to a block, a class diagram to a block definition diagram / internal block diagram, keep the same state machine diagram, etc. Add code inside a state (action on entry, action on exit, reaction in state), a class method, or a state transition action block. Couple that with a real-time executable framework, and you have a way to specify and model systems behavior.

Depending upon your industry, you can have integrated modeling workflows, starting with DoDAF/MoDAF/NAF to SysML to UML, to model operational requirements, to system requirements to software requirements.

If you could share the problem / background context / system that you're trying to develop, it help narrow down, on whether you're better off using SysML or UML, and creating a UML profile + develop a code generator, or if you should consider creating your own domain-specific language and a corresponding code generator.

In general defense, military & embedded systems projects use SysML & UML, since they require a certain level of rigor and formalism for their systems and software engineering processes.

However, if you want to completely tailor and express or model a problem, that uniquely suits your domain, and you want your users to immediately identify with the domain constructs, you could consider creating your own DSL, and a corresponding graphical DSL notation. The tooling for this can be realized using GMF/EMF. Try running the Taipan example, for an idea of just how uniquely your can end up tailoring your application.

I've attached a technote that shows you how to install the GMF examples, for Eclipse-.4.2 Juno, since I had a bit of trouble getting the sample to run, the first time around.

Best regards,

Elvis Dowson

[Updated on: Fri, 06 April 2012 00:46]

Report message to a moderator

Re: To develop domain specific modeling language - GMF or SysML [message #838391 is a reply to message #837675] Sat, 07 April 2012 01:38 Go to previous messageGo to next message
Arnaldo Caprai is currently offline Arnaldo CapraiFriend
Messages: 17
Registered: April 2012
Junior Member
Hi Elvis,

Thanks a million, very well explained.

Cheers Very Happy
Arnaldo
Re: To develop domain specific modeling language - GMF or SysML [message #841103 is a reply to message #835830] Tue, 10 April 2012 22:52 Go to previous messageGo to next message
Steven Kelly is currently offline Steven KellyFriend
Messages: 3
Registered: April 2012
Junior Member
Hi Arnaldo,

You may also want to consider the latest addition to the Eclipse modeling world, the Eclipse plugin for MetaEdit+. As with Rhapsody that Elvis mentioned earlier, MetaEdit+ is a commercial tool, so you have to pay but can expect a mature experience. I work on MetaEdit+, so my opinion isn't worth much Smile, but the Eclipse language workbench experts seem to like it:

Markus Voelter, 27 March 2012:
What I said years ago is still valid: if you want to do (exclusively) graphical DSLs, MetaEdit+ is way better than anything else. #lwc2012

Tijs van der Storm, 27 March 2012:
MetaEdit+ is in its own league. Great tool @stevekmcc @mccjpt! #lwc2012

The #lwc2012 tag is for the "Language Workbench Challenge" 2012, which had 10 language workbenches implement a domain-specific language and generators for the same domain. If you want a look at the various tools out there for creating DSM languages, that's a great place to start. GMF wasn't represented there, but was present in the similar "MDD-TIF" in 2007. [I can't post links, but just search for the terms in quotes.]

Of course, tools are only one side of the problem: the other is figuring out what language to create. We've analyzed 76 cases to find some "Worst Practices in DSM" to avoid, Markus Voelter has published his view on "MD*/DSL Best Practices", and our "DSM book" takes you through the whole process from a tool-independent point of view.

Good luck with your language, and feel free to shout if you have any questions!
Steve
Re: To develop domain specific modeling language - GMF or SysML [message #873514 is a reply to message #841103] Fri, 18 May 2012 12:12 Go to previous message
Arnaldo Caprai is currently offline Arnaldo CapraiFriend
Messages: 17
Registered: April 2012
Junior Member
Dear Steven Kelly
Thanks a million on your useful reply.
Previous Topic:Problem with connector of Tree Routing type
Next Topic:PaletteStack Problem
Goto Forum:
  


Current Time: Fri Mar 29 08:02:34 GMT 2024

Powered by FUDForum. Page generated in 0.02966 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top