Difference between eclipse sirius and epsilon - model-driven-development

Can someone help me?
I would like to know the main differences between the eclipse sirius and epsilon to develop M2M solutions or another MDE approach.
Thank you

Sirius is mainly for developing Editors for models that conform to ECore metamodels. Epsilon is a framework for model management tasks: transformation, validation, merging, cote/text generation, etc.
If you want to write model to model (M2M) transformations you can use Epsilon. If you want to provide a custom editor for your models (e.g. not a tree editor) use Sirius.

Related

Diagrams to describe behavior of application

I built an application which is integrated in open source program( you just download the binary of the program, run it and then my integrated module will execute when you click on one single button called translate. That's all. )
What the application does is that when user builds some schema in the open-source project I mentioned above it generates C++ code for the schema. It's java program written in OOP style( classes, polymorphism, inheritance, encapsulation). There also runs some algorithms like top sort for finding topological sorting or bfs.
Since I study software engineering and will be presenting the application I would like to draw some UML diagrams or diagrams in general which would help me to better describe the application/ behavior of application itself.
Since it's not typical web-based project ( does not use any database etc... ) except for class diagram I don't know what what would be good to use.
Could anyone give me some diagram names which would help me to describe the behavior of my application better? I appreciate all the help.
You are looking for sequence diagrams, activity diagrams and/or state diagrams to describe behavior.

Choosing between ATL and QVT for model to model transformation

I want to transform a model (in XMI format) based on the JaMoPP Java 5 metamodel to another model (also in XMI format) based on a basic C++ metamodel that I created using Xtext. After some research, I found two tools for Model To Model transformations: ATL and QVT.
What are the main differences between the two and what are some reasons to use either one instead of the other?
Using/choosing a model transformation language is the same as using a general purpose language (GPL): own preference and background. As with GPLs, some transformation languages will probably fit your programing style better or exhibit better performance for your specific domain. IT might boil down to only the couple that support your modeling technology (e.g. your models are csv files). Additioanly, as opposed to GPLs, modeling languages are quite young and hence an important question atm when picking is tool support and possibly language future developemnt.
On a side note, let me remind you that the QVT specification actually defines three languages: QVTr, QVTc and QVTo.
ATL, QVTr and QVTc are all declarative, while QVTo is imperative (altough ATL allows some mixed descriptions). Other transformation langauges out there can be classified accordignly and should be an important decision point. Also, current tool support for QVTr is limited and unexistent for QVTc. I would recomend reading about them a bit more, perhaps inlcuidng other languages like Epsilon's ETL, Kermeta, etc., and based on your needs make a pick.

Database design using UML

I want to design a database.I heard UML is one of the way.
What is the advantage in using UML?
When should I decide I have to use UML ? and also after generating the code from model how should I proceed?I'm using UML studio for designing the database.
There are many advantages but it mainly depends on how you use it and to what purpose. The first is that by means of a graphical modeling language it might be easier to look at the whole database architecture and possibly find improvements. The second important reason is that being platform independent you can, in principle, generate different artifacts supporting your database implementation (i.e. SQL scripts, Data Access Objects, documentation, etc.)
Now I don't know UML Studio but in Eclipse you can use Papyrus to model your DB architecture (a stereotyped class diagrams should be enough) and Acceleo to define and execute your own model to text transformation workflows.
This may help you
http://lowcoupling.com/modeling
http://lowcoupling.com/post/47802411601/uml-diagrams-and-models-with-papyrus
http://lowcoupling.com/post/47347056110/models-to-text-transformations-with-mofm2t-and-acceleo
I'm a big fan of UML, but UML diagrams are not the best solution to model databases, and especially Entity-Relationship. In fact all the best UML modeling tools support ER diagrams, too (besides many other types of diagrams). Yes, class diagrams can be used in a similar way, but ER diagrams offer a better visualization and support specific presentation options; you can define the type of each attribute among those supported by the specific DBMS you are using. I love Visual Paradigm, as UML and ER tool, but it's only my taste. Normally you have other nice options in advanced IDE supporting DB modeling, like real DB reverse engineering, SQL generation, support for physical and logical models (using different data types), and so on.
I would use a class diagram to model a DB only if I can't use another tool supporting ER diagrams.
Hope this helps!
Luca

How to design a UML diagram with a scripting language?

I'm designing a software component which will get instructions from other components on how the UML diagram should look like, and then will produce this UML diagram in different presentation ways (in SVG, GIF, etc.), for example (in Java):
DiagramDesigner designer = new DiagramDesigner();
designer.setStyle('Use Cases')
designer.addActor('User');
designer.addUseCase('Print Document');
// etc.
String svg = designer.getSvg();
I don't want to re-invent the wheel and want to use some industry-standard language/interface for interconnection between my DiagramDesigner and other components. I'm looking for an interface similar to DOM, but for UML, not for XML.
Can anyone help? Thanks in advance.
ps. Besides the example above I would like to make my diagrams inter-operable and transferrable between servers, e.g.:
// first server
String script = designer.getScript();
// second server
DiagramDesigner desiger2 = DiagramDesigner.import(script);
So if I understand you right, you are looking for a way to work with UML on the metamodel level. You should look at the MOF standard and its implementation the EMF (Eclipse Modeling Framework), which is used by almost all Eclipse based UML tools and this framework is used by many other modeling projects, it even somewhat influenced the standardization of MOF (resulting in SMOF and EMOF split) and therefore I would declare it industry standard.
Probably only loosely related but anyhow: PlantUML. It is open source, built in Java and likely contains already parts of what you want to do.
You can inspire from these scripts to generate any output you want:
http://askuml.com/
Currently examples are given in yUML because they're nice but could be anything.
At least for the syntax part, you could get some inspiration from the large set of textual UML tools (theses tools allow designers to textually specify the model and then they automatically show the model graphically using the standard UML notation).
At least of such tools here: http://modeling-languages.com/content/uml-tools#textual

Editors to draw diagrams in Unified Modeling Language?

I was wondering how you draw diagrams in Unified Modeling Language for your project design? By hand on paper or some editors on computer? It will be great if there are some convenient editors or other gadgets for help. I am programming under Windows and Ubuntu.
Thanks and regards!
I used Sparx Enterprise Architect.
I reverse the java project and then just drag and drop from the Package Explorer to the diagram. When I have finished to present the existing classes I then add UML classes in the diagram. No code generation or model driven, just UML graphical representation mixing existing classes and abstract classes. I give my diagrams to the team and let them integrate it.
I am very lazy when modeling :-)
(source: forum-omondo.com)
I can see my classes and navigate from one package to another showing associations, inheritances and dependencies dynamically. No need to create a diagram per view, I prefer to use the show hide links and directly navigate in the java code and model from the same diagram it is easier and a lot more powerful because interactive.
(source: forum-omondo.com)
(source: forum-omondo.com)
Just using the class contextual menu I can navigate. Really cool
(source: forum-omondo.com)
I used Poseidon for UML for quite a while.. not that bad, it's just a little bit slow since it's written in Java.
If I remember correctly it also has a community license that can be obtained for free..
I would vote for StarUML
maybe its not brand new, but it does the job!
It works under Windows.
read more about StarUML
I use Dia for my diagramming needs. It's open source and cross platform so you can switch between OS's without worrying about which format your diagrams were in. It exports to several different image types and has a Portable version (for Windows) as well.

Resources