<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Why UML Fails to Add Value to the Design and Development Process</title>
	<atom:link href="http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/feed/" rel="self" type="application/rss+xml" />
	<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/</link>
	<description>(notes from an average programmer studying the hard stuff)</description>
	<lastBuildDate>Thu, 21 May 2009 01:17:58 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Ben Gillis</title>
		<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/#comment-2539</link>
		<dc:creator>Ben Gillis</dc:creator>
		<pubDate>Fri, 08 May 2009 17:15:12 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=442#comment-2539</guid>
		<description>You could have purchased the book online for much le$$.
I got mine for half that price.</description>
		<content:encoded><![CDATA[<p>You could have purchased the book online for much le$$.<br />
I got mine for half that price.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Gillis</title>
		<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/#comment-2538</link>
		<dc:creator>Ben Gillis</dc:creator>
		<pubDate>Fri, 08 May 2009 17:13:09 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=442#comment-2538</guid>
		<description>it certainly is true, have you tried the same projects via domain-specific modeling?
keep in mind, en mass publication is not the leading edge of competitive methodology.
the best practices are competitive advantages, and while slowly coming out to the general audience, the practice of DSM has indeed kicked the alternatives a$$ when it comes to productivity.</description>
		<content:encoded><![CDATA[<p>it certainly is true, have you tried the same projects via domain-specific modeling?<br />
keep in mind, en mass publication is not the leading edge of competitive methodology.<br />
the best practices are competitive advantages, and while slowly coming out to the general audience, the practice of DSM has indeed kicked the alternatives a$$ when it comes to productivity.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ben Gillis</title>
		<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/#comment-2537</link>
		<dc:creator>Ben Gillis</dc:creator>
		<pubDate>Fri, 08 May 2009 17:11:23 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=442#comment-2537</guid>
		<description>&gt; (Not everyone has the time to port a language implementation to a new platform *and* get their application running.)
Kelly&#039;s remark applies here, the *tooling* is necessary.  And, yes, a *multitude* of domain-specific languages can be developed, rapidly, with zero-to-near zero learning curve?  Why such a low learning curve?  B/c the grammar/nomenclature is the SMEs/stakeholders terminology, i.e. their domain.  RAD DSLs are indeed possible, e.g. http://bengillis.wordpress.com/2009/04/18/a-variety-of-dsls-in-real-world-examples/</description>
		<content:encoded><![CDATA[<p>&gt; (Not everyone has the time to port a language implementation to a new platform *and* get their application running.)<br />
Kelly&#8217;s remark applies here, the *tooling* is necessary.  And, yes, a *multitude* of domain-specific languages can be developed, rapidly, with zero-to-near zero learning curve?  Why such a low learning curve?  B/c the grammar/nomenclature is the SMEs/stakeholders terminology, i.e. their domain.  RAD DSLs are indeed possible, e.g. <a href="http://bengillis.wordpress.com/2009/04/18/a-variety-of-dsls-in-real-world-examples/" rel="nofollow">http://bengillis.wordpress.com/2009/04/18/a-variety-of-dsls-in-real-world-examples/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dinesh Rajak</title>
		<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/#comment-2519</link>
		<dc:creator>Dinesh Rajak</dc:creator>
		<pubDate>Sat, 03 Jan 2009 07:33:52 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=442#comment-2519</guid>
		<description>UML, seems to be the best way modeling a system. It scores upper hand in giving the insight of how system is supposed to behave under ideal and non-ideal cases. Following the sequential steps of Use Case, it becomes very easy to think of what codes needs to be written for building a system</description>
		<content:encoded><![CDATA[<p>UML, seems to be the best way modeling a system. It scores upper hand in giving the insight of how system is supposed to behave under ideal and non-ideal cases. Following the sequential steps of Use Case, it becomes very easy to think of what codes needs to be written for building a system</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Juha-Pekka</title>
		<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/#comment-2458</link>
		<dc:creator>Juha-Pekka</dc:creator>
		<pubDate>Wed, 12 Nov 2008 21:54:31 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=442#comment-2458</guid>
		<description>To Pascal: The model transformation approach you described looks for me as OMG’s MDA initiative. I can’t either see how it could work. For example, one obvious and still unresolved challenge in MDA is how to correctly make changes to the models that were created partly earlier by transformation. 

I also share you view on using the capabilities of a host language to create abstractions that map closer to the actual problem domain. Lisp seems a good choice for you. In teams and bigger organizations the usual challenge with embedded/internal DSLs is how to make sure that other developers also use the higher level expressions and do not “drop” to the host language. External DSLs solve this issue. See examples of various domain-specific graphical languages at www.dsmforum.org/cases.html</description>
		<content:encoded><![CDATA[<p>To Pascal: The model transformation approach you described looks for me as OMG’s MDA initiative. I can’t either see how it could work. For example, one obvious and still unresolved challenge in MDA is how to correctly make changes to the models that were created partly earlier by transformation. </p>
<p>I also share you view on using the capabilities of a host language to create abstractions that map closer to the actual problem domain. Lisp seems a good choice for you. In teams and bigger organizations the usual challenge with embedded/internal DSLs is how to make sure that other developers also use the higher level expressions and do not “drop” to the host language. External DSLs solve this issue. See examples of various domain-specific graphical languages at <a href="http://www.dsmforum.org/cases.html" rel="nofollow">http://www.dsmforum.org/cases.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pascal Bourguignon</title>
		<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/#comment-2457</link>
		<dc:creator>Pascal Bourguignon</dc:creator>
		<pubDate>Wed, 12 Nov 2008 17:09:59 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=442#comment-2457</guid>
		<description>Philippe Desfray who developed Objecteering (and UML CASE) had a theory behind it to transform models automatically. See &quot;Object Engineering The Fourth Dimension&quot; http://www.softeam.com/references_publications_livre.php 
Objecteering includes a programming language (&quot;J&quot; in older versions, Java in the latest IIANW), that allows to implement model transformations. With this language you can theorically write kind of macros to transform or decorate an analysis model into a design model, or a design model into an application model and then generate code.

Unfortunately in practice that doesn&#039;t work, and the reason is that it is not Lisp!  It doesn&#039;t work because it is much more harder to implement any software transformation in a system that is not homoiconic, where you need special (commercial) tools to have access to all the features, and where you need a full feature programming language to develop sophisticated algorithms and heuristics to transform your systems and designs, or just to generate code.  The way it is implemented in Objecteering with J is just too hard and idiosyncratic to be worth in practice to do something that lisp programmers do everyday: writting macros transforming high level expressions into lowlevel code.  

And there&#039;s no need for a graphical representation such as UML to do that, lisp symbol expressions are all you need to climb the abstraction ladder.</description>
		<content:encoded><![CDATA[<p>Philippe Desfray who developed Objecteering (and UML CASE) had a theory behind it to transform models automatically. See &#8220;Object Engineering The Fourth Dimension&#8221; <a href="http://www.softeam.com/references_publications_livre.php" rel="nofollow">http://www.softeam.com/references_publications_livre.php</a><br />
Objecteering includes a programming language (&#8220;J&#8221; in older versions, Java in the latest IIANW), that allows to implement model transformations. With this language you can theorically write kind of macros to transform or decorate an analysis model into a design model, or a design model into an application model and then generate code.</p>
<p>Unfortunately in practice that doesn&#8217;t work, and the reason is that it is not Lisp!  It doesn&#8217;t work because it is much more harder to implement any software transformation in a system that is not homoiconic, where you need special (commercial) tools to have access to all the features, and where you need a full feature programming language to develop sophisticated algorithms and heuristics to transform your systems and designs, or just to generate code.  The way it is implemented in Objecteering with J is just too hard and idiosyncratic to be worth in practice to do something that lisp programmers do everyday: writting macros transforming high level expressions into lowlevel code.  </p>
<p>And there&#8217;s no need for a graphical representation such as UML to do that, lisp symbol expressions are all you need to climb the abstraction ladder.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Juha-Pekka</title>
		<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/#comment-2453</link>
		<dc:creator>Juha-Pekka</dc:creator>
		<pubDate>Mon, 10 Nov 2008 20:29:27 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=442#comment-2453</guid>
		<description>Good discussion going here.

I would like to emphasize the domain-specific parts of a language. This is essential here as it is needed to raise the level of abstraction as well as to make the code generation possible. UML simply can’t do that since it does not “know” about any particular domain, such as automotive, telecom, bank, insurance etc. For those who want to see a comparison via an example, please take a look of the Chapter 1, Section 1.3. at Wiley site. (http://media.wiley.com/product_data/excerpt/64/04700366/0470036664.pdf)

In the example the DSM solution is created for a narrow area of interest (Symbian applications), raise the level of abstraction and provide full code generation from the models. I would be interested to see a similar kind of working example made with a general purpose modeling language, like UML, SySML, SSADM, EXPRESS-G, MERISE or IDEF. I would be even more interested to see the profile definition for this domain with UML. Implementing the profile would be enormous tasks since most domains are really different to that UML provides. 

In my opinion, SysML is not a domain-specific modeling language. I share the view of OMG (http://www.omgsysml.org/#What-Is_SysML) as I can’t see from SysML any specific kind of systems it addresses. A more domain-specific language addressing system modeling would be for instance AUTOSAR, EAST-ADL or AADL – all targeting automotive domain.

It is true that with executable UML we can also generate code but the models are at low level of abstraction. And it is the raise in the level of abstraction that improved productivity in the past and will do so in future too. Moreover, (executable)UML does not guide developers making correct designs or prevent creating models that don’t execute or execute with a poor performance. This simply because a general purpose language don’t know about the domain we are working in. In my opinion the whole term executable UML is a bit misleading since most of the executable work (by Kennedy Carter, Olivanova/Oasis, Schaler&amp;Mellor) existed already before UML and they already know then the “right” parts of the UML specification ;-)</description>
		<content:encoded><![CDATA[<p>Good discussion going here.</p>
<p>I would like to emphasize the domain-specific parts of a language. This is essential here as it is needed to raise the level of abstraction as well as to make the code generation possible. UML simply can’t do that since it does not “know” about any particular domain, such as automotive, telecom, bank, insurance etc. For those who want to see a comparison via an example, please take a look of the Chapter 1, Section 1.3. at Wiley site. (<a href="http://media.wiley.com/product_data/excerpt/64/04700366/0470036664.pdf" rel="nofollow">http://media.wiley.com/product_data/excerpt/64/04700366/0470036664.pdf</a>)</p>
<p>In the example the DSM solution is created for a narrow area of interest (Symbian applications), raise the level of abstraction and provide full code generation from the models. I would be interested to see a similar kind of working example made with a general purpose modeling language, like UML, SySML, SSADM, EXPRESS-G, MERISE or IDEF. I would be even more interested to see the profile definition for this domain with UML. Implementing the profile would be enormous tasks since most domains are really different to that UML provides. </p>
<p>In my opinion, SysML is not a domain-specific modeling language. I share the view of OMG (<a href="http://www.omgsysml.org/#What-Is_SysML" rel="nofollow">http://www.omgsysml.org/#What-Is_SysML</a>) as I can’t see from SysML any specific kind of systems it addresses. A more domain-specific language addressing system modeling would be for instance AUTOSAR, EAST-ADL or AADL – all targeting automotive domain.</p>
<p>It is true that with executable UML we can also generate code but the models are at low level of abstraction. And it is the raise in the level of abstraction that improved productivity in the past and will do so in future too. Moreover, (executable)UML does not guide developers making correct designs or prevent creating models that don’t execute or execute with a poor performance. This simply because a general purpose language don’t know about the domain we are working in. In my opinion the whole term executable UML is a bit misleading since most of the executable work (by Kennedy Carter, Olivanova/Oasis, Schaler&amp;Mellor) existed already before UML and they already know then the “right” parts of the UML specification <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Grass&#8217;s Blog - Asp.net&#124;C# &#187; Blog Archive &#187; How a Modeling Language Should Look Like and where UML Stands with Regard to this?</title>
		<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/#comment-2452</link>
		<dc:creator>Grass&#8217;s Blog - Asp.net&#124;C# &#187; Blog Archive &#187; How a Modeling Language Should Look Like and where UML Stands with Regard to this?</dc:creator>
		<pubDate>Mon, 10 Nov 2008 04:22:30 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=442#comment-2452</guid>
		<description>[...] Based on the book Domain Specific Modeling by Steven Kelly and Juha-Pekka Tolvanen, Lispy, the author of Learning Lisp blog, exposed some thoughts on how a modeling language should look like: [...]</description>
		<content:encoded><![CDATA[<p>[...] Based on the book Domain Specific Modeling by Steven Kelly and Juha-Pekka Tolvanen, Lispy, the author of Learning Lisp blog, exposed some thoughts on how a modeling language should look like: [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: kadreg</title>
		<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/#comment-2450</link>
		<dc:creator>kadreg</dc:creator>
		<pubDate>Sun, 09 Nov 2008 12:15:53 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=442#comment-2450</guid>
		<description>UML is a very general notation for Object oriented design. It&#039;s a swiss cutlery for a very general software design. It&#039;s not always the best fit, but it works if we don&#039;t overuse it.

But in domain specific cases, UML can be not enought. System conception is not only software design, and, if we add business rules and domain constraints, the best notation won&#039;t be UML.

But UML introduced the notion  of profile, which is way to extend UML, adding new concepts or refining existing concept. Profiles can be used to add lower concepts (Platform specific extension, ie &quot;this class is a C++ class or a C structure&quot;), but also high level concepts (This is the concept of requirement, which will be declared as implemented in this use case, and its technical realization will be this software component).

With this extensions, we can adapts UML to domain specific needs. The most advanced is sysML, which is an OMG profile for system modeling, but the user can create its own profile to its domain. I&#039;m currently working on a profile for system modeling using a enterprise-specific method.

With such a tool, UML can be adapted to the user domain, and tooling can be created among this model to help user manipulating it.

But why use a profile instead of creating a specific metamodel and its manipulation from scratch ? Many UML tools supports profil, and, if the user profile reuse some UML diagrams (sequence diagram are horrible to rewrite and are very common in many methods), thoses diagrams come freely with the tool.

Note that if your business specific modeling is very far of UML modelling, the complexity of profil and UML mapping can be a very bad idea. You have to be very pragmatic, as usual.</description>
		<content:encoded><![CDATA[<p>UML is a very general notation for Object oriented design. It&#8217;s a swiss cutlery for a very general software design. It&#8217;s not always the best fit, but it works if we don&#8217;t overuse it.</p>
<p>But in domain specific cases, UML can be not enought. System conception is not only software design, and, if we add business rules and domain constraints, the best notation won&#8217;t be UML.</p>
<p>But UML introduced the notion  of profile, which is way to extend UML, adding new concepts or refining existing concept. Profiles can be used to add lower concepts (Platform specific extension, ie &#8220;this class is a C++ class or a C structure&#8221;), but also high level concepts (This is the concept of requirement, which will be declared as implemented in this use case, and its technical realization will be this software component).</p>
<p>With this extensions, we can adapts UML to domain specific needs. The most advanced is sysML, which is an OMG profile for system modeling, but the user can create its own profile to its domain. I&#8217;m currently working on a profile for system modeling using a enterprise-specific method.</p>
<p>With such a tool, UML can be adapted to the user domain, and tooling can be created among this model to help user manipulating it.</p>
<p>But why use a profile instead of creating a specific metamodel and its manipulation from scratch ? Many UML tools supports profil, and, if the user profile reuse some UML diagrams (sequence diagram are horrible to rewrite and are very common in many methods), thoses diagrams come freely with the tool.</p>
<p>Note that if your business specific modeling is very far of UML modelling, the complexity of profil and UML mapping can be a very bad idea. You have to be very pragmatic, as usual.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John "Z-Bo" Zabroski</title>
		<link>http://lispy.wordpress.com/2008/10/29/why-uml-fails-to-add-value-to-the-design-and-development-process/#comment-2439</link>
		<dc:creator>John "Z-Bo" Zabroski</dc:creator>
		<pubDate>Mon, 03 Nov 2008 04:56:18 +0000</pubDate>
		<guid isPermaLink="false">http://lispy.wordpress.com/?p=442#comment-2439</guid>
		<description>@Because the UML models cannot be compiled, executed, or interpreted, they are reduced to the level of mere documentation. 

Huh?  Have you ever heard of Executable UML?  Leon Starr&#039;s classic UML book on class modeling discusses domain-specific modeling (I wouldn&#039;t necessarily recommend the book, though).  Code architectures are supposed to be limited to the deployment diagram.

@As Steven Kelly said in a 2006 article, “To make model-driven development work this way, you cannot use a general-purpose design language like UML and a modeling tool’s built-in code generator. The people that created UML did not design it for describing applications in your domain, or for generating code other than skeletons.[...]&quot;

This is the same thesis presented OVER 20 YEARS AGO by the ROOM folks.  The problem was that ROOM was &quot;ahead of its time&quot;: it was a domain-specific pictorial modeling language for distributed, real-time systems.  It also basically failed in the marketplace, in part because it was proprietary and in part because it served such a narrow niche that it didn&#039;t attract the attention of mainstream journalists who could write silly but useful promotional articles, with headers that say, &quot;PROGRAMMING HAS NEVER BEEN EASIER.&quot;</description>
		<content:encoded><![CDATA[<p>@Because the UML models cannot be compiled, executed, or interpreted, they are reduced to the level of mere documentation. </p>
<p>Huh?  Have you ever heard of Executable UML?  Leon Starr&#8217;s classic UML book on class modeling discusses domain-specific modeling (I wouldn&#8217;t necessarily recommend the book, though).  Code architectures are supposed to be limited to the deployment diagram.</p>
<p>@As Steven Kelly said in a 2006 article, “To make model-driven development work this way, you cannot use a general-purpose design language like UML and a modeling tool’s built-in code generator. The people that created UML did not design it for describing applications in your domain, or for generating code other than skeletons.[...]&#8221;</p>
<p>This is the same thesis presented OVER 20 YEARS AGO by the ROOM folks.  The problem was that ROOM was &#8220;ahead of its time&#8221;: it was a domain-specific pictorial modeling language for distributed, real-time systems.  It also basically failed in the marketplace, in part because it was proprietary and in part because it served such a narrow niche that it didn&#8217;t attract the attention of mainstream journalists who could write silly but useful promotional articles, with headers that say, &#8220;PROGRAMMING HAS NEVER BEEN EASIER.&#8221;</p>
]]></content:encoded>
	</item>
</channel>
</rss>
