Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [emft-dev] Contribution to EMF-Compare as a Master's Thesis

Hi Tobias

nice idea, I've been thinking about doing something similar but never really found the time.

Just some thoughts from my side.
Theoretical issues:
* It's a common understanding that model merging (and therby diffing) is something domain (metamodel) specific, e.g. it depends a lot on the concrete syntax. It is likely you won't satisfy everyone with your solution. * Note that most UML2 tools only provide poor solutions for model diff/ merge. I don't want to say it's impossible, but there doesn't seem to be an easy solution especially for the generic case. Maybe you have to restrict it to (some) explicit scenarios. * Diagrams only show parts of a semantic model. How do you deal with the invisible diffs?
* A diff might need a different metamodel, e.g. changed multiplicities
* What kind of differences do you want to show wrt. ecore?

Technical issues:
* One of the major problems is how to get two models aligned.
  * Consider using UUIDs for the model elements
* One idea was to preprocess the two models and merge them into one with annotated elements. This should have less impact on the generated GMF code. * Maybe it's easier to override the "getSemanticChildren" methods of specific EditParts to return elements from both models. * Don't wrap the EditParts but add additional EditPolicies that change properties of the shapes. This is far more GMF/GEF like.

Good luck
Jan

Am 30.04.2008 um 11:33 schrieb Tobias Jähnel:

Hi,

fist of all I don't know if this list is the right place for
discussing my concepts. If not, please point me to the right place.

What do I want to do in my Master's Thesis?
Create a diff viewer for EMF models using EMF compare, which goes
beyond the current tree structure.
This actually means displaying the model with edges and nodes using
draw2d figures.
Since the EMF model itself does not contain any information about the
graphical representation,
ideally any editor which is created or will be created using GMF,
should be able to serve as the base.

Goals would be as follows:
1 make use of any GMF editor to draw shapes and modify them
 (e.g. dotted lines, various colors) to show deleted, added and
  modified nodes/connections in a convenient way.
2 enable the creator of the GMF editor to override those defaults
 and define how deleted/added/edited nodes and connections should look

I think this might be too much work for my Thesis, because there is
more than this to do.
But I can definitely do parts of it.

After some weeks of getting familiar with EMF, GMF and GEF, my idea to achieve
this is as follows:
- Use the EditPartFactory, which has been registered for the editor,
to fetch the EditParts
- Wrap my own EditParts around the original EditParts (decorator pattern)
 I can now change the original look of the shapes.
- For Goal 2 a new extension point can be introduced. I haven't thought so much
 about this yet, because it should not be the big problem

The reason I chose not using the decorator approach of GMF
(DecoratorProvider) is, that it does
probably not fit the requirements. The documentation says, that it is
inteded to decorate the shapes by
drawing something like an overlay on top of the shape. But I want to
change the look of the shape
itself. I read somewhere on the net, that it is possible to fetch the
edit part from the decorator and
modify the figures directly. If this is right, it would probably be a
better approach than mine.


Thank you for your attention. :)

Please tell me what you think about my ideas. Please also tell me if
this is not practible, conflicts
the design of GMF etc., this is not what you need or you don't like it
for any other reason.
Any suggestions are welcome because I'm new to EMF, GEF and GMF. :)

Toby

PS.: I've found a way to come into IRC at work now. If it's easier to
discuss things directly rather than email, my name is "jfbtoby" there.

On Wed, Apr 16, 2008 at 1:36 PM, Tobias Jähnel <tjaehnel@xxxxxxxxx> wrote:
Hi Cédric,

thank you for your suggestions.
In fact the first one is the most interesting for me, so I decided to
go into this topic.
I sent an e-mail to my professor to ask him if this is an option, but
I haven't got a response yet. Though I don't think there will be any
problems.

Unfortunately I cannot come into IRC. All IM protocols, including IRC,
seem to be blocked by the proxy of the company (only ICQ is working).

Could you go a bit deeper into what you expect?
When you write "... and integration in graphical modelers", do you
think of any concrete graphical modelers available?
I think there should be an easy way to integrate with any modeler.

Toby



On Thu, Apr 10, 2008 at 7:02 PM, Cédric Brun <cedric.brun@xxxxxxx> wrote:
Hi Tobias,

Any kind of contribution is obviously welcome!

It really depend on your own interests but here are the challenges I can think
of  (both intellectualy and practically interesting) :

* Differences representation and integration in graphical modelers : this one is tricky in the sense that we did not figured out yet what is the best representation of differences for the end user. That's part of the reason why we define many API so that other plugins may refactor the way differences are kept and displayed. The user quickly ends up with many differences and the classical hierarchical way of representing models doesn't fit with the user
expectations, there's obviously room for improvements.

Correlated to this subject is "how we can visualize differences in a graphical modeler", it's not a technical concern as it doesn't seems like GMF is a blocker for that, it's more, there again, about what we need to display,
where, and how, to help the user manage the model evolutions.

The Ecore Tools guys want to integrate emf compare in the Ecore modeler, this could be a nice testbed for ideas concerning the graphical representations.


* Huge models management : the current implementation of the
GenericMatchEngine is not able to handle huge models, (by huge models I mean more than 1GB ones) because the principles and algorithms are just not rights
for such data. Another interesting subject could be to provides an
alternative match engines for such models.

That's two subjects I can think of but of course it's up to you, just to let you know on the "research" side we'll work in the following month with the Aquila University (Italy) on a model representation of the differences (models changeset/patch) providing the same features as the textual patch format (with fuzzy searchs and stuffs like that) but all the other areas are
opened for experimentation :)

In a nutshell, the first subject I described seems to fit quite nicely with your "part 2", the second one is just another area in which we know we have some progress to do but whatever you want to focus on we would gladly help
you !

You can use this mailling-list or come on the #eclipse-modeling IRC chan for
live discussions, Laurent is "Kellindil" there and I'm "Tortoose".

Cheers,

Cédric


Le Thursday 10 April 2008 11:05:54 Tobias Jähnel, vous avez écrit :


EMF Compare developers,

I am Tobias Jaehnel, student of Computer Science in Nuremberg, Germany.

I'm going to start my Master's Thesis and I'm interested in
contributing to the EMF-Compare project.

Background:
The topic I have chosen for my thesis it based on a state-chart
editor, which uses EMF and GEF. This editor has been developed in the company I'm working for, for very particular needs. My thesis should
be divided into two parts.

Part 1: Design and Implementation of an algorithm to find the
differences between two state charts
Part 2: Visualizing the differences in one or two ways, which are
convenient for the user

After some research I found EMF Compare, which fits our requirements
and entirely covers Part 1.
Since I do not want to reinvent the wheel but are still very
interested in this topic, I'm looking for some other challenge now.

Can you think of a component or topic I could develop for you?
I actually want to keep Part 2, but I would appreciate it, if I could
make a contribution to EMF Compare in addition.

Thanks in advance.

Regards,
Toby
_______________________________________________
emft-dev mailing list
emft-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/emft-dev


_______________________________________________
emft-dev mailing list
emft-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/emft-dev


_______________________________________________
emft-dev mailing list
emft-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/emft-dev

--
Dr. Jan Köhnlein
Senior Software Architekt

Telefon: +49 (0) 431 / 5606-337
Telefax: +49 (0) 431 / 5606-339

http://www.itemis.de
jan.koehnlein@xxxxxxxxx

itemis AG
Schauenburgerstr. 116
24118 Kiel

Rechtlicher Hinweis:

Amtsgericht Dortmund, HRB 20621

Vorstand: Wolfgang Neuhaus, Jens Wagener, Dr. Georg Pietrek

Aufsichtsrat: Prof. Dr. Burkhart Igel (Vors.) Stephan Grollmann, Michael Neuhaus




Back to the top