Google

November 9, 2011

4 years ago, I joined Obeo, a startup focused on model driven engineering. At that time, I just finished my google summer of code for Eclipse Foundation, and it was a nice opportunity to join a company involved in the eclipse community. Tomorrow, it will be my last day of that adventure, an adventure I have decided to leave for reasons I explain below.

Obeo has been using Eclipse as unusual propulsion system, we have benefited a lot from the eclipse platform and its modeling stack but we have tried to give back as much as we have received, creating a driving force.

The people I have worked with at Obeo are brilliant. I am not writing that for the blog post, I really think it. You probably already know some of them (Alex, Cedric, Fred, Goulwen, Laurent, Mikael, Stephane, William) involved in eclipse projects, I can tell you there are others doing awesome modeling stuffs. I will miss those guys.

The first reason of my departure is that I feel like working on other topics. Before joining Obeo, I worked on various subjects, not modeling related and sometimes even not software engineering related. I like that diversity and I believe in the transversality of knowledge as well as in the strength of experience.

The second one is the wish to take up new challenges. We took up several at the beginning of Obeo, in particular on the project I was working on, but, with the growth of the company, opportunities to work on disruptive innovations became less frequent.

I don't know yet how I will be involved in Eclipse in the future, so I would like to thank you Eclipse community, it has been a pleasure.

November 8, 2011

The modeling symposium at EclipseCon Europe 2011 was really nice with several talks on various topics related to modeling. I would like to thank all presenters and particularly István who filmed all presentations with his smartphone.

Last week I presented with Martin and Benjamin why collaboration in modeling becomes an important concern, the issues we currently encounter, and the eclipse technologies which are improving to provide seamless collaboration.

In the last five years models usage generalizes, modeling tools matured a lot, but often they have not be designed to allow one to work efficiently in team.

On the same time, collaboration, in a general manner, took a predominant place in tools and medias. Successes of Wikipedia and the Huffington Post show that trend.

Modeling or not, working with others is a challenge. Which separation of work ? Which rules to set up to keep the coherence ? How to deal with the different concerns people may have ? Answers are often most organizational than technical, however tools, technologies may constraint your organization and you way to work in collaboration.

Model together is first dealing with a large amount of information and depending of your manner to represent them it could become quite tricky.

For graphical representations, beyond layout problems, from a certain number of elements, we are not able to focus on the useful information, the signal noise ratio becomes to low.

Even without representation scalability remains an issue, as by default EMF load the entire model in memory.

How many times are we not able to understand legacy code or models done by others ?

It is necessary to document your models and explains your choice behind design decision, but it is as important to keep documentation synchronized across the changes and refactorings you made.

To collaborate means dealing with concurrent accesses, and often end users do not want to have to compare or to merge. Starting from that requirement you quite easily ends up with some kind of pessimistic strategy.

The most simple implementation of this strategy is an instant messaging discussion. As long as your model is not changing too often its bearable. Sophisticated versions of that implementation are directly integrated in an SCM supporting file locking, but that remains a not very elegant solution.

From that you'll try to avoid blocking the whole team and then you'll split your model into many files. It's slightly better but it's not that easy to do, as you have to carefully design your Ecore model avoiding most of the cross references.

More over EMF fragments are not correctly supported by many tools.

The other strategy, called the optimistic one, is to allow conflict happens and to deal with them when they occur. It looks like a dice game, and depending on the frequency, it could become hard to deal with conflicts.

Those problems could be tackled with several technologies which enable one to work more naturally in collaboration.

How to deal with large diagrams ?

Thanks to EMF Mylyn bridge we are able to focus in the diagram on the information which matters, the information contextual to a change you have to do or that somebody else did.

How keeping documentation and model synchronized ?

Thanks to Mylyn Intent we could mix natural and formal language. This is some kind of literate programming adapted to modeling with one specificity : you can update the model, or the doc, it doesn't matter, the tool help you keeping them synchronized anyway

How to support better models fragmentation ?

Model tools could be behaving like the tools we are used to when programming. They should not make the assumption that every referenced element will always be there. This is possible by playing nicely with the EMF proxy mechanism.

Keeping models coherent with fragmentation could be ensured through platform logical models. That API enables components to trigger changes on any file operation.

How to avoid models splitting ?

CDO is an impressive technology which have been around in Eclipse for a few years now. It keeps getting better and provides, as a model repository, every service you might dream of. Using it, one is able to build a solution based on pessimistic locking at the model element level, with live updates when you are connected.

If you are more interested by the optimistic strategy, CDO offers the possibility to provide conflict resolver, to solve conflicts in the more automatic way, when they happend.

CDO does not enable only efficient collaborative strategies, it solves the scalabilty issue, by loading only necessary model elements and unloading them automatically.

I would like to share with you what is happening on a broader scale. Those technologies are only a start in collaborative modeling, and there are many ways to get inspiration about collaboration, github or google docs for instance.

Of course a large part of this talk was reserved for demos of the improvements in Mylyn, EMF Compare, EGit, and Dawn, but I have currently no video of them to share.

November 2, 2011

Xtext 2.1 allows to define languages for the JVM by just implementing two simple scripts.In this short demo, I'll show an example of using this new API. You'll see what these scripts are about and how awesome the the resulting language and its IDE support is.

The evolution of the MDT/OCL project from Java-only model support to anOCL IDE will be briefly described. The extensive use of Acceleo and Xtextfor auto-generation of both Eclipse OCL and the OMG OCL specification willbe outlined. Finally the OCL 2 Java code generator will be announcedeliminating parsing costs at run-time and accelerating execution by one totwo orders of magnitude

I would start by the presentation of the new Acceleo interpreter
view with its different features. I'll show how it can be used to
execute OCL queries on EMF based models. Then I'll highlight its
integration with Acceleo by using it combined with the Acceleo debugger.
Finally, I'll explain how this view, that has strictly speaking, no
dependencies with Acceleo can be used by other projects with a small
example of its use without Acceleo to support another language.

This presentation introduces EMF-IncQuery, a declarative and scalable EMF model query framework. EMF-IncQuery uses a graph query language, and provides incremental query evaluation by caching the results of the model queries and incrementally maintaining the cache when the underlying EMF model changes. Furthermore, the EMF-IncQuery framework can be easily integrated into existing EMF-based applications in a non-intrusive way. During the talk, we quickly overview how easy it is to define and integrate highly scalable model queries into existing EMF-based applications, in the form of a very short live demonstration using the MDT Papyrus modeling tool. The scalability of the engine will also be demonstrated, with on-the-fly constraint revalidation that takes less than 100 milliseconds over large AUTOSAR models with over 1 million elements.

EMFStore is a model repository for EMF and allows to collaborativelyedit EMF models and keep a version history. EMFStore can be integratedinto EMF-based RCP applications to provide the application with itscapabilities. In this demo we will show an industrial customer application where EMFStore was integrated and inspect the code that was required to do so.

Have you ever been in a situation in which you would like to annotate an
EMF model with additional information, but the last thing you wanted to
do was to change its metamodel to made that possible? I bet the answer
is yes for almost anybody that has been using EMF for a while. In this talk I will present EMF Profiles a solution inspired from UML Profiles which provide a light-weight model annotation mechanism.

JetBrains MPS is a powerful language workbench available under the Apache 2.0 license. It uses projectional editing, so it supports quite flexible syntax as well as language modularization and composition. Best of all, the development roadmap include an integration with Eclipse in the context of version 3.0. In this slot, I will give you a short demo of what MPS can do.

Hope to see you there !
If you would like to be included in this program, please contact us .