Blog

Model Driven (Engineering / Architecture / Development) is not about generating Java class skeletons from an UML class diagram. If you still think like that, I suggest you to read the Ed Merk's slides about the "The Unbearable Stupidity of Modeling". This title is a beautiful self-mockery from the man of modeling at Eclipse but above all, it's a very good listening of different criticisms from the community and gathers a set of objective answers.Hope this will convinced you that modeling is not just UML to Java...Lien d'origineAuteur d'origine: Mika...

Posted on in Blog
Acceleo 3.0 is on its way out. It is currently accessible in its third Release Candidate (RC3) version. The complete list of improvements and bug fixes that have been implemented in this version since the last stable release (version 0.8.1, see my previous post for explanation on this branch's version numbering) is humongous; following is the list of the most important ones. I may be succinct on the description of some of these, but you can get a full explanation of all of them in the Acceleo documentation, namely the User Guide. Be warned though, this will be a huge post :).Compatibility and upgradingAcceleo 3.0 is compatible with the three latest releases of Eclipse; Eclipse 3.4 (Ganymede), Eclipse 3.5 (Galileo) and Eclipse 3.6 (Helios). However, there are some limitations to this compatibility we maintain due to the changes that were implemented in OCL since then. For one, Acceleo modules that compile in Helios may or may not compile in Galileo and Ganymede (this will depend on the ...

Posted on in Blog
It was recently asked on a mailing list how one would order the elements they iterate over in an Acceleo for loop. The elements were UML ControlFlows as in :- Package|-- Activity   |-- ControlFlow1   |-- ControlFlow2   |-- ControlFlow3The first answer that came to mind, using standard OCL, was :[for (cf:ControlFlow |c.ownedElement->select(a|a.oclIsKindOf(ControlFlow))->sortedBy(e: Element | e.oclAsType(ControlFlow).name))]...[/for]Pretty verbose ... If we instead make use of the implicit iterators Acceleo offers, the expression can be simplified to [for (c.ownedElement->select(oclIsKindOf(ControlFlow))->sortedBy(oclAsType(ControlFlow).name))] ...[/for]But this still sports the redundancy of filtering from a list only the elements of a given type (select) and then casting the elements to ... that very same type (oclAsType). This is due to OCL not allowing Acceleo to infer the return type of the select operation. Starting from Acceleo 3.0, thi...

Posted on in Blog
Lien
Agility is a product based on Eclipse that help migrating code. You can find more details here. This new release comes with several improvements :- Custom link resolution- OStore reflective editor- Export to product parserThere are also bug fixes of course :)Lien d'origineAuteur d'origine: yvan...

Posted on in Blog
Of course, it's not a new question.Wikipedia tells us the following:A legacy system is an old method, technology, computer system, or application program that continues to be used, typically because it still functions for the users' needs, even though newer technology or more efficient methods of performing a task are now available.Since I'm a software engineer I'm not really concerned about legacy systems in general, just about legacy software.Joel SPOLSKY gives another definition of the term "legacy" in the preface to the book "Micro-ISV: From Vision to Reality" by Bob WALSH, which can be read online (the preface, not the book) at this page of Joel's famous blog.It’s like that other term, legacy, that Microsoft uses to refer to all non-Microsoft software. So when they refer to Google, say, as a “legacy search engine” they are trying to imply that Google is merely “an old, crappy search engine that you’re still using by historical accident, until you bow to the inevitable and ...