<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments for abstratt: news from the front</title>
	<atom:link href="http://abstratt.com/blog/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://abstratt.com/blog</link>
	<description>A company obsessed with one single goal: stopping people from writing so much code</description>
	<pubDate>Thu, 09 Sep 2010 11:04:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>Comment on TextUML Toolkit 1.6 declared! by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/08/05/textuml-toolkit-16-declared/#comment-1416</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Mon, 30 Aug 2010 01:46:20 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=172#comment-1416</guid>
		<description>Walter, I started documenting the action language part of TextUML here:

https://sourceforge.net/apps/mediawiki/textuml/index.php?title=TextUML_Action_Language

It's covering just some of the features now. Let me know if the documentation lacks clarity.</description>
		<content:encoded><![CDATA[<p>Walter, I started documenting the action language part of TextUML here:</p>
<p><a href="https://sourceforge.net/apps/mediawiki/textuml/index.php?title=TextUML_Action_Language" rel="nofollow">https://sourceforge.net/apps/mediawiki/textuml/index.php?title=TextUML_Action_Language</a></p>
<p>It&#8217;s covering just some of the features now. Let me know if the documentation lacks clarity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.6 declared! by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/08/05/textuml-toolkit-16-declared/#comment-1411</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Mon, 23 Aug 2010 19:21:39 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=172#comment-1411</guid>
		<description>I see now.

The abstract syntax is UML (action semantics) with an extension profile to support a few things not in UML (mostly closures). The concrete syntax/notation is not standard (there isn't one).</description>
		<content:encoded><![CDATA[<p>I see now.</p>
<p>The abstract syntax is UML (action semantics) with an extension profile to support a few things not in UML (mostly closures). The concrete syntax/notation is not standard (there isn&#8217;t one).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.6 declared! by Walter</title>
		<link>http://abstratt.com/blog/2010/08/05/textuml-toolkit-16-declared/#comment-1410</link>
		<dc:creator>Walter</dc:creator>
		<pubDate>Mon, 23 Aug 2010 19:14:16 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=172#comment-1410</guid>
		<description>&#62;&#62;standard for what?&#60;&#60;
I'm asking if the operation (and precondition) language is based in some other language...</description>
		<content:encoded><![CDATA[<p>&gt;&gt;standard for what?&lt;&lt;<br />
I&#8217;m asking if the operation (and precondition) language is based in some other language&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.6 declared! by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/08/05/textuml-toolkit-16-declared/#comment-1409</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Mon, 23 Aug 2010 18:24:46 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=172#comment-1409</guid>
		<description>Sorry, standard for what? The resulting models follow as much the UML specification as possible. Areas where we need things UML didn't do (for instance, closures and meta-references) were addressed by using a profile. The notation is 'proprietary', as until very recently, the OMG didn't have any standards for textual notations (but the OMG does not require notation compliance).</description>
		<content:encoded><![CDATA[<p>Sorry, standard for what? The resulting models follow as much the UML specification as possible. Areas where we need things UML didn&#8217;t do (for instance, closures and meta-references) were addressed by using a profile. The notation is &#8216;proprietary&#8217;, as until very recently, the OMG didn&#8217;t have any standards for textual notations (but the OMG does not require notation compliance).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.6 declared! by Walter</title>
		<link>http://abstratt.com/blog/2010/08/05/textuml-toolkit-16-declared/#comment-1408</link>
		<dc:creator>Walter</dc:creator>
		<pubDate>Mon, 23 Aug 2010 18:00:48 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=172#comment-1408</guid>
		<description>Thank you. Are you following some standard ?</description>
		<content:encoded><![CDATA[<p>Thank you. Are you following some standard ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.6 declared! by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/08/05/textuml-toolkit-16-declared/#comment-1407</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Mon, 23 Aug 2010 15:16:42 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=172#comment-1407</guid>
		<description>Hi Walter,

I have been postponing documenting the syntax for behavior until someone asked for it... :)

Will let you know when that has been done. Meanwhile, the &lt;a href="http://textuml.svn.sourceforge.net/viewvc/textuml/trunk/plugins/com.abstratt.mdd.frontend.textuml.core/textuml.scc?view=markup" rel="nofollow"&gt;TextUML EBNF&lt;/a&gt; might help.</description>
		<content:encoded><![CDATA[<p>Hi Walter,</p>
<p>I have been postponing documenting the syntax for behavior until someone asked for it&#8230; <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Will let you know when that has been done. Meanwhile, the <a href="http://textuml.svn.sourceforge.net/viewvc/textuml/trunk/plugins/com.abstratt.mdd.frontend.textuml.core/textuml.scc?view=markup" rel="nofollow">TextUML EBNF</a> might help.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.6 declared! by Walter</title>
		<link>http://abstratt.com/blog/2010/08/05/textuml-toolkit-16-declared/#comment-1406</link>
		<dc:creator>Walter</dc:creator>
		<pubDate>Mon, 23 Aug 2010 13:48:00 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=172#comment-1406</guid>
		<description>Hi Rafael,
I didn't find info about the allowed syntax in the operation code. Could you please give me a hint ?
Thanks,
Walter</description>
		<content:encoded><![CDATA[<p>Hi Rafael,<br />
I didn&#8217;t find info about the allowed syntax in the operation code. Could you please give me a hint ?<br />
Thanks,<br />
Walter</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML modes and tools by rafael.chaves</title>
		<link>http://abstratt.com/blog/2007/05/12/uml-modes-and-tools/#comment-1404</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Mon, 23 Aug 2010 03:48:36 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/2007/05/12/uml-modes-and-tools/#comment-1404</guid>
		<description>Luis, my point was that even though it can useful from the point of view of drafting and communicating ideas, objectively speaking, UML as sketch plays a very marginal role in getting software built, which is my only point of interest for UML and modeling. You cannot validate such models. You cannot generate code from them. They get outdated quickly. 

'Meaningless' might have been too harsh a word, I guess I could have chosen nicer terms such as 'low-value' or 'dispensable'.
But when I think of UML as sketch and how people often use it, I can't help but think of words such as 'pointless', 'irrelevant', 'distracting', and 'wasteful'.</description>
		<content:encoded><![CDATA[<p>Luis, my point was that even though it can useful from the point of view of drafting and communicating ideas, objectively speaking, UML as sketch plays a very marginal role in getting software built, which is my only point of interest for UML and modeling. You cannot validate such models. You cannot generate code from them. They get outdated quickly. </p>
<p>&#8216;Meaningless&#8217; might have been too harsh a word, I guess I could have chosen nicer terms such as &#8216;low-value&#8217; or &#8216;dispensable&#8217;.<br />
But when I think of UML as sketch and how people often use it, I can&#8217;t help but think of words such as &#8216;pointless&#8217;, &#8216;irrelevant&#8217;, &#8216;distracting&#8217;, and &#8216;wasteful&#8217;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML modes and tools by Luis Espinal</title>
		<link>http://abstratt.com/blog/2007/05/12/uml-modes-and-tools/#comment-1403</link>
		<dc:creator>Luis Espinal</dc:creator>
		<pubDate>Mon, 23 Aug 2010 03:08:00 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/2007/05/12/uml-modes-and-tools/#comment-1403</guid>
		<description>"UML as sketch is cool and useful, but from the point of view of software engineering (our focus here) is meaningless."

Why? Why meaningless? I could have agreed to something explaining that "UML as sketch" is inferior to the other two modes of UML operation as described by Fowler. But meaningless? Without even elaborating why? That's hand waving.</description>
		<content:encoded><![CDATA[<p>&#8220;UML as sketch is cool and useful, but from the point of view of software engineering (our focus here) is meaningless.&#8221;</p>
<p>Why? Why meaningless? I could have agreed to something explaining that &#8220;UML as sketch&#8221; is inferior to the other two modes of UML operation as described by Fowler. But meaningless? Without even elaborating why? That&#8217;s hand waving.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Model interpretation vs. code generation? Both. by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/08/07/model-interpretation-vs-code-generation-both/#comment-1372</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Tue, 10 Aug 2010 06:04:41 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=173#comment-1372</guid>
		<description>Thanks for the great comment, Ed, you are a walking encyclopedia on modeling tools. :)

I suspect most people working on new model-driven development tools (for instance, at Eclipse.org) totally ignore or have little knowledge of those products and that is a pity.</description>
		<content:encoded><![CDATA[<p>Thanks for the great comment, Ed, you are a walking encyclopedia on modeling tools. <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I suspect most people working on new model-driven development tools (for instance, at Eclipse.org) totally ignore or have little knowledge of those products and that is a pity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Model interpretation vs. code generation? Both. by Ed Seideiwtz</title>
		<link>http://abstratt.com/blog/2010/08/07/model-interpretation-vs-code-generation-both/#comment-1371</link>
		<dc:creator>Ed Seideiwtz</dc:creator>
		<pubDate>Mon, 09 Aug 2010 22:21:22 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=173#comment-1371</guid>
		<description>Rafael --

Exactly right! The Shlaer-Mellor execution tools having been doing it this way for years (e.g., http://www.kc.com/PRODUCTS/ and http://www.mentor.com/products/sm/model_development/). Execute the model interpretively to debug it and then compile to the target environment for deployment -- possibly to several target environments.

Note that I didn't actually use the term "code generation" above. This phrase implicitly assumes that the "code" is something different than your executable model, which automatically also implies that, in the end, it is the "generated code" that is the most important thing, not the model. If, on the other hand, you think of Executable UML like other programming languages, then the issue is interpretation or compilation, not interpretation or code generation -- and the answer is, again, "Both!", just as you say in your post. (See also my presentation http://slidesha.re/9zunfu, particularly slides 7 and 8.)

Of course, executing UML can be useful even when the goal is not programming. For example, if system engineer with a model in SysML would like to be able to execute, simulate and analyze his system model before committing it to the production engineers. In this case interpretation is a natural approach -- though not necessarily the only one; one could still compile the model behind the scenes, to improve performance (I believe that IBM Rhapsody actually does this). (See also http://slidesha.re/biyqCV, slide 9.)

-- Ed</description>
		<content:encoded><![CDATA[<p>Rafael &#8211;</p>
<p>Exactly right! The Shlaer-Mellor execution tools having been doing it this way for years (e.g., <a href="http://www.kc.com/PRODUCTS/" rel="nofollow">http://www.kc.com/PRODUCTS/</a> and <a href="http://www.mentor.com/products/sm/model_development/" rel="nofollow">http://www.mentor.com/products/sm/model_development/</a>). Execute the model interpretively to debug it and then compile to the target environment for deployment &#8212; possibly to several target environments.</p>
<p>Note that I didn&#8217;t actually use the term &#8220;code generation&#8221; above. This phrase implicitly assumes that the &#8220;code&#8221; is something different than your executable model, which automatically also implies that, in the end, it is the &#8220;generated code&#8221; that is the most important thing, not the model. If, on the other hand, you think of Executable UML like other programming languages, then the issue is interpretation or compilation, not interpretation or code generation &#8212; and the answer is, again, &#8220;Both!&#8221;, just as you say in your post. (See also my presentation <a href="http://slidesha.re/9zunfu" rel="nofollow">http://slidesha.re/9zunfu</a>, particularly slides 7 and 8.)</p>
<p>Of course, executing UML can be useful even when the goal is not programming. For example, if system engineer with a model in SysML would like to be able to execute, simulate and analyze his system model before committing it to the production engineers. In this case interpretation is a natural approach &#8212; though not necessarily the only one; one could still compile the model behind the scenes, to improve performance (I believe that IBM Rhapsody actually does this). (See also <a href="http://slidesha.re/biyqCV" rel="nofollow">http://slidesha.re/biyqCV</a>, slide 9.)</p>
<p>&#8211; Ed</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.6 RC1 is now available by Thiago Senna</title>
		<link>http://abstratt.com/blog/2010/07/26/textuml-toolkit-16-rc1-is-now-available/#comment-1345</link>
		<dc:creator>Thiago Senna</dc:creator>
		<pubDate>Thu, 05 Aug 2010 14:22:16 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=171#comment-1345</guid>
		<description>Olá Rafael,

no meu caso eu não usaria por que no momento estou utilizando tecnologias CMS. Meu foco atualmente não tem sido desenvolver aplicações. Mas cara... eu tenho um outro impedimento grave para não usar TextUML. O dificuldade é como eu transformo meu modelo criado no textuml em código que funcione. Isso não é só no caso do TextUML. Até com XText e MPS isso no meu ver é muito chato ou tem pouco material para o público "desenvolvedor final". A utilização destes recursos fica disponível a um grupo limitado de desenvolvedores que por algum motivo conhecem muito da arquitetura do elipse. Resumidamente, utilizar o textuml e ainda gerar boa parte do sistema com apoio dele não é para amadores. Por um tempo eu bate muito a cabeça neste assunto a ponto de desencanar apesar de ser o meu tema técnico preferido.

Vc não concorda?</description>
		<content:encoded><![CDATA[<p>Olá Rafael,</p>
<p>no meu caso eu não usaria por que no momento estou utilizando tecnologias CMS. Meu foco atualmente não tem sido desenvolver aplicações. Mas cara&#8230; eu tenho um outro impedimento grave para não usar TextUML. O dificuldade é como eu transformo meu modelo criado no textuml em código que funcione. Isso não é só no caso do TextUML. Até com XText e MPS isso no meu ver é muito chato ou tem pouco material para o público &#8220;desenvolvedor final&#8221;. A utilização destes recursos fica disponível a um grupo limitado de desenvolvedores que por algum motivo conhecem muito da arquitetura do elipse. Resumidamente, utilizar o textuml e ainda gerar boa parte do sistema com apoio dele não é para amadores. Por um tempo eu bate muito a cabeça neste assunto a ponto de desencanar apesar de ser o meu tema técnico preferido.</p>
<p>Vc não concorda?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.6 RC1 is now available by TextUML Toolkit 1.6 declared! &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2010/07/26/textuml-toolkit-16-rc1-is-now-available/#comment-1343</link>
		<dc:creator>TextUML Toolkit 1.6 declared! &#124; abstratt: news from the front</dc:creator>
		<pubDate>Thu, 05 Aug 2010 07:35:22 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=171#comment-1343</guid>
		<description>[...] TextUML Toolkit version 1.6 has been released. It is the same RC1 build mentioned here a week ago. The listing on the Eclipse Marketplace has been updated, so in addition to the regular update site [...]</description>
		<content:encoded><![CDATA[<p>[...] TextUML Toolkit version 1.6 has been released. It is the same RC1 build mentioned here a week ago. The listing on the Eclipse Marketplace has been updated, so in addition to the regular update site [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.6 RC1 is now available by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/07/26/textuml-toolkit-16-rc1-is-now-available/#comment-1342</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Thu, 05 Aug 2010 07:05:05 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=171#comment-1342</guid>
		<description>Valeu, Thiago!

No espírito de entender melhor o público desenvolvedor: por que não usarias?</description>
		<content:encoded><![CDATA[<p>Valeu, Thiago!</p>
<p>No espírito de entender melhor o público desenvolvedor: por que não usarias?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.6 RC1 is now available by Thiago Senna</title>
		<link>http://abstratt.com/blog/2010/07/26/textuml-toolkit-16-rc1-is-now-available/#comment-1338</link>
		<dc:creator>Thiago Senna</dc:creator>
		<pubDate>Tue, 27 Jul 2010 14:05:27 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=171#comment-1338</guid>
		<description>Olá,

no momento não tenho planos de utilizar o TextUML e nem o AlphaSimple. Mas mesmo assim, não tem como negar - ambas soluções são muito inovadoras. É sempre legal ver as novidades de ambos projetos. Sempre surpreendem. Parabéns e continue assim.</description>
		<content:encoded><![CDATA[<p>Olá,</p>
<p>no momento não tenho planos de utilizar o TextUML e nem o AlphaSimple. Mas mesmo assim, não tem como negar - ambas soluções são muito inovadoras. É sempre legal ver as novidades de ambos projetos. Sempre surpreendem. Parabéns e continue assim.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Design then develop</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1331</link>
		<dc:creator>Design then develop</dc:creator>
		<pubDate>Mon, 03 May 2010 13:40:53 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1331</guid>
		<description>Well,

If you have a good tool to rapid create a prototype and simulate your application then UML is pretty good.

Does anyone have tried UML Almighty tool ?

What about the simulated Web application ? Is it good ?

Regards.</description>
		<content:encoded><![CDATA[<p>Well,</p>
<p>If you have a good tool to rapid create a prototype and simulate your application then UML is pretty good.</p>
<p>Does anyone have tried UML Almighty tool ?</p>
<p>What about the simulated Web application ? Is it good ?</p>
<p>Regards.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Can we come up with something better than UML? : Bogdan Mocanu</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1325</link>
		<dc:creator>Can we come up with something better than UML? : Bogdan Mocanu</dc:creator>
		<pubDate>Fri, 02 Apr 2010 22:32:07 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1325</guid>
		<description>[...] I stumbled upon this article, taking a side on the problems that UML has and how a better modelling language should look like. I [...]</description>
		<content:encoded><![CDATA[<p>[...] I stumbled upon this article, taking a side on the problems that UML has and how a better modelling language should look like. I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by Jeppe Cramon</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1295</link>
		<dc:creator>Jeppe Cramon</dc:creator>
		<pubDate>Sat, 20 Feb 2010 10:54:37 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1295</guid>
		<description>Great post Refael - you sum up nicely the points that I've been battling for the last 4 years.

IMO people seem to be burnt by Case Tools, primarily, and by dogmatic MDA - which seems to end up in endless diagrams and no running system.
I like MDD's pragmatic attitude - use models where they make sense - to heighten the abstraction level (which means very little to many new comers until they see real examples of it) and automate by generating a lot of tedious repetitive code. I totally agree with focusing on forward engineering and model is king.

I agree with those that complain that the learning curve is still too steep and it still doesn't help that many MDD zealots are still too high on their UML bashing horse. Many examples of MDD simply miss the point of helping adapters get on board. People have experience with UML - let them use it where UML actually works.
IMO the hardcode MDD expert's are too far ahead of them crowd to have a change of including them. I mean EMF, GMF and e.g. OpenArchitectureWare are extremely cool and versatile - but it's still too complex and have a high learning curve before you're productive. A lot, including me, have given up before reaching a point where we could actually get anything done.
We decided to not use EMF - not because we're smarter than the guys who build EMF - but because we wanted something that was easier to use and thereby has a lower learning curve. It's not as versatile as EMF, but so far we haven't come a cross a project which wasn't easily solvable using the current approach. 

In order to spread MDD and attract new projects to use it, we instead tried to focus on where the major hurt these days are - In my perspective it still very much resolves around the domain model (being an internal or external).

This is where we have successfully helped customers adapt MDD by combining it with Domain Driven Design (DDD). We simply model their domain model in UML (using Class diagrams only) - and perform straight forward code generation of Java code with JPA/Hibernate annotations/specific code (or for instance WSDL, XML Schema for Webservice models).

Model is king and code can be regenerated time and time again - with the option to allow custom code extensions either through code generator extensions, through aspects, 3 level inheritance or some other approach (see http://www.slideshare.net/jeppec/building-a-lean-architecture-for-web-applications-using-domain-driven-design-model-driven-software-development). 
With UML domain modeling the abstraction layer can be raised a lot - e.g. with introducing stereotypes like "history" or "versioned" which lets you annotate your model to indicate active history/temporal object pattern). Too many hard code MDD's may laugh at this as being too little or too simplistic- but for a lot of new MDD adapters it's a lot - It's something that immediately gives reward - it's easy to understand and evolve and it doesn't try to interfere with domain logic. Start here, gain confidence and later you can introduce DSLs and other visual models based on something more fitting than what UML may have to offer.

Visual domain models are extremely good for overview and communication. We often sit down together with business expert which join in on the modeling because basic UML class diagrams, with a few stereotypes and perhaps a tagged value or two, are easy to comprehend and understand. No reason to understand meta or meta-meta ;)

My 2 cents ;)

/Jeppe</description>
		<content:encoded><![CDATA[<p>Great post Refael - you sum up nicely the points that I&#8217;ve been battling for the last 4 years.</p>
<p>IMO people seem to be burnt by Case Tools, primarily, and by dogmatic MDA - which seems to end up in endless diagrams and no running system.<br />
I like MDD&#8217;s pragmatic attitude - use models where they make sense - to heighten the abstraction level (which means very little to many new comers until they see real examples of it) and automate by generating a lot of tedious repetitive code. I totally agree with focusing on forward engineering and model is king.</p>
<p>I agree with those that complain that the learning curve is still too steep and it still doesn&#8217;t help that many MDD zealots are still too high on their UML bashing horse. Many examples of MDD simply miss the point of helping adapters get on board. People have experience with UML - let them use it where UML actually works.<br />
IMO the hardcode MDD expert&#8217;s are too far ahead of them crowd to have a change of including them. I mean EMF, GMF and e.g. OpenArchitectureWare are extremely cool and versatile - but it&#8217;s still too complex and have a high learning curve before you&#8217;re productive. A lot, including me, have given up before reaching a point where we could actually get anything done.<br />
We decided to not use EMF - not because we&#8217;re smarter than the guys who build EMF - but because we wanted something that was easier to use and thereby has a lower learning curve. It&#8217;s not as versatile as EMF, but so far we haven&#8217;t come a cross a project which wasn&#8217;t easily solvable using the current approach. </p>
<p>In order to spread MDD and attract new projects to use it, we instead tried to focus on where the major hurt these days are - In my perspective it still very much resolves around the domain model (being an internal or external).</p>
<p>This is where we have successfully helped customers adapt MDD by combining it with Domain Driven Design (DDD). We simply model their domain model in UML (using Class diagrams only) - and perform straight forward code generation of Java code with JPA/Hibernate annotations/specific code (or for instance WSDL, XML Schema for Webservice models).</p>
<p>Model is king and code can be regenerated time and time again - with the option to allow custom code extensions either through code generator extensions, through aspects, 3 level inheritance or some other approach (see <a href="http://www.slideshare.net/jeppec/building-a-lean-architecture-for-web-applications-using-domain-driven-design-model-driven-software-development" rel="nofollow">http://www.slideshare.net/jeppec/building-a-lean-architecture-for-web-applications-using-domain-driven-design-model-driven-software-development</a>).<br />
With UML domain modeling the abstraction layer can be raised a lot - e.g. with introducing stereotypes like &#8220;history&#8221; or &#8220;versioned&#8221; which lets you annotate your model to indicate active history/temporal object pattern). Too many hard code MDD&#8217;s may laugh at this as being too little or too simplistic- but for a lot of new MDD adapters it&#8217;s a lot - It&#8217;s something that immediately gives reward - it&#8217;s easy to understand and evolve and it doesn&#8217;t try to interfere with domain logic. Start here, gain confidence and later you can introduce DSLs and other visual models based on something more fitting than what UML may have to offer.</p>
<p>Visual domain models are extremely good for overview and communication. We often sit down together with business expert which join in on the modeling because basic UML class diagrams, with a few stereotypes and perhaps a tagged value or two, are easy to comprehend and understand. No reason to understand meta or meta-meta <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>My 2 cents <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>/Jeppe</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Can we come up with something better than UML? &#171; Bogdan Mocanu</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1290</link>
		<dc:creator>Can we come up with something better than UML? &#171; Bogdan Mocanu</dc:creator>
		<pubDate>Wed, 17 Feb 2010 19:29:54 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1290</guid>
		<description>[...] something better than&#160;UML?  17/02/2010 Leave a comment Go to comments    Today I stumbled upon this article, taking a side on the problems that UML has and how a better modelling language should look like. I [...]</description>
		<content:encoded><![CDATA[<p>[...] something better than&nbsp;UML?  17/02/2010 Leave a comment Go to comments    Today I stumbled upon this article, taking a side on the problems that UML has and how a better modelling language should look like. I [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1280</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Sat, 13 Feb 2010 17:31:35 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1280</guid>
		<description>@Jilles

"what about agile practices such as TDD, refactoring, etc. What about the inevitable case where the domain starts to evolve (there’s no such thing as non evolving software)?"

Why would MDD be inherently incapable of allowing these? If what I am calling modeling here is just higher-level-of-abstraction programming, what are the challenges with refactoring and automated testing that you are alluding to? They might be obvious to you, but I can't see any. Models are executable, so they can be exercised by automated tests the usual way. And refactoring of models should be simpler, not harder than ordinary code, because with the better separation of concerns, changes are handled in a more localized way, reducing the chances for widespread changes.

"Finally, UML is a specific implementation technology that you seem to have committed to."

First, it is different from conventional implementation technologies because it goes out of its way to be removed from mundane technical implementation details. In modeling, we strive not to over-specify a solution, thus preserving its generality and allowing it to be realized in different ways, effectively separating the general solution concerns (intentions) from concrete technology implementation concerns.

Second, I am not committed to UML, I will happily drop it for any better alternative (that was the whole point of this post!), according to the constraints I refer to.

"migration to some different technology quickly becomes infeasible"

That is one of the selling points of raising the level of abstraction. You don't need to migrate as often, as you get farther from concrete implementation technologies, things are much more stable. And when you do have to migrate, you have way higher chances to be dealt with an automated transformation, as model compilers can make sense of the intent behind a model way more easily. Win-win.

"There’s quite a bit of interesting stuff going on that is quite hard to map to UML, such as erlang/go style concurrency, AOP and annotations, closures, map reduce, etc."

Why do you say so? If those things can be done in ordinary OOPL, what is the difficulty with doing that with UML?  Any concrete examples? UML activities are inherently parallel, you have to go out of your way to make things execute sequentially. UML supports annotations way before any programming language I know (stereotypes and tagged values). UML can be extended to support closures very easily (TextUML allows them, search the main page for "closures"). For things it does not have native constructs for, you can address the library-way instead of the language way, and if beneficial still provide native support in your notation (such as I did with closures). The language can be evolved to address gaps where it makes sense, but in most cases concrete implementation improvements are more properly taken advantage of by changing the transformation rules, not the models.

"Your text UML sample looks disturbingly like Delphi met Java. Needlessly verbose and I’ve seen nicer ways of saying hello world."

That does not seem to be related to what we are talking about in this post, which is about executable modeling languages (and how UML seems to be the only option at this point), not about TextUML specifically. Actually, separation between abstract and concrete syntax (which may not even be specified) is another must-have for any replacement to UML, as it is something very valuable that it already does well.

That being said, I would be glad to hear your complaints/suggestions about the TextUML notation or the TextUML Toolkit by e-mail (rafael at this domain), twitter (abstratt), discussion &lt;a href="http://abstratt.com/forum/" rel="nofollow"&gt;forum&lt;/a&gt; or &lt;a href="http://abstratt.com/issues/" rel="nofollow"&gt;issue tracker&lt;/a&gt;.

Cheers,

Rafael</description>
		<content:encoded><![CDATA[<p>@Jilles</p>
<p>&#8220;what about agile practices such as TDD, refactoring, etc. What about the inevitable case where the domain starts to evolve (there’s no such thing as non evolving software)?&#8221;</p>
<p>Why would MDD be inherently incapable of allowing these? If what I am calling modeling here is just higher-level-of-abstraction programming, what are the challenges with refactoring and automated testing that you are alluding to? They might be obvious to you, but I can&#8217;t see any. Models are executable, so they can be exercised by automated tests the usual way. And refactoring of models should be simpler, not harder than ordinary code, because with the better separation of concerns, changes are handled in a more localized way, reducing the chances for widespread changes.</p>
<p>&#8220;Finally, UML is a specific implementation technology that you seem to have committed to.&#8221;</p>
<p>First, it is different from conventional implementation technologies because it goes out of its way to be removed from mundane technical implementation details. In modeling, we strive not to over-specify a solution, thus preserving its generality and allowing it to be realized in different ways, effectively separating the general solution concerns (intentions) from concrete technology implementation concerns.</p>
<p>Second, I am not committed to UML, I will happily drop it for any better alternative (that was the whole point of this post!), according to the constraints I refer to.</p>
<p>&#8220;migration to some different technology quickly becomes infeasible&#8221;</p>
<p>That is one of the selling points of raising the level of abstraction. You don&#8217;t need to migrate as often, as you get farther from concrete implementation technologies, things are much more stable. And when you do have to migrate, you have way higher chances to be dealt with an automated transformation, as model compilers can make sense of the intent behind a model way more easily. Win-win.</p>
<p>&#8220;There’s quite a bit of interesting stuff going on that is quite hard to map to UML, such as erlang/go style concurrency, AOP and annotations, closures, map reduce, etc.&#8221;</p>
<p>Why do you say so? If those things can be done in ordinary OOPL, what is the difficulty with doing that with UML?  Any concrete examples? UML activities are inherently parallel, you have to go out of your way to make things execute sequentially. UML supports annotations way before any programming language I know (stereotypes and tagged values). UML can be extended to support closures very easily (TextUML allows them, search the main page for &#8220;closures&#8221;). For things it does not have native constructs for, you can address the library-way instead of the language way, and if beneficial still provide native support in your notation (such as I did with closures). The language can be evolved to address gaps where it makes sense, but in most cases concrete implementation improvements are more properly taken advantage of by changing the transformation rules, not the models.</p>
<p>&#8220;Your text UML sample looks disturbingly like Delphi met Java. Needlessly verbose and I’ve seen nicer ways of saying hello world.&#8221;</p>
<p>That does not seem to be related to what we are talking about in this post, which is about executable modeling languages (and how UML seems to be the only option at this point), not about TextUML specifically. Actually, separation between abstract and concrete syntax (which may not even be specified) is another must-have for any replacement to UML, as it is something very valuable that it already does well.</p>
<p>That being said, I would be glad to hear your complaints/suggestions about the TextUML notation or the TextUML Toolkit by e-mail (rafael at this domain), twitter (abstratt), discussion <a href="http://abstratt.com/forum/" rel="nofollow">forum</a> or <a href="http://abstratt.com/issues/" rel="nofollow">issue tracker</a>.</p>
<p>Cheers,</p>
<p>Rafael</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Jilles van Gurp</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1279</link>
		<dc:creator>Jilles van Gurp</dc:creator>
		<pubDate>Sat, 13 Feb 2010 13:44:25 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1279</guid>
		<description>@Rafael. Exactly, you are treating your UML tool as an IDE. Fine, but stop calling it modeling then. Or if you insist, the rest of the world models in traditional programming languages. BTW. what about agile practices such as TDD, refactoring, etc. What about the inevitable case where the domain starts to evolve (there's no such thing as non evolving software)? I've seen a few MDA projects fail quite spectacularly a couple of years ago exactly for this reason. As for agile, it's a very overloaded term, even more than the word modeling. Lets just say that not all agile projects are created equally. Also most companies that I have encountered that claimed to do agile were in fact faking it badly. Finally, UML is a specific implementation technology that you seem to have committed to. Like with any such commitment, migration to some different technology quickly becomes infeasible. If it suits your needs fine, but don't attribute too much magical value to it in terms of being a level up in terms of abstraction. There's quite a bit of interesting stuff going on that is quite hard to map to UML, such as erlang/go style concurrency, AOP and annotations, closures, map reduce, etc. Basically all of that is way out of the comfort zone of MDA. Apples and oranges, I know. But the point here is that MDA is just good 30 year old OOP. Your text UML sample looks disturbingly like Delphi met Java. Needlessly verbose and I've seen nicer ways of saying hello world.

@Dominique, I've been following Simonyi and IP for about a decade. Unfortunately, beyond the papers he has never produced anything substantial in public. What they are doing exactly at intentional software is pretty much a big mystery. To me the time that has gone by without any substance suggests a pile of software that is not working as advertised (in the papers a decade ago). Meanwhile, Ruby seems to fill the gap quite nicely when it comes to DSLs and meta programming. Not the same thing of course but so much more practical right now.

@Vladimir model refactoring assumes that everything your model depends on in the real world is stable. It's not unheard off but usually pretty much exclusively limited banking or insurance type IT projects, which incidentally is also a domain where DSLs have been used successfully. In the rest of the world, change is the norm in all layers of the system.</description>
		<content:encoded><![CDATA[<p>@Rafael. Exactly, you are treating your UML tool as an IDE. Fine, but stop calling it modeling then. Or if you insist, the rest of the world models in traditional programming languages. BTW. what about agile practices such as TDD, refactoring, etc. What about the inevitable case where the domain starts to evolve (there&#8217;s no such thing as non evolving software)? I&#8217;ve seen a few MDA projects fail quite spectacularly a couple of years ago exactly for this reason. As for agile, it&#8217;s a very overloaded term, even more than the word modeling. Lets just say that not all agile projects are created equally. Also most companies that I have encountered that claimed to do agile were in fact faking it badly. Finally, UML is a specific implementation technology that you seem to have committed to. Like with any such commitment, migration to some different technology quickly becomes infeasible. If it suits your needs fine, but don&#8217;t attribute too much magical value to it in terms of being a level up in terms of abstraction. There&#8217;s quite a bit of interesting stuff going on that is quite hard to map to UML, such as erlang/go style concurrency, AOP and annotations, closures, map reduce, etc. Basically all of that is way out of the comfort zone of MDA. Apples and oranges, I know. But the point here is that MDA is just good 30 year old OOP. Your text UML sample looks disturbingly like Delphi met Java. Needlessly verbose and I&#8217;ve seen nicer ways of saying hello world.</p>
<p>@Dominique, I&#8217;ve been following Simonyi and IP for about a decade. Unfortunately, beyond the papers he has never produced anything substantial in public. What they are doing exactly at intentional software is pretty much a big mystery. To me the time that has gone by without any substance suggests a pile of software that is not working as advertised (in the papers a decade ago). Meanwhile, Ruby seems to fill the gap quite nicely when it comes to DSLs and meta programming. Not the same thing of course but so much more practical right now.</p>
<p>@Vladimir model refactoring assumes that everything your model depends on in the real world is stable. It&#8217;s not unheard off but usually pretty much exclusively limited banking or insurance type IT projects, which incidentally is also a domain where DSLs have been used successfully. In the rest of the world, change is the norm in all layers of the system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Vladimir</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1270</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Fri, 12 Feb 2010 17:48:37 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1270</guid>
		<description>About modeling and agile. I've participated in two projects implemented using MDD approach. Both projects use UML (or MOF) as a base for modeling. Both projects were agile. These projects were even more agile than obvoius ones since there were no such resistance for model refactorings as it's without MDD. It was agile just because developers don't have to rewrite a bunch of things like Java, XML's, deployment descriptors, DDLs, on any "agile" model change.</description>
		<content:encoded><![CDATA[<p>About modeling and agile. I&#8217;ve participated in two projects implemented using MDD approach. Both projects use UML (or MOF) as a base for modeling. Both projects were agile. These projects were even more agile than obvoius ones since there were no such resistance for model refactorings as it&#8217;s without MDD. It was agile just because developers don&#8217;t have to rewrite a bunch of things like Java, XML&#8217;s, deployment descriptors, DDLs, on any &#8220;agile&#8221; model change.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1269</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Fri, 12 Feb 2010 15:37:37 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1269</guid>
		<description>@Dominique

Note that I did not say anything about an implementation having to be open-source. My problem is with control and competition.

Thanks for the link, it was an interesting read.</description>
		<content:encoded><![CDATA[<p>@Dominique</p>
<p>Note that I did not say anything about an implementation having to be open-source. My problem is with control and competition.</p>
<p>Thanks for the link, it was an interesting read.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Dominique De Vito</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1267</link>
		<dc:creator>Dominique De Vito</dc:creator>
		<pubDate>Fri, 12 Feb 2010 10:42:20 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1267</guid>
		<description>@Rafael

The papers I have read say that there is a IP concrete technology implementation, and indeed, that's the Simonyi’s one; it's said to be used by Cap Gemini, for example, for some real-world test projects.

And, yes, I am sure it fails the last three criteria (open process, open standard, patent free) ;-)

But while I am an open source proponent, I still value non-open source products if they show enough added-value, and I am happy there is still some initiatives outside the all-inclusive-UML world, for drawing new interesting directions. 

This being said, you may be interested to read my post about UML drawbacks I see:
"UML business hotspot is over (but modeling business still makes sense)"
http://www.jroller.com/dmdevito/entry/uml_business_hotspot_is_over</description>
		<content:encoded><![CDATA[<p>@Rafael</p>
<p>The papers I have read say that there is a IP concrete technology implementation, and indeed, that&#8217;s the Simonyi’s one; it&#8217;s said to be used by Cap Gemini, for example, for some real-world test projects.</p>
<p>And, yes, I am sure it fails the last three criteria (open process, open standard, patent free) <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>But while I am an open source proponent, I still value non-open source products if they show enough added-value, and I am happy there is still some initiatives outside the all-inclusive-UML world, for drawing new interesting directions. </p>
<p>This being said, you may be interested to read my post about UML drawbacks I see:<br />
&#8220;UML business hotspot is over (but modeling business still makes sense)&#8221;<br />
<a href="http://www.jroller.com/dmdevito/entry/uml_business_hotspot_is_over" rel="nofollow">http://www.jroller.com/dmdevito/entry/uml_business_hotspot_is_over</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1260</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Thu, 11 Feb 2010 15:21:21 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1260</guid>
		<description>@Dominique 

I find the ideas behind Intentional Programming very cool, but isn't IP a paradigm instead of a concrete technology? The only concrete technology implementation I know of is by Simonyi's Intentional Software, but I suspect that fails the last three criteria (open process, open standard, patent free).</description>
		<content:encoded><![CDATA[<p>@Dominique </p>
<p>I find the ideas behind Intentional Programming very cool, but isn&#8217;t IP a paradigm instead of a concrete technology? The only concrete technology implementation I know of is by Simonyi&#8217;s Intentional Software, but I suspect that fails the last three criteria (open process, open standard, patent free).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Dominique De Vito</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1259</link>
		<dc:creator>Dominique De Vito</dc:creator>
		<pubDate>Thu, 11 Feb 2010 08:42:46 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1259</guid>
		<description>I think a UML alternative could be IP - Intentional Programming : http://en.wikipedia.org/wiki/Intentional_programming 

Here are some differences with UML:
- IP standardizes the abstract level and authorizes as many view as one wants
- IP enables to integrate graphical descriptions and DSL
- with IP, the integration of the different views in relation with the abstract model is a problem from the start because there could be N views, but there is only one abstract model: and it's good that this is a problem from the start, because users then don't forget the final step: the code generation. 
- etc.</description>
		<content:encoded><![CDATA[<p>I think a UML alternative could be IP - Intentional Programming : <a href="http://en.wikipedia.org/wiki/Intentional_programming" rel="nofollow">http://en.wikipedia.org/wiki/Intentional_programming</a> </p>
<p>Here are some differences with UML:<br />
- IP standardizes the abstract level and authorizes as many view as one wants<br />
- IP enables to integrate graphical descriptions and DSL<br />
- with IP, the integration of the different views in relation with the abstract model is a problem from the start because there could be N views, but there is only one abstract model: and it&#8217;s good that this is a problem from the start, because users then don&#8217;t forget the final step: the code generation.<br />
- etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Emilio R. Priego</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1256</link>
		<dc:creator>Emilio R. Priego</dc:creator>
		<pubDate>Tue, 09 Feb 2010 23:53:18 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1256</guid>
		<description>Good post!. Essentially, I agree with your opinion about UML. I am using UML in my company (from Government sector in Spain) where it has been very useful for "sketching". However, MDA/MDE is not generally used for generate code in real life. Why?. Theory is very good, but in practice there are not clean PIM, PSM and CIM reference models to start with.
I think UML is very complex and people are using only the simple/easy part. UML theory is very hard to understand. In my opinion Model theory is a superset of UML Theory. Modeling is a new paradigm but UML is based in the Object Oriented (previously winner) paradigm. OMG tried to fit all pieces but it's confusing use objects to explain models. The right way is just the opposite.
(e.g. nobody use operations part in a class model and in contrast, UML models are not true object-oriented e.g. there is not a diagram expressing both structure and behaviour).
The other main problem is model terminology. There are a lot of papers about modeling, discussing concepts (model, metamodel, modeling languages, etc.). And UML concepts (instance of, package, merge, etc.) add more confusion in that discussion. It's not possible to apply MDE if you don't understand the modeling concepts as it's not possible to write good Java programs if you don't understand object oriented concepts.
I'm not hopeful about the future of UML. I think that the problem is that paradigm shift is doing without a widely accepted agreement about the modeling theory concepts.</description>
		<content:encoded><![CDATA[<p>Good post!. Essentially, I agree with your opinion about UML. I am using UML in my company (from Government sector in Spain) where it has been very useful for &#8220;sketching&#8221;. However, MDA/MDE is not generally used for generate code in real life. Why?. Theory is very good, but in practice there are not clean PIM, PSM and CIM reference models to start with.<br />
I think UML is very complex and people are using only the simple/easy part. UML theory is very hard to understand. In my opinion Model theory is a superset of UML Theory. Modeling is a new paradigm but UML is based in the Object Oriented (previously winner) paradigm. OMG tried to fit all pieces but it&#8217;s confusing use objects to explain models. The right way is just the opposite.<br />
(e.g. nobody use operations part in a class model and in contrast, UML models are not true object-oriented e.g. there is not a diagram expressing both structure and behaviour).<br />
The other main problem is model terminology. There are a lot of papers about modeling, discussing concepts (model, metamodel, modeling languages, etc.). And UML concepts (instance of, package, merge, etc.) add more confusion in that discussion. It&#8217;s not possible to apply MDE if you don&#8217;t understand the modeling concepts as it&#8217;s not possible to write good Java programs if you don&#8217;t understand object oriented concepts.<br />
I&#8217;m not hopeful about the future of UML. I think that the problem is that paradigm shift is doing without a widely accepted agreement about the modeling theory concepts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1251</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Tue, 09 Feb 2010 07:58:56 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1251</guid>
		<description>@Sven 

I actually find the MDA model very useful as a conceptual/philosophical framework. I won't argue against your opinion of the suitability of UML as an executable modeling language, I assume you know mine.

Re: roles - not fundamentally different, but I argue that MDD provides for much better separation of concerns and rationalization of the work, making the separation of responsibilities more clear/feasible.

Re: "Creating reusable abstractions is a key discipline in software development, does it really matter that much whether you create libraries, languages, generators or interpreters?"

Again, I think MDD/DSM provide more powerful mechanisms for separating abstractions. People write OO-like in old style C. Still, there are significant benefits in using a proper OO language (even if it is C++). 

"It’s just a tool and the whole process isn’t that much affected"

Hey, the whole process is the same since the time of the ENIAC. :)

"Maybe besides that usually my turnarounds suffer if I use too much code generation"

If you can execute your model, you don't need to generate until you are happy with it.</description>
		<content:encoded><![CDATA[<p>@Sven </p>
<p>I actually find the MDA model very useful as a conceptual/philosophical framework. I won&#8217;t argue against your opinion of the suitability of UML as an executable modeling language, I assume you know mine.</p>
<p>Re: roles - not fundamentally different, but I argue that MDD provides for much better separation of concerns and rationalization of the work, making the separation of responsibilities more clear/feasible.</p>
<p>Re: &#8220;Creating reusable abstractions is a key discipline in software development, does it really matter that much whether you create libraries, languages, generators or interpreters?&#8221;</p>
<p>Again, I think MDD/DSM provide more powerful mechanisms for separating abstractions. People write OO-like in old style C. Still, there are significant benefits in using a proper OO language (even if it is C++). </p>
<p>&#8220;It’s just a tool and the whole process isn’t that much affected&#8221;</p>
<p>Hey, the whole process is the same since the time of the ENIAC. <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>&#8220;Maybe besides that usually my turnarounds suffer if I use too much code generation&#8221;</p>
<p>If you can execute your model, you don&#8217;t need to generate until you are happy with it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1250</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Tue, 09 Feb 2010 07:39:48 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1250</guid>
		<description>@Johan - yes, MDD provides opportunity for work specialization, and (my claim) higher work satisfaction: without MDD, domain-savvy developers need to deal with technical stuff they don't (want to) understand, and more technical developers need to deal with domain-related stuff they would rather not think about.</description>
		<content:encoded><![CDATA[<p>@Johan - yes, MDD provides opportunity for work specialization, and (my claim) higher work satisfaction: without MDD, domain-savvy developers need to deal with technical stuff they don&#8217;t (want to) understand, and more technical developers need to deal with domain-related stuff they would rather not think about.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1249</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Tue, 09 Feb 2010 07:28:48 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1249</guid>
		<description>@Rui: ABSE does sound promising, looking forward to seeing your work. Good luck!</description>
		<content:encoded><![CDATA[<p>@Rui: ABSE does sound promising, looking forward to seeing your work. Good luck!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1248</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Tue, 09 Feb 2010 07:23:01 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1248</guid>
		<description>@Jilles:

"why do you need a modeling language to begin with and why does it need all those qualities?"

MDD allows developers to work at a more proper (higher) level of abstraction through a better separation of domain concerns from technological concerns.

"Who is the customer for your models and does he/she agree with the amount of resources you spend on creating them?"

I and my peer developers are the consumers of the models, just as with source code. The customer itself does not care how I build software, but does care if quality is more consistent, or if time to delivery is more predictable, or if takes less time for a new hire to become an effective contributor, or if it is easier to enhance the software to adapt to changes in the problem domain or technological requirements.

"After all, models just sit there and they are not executable code representing actual business value."

My fault for not making it clearer from the beginning. My sole interest in UML is for creating executable models (MDD). Executable models don't sit there. They are the real deal.

"For me the answer is, I don’t need a modeling language and I don’t really need anything beyond a whiteboard in terms of standardization, portability and what not. (...) If we have time and if it doesn’t eat too much into Friday afternoon beers."

Totally agree if we are talking about models for documentation. I can't care less. Totally disagree if we are talking about model-driven development, with executable models (which *is* indeed what I was talking about in this post). 

"Agile and UML don’t go together unless you are faking either the modeling bit or the agile bit. (...) Tell tale signs that you are faking it: you have uml diagrams, each sprint is organized like a mini waterfall, you don’t have working code at the end of a sprint."

Again, if talking about UML as communication/documentation notation, true, but not if talking about UML as programming language. See an old post on "&lt;a href="http://abstratt.com/blog/2007/05/12/uml-modes-and-tools/" rel="nofollow"&gt;UML modes&lt;/a&gt;".

"MDA may seem like a good idea. However, you have to realize that with MDA you are just redefining what is your programming language."

That is a fine perspective, but what is wrong with raising the level of abstraction of my 'programming language'? 

"So, you are merely programming in a different language (i.e. UML) and no longer modeling but coding. UML is a modeling language, it is not a programming language."

Java, Ruby, C/C++, Smalltalk are just different 3G GPLs. There is a clear difference in level of abstraction between C and 8086 assembly. Same thing between UML and Java or Ruby. Re: modeling vs. programming, that is really relative. One can say a C source file is a model for an executable file, or that a UML model is the source while the generated Java code is object code. See "&lt;a href="http://abstratt.com/blog/2009/05/03/on-code-being-model/" rel="nofollow"&gt;On code being model&lt;/a&gt;".

Re: UML capability as a 'programming' language, I think &lt;a href="http://abstratt.com/blog/2008/11/02/what-can-uml-do-for-you/" rel="nofollow"&gt;it is powerful enough&lt;/a&gt; for what we need, and that is why I refuse to accept anything more 'powerful' (because that leads to over-specification).

"If you want to do MDA, you are probably better off with a domain specific language on top of a well defined framework."

Why should I commit to a specific implementation technology when I have no intent to make use of it? Why should I lose my investment if I decide to target another implementation technology? Why should I choose Ruby for an accounting system, when Ruby's technical capabilities have no bearing in my understanding of how to implement an accounting system? Why not use a pure, highly abstract language that forces me avoid adding more detail than necessary, instead of a full-fledged GPL that is bound to impose its technical idiosyncrasies?

"You will end up with less code to maintain, which is good."

Not sure how MDD leads to more code. For me, MDD is the ultimate refactoring technology.

"This in a nutshell is why Ruby, Ruby on Rails and the dozen or so similar languages and frameworks are so popular lately. These solutions are ideal for quickly implementing frameworks and then co-evolving the framework with the scripting code that uses it. Much more light weight, much more easy to fit in an agile work style."

Ignoring the fact that they have a more limited purpose, Ruby on Rails and Grails share much of the MDD mindset, using a convention-based programming model on top of GPLs, instead of a true modeling language. 

As per MDA being a dirty word, I am working towards &lt;a href="http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/" rel="nofollow"&gt;cleaning its name&lt;/a&gt;. ;)

I apologize for dumping a bunch of links to older posts on you, just trying to make my point of view more clear without repeating myself too much.

Cheers,

Rafael</description>
		<content:encoded><![CDATA[<p>@Jilles:</p>
<p>&#8220;why do you need a modeling language to begin with and why does it need all those qualities?&#8221;</p>
<p>MDD allows developers to work at a more proper (higher) level of abstraction through a better separation of domain concerns from technological concerns.</p>
<p>&#8220;Who is the customer for your models and does he/she agree with the amount of resources you spend on creating them?&#8221;</p>
<p>I and my peer developers are the consumers of the models, just as with source code. The customer itself does not care how I build software, but does care if quality is more consistent, or if time to delivery is more predictable, or if takes less time for a new hire to become an effective contributor, or if it is easier to enhance the software to adapt to changes in the problem domain or technological requirements.</p>
<p>&#8220;After all, models just sit there and they are not executable code representing actual business value.&#8221;</p>
<p>My fault for not making it clearer from the beginning. My sole interest in UML is for creating executable models (MDD). Executable models don&#8217;t sit there. They are the real deal.</p>
<p>&#8220;For me the answer is, I don’t need a modeling language and I don’t really need anything beyond a whiteboard in terms of standardization, portability and what not. (&#8230;) If we have time and if it doesn’t eat too much into Friday afternoon beers.&#8221;</p>
<p>Totally agree if we are talking about models for documentation. I can&#8217;t care less. Totally disagree if we are talking about model-driven development, with executable models (which *is* indeed what I was talking about in this post). </p>
<p>&#8220;Agile and UML don’t go together unless you are faking either the modeling bit or the agile bit. (&#8230;) Tell tale signs that you are faking it: you have uml diagrams, each sprint is organized like a mini waterfall, you don’t have working code at the end of a sprint.&#8221;</p>
<p>Again, if talking about UML as communication/documentation notation, true, but not if talking about UML as programming language. See an old post on &#8220;<a href="http://abstratt.com/blog/2007/05/12/uml-modes-and-tools/" rel="nofollow">UML modes</a>&#8220;.</p>
<p>&#8220;MDA may seem like a good idea. However, you have to realize that with MDA you are just redefining what is your programming language.&#8221;</p>
<p>That is a fine perspective, but what is wrong with raising the level of abstraction of my &#8216;programming language&#8217;? </p>
<p>&#8220;So, you are merely programming in a different language (i.e. UML) and no longer modeling but coding. UML is a modeling language, it is not a programming language.&#8221;</p>
<p>Java, Ruby, C/C++, Smalltalk are just different 3G GPLs. There is a clear difference in level of abstraction between C and 8086 assembly. Same thing between UML and Java or Ruby. Re: modeling vs. programming, that is really relative. One can say a C source file is a model for an executable file, or that a UML model is the source while the generated Java code is object code. See &#8220;<a href="http://abstratt.com/blog/2009/05/03/on-code-being-model/" rel="nofollow">On code being model</a>&#8220;.</p>
<p>Re: UML capability as a &#8216;programming&#8217; language, I think <a href="http://abstratt.com/blog/2008/11/02/what-can-uml-do-for-you/" rel="nofollow">it is powerful enough</a> for what we need, and that is why I refuse to accept anything more &#8216;powerful&#8217; (because that leads to over-specification).</p>
<p>&#8220;If you want to do MDA, you are probably better off with a domain specific language on top of a well defined framework.&#8221;</p>
<p>Why should I commit to a specific implementation technology when I have no intent to make use of it? Why should I lose my investment if I decide to target another implementation technology? Why should I choose Ruby for an accounting system, when Ruby&#8217;s technical capabilities have no bearing in my understanding of how to implement an accounting system? Why not use a pure, highly abstract language that forces me avoid adding more detail than necessary, instead of a full-fledged GPL that is bound to impose its technical idiosyncrasies?</p>
<p>&#8220;You will end up with less code to maintain, which is good.&#8221;</p>
<p>Not sure how MDD leads to more code. For me, MDD is the ultimate refactoring technology.</p>
<p>&#8220;This in a nutshell is why Ruby, Ruby on Rails and the dozen or so similar languages and frameworks are so popular lately. These solutions are ideal for quickly implementing frameworks and then co-evolving the framework with the scripting code that uses it. Much more light weight, much more easy to fit in an agile work style.&#8221;</p>
<p>Ignoring the fact that they have a more limited purpose, Ruby on Rails and Grails share much of the MDD mindset, using a convention-based programming model on top of GPLs, instead of a true modeling language. </p>
<p>As per MDA being a dirty word, I am working towards <a href="http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/" rel="nofollow">cleaning its name</a>. <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>I apologize for dumping a bunch of links to older posts on you, just trying to make my point of view more clear without repeating myself too much.</p>
<p>Cheers,</p>
<p>Rafael</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by Sven Efftinge</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1247</link>
		<dc:creator>Sven Efftinge</dc:creator>
		<pubDate>Tue, 09 Feb 2010 06:17:46 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1247</guid>
		<description>@Rafael,
very nice post! 
IMHO also MDA related dogmatism give MDD a bad name. I mean these stupid PIM vs. PSM idea, the overengineered and unpractical QVT standard and also (sorry for that ;-)) the idea of using UML as a programming frontend (UML might be good for other things like sketching diagrams to the whiteboard, though).

@Johan,
but how does those roles (generator developer, modeler) differ from people who built frameworks and libraries and people who use them?
Creating reusable abstractions is a key discipline in software development, does it really matter that much whether you create libraries, languages, generators or interpreters? In the end you'll have to understand the problem to solve and find the right level of abstraction.
In general I find it strange to see MDD as an (holistic) approach to software development. It's just a tool and the whole process isn't that much affected. Maybe besides that usually my turnarounds suffer if I use too much code generation ;-)</description>
		<content:encoded><![CDATA[<p>@Rafael,<br />
very nice post!<br />
IMHO also MDA related dogmatism give MDD a bad name. I mean these stupid PIM vs. PSM idea, the overengineered and unpractical QVT standard and also (sorry for that ;-)) the idea of using UML as a programming frontend (UML might be good for other things like sketching diagrams to the whiteboard, though).</p>
<p>@Johan,<br />
but how does those roles (generator developer, modeler) differ from people who built frameworks and libraries and people who use them?<br />
Creating reusable abstractions is a key discipline in software development, does it really matter that much whether you create libraries, languages, generators or interpreters? In the end you&#8217;ll have to understand the problem to solve and find the right level of abstraction.<br />
In general I find it strange to see MDD as an (holistic) approach to software development. It&#8217;s just a tool and the whole process isn&#8217;t that much affected. Maybe besides that usually my turnarounds suffer if I use too much code generation <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Rui Curado</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1245</link>
		<dc:creator>Rui Curado</dc:creator>
		<pubDate>Mon, 08 Feb 2010 23:49:07 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1245</guid>
		<description>I am working on a MDD methodology aiming to replace/displace UML/MDA/EMF/others. There's a lot of ambition here, of course!... So, let's see how ABSE ranks in your language-to-kill-UML checklist:

* it must be general purpose, not tailored to a specific architecture or style of software

Check

* it must not be tailored to an implementation language

Check

* it must be based on or compatible with the object paradigm

Check

* it must not be limited to one of the dominant aspects of software (state, structure, behavior)

Check

* it must be focused on executability/code generation (and thus suitable for MDD) as opposed to documentation/communication

Check

* it must be modular, and user extensions should be 1st class citizens

Check

* its specification should follow an open process

Check. Although I have to make a living out of it, I'm trying to keep ABSE as open as possible.

* it must not be owned/controlled by a single company

If it's open, then there's no "vendor lock-in". But everything not yet clear at this point. Half-check!

* it must not require royalties for adoption/implementation

Check

Score : 8.5/9
So, ABSE is looking good so far per your requirements...</description>
		<content:encoded><![CDATA[<p>I am working on a MDD methodology aiming to replace/displace UML/MDA/EMF/others. There&#8217;s a lot of ambition here, of course!&#8230; So, let&#8217;s see how ABSE ranks in your language-to-kill-UML checklist:</p>
<p>* it must be general purpose, not tailored to a specific architecture or style of software</p>
<p>Check</p>
<p>* it must not be tailored to an implementation language</p>
<p>Check</p>
<p>* it must be based on or compatible with the object paradigm</p>
<p>Check</p>
<p>* it must not be limited to one of the dominant aspects of software (state, structure, behavior)</p>
<p>Check</p>
<p>* it must be focused on executability/code generation (and thus suitable for MDD) as opposed to documentation/communication</p>
<p>Check</p>
<p>* it must be modular, and user extensions should be 1st class citizens</p>
<p>Check</p>
<p>* its specification should follow an open process</p>
<p>Check. Although I have to make a living out of it, I&#8217;m trying to keep ABSE as open as possible.</p>
<p>* it must not be owned/controlled by a single company</p>
<p>If it&#8217;s open, then there&#8217;s no &#8220;vendor lock-in&#8221;. But everything not yet clear at this point. Half-check!</p>
<p>* it must not require royalties for adoption/implementation</p>
<p>Check</p>
<p>Score : 8.5/9<br />
So, ABSE is looking good so far per your requirements&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Vlad Varnica</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1244</link>
		<dc:creator>Vlad Varnica</dc:creator>
		<pubDate>Mon, 08 Feb 2010 22:30:56 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1244</guid>
		<description>I agree with Jilles that MDA has failed in agile development till now but it is not because we failed at the first attempt that you should not try again. It remember my first love experience which was really very mediocre but after many year of experience it is totally different today :-) Sorry for this language but this is my true feeling reading your post !!
Except my today's joke I would say that for me MDA is not agile but UML could be agile. I am today deeply chocked by UML users just trying quickly to create few views and don't even use 1% of the power of UML. A minimum investment is a requirement and if you don't want to take this time then it is better not to do any UML. In the last 12 months I have seen many modeling projects and it was really very very poor.
My question is: Is it MDD or an education problem concerning the adoption of MDD in an agile project ?</description>
		<content:encoded><![CDATA[<p>I agree with Jilles that MDA has failed in agile development till now but it is not because we failed at the first attempt that you should not try again. It remember my first love experience which was really very mediocre but after many year of experience it is totally different today <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> Sorry for this language but this is my true feeling reading your post !!<br />
Except my today&#8217;s joke I would say that for me MDA is not agile but UML could be agile. I am today deeply chocked by UML users just trying quickly to create few views and don&#8217;t even use 1% of the power of UML. A minimum investment is a requirement and if you don&#8217;t want to take this time then it is better not to do any UML. In the last 12 months I have seen many modeling projects and it was really very very poor.<br />
My question is: Is it MDD or an education problem concerning the adoption of MDD in an agile project ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by Johan den Haan</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1242</link>
		<dc:creator>Johan den Haan</dc:creator>
		<pubDate>Mon, 08 Feb 2010 19:32:26 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1242</guid>
		<description>Hi Rafael,

Nice points. I agree with most of them. However, I think your first two points needs more nuance. You're right, programmers are still needed and business analyst cannot build everything with an MDD tool. But, roles do definitely change when using MDD (see http://www.theenterprisearchitect.eu/archive/2009/02/04/roles-in-model-driven-engineering ). Programmers will move to working on generators and maybe some technical parts of an application, modeling an application can be done by less-technical programmers or business engineers (or whatever we call it).</description>
		<content:encoded><![CDATA[<p>Hi Rafael,</p>
<p>Nice points. I agree with most of them. However, I think your first two points needs more nuance. You&#8217;re right, programmers are still needed and business analyst cannot build everything with an MDD tool. But, roles do definitely change when using MDD (see <a href="http://www.theenterprisearchitect.eu/archive/2009/02/04/roles-in-model-driven-engineering" rel="nofollow">http://www.theenterprisearchitect.eu/archive/2009/02/04/roles-in-model-driven-engineering</a> ). Programmers will move to working on generators and maybe some technical parts of an application, modeling an application can be done by less-technical programmers or business engineers (or whatever we call it).</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1241</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Mon, 08 Feb 2010 19:28:59 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1241</guid>
		<description>Thanks for your comment, Jilles. Yeah, I realized later that I didn't state clearly (or otherwise) the only reason I care about UML: it is as a general purpose modeling language for MDD.

While I read your comment with much interest, I fundamentally disagree with much of what you said about MDD being coding, not modeling, that UML is not suitable as a MDD modeling language, that agile and UML don't go together, or that DSLs are the only way to go. I hope to have time later today to write a more elaborate response. 

Cheers.</description>
		<content:encoded><![CDATA[<p>Thanks for your comment, Jilles. Yeah, I realized later that I didn&#8217;t state clearly (or otherwise) the only reason I care about UML: it is as a general purpose modeling language for MDD.</p>
<p>While I read your comment with much interest, I fundamentally disagree with much of what you said about MDD being coding, not modeling, that UML is not suitable as a MDD modeling language, that agile and UML don&#8217;t go together, or that DSLs are the only way to go. I hope to have time later today to write a more elaborate response. </p>
<p>Cheers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Jilles van Gurp</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1240</link>
		<dc:creator>Jilles van Gurp</dc:creator>
		<pubDate>Mon, 08 Feb 2010 19:12:56 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1240</guid>
		<description>Maybe you're asking the wrong question: why do you need a modeling language to begin with and why does it need all those qualities? Who is the customer for your models and does he/she agree with the amount of resources you spend on creating them? After all, models just sit there and they are not executable code representing actual business value.

For me the answer is, I don't need a modeling language and I don't really need anything beyond a whiteboard in terms of standardization, portability and what not. Draw and forget is my motto. If someone insists, photos get taken with my phone camera (though in my experience these photos are archived and never looked at). That's it. I have some tools available if somenone needs a powerpoint friendly version. Though presenting hand drawn images is kind of cool in some places nowadays. I almost never use these tools because frankly nobody that matters gives a shit about UML diagrams where I work. At best uml diagrams are a checkbox in the documentation requirements list, a i.e. a low priority diagram in an artifact that we occasionally spit shine. If we have time and if it doesn't eat too much into Friday afternoon beers.

Agile and UML don't go together unless you are faking either the modeling bit or the agile bit. I've seen a lot of people faking both. Seriously, there is no modeling phase in an iterative &#38; agile project. There's iterative development of all the development artifacts (requirements, designs, code, tests, documentation). Iterative meaning working code at the end of each sprint (2-3 weeks). If you are wasting most of your sprint on modeling you are not delivering business value. So if you spent a lot of time modeling in a project either your models never change, i.e. you are doing waterfall, not agile, or you spend a shitload of time revising your models every sprint, meaning that you are wasting a lot of time better spend on something that will actually last, i.e. code. Tell tale signs that you are faking it: you have uml diagrams, each sprint is organized like a mini waterfall, you don't have working code at the end of a sprint. 

MDA may seem like a good idea. However, you have to realize that with MDA you are just redefining what is your programming language. So, you are merely programming in a different language (i.e. UML) and no longer modeling but coding. UML is a modeling language, it is not a programming language. Some would even argue it is suitable for neither purpose. If you want to do MDA, you are probably better off with a domain specific language on top of a well defined framework. You will end up with less code to maintain, which is good. This in a nutshell is why Ruby, Ruby on Rails and the dozen or so similar languages and frameworks are so popular lately. These solutions are ideal for quickly implementing frameworks and then co-evolving the framework with the scripting code that uses it. Much more light weight, much more easy to fit in an agile work style.

In most companies I have had the pleasure of working with, visiting, or otherwise had to deal with, MDA was a dirty word and the available rational rose licenses were exclusively used for writing documentation and creating pretty pictures for power point slides (despite the often equally nobel and misguided reasons for purchasing said licenses). Generally the more primitive the programming language used, the more need there is for documenting the decades of crap in the version control system and the more time and resources people seem to spend on documenting the crappy code they have. I know of several embedded software development companies where multiple attempts of introducing rational rose silver bullet type solutions have failed utterly and completely. On the other hand. introducing TDD, agile and other more sensible practices is the reason why some of these companies are still around.</description>
		<content:encoded><![CDATA[<p>Maybe you&#8217;re asking the wrong question: why do you need a modeling language to begin with and why does it need all those qualities? Who is the customer for your models and does he/she agree with the amount of resources you spend on creating them? After all, models just sit there and they are not executable code representing actual business value.</p>
<p>For me the answer is, I don&#8217;t need a modeling language and I don&#8217;t really need anything beyond a whiteboard in terms of standardization, portability and what not. Draw and forget is my motto. If someone insists, photos get taken with my phone camera (though in my experience these photos are archived and never looked at). That&#8217;s it. I have some tools available if somenone needs a powerpoint friendly version. Though presenting hand drawn images is kind of cool in some places nowadays. I almost never use these tools because frankly nobody that matters gives a shit about UML diagrams where I work. At best uml diagrams are a checkbox in the documentation requirements list, a i.e. a low priority diagram in an artifact that we occasionally spit shine. If we have time and if it doesn&#8217;t eat too much into Friday afternoon beers.</p>
<p>Agile and UML don&#8217;t go together unless you are faking either the modeling bit or the agile bit. I&#8217;ve seen a lot of people faking both. Seriously, there is no modeling phase in an iterative &amp; agile project. There&#8217;s iterative development of all the development artifacts (requirements, designs, code, tests, documentation). Iterative meaning working code at the end of each sprint (2-3 weeks). If you are wasting most of your sprint on modeling you are not delivering business value. So if you spent a lot of time modeling in a project either your models never change, i.e. you are doing waterfall, not agile, or you spend a shitload of time revising your models every sprint, meaning that you are wasting a lot of time better spend on something that will actually last, i.e. code. Tell tale signs that you are faking it: you have uml diagrams, each sprint is organized like a mini waterfall, you don&#8217;t have working code at the end of a sprint. </p>
<p>MDA may seem like a good idea. However, you have to realize that with MDA you are just redefining what is your programming language. So, you are merely programming in a different language (i.e. UML) and no longer modeling but coding. UML is a modeling language, it is not a programming language. Some would even argue it is suitable for neither purpose. If you want to do MDA, you are probably better off with a domain specific language on top of a well defined framework. You will end up with less code to maintain, which is good. This in a nutshell is why Ruby, Ruby on Rails and the dozen or so similar languages and frameworks are so popular lately. These solutions are ideal for quickly implementing frameworks and then co-evolving the framework with the scripting code that uses it. Much more light weight, much more easy to fit in an agile work style.</p>
<p>In most companies I have had the pleasure of working with, visiting, or otherwise had to deal with, MDA was a dirty word and the available rational rose licenses were exclusively used for writing documentation and creating pretty pictures for power point slides (despite the often equally nobel and misguided reasons for purchasing said licenses). Generally the more primitive the programming language used, the more need there is for documenting the decades of crap in the version control system and the more time and resources people seem to spend on documenting the crappy code they have. I know of several embedded software development companies where multiple attempts of introducing rational rose silver bullet type solutions have failed utterly and completely. On the other hand. introducing TDD, agile and other more sensible practices is the reason why some of these companies are still around.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML may suck, but is there anything better? by Vlad Varnica</title>
		<link>http://abstratt.com/blog/2010/02/08/uml-may-suck-but-is-there-anything-better/#comment-1239</link>
		<dc:creator>Vlad Varnica</dc:creator>
		<pubDate>Mon, 08 Feb 2010 15:57:20 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=117#comment-1239</guid>
		<description>UML is just perfect and is a return of experience of over 1 millions users around the world.
The current UML problem is related to model transformation because no native integration with Java and metamodel.
In France we call it "Usine à Gaz" and my personal English translation is EMF software factory :-)


Vlad,</description>
		<content:encoded><![CDATA[<p>UML is just perfect and is a return of experience of over 1 millions users around the world.<br />
The current UML problem is related to model transformation because no native integration with Java and metamodel.<br />
In France we call it &#8220;Usine à Gaz&#8221; and my personal English translation is EMF software factory <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Vlad,</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1238</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Mon, 08 Feb 2010 15:51:02 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1238</guid>
		<description>Vlad, your comment was approved but it clearly is off-topic and unproductive. Please let's stay on topic.</description>
		<content:encoded><![CDATA[<p>Vlad, your comment was approved but it clearly is off-topic and unproductive. Please let&#8217;s stay on topic.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by MoWe</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1236</link>
		<dc:creator>MoWe</dc:creator>
		<pubDate>Mon, 08 Feb 2010 10:36:26 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1236</guid>
		<description>@Dann: You mention standards related to semantic web technology. The vast majority of software developers and users is not able to describe which problem exactly you solve based on description logics (W3C standard OWL DL), what the problem with OWL-full is, etc. Even more important: Where are the real-world use-cases? The problem is that those standards have been developed from a very academic point of view. Just look at the discussions about decidability. EMF on the other hand takes a very pragmatic approach. 
Of course it's no "one fits all"-solution, but nobody every claimed it is. But it helped a lot of people and companies to increase their productivtiy and improve the quality of their software - believe it or not.</description>
		<content:encoded><![CDATA[<p>@Dann: You mention standards related to semantic web technology. The vast majority of software developers and users is not able to describe which problem exactly you solve based on description logics (W3C standard OWL DL), what the problem with OWL-full is, etc. Even more important: Where are the real-world use-cases? The problem is that those standards have been developed from a very academic point of view. Just look at the discussions about decidability. EMF on the other hand takes a very pragmatic approach.<br />
Of course it&#8217;s no &#8220;one fits all&#8221;-solution, but nobody every claimed it is. But it helped a lot of people and companies to increase their productivtiy and improve the quality of their software - believe it or not.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by Vlad Varnica</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1235</link>
		<dc:creator>Vlad Varnica</dc:creator>
		<pubDate>Mon, 08 Feb 2010 09:43:39 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1235</guid>
		<description>Hi folks,

I personally recommend to throw EMF in the bin because this project failed.
The best is to use Ecore with UML and just EMF as back-office rules engine.
EMOF is like the official OMG MOF and it is really very very powerful if used well.

btw, Great super bowl New Orleans win yesterday :-)

Vlad,</description>
		<content:encoded><![CDATA[<p>Hi folks,</p>
<p>I personally recommend to throw EMF in the bin because this project failed.<br />
The best is to use Ecore with UML and just EMF as back-office rules engine.<br />
EMOF is like the official OMG MOF and it is really very very powerful if used well.</p>
<p>btw, Great super bowl New Orleans win yesterday <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Vlad,</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by Ed Merks</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1229</link>
		<dc:creator>Ed Merks</dc:creator>
		<pubDate>Sun, 07 Feb 2010 14:24:27 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1229</guid>
		<description>There's nothing quite like name calling to help a technical discussion remain focused on concrete issues. Even if I had the power to force feed anybody anything, I'd certainly not make a habit of it.  The e4 folks chose to use EMF for their own reasons, good ones in my opinion.  Characterizing a general purpose open source technology based on an OMG standard, i.e., EMOF, as "specific and proprietary" seems contradictory.  The OMG has a rather large stack of standards based on MOF; a good many of those are implemented at Eclipse. In any case, I'm not sure any of us has a crystal ball to look into the future, so arguments about future proofing seem questionable at best.

EMF is just complicated enough to help solve complex problem, much like Java itself. Surely no one will argue that Java is simple! Furthermore, it's clearly being used by a large and growing community; everything has to start somewhere. In any event, I'll definitely avoid taking attitude advice from anyone who consider name calling an acceptable form of technical discourse.

I agree that it's often and even typically very good to keep generated and hand written code completely separate.  The point of my blog is that this doesn't always come without a price of its own, e.g., I explained the cost of the "four class pattern."  Note Mint does a very nice job with filters to show only the hand written code. A point to take away from that is that good tools can do an excellent job solving problems in innovative ways; one of the basic tenets of MDD.  That being said, most of the open source tools at Eclipse are generally adequate at best...

Here's something I've asserted many times: if you started from scratch and tried to solve all the problems that EMF has already solved, you'd end up with something isomorphic to EMF. I.e., it won't be simpler, just different.</description>
		<content:encoded><![CDATA[<p>There&#8217;s nothing quite like name calling to help a technical discussion remain focused on concrete issues. Even if I had the power to force feed anybody anything, I&#8217;d certainly not make a habit of it.  The e4 folks chose to use EMF for their own reasons, good ones in my opinion.  Characterizing a general purpose open source technology based on an OMG standard, i.e., EMOF, as &#8220;specific and proprietary&#8221; seems contradictory.  The OMG has a rather large stack of standards based on MOF; a good many of those are implemented at Eclipse. In any case, I&#8217;m not sure any of us has a crystal ball to look into the future, so arguments about future proofing seem questionable at best.</p>
<p>EMF is just complicated enough to help solve complex problem, much like Java itself. Surely no one will argue that Java is simple! Furthermore, it&#8217;s clearly being used by a large and growing community; everything has to start somewhere. In any event, I&#8217;ll definitely avoid taking attitude advice from anyone who consider name calling an acceptable form of technical discourse.</p>
<p>I agree that it&#8217;s often and even typically very good to keep generated and hand written code completely separate.  The point of my blog is that this doesn&#8217;t always come without a price of its own, e.g., I explained the cost of the &#8220;four class pattern.&#8221;  Note Mint does a very nice job with filters to show only the hand written code. A point to take away from that is that good tools can do an excellent job solving problems in innovative ways; one of the basic tenets of MDD.  That being said, most of the open source tools at Eclipse are generally adequate at best&#8230;</p>
<p>Here&#8217;s something I&#8217;ve asserted many times: if you started from scratch and tried to solve all the problems that EMF has already solved, you&#8217;d end up with something isomorphic to EMF. I.e., it won&#8217;t be simpler, just different.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1226</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Sun, 07 Feb 2010 06:34:22 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1226</guid>
		<description>Dann, ranting apart, I think you raise a good point w.r.t. the added conceptual baggage required to adopt E4 if it is going to be heavily based on EMF. Maybe EMF should go through a similar refactor in order to lower the barrier of adoption. But that discussion certainly does not belong here.</description>
		<content:encoded><![CDATA[<p>Dann, ranting apart, I think you raise a good point w.r.t. the added conceptual baggage required to adopt E4 if it is going to be heavily based on EMF. Maybe EMF should go through a similar refactor in order to lower the barrier of adoption. But that discussion certainly does not belong here.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1225</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Sun, 07 Feb 2010 06:30:30 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1225</guid>
		<description>Ed, even if something is technically viable, that doesn't necessarily makes it a good idea. Or even if it is successful in some specific context, doesn't mean it is recommended as a general rule. Supporting generation of new types of textual artifacts is very simple, there are plenty of mature tools for that. However, the ability of regenerating code without destroying manual changes requires much more effort: for each type of artifact generated one needs to devise a strategy and tools for merging a new version of generated code with the existing contents of the artifact. I don't believe that that extra cost and added complexity are justifiable - what value are they creating anyways?

Another issue (major, in my opinion) is that burden to tell apart generated from manually written code is now on developers. Talking about code generation in EMF, I much prefer the approach used by UML2, where whenever there is need for handwritten code, the generated code delegates to a separate class. I know that when the UML2 metamodel implementation provides some less trivial behavior, the code will be in the corresponding XYZOperations class. I can safely ignore the automatically generated implementations of metaclasses (which I believe is most of the code). That clear and simple convention significantly reduces the effort for understanding the UML2 code base.</description>
		<content:encoded><![CDATA[<p>Ed, even if something is technically viable, that doesn&#8217;t necessarily makes it a good idea. Or even if it is successful in some specific context, doesn&#8217;t mean it is recommended as a general rule. Supporting generation of new types of textual artifacts is very simple, there are plenty of mature tools for that. However, the ability of regenerating code without destroying manual changes requires much more effort: for each type of artifact generated one needs to devise a strategy and tools for merging a new version of generated code with the existing contents of the artifact. I don&#8217;t believe that that extra cost and added complexity are justifiable - what value are they creating anyways?</p>
<p>Another issue (major, in my opinion) is that burden to tell apart generated from manually written code is now on developers. Talking about code generation in EMF, I much prefer the approach used by UML2, where whenever there is need for handwritten code, the generated code delegates to a separate class. I know that when the UML2 metamodel implementation provides some less trivial behavior, the code will be in the corresponding XYZOperations class. I can safely ignore the automatically generated implementations of metaclasses (which I believe is most of the code). That clear and simple convention significantly reduces the effort for understanding the UML2 code base.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by rafael.chaves</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1224</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Sun, 07 Feb 2010 06:14:40 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1224</guid>
		<description>Melski, thanks for your comments.

I don't agree the absence of round-trip engineering makes models redundant. The *code* is redundant, as it can be always regenerated from the models.

"Yes you do need some models but not to the level that mdd requires"

"(...) diagrams don’t get updated when people get short of time."

"That leaves only one artifact that is indeed the truth - the code."

These sentences are very telling. They tell me you are not doing MDD, but instead you are using models for sketching, communicating and documenting designs. That is fine, even though not my piece of cake, many (most) people use models that way, but that (and the problem you describe) has nothing to do with MDD. I would go as far as saying that approach to modeling is what creates a lot of misconceptions about MDD.

Finally, I would be very interested in understanding what you meant by "incomprehensible models (that are harder to read than code)". What "incomprehensible models" look like?</description>
		<content:encoded><![CDATA[<p>Melski, thanks for your comments.</p>
<p>I don&#8217;t agree the absence of round-trip engineering makes models redundant. The *code* is redundant, as it can be always regenerated from the models.</p>
<p>&#8220;Yes you do need some models but not to the level that mdd requires&#8221;</p>
<p>&#8220;(&#8230;) diagrams don’t get updated when people get short of time.&#8221;</p>
<p>&#8220;That leaves only one artifact that is indeed the truth - the code.&#8221;</p>
<p>These sentences are very telling. They tell me you are not doing MDD, but instead you are using models for sketching, communicating and documenting designs. That is fine, even though not my piece of cake, many (most) people use models that way, but that (and the problem you describe) has nothing to do with MDD. I would go as far as saying that approach to modeling is what creates a lot of misconceptions about MDD.</p>
<p>Finally, I would be very interested in understanding what you meant by &#8220;incomprehensible models (that are harder to read than code)&#8221;. What &#8220;incomprehensible models&#8221; look like?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by Dann Martens</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1221</link>
		<dc:creator>Dann Martens</dc:creator>
		<pubDate>Sat, 06 Feb 2010 18:06:10 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1221</guid>
		<description>Since the EMF modeling zealots are force-feeding modeling into e4, I think the discussion of what Ecore and GenModel are and what it can do have become pretty irrelevant. EMF modeling implementations are specific and proprietary and are not part of any standard in the larger Java community. You'll find more standards adhered to in the Semantic Technology community, which approaches modeling from an equally valid, yet more future-proof perspective. 

As a result, Eclipse is on a track which is alienating a large part of its user base. I think it is safe to say, no one likes to be forced to use a technology because a mere few manage to pull some strings to 'educate the misguided'. 

EMF is an extremely overly complicated technology, and clearly not in a state yet to be forced on a larger public. I find comments on new EMF sub-project announcements, such as 'hoping to read the English translation, soon', particularly relevant and amusing.

Until that time, I will be happy to see it evolve over time into something human-apprehensible. EMF belongs to an in-crowd. If that group wishes to gain some larger appeal and respect, I suggest they reconsider their attitude.</description>
		<content:encoded><![CDATA[<p>Since the EMF modeling zealots are force-feeding modeling into e4, I think the discussion of what Ecore and GenModel are and what it can do have become pretty irrelevant. EMF modeling implementations are specific and proprietary and are not part of any standard in the larger Java community. You&#8217;ll find more standards adhered to in the Semantic Technology community, which approaches modeling from an equally valid, yet more future-proof perspective. </p>
<p>As a result, Eclipse is on a track which is alienating a large part of its user base. I think it is safe to say, no one likes to be forced to use a technology because a mere few manage to pull some strings to &#8216;educate the misguided&#8217;. </p>
<p>EMF is an extremely overly complicated technology, and clearly not in a state yet to be forced on a larger public. I find comments on new EMF sub-project announcements, such as &#8216;hoping to read the English translation, soon&#8217;, particularly relevant and amusing.</p>
<p>Until that time, I will be happy to see it evolve over time into something human-apprehensible. EMF belongs to an in-crowd. If that group wishes to gain some larger appeal and respect, I suggest they reconsider their attitude.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by Ed Merks</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1219</link>
		<dc:creator>Ed Merks</dc:creator>
		<pubDate>Sat, 06 Feb 2010 15:50:42 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1219</guid>
		<description>With good generator technology, I don't believe it's necessary to separate hand written and generated code into different artifacts:

  http://ed-merks.blogspot.com/2008/10/hand-written-and-generated-code-never.html

We've been evolving models such as Ecore and GenModel for almost ten years now.  We've modified the models and regenerated, e.g., adding generics to Ecore was a very significant change, we've modified the generated code to implement derived features, and we've evolved the general purpose templates to improve the generated patterns, e.g., boolean and enums stored as flags. Those who say it can't be done are simply wrong.</description>
		<content:encoded><![CDATA[<p>With good generator technology, I don&#8217;t believe it&#8217;s necessary to separate hand written and generated code into different artifacts:</p>
<p>  <a href="http://ed-merks.blogspot.com/2008/10/hand-written-and-generated-code-never.html" rel="nofollow">http://ed-merks.blogspot.com/2008/10/hand-written-and-generated-code-never.html</a></p>
<p>We&#8217;ve been evolving models such as Ecore and GenModel for almost ten years now.  We&#8217;ve modified the models and regenerated, e.g., adding generics to Ecore was a very significant change, we&#8217;ve modified the generated code to implement derived features, and we&#8217;ve evolved the general purpose templates to improve the generated patterns, e.g., boolean and enums stored as flags. Those who say it can&#8217;t be done are simply wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by Axel</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1215</link>
		<dc:creator>Axel</dc:creator>
		<pubDate>Sat, 06 Feb 2010 10:38:02 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1215</guid>
		<description>http://www.slideshare.net/merks/the-unbearable-stupidity-of-modeling-presentation</description>
		<content:encoded><![CDATA[<p><a href="http://www.slideshare.net/merks/the-unbearable-stupidity-of-modeling-presentation" rel="nofollow">http://www.slideshare.net/merks/the-unbearable-stupidity-of-modeling-presentation</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Myths that give model-driven development a bad name by Melski</title>
		<link>http://abstratt.com/blog/2010/02/06/myths-that-give-model-driven-development-a-bad-name/#comment-1212</link>
		<dc:creator>Melski</dc:creator>
		<pubDate>Sat, 06 Feb 2010 09:03:39 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=168#comment-1212</guid>
		<description>What gives MDD, at least to me, is that it is either incomplete or too complex depending on whether you involve roundtrip engineering.  There are two sides to it.
If you include round trip engineering it (at this point in time) makes the models incomprehensible; they loose their purpose which is to enable a high level of understanding without having to read code level details.  
If you don't include round trip engineering it makes the models almost redundant.  Yes you do need some models but not to the level that mdd requires.  It seems like your in fact replicating your work, and thus all bar the highest level diagrams don't get updated when people get short of time.  That leaves only one artifact that is indeed the truth - the code.
In both cases developers end up wishing they just had code, instead of code plus either incomprehensible models (that are harder to read than code), or models which may or may not reflect reality.
So in short, I like having models to detail to me quickly a high level representation of the application; however beyond that its proven (so far) to be easier to read code than to read the diagrams.
Thats on the programmer side of life.

On the business side; models mean little to me.  A Feature driven process details to me what to expect in terms of functionality and when.  A clear winner over models which to me are nothing but part of the process of making an application; not an acceptable deliverable.

As for your myths, its hard to say.  To me MDD ultimately must include round trip, though I understand it may not currently.  The others I am happy to label as myths.</description>
		<content:encoded><![CDATA[<p>What gives MDD, at least to me, is that it is either incomplete or too complex depending on whether you involve roundtrip engineering.  There are two sides to it.<br />
If you include round trip engineering it (at this point in time) makes the models incomprehensible; they loose their purpose which is to enable a high level of understanding without having to read code level details.<br />
If you don&#8217;t include round trip engineering it makes the models almost redundant.  Yes you do need some models but not to the level that mdd requires.  It seems like your in fact replicating your work, and thus all bar the highest level diagrams don&#8217;t get updated when people get short of time.  That leaves only one artifact that is indeed the truth - the code.<br />
In both cases developers end up wishing they just had code, instead of code plus either incomprehensible models (that are harder to read than code), or models which may or may not reflect reality.<br />
So in short, I like having models to detail to me quickly a high level representation of the application; however beyond that its proven (so far) to be easier to read code than to read the diagrams.<br />
Thats on the programmer side of life.</p>
<p>On the business side; models mean little to me.  A Feature driven process details to me what to expect in terms of functionality and when.  A clear winner over models which to me are nothing but part of the process of making an application; not an acceptable deliverable.</p>
<p>As for your myths, its hard to say.  To me MDD ultimately must include round trip, though I understand it may not currently.  The others I am happy to label as myths.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On code being model - maybe not what you think by Myths that give model-driven development a bad name &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2009/05/03/on-code-being-model/#comment-1211</link>
		<dc:creator>Myths that give model-driven development a bad name &#124; abstratt: news from the front</dc:creator>
		<pubDate>Sat, 06 Feb 2010 07:58:41 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=153#comment-1211</guid>
		<description>[...] the codebase is manually maintained (and thus inherently inconsistent/ill-formed). More on this on this older post, pay attention to the comments as [...]</description>
		<content:encoded><![CDATA[<p>[...] the codebase is manually maintained (and thus inherently inconsistent/ill-formed). More on this on this older post, pay attention to the comments as [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on New in 1.3 M1: better integration with diagramming tools by Juha</title>
		<link>http://abstratt.com/blog/2009/04/13/new-in-13-m1-better-integration-with-diagramming-tools/#comment-1192</link>
		<dc:creator>Juha</dc:creator>
		<pubDate>Wed, 06 Jan 2010 19:47:12 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=150#comment-1192</guid>
		<description>Might be good to keep the GUIDs (which must be real surrogate keys (i.e. not derived from names)) in source code, otherwise the generated xmi file may run out of sync. GUIDs/ids could be optional and generated by auto completion.  Problem is that code becomes rather ugly... It may work, for most of the cases, if ids are assigned only for classes and hashed for associations and other xmi elements from these.</description>
		<content:encoded><![CDATA[<p>Might be good to keep the GUIDs (which must be real surrogate keys (i.e. not derived from names)) in source code, otherwise the generated xmi file may run out of sync. GUIDs/ids could be optional and generated by auto completion.  Problem is that code becomes rather ugly&#8230; It may work, for most of the cases, if ids are assigned only for classes and hashed for associations and other xmi elements from these.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on New in 1.3 M1: better integration with diagramming tools by rafael.chaves</title>
		<link>http://abstratt.com/blog/2009/04/13/new-in-13-m1-better-integration-with-diagramming-tools/#comment-1191</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Wed, 06 Jan 2010 07:52:46 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=150#comment-1191</guid>
		<description>Wow, thanks for the encouraging words, Juha. Yes, elements will change id if moved around, and that will break things if you have other tools' models  (such as diagram files) referring to a model generated by the TextUML Toolkit. 

Having a project setting for whether to automatically generate ids as GUIDs or derive from qualified names is a good idea, and should be easy to implement.

To allow some sort of annotation for declaring ids manually would be possible, but I wonder how people would use that.

Feel free to enter your suggestions as feature requests on the project tracker: http://abstratt.com/issues/ 

Cheers,

Rafael</description>
		<content:encoded><![CDATA[<p>Wow, thanks for the encouraging words, Juha. Yes, elements will change id if moved around, and that will break things if you have other tools&#8217; models  (such as diagram files) referring to a model generated by the TextUML Toolkit. </p>
<p>Having a project setting for whether to automatically generate ids as GUIDs or derive from qualified names is a good idea, and should be easy to implement.</p>
<p>To allow some sort of annotation for declaring ids manually would be possible, but I wonder how people would use that.</p>
<p>Feel free to enter your suggestions as feature requests on the project tracker: <a href="http://abstratt.com/issues/" rel="nofollow">http://abstratt.com/issues/</a> </p>
<p>Cheers,</p>
<p>Rafael</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on New in 1.3 M1: better integration with diagramming tools by Juha</title>
		<link>http://abstratt.com/blog/2009/04/13/new-in-13-m1-better-integration-with-diagramming-tools/#comment-1190</link>
		<dc:creator>Juha</dc:creator>
		<pubDate>Wed, 06 Jan 2010 07:42:22 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=150#comment-1190</guid>
		<description>TextUML is really excellent and useful tool!! Thanks for that. This is simply the best way to great and maintain object models. Possibility to integrate the model with other eclipse tools is one of key factors.  However the implementation of stable ids is not that stable because it do not allow code/model refacoring since ids are derived from class and role names. Would be great to have  possibility to assign ids manually or have automated GUID generator in model editor.</description>
		<content:encoded><![CDATA[<p>TextUML is really excellent and useful tool!! Thanks for that. This is simply the best way to great and maintain object models. Possibility to integrate the model with other eclipse tools is one of key factors.  However the implementation of stable ids is not that stable because it do not allow code/model refacoring since ids are derived from class and role names. Would be great to have  possibility to assign ids manually or have automated GUID generator in model editor.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Can TextUML be implemented the generative way (with Xtext or EMFText)? by Sven Efftinge</title>
		<link>http://abstratt.com/blog/2009/11/29/can-textuml-be-implemented-the-generative-way-with-xtext-or-emftext/#comment-1142</link>
		<dc:creator>Sven Efftinge</dc:creator>
		<pubDate>Mon, 30 Nov 2009 15:05:07 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=163#comment-1142</guid>
		<description>It is not your textual notation which is complex, but the mapping between your syntax and the UML meta model.
I general one could say that if the concrete syntax is not designed with the abstract syntax in mind or vice versa, you might be forced to use a transformation with both frameworks. While in Xtext the concrete syntax is a bit looser coupled with the underlying ecore model compared to EMFtext, I'ld recommend to transform to the UML meta model separately and explicitly in both cases.</description>
		<content:encoded><![CDATA[<p>It is not your textual notation which is complex, but the mapping between your syntax and the UML meta model.<br />
I general one could say that if the concrete syntax is not designed with the abstract syntax in mind or vice versa, you might be forced to use a transformation with both frameworks. While in Xtext the concrete syntax is a bit looser coupled with the underlying ecore model compared to EMFtext, I&#8217;ld recommend to transform to the UML meta model separately and explicitly in both cases.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Closures in UML? Extending the metamodel with the TextUML Toolkit by Can TextUML be implemented the generative way (with Xtext or EMFText)? &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2009/01/18/closures-in-uml-extending-metamodel-with-textuml-toolkit/#comment-1138</link>
		<dc:creator>Can TextUML be implemented the generative way (with Xtext or EMFText)? &#124; abstratt: news from the front</dc:creator>
		<pubDate>Mon, 30 Nov 2009 01:49:03 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=136#comment-1138</guid>
		<description>[...] Note that UML does not have closures, this is an extension to the UML metamodel which I wrote about here before. [...]</description>
		<content:encoded><![CDATA[<p>[...] Note that UML does not have closures, this is an extension to the UML metamodel which I wrote about here before. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Eclipse Modeling Day in Toronto by Ian Skerrett</title>
		<link>http://abstratt.com/blog/2009/11/20/eclipse-modeling-day-in-toronto/#comment-1127</link>
		<dc:creator>Ian Skerrett</dc:creator>
		<pubDate>Sat, 21 Nov 2009 17:25:43 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=162#comment-1127</guid>
		<description>Rafael,

It was great to meet you in Toronto.  Thank you for coming so far to attend and I'm glad we were able buy you that beer.

I like your idea of having short and long presentations in a single track.  Something to consider for future events.</description>
		<content:encoded><![CDATA[<p>Rafael,</p>
<p>It was great to meet you in Toronto.  Thank you for coming so far to attend and I&#8217;m glad we were able buy you that beer.</p>
<p>I like your idea of having short and long presentations in a single track.  Something to consider for future events.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Eclipse Modeling Day in Toronto by rafael.chaves</title>
		<link>http://abstratt.com/blog/2009/11/20/eclipse-modeling-day-in-toronto/#comment-1124</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Sat, 21 Nov 2009 06:43:27 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=162#comment-1124</guid>
		<description>Unfortunately no, family schedule is pretty tight these days, I just used up my 'credit'. Enjoy your presentation, I have been to the 2007 edition and it was lots of fun. I am amazed to see that there are no spots left for either presenting or attending, and the Tasktop guys are already taking names for the waiting list. Go Vancouver!</description>
		<content:encoded><![CDATA[<p>Unfortunately no, family schedule is pretty tight these days, I just used up my &#8216;credit&#8217;. Enjoy your presentation, I have been to the 2007 edition and it was lots of fun. I am amazed to see that there are no spots left for either presenting or attending, and the Tasktop guys are already taking names for the waiting list. Go Vancouver!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Eclipse Modeling Day in Toronto by Ian Bull</title>
		<link>http://abstratt.com/blog/2009/11/20/eclipse-modeling-day-in-toronto/#comment-1123</link>
		<dc:creator>Ian Bull</dc:creator>
		<pubDate>Sat, 21 Nov 2009 06:32:37 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=162#comment-1123</guid>
		<description>Are you coming to Van next week for the Eclipse Demo Camp?</description>
		<content:encoded><![CDATA[<p>Are you coming to Van next week for the Eclipse Demo Camp?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on OMG issues RFP: concrete syntax for UML action semantics by rafael.chaves</title>
		<link>http://abstratt.com/blog/2008/10/15/omg-issues-rfp-concrete-syntax-for-action-semantics/#comment-1101</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Wed, 14 Oct 2009 21:14:35 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=122#comment-1101</guid>
		<description>Thanks, Stephen. It is an honor to have you posting here. Unfortunately, those URLs are all password protected, so I guess non-OMG members will only be able to see the final spec.</description>
		<content:encoded><![CDATA[<p>Thanks, Stephen. It is an honor to have you posting here. Unfortunately, those URLs are all password protected, so I guess non-OMG members will only be able to see the final spec.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on OMG issues RFP: concrete syntax for UML action semantics by Stephen Mellor</title>
		<link>http://abstratt.com/blog/2008/10/15/omg-issues-rfp-concrete-syntax-for-action-semantics/#comment-1100</link>
		<dc:creator>Stephen Mellor</dc:creator>
		<pubDate>Wed, 14 Oct 2009 21:08:11 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=122#comment-1100</guid>
		<description>Initial submissions for an action language were published in September 2009.  (See http://www.omg.org/cgi-bin/doc?ad/09-09-01, /09-08-01 and /09-08-02).  Final submissions are due in March 2010.</description>
		<content:encoded><![CDATA[<p>Initial submissions for an action language were published in September 2009.  (See <a href="http://www.omg.org/cgi-bin/doc?ad/09-09-01" rel="nofollow">http://www.omg.org/cgi-bin/doc?ad/09-09-01</a>, /09-08-01 and /09-08-02).  Final submissions are due in March 2010.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On code being model - maybe not what you think by rafael.chaves</title>
		<link>http://abstratt.com/blog/2009/05/03/on-code-being-model/#comment-1009</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Sun, 19 Jul 2009 18:14:47 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=153#comment-1009</guid>
		<description>Marc, that analogy is quite interesting, thanks a lot. I feel like writing a post about that...</description>
		<content:encoded><![CDATA[<p>Marc, that analogy is quite interesting, thanks a lot. I feel like writing a post about that&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on UML modes and tools by Full code generation from UML class, state and activity diagrams &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2007/05/12/uml-modes-and-tools/#comment-940</link>
		<dc:creator>Full code generation from UML class, state and activity diagrams &#124; abstratt: news from the front</dc:creator>
		<pubDate>Fri, 10 Jul 2009 06:12:34 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/2007/05/12/uml-modes-and-tools/#comment-940</guid>
		<description>[...] using the object-oriented paradigm. People use UML in many different ways (see the post on UML modes), ranging from as a communication tool to as a full fledged programming language that supports full [...]</description>
		<content:encoded><![CDATA[<p>[...] using the object-oriented paradigm. People use UML in many different ways (see the post on UML modes), ranging from as a communication tool to as a full fledged programming language that supports full [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Diagrams != Models by On code being model - maybe not what you think &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2008/09/10/diagrams-models/#comment-917</link>
		<dc:creator>On code being model - maybe not what you think &#124; abstratt: news from the front</dc:creator>
		<pubDate>Mon, 06 Jul 2009 04:27:20 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=114#comment-917</guid>
		<description>[...] call out models vs. views&#8221; - in other words, always keep in mind that diagrams != models. Models are the real thing, diagrams are just views into them. Models can admit an infinite number [...]</description>
		<content:encoded><![CDATA[<p>[...] call out models vs. views&#8221; - in other words, always keep in mind that diagrams != models. Models are the real thing, diagrams are just views into them. Models can admit an infinite number [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.3RC1 is now available by TextUML Toolkit 1.3 is out! &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2009/06/15/textuml-toolkit-13rc1-is-now-available/#comment-864</link>
		<dc:creator>TextUML Toolkit 1.3 is out! &#124; abstratt: news from the front</dc:creator>
		<pubDate>Wed, 24 Jun 2009 03:20:31 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=156#comment-864</guid>
		<description>[...] TextUML Toolkit 1.3 is now available, 4.5 months after 1.2. If you already got RC1 (1.3.0.20090614&#8230;), it is the same build, no need to upgrade again. Otherwise, just point the [...]</description>
		<content:encoded><![CDATA[<p>[...] TextUML Toolkit 1.3 is now available, 4.5 months after 1.2. If you already got RC1 (1.3.0.20090614&#8230;), it is the same build, no need to upgrade again. Otherwise, just point the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.3RC1 is now available by rafael.chaves</title>
		<link>http://abstratt.com/blog/2009/06/15/textuml-toolkit-13rc1-is-now-available/#comment-845</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Mon, 15 Jun 2009 14:53:01 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=156#comment-845</guid>
		<description>Thanks, Max, I fixed that.</description>
		<content:encoded><![CDATA[<p>Thanks, Max, I fixed that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.3RC1 is now available by Max Bureck</title>
		<link>http://abstratt.com/blog/2009/06/15/textuml-toolkit-13rc1-is-now-available/#comment-844</link>
		<dc:creator>Max Bureck</dc:creator>
		<pubDate>Mon, 15 Jun 2009 10:10:31 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=156#comment-844</guid>
		<description>Hello, It would be better if you change the https link to the wiki to a http link. The https page requires authentication.

Greetings,
Max</description>
		<content:encoded><![CDATA[<p>Hello, It would be better if you change the https link to the wiki to a http link. The https page requires authentication.</p>
<p>Greetings,<br />
Max</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On code being model - maybe not what you think by Vladimir</title>
		<link>http://abstratt.com/blog/2009/05/03/on-code-being-model/#comment-841</link>
		<dc:creator>Vladimir</dc:creator>
		<pubDate>Mon, 01 Jun 2009 21:06:10 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=153#comment-841</guid>
		<description>"code is model" is really good mantra :) 
Just consider all app code, like: java code, java annotations, configs, DDL, SQL, ...
All of them are aspects of software. It should be enough to restore initial model. Different aspects can be expressed in the same model using different views of a model or by annotating model with appropriate profile (or equally DSL) definitions. If model can't be restored from generated artifacts then it seems like it contains superfluous information.

For example I have UML domain model. It contains annotations for: DB schema (tables, columns), ORM code (Hibernate/JPA/Transactions), Web pages (UI artifacts customization). It can be used for generation of a Java code, DB schema, services code, Web pages. This code then can be reverse engineered back to the model (at least at DB/ORM level since its based on a strictly defined specifications)</description>
		<content:encoded><![CDATA[<p>&#8220;code is model&#8221; is really good mantra <img src='http://abstratt.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Just consider all app code, like: java code, java annotations, configs, DDL, SQL, &#8230;<br />
All of them are aspects of software. It should be enough to restore initial model. Different aspects can be expressed in the same model using different views of a model or by annotating model with appropriate profile (or equally DSL) definitions. If model can&#8217;t be restored from generated artifacts then it seems like it contains superfluous information.</p>
<p>For example I have UML domain model. It contains annotations for: DB schema (tables, columns), ORM code (Hibernate/JPA/Transactions), Web pages (UI artifacts customization). It can be used for generation of a Java code, DB schema, services code, Web pages. This code then can be reverse engineered back to the model (at least at DB/ORM level since its based on a strictly defined specifications)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On code being model - maybe not what you think by Marc</title>
		<link>http://abstratt.com/blog/2009/05/03/on-code-being-model/#comment-833</link>
		<dc:creator>Marc</dc:creator>
		<pubDate>Fri, 22 May 2009 18:29:17 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=153#comment-833</guid>
		<description>"Round-trip engineering goes against the very essence of model-driven development, as source code often loses important information that can only exist in higher level models."

An interesting statement; one could compare http://en.wikipedia.org/wiki/Central_dogma_of_molecular_biology .

The idea of RTE seems to be that models can be built inductively by looking at existing solutions as implemented, warts and all. The idea of code as a mere instance of an abstract model - another kind of view - is appealing, but it leads to a kind of Platonic ideal of the model. I want my models to be living things that benefit from the successes and failures of implementation - shaped by the metainformation of interaction with the real world. I do agree that one instance isn't enough to build a high-resolution model, but I'm not sure that a lot can't be learned by examining many instances as part of the processes you're modelling.

You're entirely correct that that's not at all the same thing as equating model and code, of course.

Great point about the appropriate application of 3GLs btw.</description>
		<content:encoded><![CDATA[<p>&#8220;Round-trip engineering goes against the very essence of model-driven development, as source code often loses important information that can only exist in higher level models.&#8221;</p>
<p>An interesting statement; one could compare <a href="http://en.wikipedia.org/wiki/Central_dogma_of_molecular_biology" rel="nofollow">http://en.wikipedia.org/wiki/Central_dogma_of_molecular_biology</a> .</p>
<p>The idea of RTE seems to be that models can be built inductively by looking at existing solutions as implemented, warts and all. The idea of code as a mere instance of an abstract model - another kind of view - is appealing, but it leads to a kind of Platonic ideal of the model. I want my models to be living things that benefit from the successes and failures of implementation - shaped by the metainformation of interaction with the real world. I do agree that one instance isn&#8217;t enough to build a high-resolution model, but I&#8217;m not sure that a lot can&#8217;t be learned by examining many instances as part of the processes you&#8217;re modelling.</p>
<p>You&#8217;re entirely correct that that&#8217;s not at all the same thing as equating model and code, of course.</p>
<p>Great point about the appropriate application of 3GLs btw.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.1 is out! by rafael.chaves</title>
		<link>http://abstratt.com/blog/2008/09/02/textuml-toolkit-11-is-out/#comment-822</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Wed, 13 May 2009 15:17:19 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=113#comment-822</guid>
		<description>Note that the TextUML compiler in the TextUML Toolkit does not require a full-blown Eclipse IDE, and can be run from the command-line. Also note that on the SVN repository there is a component that allows it to be run from the command-line, something that I would like to make part of the basic distribution. At this time, though, it &lt;a href="http://abstratt.com/blog/2009/04/05/eclipse-without-osgi-textuml-compiler-as-a-stand-alone-java-application/" rel="nofollow"&gt;still requires&lt;/a&gt; the Eclipse OSGi runtime to run, but I am working with the EMF team (the modeling framework used in the Toolkit) to fix that.

To be pedantic, note that the TextUML notation is compiled into UML models, not reversed engineered.

The notation compiler could be implemented on any language, the fact that the TextUML Toolkit runs on Java is an implementation detail of that specific tool. The choice of using the Java class library and Eclipse frameworks is what enabled the development of the Toolkit by a single guy working on his spare time.</description>
		<content:encoded><![CDATA[<p>Note that the TextUML compiler in the TextUML Toolkit does not require a full-blown Eclipse IDE, and can be run from the command-line. Also note that on the SVN repository there is a component that allows it to be run from the command-line, something that I would like to make part of the basic distribution. At this time, though, it <a href="http://abstratt.com/blog/2009/04/05/eclipse-without-osgi-textuml-compiler-as-a-stand-alone-java-application/" rel="nofollow">still requires</a> the Eclipse OSGi runtime to run, but I am working with the EMF team (the modeling framework used in the Toolkit) to fix that.</p>
<p>To be pedantic, note that the TextUML notation is compiled into UML models, not reversed engineered.</p>
<p>The notation compiler could be implemented on any language, the fact that the TextUML Toolkit runs on Java is an implementation detail of that specific tool. The choice of using the Java class library and Eclipse frameworks is what enabled the development of the Toolkit by a single guy working on his spare time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.1 is out! by gergap</title>
		<link>http://abstratt.com/blog/2008/09/02/textuml-toolkit-11-is-out/#comment-821</link>
		<dc:creator>gergap</dc:creator>
		<pubDate>Wed, 13 May 2009 12:37:04 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=113#comment-821</guid>
		<description>I like the idea of TextUML. I always was faster one writing a few lines of code, and reverse engineer this to UML.
But this really should be a standalone command line tool which can be installed simply be "configure &#38;&#38; make &#38;&#38; make install".
Why do I need a JAVA Runtime and the full blown Eclipse IDE?
That's like to break a butterfly on the wheel.</description>
		<content:encoded><![CDATA[<p>I like the idea of TextUML. I always was faster one writing a few lines of code, and reverse engineer this to UML.<br />
But this really should be a standalone command line tool which can be installed simply be &#8220;configure &amp;&amp; make &amp;&amp; make install&#8221;.<br />
Why do I need a JAVA Runtime and the full blown Eclipse IDE?<br />
That&#8217;s like to break a butterfly on the wheel.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On code being model - maybe not what you think by Rodrigo Yoshima</title>
		<link>http://abstratt.com/blog/2009/05/03/on-code-being-model/#comment-820</link>
		<dc:creator>Rodrigo Yoshima</dc:creator>
		<pubDate>Sat, 09 May 2009 05:12:57 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=153#comment-820</guid>
		<description>Jack Reeves said a long ago "Your design is your code".

http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm

Maybe this concept bring us "code is model". I agree that higher levels of abstraction could help us, but also agree that not for every aspect of the system being developed.</description>
		<content:encoded><![CDATA[<p>Jack Reeves said a long ago &#8220;Your design is your code&#8221;.</p>
<p><a href="http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm" rel="nofollow">http://www.bleading-edge.com/Publications/C++Journal/Cpjour2.htm</a></p>
<p>Maybe this concept bring us &#8220;code is model&#8221;. I agree that higher levels of abstraction could help us, but also agree that not for every aspect of the system being developed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On code being model - maybe not what you think by Ersin ER</title>
		<link>http://abstratt.com/blog/2009/05/03/on-code-being-model/#comment-818</link>
		<dc:creator>Ersin ER</dc:creator>
		<pubDate>Tue, 05 May 2009 16:02:52 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=153#comment-818</guid>
		<description>Generally "the code" is being created by developers' mental work (and the motivations, reasons stay in those heads). The more frameworks or such reusable artifacts are used the more "model" we get and the system starts making more sense as it represents more abstract things than machine code. A software system should be developed using languages and environment which can express it and drive its realization in the most abstract form possible. So that we can close the gap filled by developers mental work generally. This does not mean that we should go crazy with defining models to cover every aspect of systems but it's a matter of balance.

On the other hand a basic distinction between code and model for me is that latter is/should be a built in a more declarative manner than imperative.</description>
		<content:encoded><![CDATA[<p>Generally &#8220;the code&#8221; is being created by developers&#8217; mental work (and the motivations, reasons stay in those heads). The more frameworks or such reusable artifacts are used the more &#8220;model&#8221; we get and the system starts making more sense as it represents more abstract things than machine code. A software system should be developed using languages and environment which can express it and drive its realization in the most abstract form possible. So that we can close the gap filled by developers mental work generally. This does not mean that we should go crazy with defining models to cover every aspect of systems but it&#8217;s a matter of balance.</p>
<p>On the other hand a basic distinction between code and model for me is that latter is/should be a built in a more declarative manner than imperative.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On code being model - maybe not what you think by Ed Merks</title>
		<link>http://abstratt.com/blog/2009/05/03/on-code-being-model/#comment-816</link>
		<dc:creator>Ed Merks</dc:creator>
		<pubDate>Mon, 04 May 2009 14:33:57 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=153#comment-816</guid>
		<description>This is a very interesting post.  I completely agree.</description>
		<content:encoded><![CDATA[<p>This is a very interesting post.  I completely agree.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On code being model - maybe not what you think by rafael.chaves</title>
		<link>http://abstratt.com/blog/2009/05/03/on-code-being-model/#comment-815</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Mon, 04 May 2009 07:33:42 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=153#comment-815</guid>
		<description>Thanks for your comment, Peter.

&lt;blockquote&gt;&lt;cite&gt;
I also think that the mantra “code is a model, too” does not help very much, because it makes people think that code and model are on the same level of abstraction. 
&lt;/cite&gt;&lt;/blockquote&gt;

I think what Harry really meant was that code at one level will be a model to a corresponding artifact in the next (lower) level.

&lt;blockquote&gt;&lt;cite&gt;
Of course, there are situations in which code and model are on the same level. Just think of traditional UML modeling (a class diagram is just a different view of the code)
&lt;/cite&gt;&lt;/blockquote&gt;

Well, even in the case of UML class diagrams, there is an increase in the level of abstraction. Think of things like associations (with shared/composite aggregation), multiplicities (with ordering/uniqueness), subsetting/redefinition of properties. None of those things can be represented in any of the OO languages I know of.</description>
		<content:encoded><![CDATA[<p>Thanks for your comment, Peter.</p>
<blockquote><p><cite><br />
I also think that the mantra “code is a model, too” does not help very much, because it makes people think that code and model are on the same level of abstraction.<br />
</cite></p></blockquote>
<p>I think what Harry really meant was that code at one level will be a model to a corresponding artifact in the next (lower) level.</p>
<blockquote><p><cite><br />
Of course, there are situations in which code and model are on the same level. Just think of traditional UML modeling (a class diagram is just a different view of the code)<br />
</cite></p></blockquote>
<p>Well, even in the case of UML class diagrams, there is an increase in the level of abstraction. Think of things like associations (with shared/composite aggregation), multiplicities (with ordering/uniqueness), subsetting/redefinition of properties. None of those things can be represented in any of the OO languages I know of.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On code being model - maybe not what you think by Peter Friese</title>
		<link>http://abstratt.com/blog/2009/05/03/on-code-being-model/#comment-814</link>
		<dc:creator>Peter Friese</dc:creator>
		<pubDate>Mon, 04 May 2009 07:16:45 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=153#comment-814</guid>
		<description>Hi Rafael,

I agree with your opinion that you just cannot use round-trip engineering in MDSD, as computers (still) are not able to abstract. Model driven software development is a forward-only process for this very reason. Fortunately, most people understand this point as soon as you tell them. 

I also think that the mantra "code is a model, too" does not help very much, because it makes people think that code and model are on the same level of abstraction. Of course, there are situations in which code and model are on the same level. Just think of traditional UML modeling (a class diagram is just a different view of the code).

To me, modeling is a means to express concepts of the real world in a way that both a developer and a business person can understand it. It's really a meet-in-the-middle approach. Domain Specific Languages (DSLs) can help to achieve just that. I am not convinced that UML can deliver on this, which is why I usually use Xtext (http://www.xtext.org) to achieve this.</description>
		<content:encoded><![CDATA[<p>Hi Rafael,</p>
<p>I agree with your opinion that you just cannot use round-trip engineering in MDSD, as computers (still) are not able to abstract. Model driven software development is a forward-only process for this very reason. Fortunately, most people understand this point as soon as you tell them. </p>
<p>I also think that the mantra &#8220;code is a model, too&#8221; does not help very much, because it makes people think that code and model are on the same level of abstraction. Of course, there are situations in which code and model are on the same level. Just think of traditional UML modeling (a class diagram is just a different view of the code).</p>
<p>To me, modeling is a means to express concepts of the real world in a way that both a developer and a business person can understand it. It&#8217;s really a meet-in-the-middle approach. Domain Specific Languages (DSLs) can help to achieve just that. I am not convinced that UML can deliver on this, which is why I usually use Xtext (http://www.xtext.org) to achieve this.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on On code and diagrams by On code being model - maybe not what you think &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2008/05/05/on-code-and-diagrams/#comment-812</link>
		<dc:creator>On code being model - maybe not what you think &#124; abstratt: news from the front</dc:creator>
		<pubDate>Mon, 04 May 2009 02:04:22 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/2008/05/05/why-we-write-code-and-dont-just-draw-diagrams/#comment-812</guid>
		<description>[...] aren&#8217;t always graphical&#8221; - of course not. I have written about that before here. The TextUML Toolkit is only one of many initiatives that promote textual notations for [...]</description>
		<content:encoded><![CDATA[<p>[...] aren&#8217;t always graphical&#8221; - of course not. I have written about that before here. The TextUML Toolkit is only one of many initiatives that promote textual notations for [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Not yet another language by Ersin ER</title>
		<link>http://abstratt.com/blog/2008/08/06/not-yet-another-language/#comment-806</link>
		<dc:creator>Ersin ER</dc:creator>
		<pubDate>Sun, 19 Apr 2009 19:42:11 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=108#comment-806</guid>
		<description>Hi,

Lots of things can be said on the topic (and I think we should do so) but to put it as simple as possible I can explain the difference as follows:

TextUML is just another representation for the UML concepts but JRuby has nothing to do with being a representation for JMV bytecode. A machine microcode is at the bottom of the abstration layer chain and almost anything can be built on top of it. On the other hand TextUML (or any concrete syntax) does to add anything to or does not build a really new abstration level on top of UML (or to a abstract syntax/metamodel). So it's important to distinguish a metamodel and a microcode.</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>Lots of things can be said on the topic (and I think we should do so) but to put it as simple as possible I can explain the difference as follows:</p>
<p>TextUML is just another representation for the UML concepts but JRuby has nothing to do with being a representation for JMV bytecode. A machine microcode is at the bottom of the abstration layer chain and almost anything can be built on top of it. On the other hand TextUML (or any concrete syntax) does to add anything to or does not build a really new abstration level on top of UML (or to a abstract syntax/metamodel). So it&#8217;s important to distinguish a metamodel and a microcode.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Integrating the TextUML Toolkit with other modeling tools by New in 1.3 M1: better integration with diagramming tools &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2008/12/23/integrating-textuml-toolkit-with-other-modeling-tools/#comment-801</link>
		<dc:creator>New in 1.3 M1: better integration with diagramming tools &#124; abstratt: news from the front</dc:creator>
		<pubDate>Mon, 13 Apr 2009 08:00:16 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=137#comment-801</guid>
		<description>[...] though it has always been possible to open models generated by the TextUML Toolkit in UML2-based diagramming tools, until 1.2 the [...]</description>
		<content:encoded><![CDATA[<p>[...] though it has always been possible to open models generated by the TextUML Toolkit in UML2-based diagramming tools, until 1.2 the [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.2 is out! by (not) Installing the TextUML Toolkit 1.2 on Eclipse 3.5 M6 &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2009/02/04/textuml-toolkit-12-is-out/#comment-794</link>
		<dc:creator>(not) Installing the TextUML Toolkit 1.2 on Eclipse 3.5 M6 &#124; abstratt: news from the front</dc:creator>
		<pubDate>Fri, 27 Mar 2009 07:37:11 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=145#comment-794</guid>
		<description>[...] After I installed the 3.5 M6 SDK, I decided to install the TextUML Toolkit 1.2&#8230; [...]</description>
		<content:encoded><![CDATA[<p>[...] After I installed the 3.5 M6 SDK, I decided to install the TextUML Toolkit 1.2&#8230; [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Closures in UML? Extending the metamodel with the TextUML Toolkit by SQL queries in UML &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2009/01/18/closures-in-uml-extending-metamodel-with-textuml-toolkit/#comment-793</link>
		<dc:creator>SQL queries in UML &#124; abstratt: news from the front</dc:creator>
		<pubDate>Wed, 18 Mar 2009 19:43:19 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=136#comment-793</guid>
		<description>[...] most of the operations in the Collection protocol take blocks/closures as arguments. Closures are used in this context to define the filtering criterion for a select, or [...]</description>
		<content:encoded><![CDATA[<p>[...] most of the operations in the Collection protocol take blocks/closures as arguments. Closures are used in this context to define the filtering criterion for a select, or [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Not yet another language by rafael.chaves</title>
		<link>http://abstratt.com/blog/2008/08/06/not-yet-another-language/#comment-772</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Sun, 15 Feb 2009 18:15:12 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=108#comment-772</guid>
		<description>Hi Patrick,

Yes, UML is a language. But TextUML per se is not a real language, instead being just a shallow notation built on top of the UML semantics and abstract syntax. 

Re: Java or Ruby serving as modeling languages - well, if you limit yourself to simple concepts such as classes, their structural features, and inheritance, yes, Ruby or Java can make do as modeling languages. But for sound OO modeling, you need much more: associations (with composition/aggregation semantics), multiplicities, and things from other modeling aspects such as states and transitions. You can try to mimic that with hacks in Java and Ruby, but a modeler will be better served if those features are natively supported by the modeling language. 

That, assuming your creating models to support model-driven development. Totally agreeing with "choosing the right language for the right task", the best language will be the one that better supports your modeling needs.</description>
		<content:encoded><![CDATA[<p>Hi Patrick,</p>
<p>Yes, UML is a language. But TextUML per se is not a real language, instead being just a shallow notation built on top of the UML semantics and abstract syntax. </p>
<p>Re: Java or Ruby serving as modeling languages - well, if you limit yourself to simple concepts such as classes, their structural features, and inheritance, yes, Ruby or Java can make do as modeling languages. But for sound OO modeling, you need much more: associations (with composition/aggregation semantics), multiplicities, and things from other modeling aspects such as states and transitions. You can try to mimic that with hacks in Java and Ruby, but a modeler will be better served if those features are natively supported by the modeling language. </p>
<p>That, assuming your creating models to support model-driven development. Totally agreeing with &#8220;choosing the right language for the right task&#8221;, the best language will be the one that better supports your modeling needs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Not yet another language by Patrick</title>
		<link>http://abstratt.com/blog/2008/08/06/not-yet-another-language/#comment-767</link>
		<dc:creator>Patrick</dc:creator>
		<pubDate>Sat, 14 Feb 2009 14:23:57 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=108#comment-767</guid>
		<description>Gee, it's been some time since this thread started, but seems still a recurring subject. I dare disagree with Raphael in stating that TextUML in fact, just like UML itself -- a language (alas, it even says so in its name). My point (http://mygoodlife.ch/wp/?p=44) was that there is not much difference except in syntax between capturing design in TextUML v.s. say Java or Ruby. Let's look at an example, for brevity using TextUML and Ruby:

[Ruby]
class Car
 def drive(speed); end
 def stop; end
 def accelerate; end
end

[TextUML]
class Car
 operation drive(speed:Integer);
 operation stop();
 operation accelerate();
end;
  
See what I mean? That is why I dare question the notion of using UML, if you can use the implementatino language directly, without loosing semantics. Of course, there are features of one language over another that let you express "semantically rich" elements more easily than in another language -- but that IMHO is merely a matter of choosing the right language for the right task.</description>
		<content:encoded><![CDATA[<p>Gee, it&#8217;s been some time since this thread started, but seems still a recurring subject. I dare disagree with Raphael in stating that TextUML in fact, just like UML itself &#8212; a language (alas, it even says so in its name). My point (http://mygoodlife.ch/wp/?p=44) was that there is not much difference except in syntax between capturing design in TextUML v.s. say Java or Ruby. Let&#8217;s look at an example, for brevity using TextUML and Ruby:</p>
<p>[Ruby]<br />
class Car<br />
 def drive(speed); end<br />
 def stop; end<br />
 def accelerate; end<br />
end</p>
<p>[TextUML]<br />
class Car<br />
 operation drive(speed:Integer);<br />
 operation stop();<br />
 operation accelerate();<br />
end;</p>
<p>See what I mean? That is why I dare question the notion of using UML, if you can use the implementatino language directly, without loosing semantics. Of course, there are features of one language over another that let you express &#8220;semantically rich&#8221; elements more easily than in another language &#8212; but that IMHO is merely a matter of choosing the right language for the right task.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.2 RC2 fixes stereotype extension rendering bug by TextUML Toolkit 1.2 is out! &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2009/02/01/textuml-toolkit-12-rc2-fixes-stereotype-extension-rendering-bug/#comment-738</link>
		<dc:creator>TextUML Toolkit 1.2 is out! &#124; abstratt: news from the front</dc:creator>
		<pubDate>Thu, 05 Feb 2009 14:57:42 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=143#comment-738</guid>
		<description>[...] now available, 5 months after 1.1, when it first became an open source project. If you already got RC2 (1.2.0.200902011417), it is the same build, no need to upgrade [...]</description>
		<content:encoded><![CDATA[<p>[...] now available, 5 months after 1.1, when it first became an open source project. If you already got RC2 (1.2.0.200902011417), it is the same build, no need to upgrade [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.1 is out! by TextUML Toolkit 1.2 is out! &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2008/09/02/textuml-toolkit-11-is-out/#comment-737</link>
		<dc:creator>TextUML Toolkit 1.2 is out! &#124; abstratt: news from the front</dc:creator>
		<pubDate>Thu, 05 Feb 2009 02:17:05 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=113#comment-737</guid>
		<description>[...] TextUML Toolkit 1.2 is now available, 5 months after 1.1, when the it first became an open source project. If you already got RC2 (1.2.0.200902011417), it [...]</description>
		<content:encoded><![CDATA[<p>[...] TextUML Toolkit 1.2 is now available, 5 months after 1.1, when the it first became an open source project. If you already got RC2 (1.2.0.200902011417), it [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.2 RC1 fixes Java 5 compatibility issue by TextUML Toolkit 1.2 RC2 fixes stereotype extension rendering bug &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2009/01/28/textuml-toolkit-12-rc1-fixes-java-5-compatibility-issue/#comment-732</link>
		<dc:creator>TextUML Toolkit 1.2 RC2 fixes stereotype extension rendering bug &#124; abstratt: news from the front</dc:creator>
		<pubDate>Sun, 01 Feb 2009 23:01:20 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=142#comment-732</guid>
		<description>[...] new RC build of the TextUML Toolkit is now available. It has one bug fix since RC1. Basically, when rendering stereotypes, the metaclasses extended by the stereotype were not meing [...]</description>
		<content:encoded><![CDATA[<p>[...] new RC build of the TextUML Toolkit is now available. It has one bug fix since RC1. Basically, when rendering stereotypes, the metaclasses extended by the stereotype were not meing [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit M2a - Java 5 users please read by TextUML Toolkit 1.2 RC1 fixes Java 5 compatibility issue &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2007/09/08/63/#comment-723</link>
		<dc:creator>TextUML Toolkit 1.2 RC1 fixes Java 5 compatibility issue &#124; abstratt: news from the front</dc:creator>
		<pubDate>Thu, 29 Jan 2009 06:59:30 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/2007/09/08/63/#comment-723</guid>
		<description>[...] it happened again. A user reported that the TextUML Toolkit 1.2 RC0 build announced earlier this week wouldn&#8217;t [...]</description>
		<content:encoded><![CDATA[<p>[...] it happened again. A user reported that the TextUML Toolkit 1.2 RC0 build announced earlier this week wouldn&#8217;t [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Feature: data types by TextUML Toolkit 1.2 RC0 / M3 is now available &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2008/11/28/feature-data-types/#comment-722</link>
		<dc:creator>TextUML Toolkit 1.2 RC0 / M3 is now available &#124; abstratt: news from the front</dc:creator>
		<pubDate>Mon, 26 Jan 2009 03:28:17 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=134#comment-722</guid>
		<description>[...] data types (a.k.a. structs) [...]</description>
		<content:encoded><![CDATA[<p>[...] data types (a.k.a. structs) [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Executable models with TextUML Toolkit 1.2 M1 by Closures in UML? Extending the metamodel with the TextUML Toolkit &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2008/11/07/executable-models-with-textuml-toolkit-12-m1/#comment-719</link>
		<dc:creator>Closures in UML? Extending the metamodel with the TextUML Toolkit &#124; abstratt: news from the front</dc:creator>
		<pubDate>Sun, 18 Jan 2009 07:07:20 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=125#comment-719</guid>
		<description>[...] has been the case in the TextUML Toolkit, for instance, when implementing closures in the TextUML action language (yes, the Toolkit eats its own dog [...]</description>
		<content:encoded><![CDATA[<p>[...] has been the case in the TextUML Toolkit, for instance, when implementing closures in the TextUML action language (yes, the Toolkit eats its own dog [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Integrating the TextUML Toolkit with other modeling tools by rafael.chaves</title>
		<link>http://abstratt.com/blog/2008/12/23/integrating-textuml-toolkit-with-other-modeling-tools/#comment-671</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Wed, 24 Dec 2008 23:57:41 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=137#comment-671</guid>
		<description>Hi Maarten, thanks for the kind words, and thanks also for your suggestion. I investigated a while ago making &lt;a href="www.umlgraph.org" rel="nofollow"&gt;UMLGraph&lt;/a&gt; (the tool behind LightUML) more generally useful so model creation and diagram rendering capabilities were completely decoupled (the former is based on Java code as input and as such doesn't serve me, while the latter is based on Graphviz, and is really cool).

The effort required was not trivial though, and since graphical visualization is more a nice to have than a key feature, I decided to drop that idea and integrated with Graphviz via &lt;a href="http://eclipsegraphviz.sf.net" rel="nofollow"&gt;EclipseGraphviz&lt;/a&gt; instead.</description>
		<content:encoded><![CDATA[<p>Hi Maarten, thanks for the kind words, and thanks also for your suggestion. I investigated a while ago making <a href="www.umlgraph.org" rel="nofollow">UMLGraph</a> (the tool behind LightUML) more generally useful so model creation and diagram rendering capabilities were completely decoupled (the former is based on Java code as input and as such doesn&#8217;t serve me, while the latter is based on Graphviz, and is really cool).</p>
<p>The effort required was not trivial though, and since graphical visualization is more a nice to have than a key feature, I decided to drop that idea and integrated with Graphviz via <a href="http://eclipsegraphviz.sf.net" rel="nofollow">EclipseGraphviz</a> instead.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Integrating the TextUML Toolkit with other modeling tools by Maarten Meijer</title>
		<link>http://abstratt.com/blog/2008/12/23/integrating-textuml-toolkit-with-other-modeling-tools/#comment-670</link>
		<dc:creator>Maarten Meijer</dc:creator>
		<pubDate>Wed, 24 Dec 2008 15:53:04 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=137#comment-670</guid>
		<description>Can't you integrate the apparently stale project at http://lightuml.sourceforge.net/ into your excellent viewer/parser plugin?</description>
		<content:encoded><![CDATA[<p>Can&#8217;t you integrate the apparently stale project at <a href="http://lightuml.sourceforge.net/" rel="nofollow">http://lightuml.sourceforge.net/</a> into your excellent viewer/parser plugin?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Integrating the TextUML Toolkit with other modeling tools by rafael.chaves</title>
		<link>http://abstratt.com/blog/2008/12/23/integrating-textuml-toolkit-with-other-modeling-tools/#comment-669</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Wed, 24 Dec 2008 08:44:56 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=137#comment-669</guid>
		<description>Hi Jérôme,

Actually, the TextUML renderer (the component that generates TextUML source from UML2 models) is pretty much self-contained so I would say it is ready for integration into Papyrus. It only needs to be wired into whatever framework Papyrus offers for third-party diagram providers. Not sure how easy or hard that part is.

Cheers,

Rafael</description>
		<content:encoded><![CDATA[<p>Hi Jérôme,</p>
<p>Actually, the TextUML renderer (the component that generates TextUML source from UML2 models) is pretty much self-contained so I would say it is ready for integration into Papyrus. It only needs to be wired into whatever framework Papyrus offers for third-party diagram providers. Not sure how easy or hard that part is.</p>
<p>Cheers,</p>
<p>Rafael</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Integrating the TextUML Toolkit with other modeling tools by Jerome BENOIS</title>
		<link>http://abstratt.com/blog/2008/12/23/integrating-textuml-toolkit-with-other-modeling-tools/#comment-668</link>
		<dc:creator>Jerome BENOIS</dc:creator>
		<pubDate>Wed, 24 Dec 2008 08:03:14 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=137#comment-668</guid>
		<description>Hi Rafael,

Great!
"Reading models created by other UML tools using the TextUML notation" could provide an excellent way to integrate TextUML as an Eclipse Papyrus Diagram.

Cheers,
Jérôme.</description>
		<content:encoded><![CDATA[<p>Hi Rafael,</p>
<p>Great!<br />
&#8220;Reading models created by other UML tools using the TextUML notation&#8221; could provide an excellent way to integrate TextUML as an Eclipse Papyrus Diagram.</p>
<p>Cheers,<br />
Jérôme.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on TextUML Toolkit 1.2 M2 is now available by Manfred Moser</title>
		<link>http://abstratt.com/blog/2008/12/15/textuml-toolkit-12-m2-is-now-available/#comment-637</link>
		<dc:creator>Manfred Moser</dc:creator>
		<pubDate>Wed, 17 Dec 2008 00:00:11 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=139#comment-637</guid>
		<description>Congrats. Thats awesome.</description>
		<content:encoded><![CDATA[<p>Congrats. Thats awesome.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Feature: data types by TextUML Toolkit 1.2 M2 is now available &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2008/11/28/feature-data-types/#comment-629</link>
		<dc:creator>TextUML Toolkit 1.2 M2 is now available &#124; abstratt: news from the front</dc:creator>
		<pubDate>Mon, 15 Dec 2008 10:36:56 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=134#comment-629</guid>
		<description>[...] data types [...]</description>
		<content:encoded><![CDATA[<p>[...] data types [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Feature: required extensions for stereotypes by TextUML Toolkit 1.2 M2 is now available &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2008/11/11/feature-required-extensions-for-stereotypes/#comment-628</link>
		<dc:creator>TextUML Toolkit 1.2 M2 is now available &#124; abstratt: news from the front</dc:creator>
		<pubDate>Mon, 15 Dec 2008 10:30:56 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=130#comment-628</guid>
		<description>[...] required extensions for stereotypes [...]</description>
		<content:encoded><![CDATA[<p>[...] required extensions for stereotypes [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Eclipse DemoCamp in Vancouver by A reader&#8217;s &#8220;Thoughts about TextUML&#8221; &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2007/12/08/eclipse-democamp-in-vancouver/#comment-599</link>
		<dc:creator>A reader&#8217;s &#8220;Thoughts about TextUML&#8221; &#124; abstratt: news from the front</dc:creator>
		<pubDate>Sat, 06 Dec 2008 09:46:51 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/2007/12/08/eclipse-democamp-in-vancouver/#comment-599</guid>
		<description>[...] presentation notation and the persistence format are completely unrelated concerns (exactly, see my previous comment on [...]</description>
		<content:encoded><![CDATA[<p>[...] presentation notation and the persistence format are completely unrelated concerns (exactly, see my previous comment on [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Eclipse DemoCamp in Vancouver by Lightning Talks at April&#8217;s VIJUG meeting &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2007/12/08/eclipse-democamp-in-vancouver/#comment-598</link>
		<dc:creator>Lightning Talks at April&#8217;s VIJUG meeting &#124; abstratt: news from the front</dc:creator>
		<pubDate>Sat, 06 Dec 2008 09:45:58 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/2007/12/08/eclipse-democamp-in-vancouver/#comment-598</guid>
		<description>[...] next VIJUG meeting will follow the Lightning Talks format. Last December, I attended the Eclipse Democamp in Vancouver which had a similar format and it was quite dynamic and fast-paced. I am looking [...]</description>
		<content:encoded><![CDATA[<p>[...] next VIJUG meeting will follow the Lightning Talks format. Last December, I attended the Eclipse Democamp in Vancouver which had a similar format and it was quite dynamic and fast-paced. I am looking [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Where we are coming from - Part II by Where we are coming from - Part III &#124; abstratt: news from the front</title>
		<link>http://abstratt.com/blog/2007/04/07/where-we-are-coming-from-part-ii/#comment-595</link>
		<dc:creator>Where we are coming from - Part III &#124; abstratt: news from the front</dc:creator>
		<pubDate>Thu, 04 Dec 2008 06:06:27 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/2007/04/07/where-we-are-coming-from-part-ii/#comment-595</guid>
		<description>[...] the third and last installment in this series. If you haven&#8217;t done it yet, read the first and second installments before you [...]</description>
		<content:encoded><![CDATA[<p>[...] the third and last installment in this series. If you haven&#8217;t done it yet, read the first and second installments before you [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Slashdot: Is Open Source Software a Race To Zero? by rafael.chaves</title>
		<link>http://abstratt.com/blog/2008/11/23/open-source-software-a-race-to-zero/#comment-581</link>
		<dc:creator>rafael.chaves</dc:creator>
		<pubDate>Thu, 27 Nov 2008 04:31:48 +0000</pubDate>
		<guid isPermaLink="false">http://abstratt.com/blog/?p=133#comment-581</guid>
		<description>Interestingly enough, I just learned about the CAOS blog by the 451 Group. This post is great:

http://blogs.the451group.com/opensource/2008/10/13/open-source-is-not-a-business-model/

But there are many other interesting posts on that blog. Obligatory read for anyone in the business of software considering the open source venue.</description>
		<content:encoded><![CDATA[<p>Interestingly enough, I just learned about the CAOS blog by the 451 Group. This post is great:</p>
<p><a href="http://blogs.the451group.com/opensource/2008/10/13/open-source-is-not-a-business-model/" rel="nofollow">http://blogs.the451group.com/opensource/2008/10/13/open-source-is-not-a-business-model/</a></p>
<p>But there are many other interesting posts on that blog. Obligatory read for anyone in the business of software considering the open source venue.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
