Home » Modeling » GMF (Graphical Modeling Framework) » To develop domain specific modeling language - GMF or SysML(Choice of Eclipse based modeling technologies )
|
Re: To develop domain specific modeling language - GMF or SysML [message #835956 is a reply to message #835830] |
Tue, 03 April 2012 22:27 |
Elvis Dowson 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 |
Ralph Gerbig 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 #837675 is a reply to message #836314] |
Fri, 06 April 2012 00:45 |
Elvis Dowson 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 #841103 is a reply to message #835830] |
Tue, 10 April 2012 22:52 |
Steven Kelly 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 , 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
|
|
| |
Goto Forum:
Current Time: Tue Jan 14 21:19:14 GMT 2025
Powered by FUDForum. Page generated in 0.04067 seconds
|