<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	
	<channel>
		<title>The Enterprise Architect</title>
		<link>http://www.theenterprisearchitect.eu</link>
                <atom:link href="http://www.theenterprisearchitect.eu/rss.xml" rel="self" type="application/rss+xml" />
		<description>building an agile enterprise</description>
		<language>en</language>
		<managingEditor>jdenhaan@gmail.com (Johan den Haan)</managingEditor>
                <copyright>Copyright 2008</copyright>
		<generator>Pivot Pivot - 1.40.4: 'Dreadwind'</generator>
		<pubDate>Mon, 29 Dec 2008 21:33:42 +0100</pubDate>
		<ttl>60</ttl>
		
		
		
		
		<item>
			<title>Blog overview 2008</title>
			<link>http://www.theenterprisearchitect.eu/archive/2008/12/29/blog-overview-2008</link>
			<comments>http://www.theenterprisearchitect.eu/archive/2008/12/29/blog-overview-2008#comm</comments>
                        <description><![CDATA[ <p>
End of the year, time for a lookback. I wish you all the best for 2009 and I hope to see you again next year for some interesting discussions.
</p>
<p>
Below you can find the top 10 posts (based on traffic) of this year and a full blog summary shortly describing each post of 2008.</p><h3>Top 10 posts</h3>
<p>
According to the stats these are the top
ten posts on my blog:
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/01/16/mda-model-driven-architecture-basic-concepts" title="MDA, Model Driven Architecture, basic concepts">MDA, Model Driven
	Architecture, basic concepts</a></li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/03/14/model-driven-engineering">Model
	Driven Engineering</a></li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2007/05/15/architecture-a-definition">Architecture,
	a definition</a> (not from this year, but still popular)</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/05/19/architecture-requirements-for-service-oriented-business-applications">Architecture
	requirements for Service-Oriented Business Applications</a></li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/04/15/combining-general-purpose-languages-and-domain-specific-languages-for-model-driven-engineering">Combining
	general purpose languages and domain specific languages for Model Driven
	Engineering</a>&nbsp;</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2007/04/11/soa-and-human-interaction">SOA
	and Human Interaction</a> (not from this year, but still popular)</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/02/18/mda-and-model-transformation">MDA
	and Model Transformation</a>&nbsp;</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/07/09/osgi-quick-start">OSGi
	quick start</a>&nbsp;</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2007/04/26/soa-and-service-identification">SOA
	and Service Identification</a> (not from this year, but still popular)
	</li>
</ul>
<p>
I just want to give a recent post special
attention because it&rsquo;s a first attempt to bridge my interest in both enterprise
architecture and model driven engineering: <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/11/27/the-place-of-architecture-in-model-driven-engineering">The
place of Architecture in Model-Driven Engineering</a>.
</p>
<p>
By the way, I didn&rsquo;t take the time of
publishing into account when looking at the statistics. So, articles posted
more recently are less likely to show up in the top 10, unless they are very
popular.
</p>
<h3>Blog summary for 2008</h3>
<p>
<strong>January</strong> <br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/01/14/model-driven-architecture-mda-special-interest-group-on-linkedin" title="Model Driven Architecture (MDA) special interest group on LinkedIn">Model
	Driven Architecture (MDA) special interest group on LinkedIn</a>: I started a
	special interest group for MDA on LinkedIn. Until now over 1500 members have
	joined this group. You can still <a target="_blank" href="http://www.linkedin.com/e/gis/50539">join
	today</a>!</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/01/16/mda-model-driven-architecture-basic-concepts" title="MDA, Model Driven Architecture, basic concepts">MDA, Model Driven
	Architecture, basic concepts</a>: post explaining the basic concepts of MDA as
	defined by the OMG.</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/01/19/soa-approach-to-integration" title="SOA Approach to Integration">SOA Approach to Integration</a>: book
	review.
	</li>
</ul>
<p>
<br />
<strong>February</strong><br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/02/18/mda-and-model-transformation">MDA
	and Model Transformation</a>: overview of model transformation approaches and a
	way to classify them.
	</li>
</ul>
<p>
<br />
<strong>March</strong>
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/03/14/model-driven-engineering">Model
	Driven Engineering</a>: post introducing Model Driven Engineering (MDE) as a
	broader concept as MDA. James Taylor had a nice <a target="_blank" href="http://jtonedm.com/2008/03/14/heres-how-edm-addresses-a-gap-in-model-driven-engineering/">follow-up
	article</a> explaining how MDE shouldn&rsquo;t only focus on developer productivity, because
	the model that should drive the engineering is a business model, not a
	technical one.
	</li>
</ul>
</p>
<p>
<strong>April</strong>
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/04/10/spring-time">Spring
	time&hellip;</a>: changed the whole appearance of my blog. If you have suggestions for
	improvement please feel free to contact me.</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/04/15/combining-general-purpose-languages-and-domain-specific-languages-for-model-driven-engineering">Combining
	general purpose languages and domain specific languages for Model Driven
	Engineering</a>: this article explains the notion of model, metamodel, and
	modeling language. It also shows how ontological and linguistic metamodeling
	can be combined for defining DSLs (Domain-Specific Languages). This is shown
	with an example process modeling DSL. InfoQ picked up the article with <a target="_blank" href="http://www.infoq.com/news/2008/04/mde-combining-gpl-and-dsl">this summary</a>.
	</li>
</ul>
<p>
<strong>May</strong>
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/05/19/architecture-requirements-for-service-oriented-business-applications">Architecture
	requirements for Service-Oriented Business Applications</a>: primer on
	Service-Oriented Architecture (SOA). The first part of the article explains the
	project types to execute when moving to a SOA and it argues why a SOA is needed
	if you want to integrate processes. The second part goes into detail about
	service-oriented development (programming model, service types, implementation
	and standards). Recently Nick Malik recommended the article in <a target="_blank" href="http://blogs.msdn.com/nickmalik/archive/2008/12/05/understanding-soba.aspx">this
	blog post</a>, thanks Nick!</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/05/27/model-driven-experience">Model
	Driven Experience</a>: announcing the first Dutch symposium on Model Driven
	Development practices. I&rsquo;m looking forward to the 2009 edition!
	</li>
</ul>
<p>
<strong>June</strong>
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/06/07/quality-in-model-driven-soba-development">Quality
	in Model-Driven SOBA development</a>: article explaining how an MDE approach
	for Service-Oriented Business Applications (SOBA) asks for specific approaches
	to ensure the quality of the resulting system. Model validation, model
	checking, and model-based testing are described.</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/06/11/mda-mdd-mde-mdsd-mdse-help">MDA
	MDD MDE MDSD MDSE: help!</a>: just a fun post on the confusion in MD*
	abbreviations.
	</li>
</ul>
<p>
<strong>July</strong>
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/07/09/osgi-quick-start">OSGi
	quick start</a>: just as the title says, a quick start if you want to start
	with OSGi.</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/07/14/soa-ontology">SOA
	Ontology</a>: my comments on SOA Ontology Draft 2.0 published that day by The
	Open Group. InfoQ included the post in their <a target="_blank" href="http://www.infoq.com/news/2008/07/open-group-soa-ontology">news item on
	this draft</a>.</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/07/29/8-reasons-why-model-driven-approaches-will-fail">8
	Reasons Why Model-Driven Approaches (will) Fail</a>: post announcing <a target="_blank" href="http://www.infoq.com/articles/8-reasons-why-MDE-fails">my article (with
	the same title) on InfoQ</a>. The article was introduced on InfoQ by
	Jean-Jacques Dubray in <a target="_blank" href="http://www.infoq.com/news/2008/07/8-reasons-md-fails">this news item</a>.
	</li>
</ul>
<p>
<strong>August</strong>
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/08/11/dsl-and-mde-necessary-assets-for-model-driven-approaches">DSL
	and MDE, necessary assets for Model-Driven approaches</a>: article explaining
	what Domain-Specific Languages are, why you should use them, and how they can
	should be combined with MDE.</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/08/20/dsl-in-the-context-of-uml-and-gpl">DSL
	in the context of UML and GPL</a>: my reaction on a post of Steven Kelly, which
	was a reaction on a post of Cameron Skinner explaining Microsofts view on DSLs
	and UML. This post is my contribution to&nbsp; the DSL vs UML debate. InfoQ picked
	up the discussion with <a target="_blank" href="http://www.infoq.com/news/2008/09/uml-dsl">this
	item</a>.
	</li>
</ul>
<p>
<strong>September</strong>
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/09/03/the-structure-of-domain-specific-languages">The
	structure of Domain-Specific Languages</a>: post explaining how the structure
	of DSLs can differ in two different ways. An intermediate DSL can be a way to
	handle the complexity of using multiple DSLs with different structures.</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/09/29/models-08">MoDELS
	'08</a>: post announcing the MoDELS &rsquo;08 conference.
	</li>
</ul>
<p>
<strong>October</strong>
<br />
Posts covering the MoDELS &rsquo;08 conference:<strong>
</strong>
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/10/01/models-08-mde-is-a-hot-topic">MoDELS
	'08: MDE is a hot topic</a></li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/10/01/models-08-abstraction-the-neglected-side-of-modelling">MoDELS
	'08: Abstraction, the neglected side of modeling</a></li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/10/02/models-08-domain-specific-modeling">MoDELS
	'08: Domain-Specific Modeling</a> </li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/10/04/models-08-composition-and-analysis-of-behavorial-models">MoDELS
	'08: Composition and Analysis of Behavorial Models</a>&nbsp;</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/10/04/models-08-the-objects-and-arrows-of-computational-design">MoDELS
	'08: The objects and Arrows of Computational Design</a>&nbsp;</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/10/04/models-08-metamodeling-and-modularity">MoDELS
	'08: Metamodeling and Modularity</a>&nbsp;</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/10/08/models08-panel-discussion-on-the-past--future-of-mdd">MoDELS'08:
	Panel discussion on the past &amp; future of MDD</a>
	</li>
</ul>
<p>
<strong>November</strong>
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/11/03/domain-specific-modeling-needs-multi-models">Domain-Specific
	Modeling needs multi-models</a>: article explaining the concept &lsquo;multi-model&rsquo;.
	It is a more detailed explanation of the combination of MDE with DSLs.</li>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/11/27/the-place-of-architecture-in-model-driven-engineering">The
	place of Architecture in Model-Driven Engineering</a>: a first attempt to
	bridge my interest in both enterprise architecture and model driven
	engineering. This article explains what role architecture plays (or can play)
	in MDE.
	</li>
</ul>
<p>
<strong>December</strong>
<br />
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/12/20/if-programming-languages-were-lttgt">If
	Programming Languages were &lt;T&gt;</a>: just a referrer to a fun post on the
	comparison of programming languages with religions, cars, boats, women,
	girlfriends, subcultures, mixed drinks, music, rock bands, art, languages, and
	Christmas songs.</li>
	<li>And of course this post.</li>
</ul> ]]></description>
			<guid isPermaLink="false">74@http://theenterprisearchitect.eu/pivot/</guid>
			<category>Common</category>
			<pubDate>Mon, 29 Dec 2008 21:26:00 +0100</pubDate>
		</item>
		
		
		
		<item>
			<title>If Programming Languages were </title>
			<link>http://www.theenterprisearchitect.eu/archive/2008/12/20/if-programming-languages-were-lttgt</link>
			<comments>http://www.theenterprisearchitect.eu/archive/2008/12/20/if-programming-languages-were-lttgt#comm</comments>
                        <description><![CDATA[ <p>
Recently I've written a bit about <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/08/20/dsl-in-the-context-of-uml-and-gpl" title="DSL Domain Specific Language">Domain-Specific Languages (DSL)</a> as part of <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/08/11/dsl-and-mde-necessary-assets-for-model-driven-approaches" title="MDE Model Driven Engineering DSL">Model-Driven Engineering (MDE)</a>, <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/09/03/the-structure-of-domain-specific-languages" title="DSL DSVL Domain Specific Language">different types of languages</a>, <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/04/15/combining-general-purpose-languages-and-domain-specific-languages-for-model-driven-engineering" title="GPL DSL metamodel MDE">different ways to define them</a>, etc. However, it can also be fun to look at existing programming languages and how people think about them. Check out this <a href="http://lambda-the-ultimate.org/node/3133" target="_blank" title="If Programming Languages were">fun post on Lambda the Ultimate</a>:
</p>
<p>
<em>With the recent popularity of the comparison between PLs and Religions, I thought it'd be mildly amusing to see what other comparisons were out there on the intarweb. Here's the list for the meme that I collected of If Programming Languages were ...</em>
</p>
<p>
Maybe we can extend the lists with idea's about Modeling Languages or other Domain-Specific Languages... any suggestions?</p> ]]></description>
			<guid isPermaLink="false">73@http://theenterprisearchitect.eu/pivot/</guid>
			<category>Common</category>
			<pubDate>Sat, 20 Dec 2008 12:19:00 +0100</pubDate>
		</item>
		
		
		
		<item>
			<title>The place of Architecture in Model-Driven Engineering</title>
			<link>http://www.theenterprisearchitect.eu/archive/2008/11/27/the-place-of-architecture-in-model-driven-engineering</link>
			<comments>http://www.theenterprisearchitect.eu/archive/2008/11/27/the-place-of-architecture-in-model-driven-engineering#comm</comments>
                        <description><![CDATA[ Model-Driven Engineering (MDE) in its essence is constructing a model of a problem space (e.g. a business process) and transform that model into a model of a solution space (e.g. a software system). In the problem space domain-specific abstraction are used to create a model, while in the solution space implementation-oriented abstractions are used. Jean-Jacques Dubray extends this model to, what he calls, <a href="http://www.ebpml.org/blog/139.htm" target="_blank" title="Metamodel Oriented Programming (MOP)">MetaModel Oriented Programming (MOP)</a>. He states:
<p>
<em>MOP is also part of the broader <a target="_blank" href="http://www.ebpml.org/blog/130.htm" title="Model Driven Engineering">Model Driven Engineering</a> picture and intends to complement it,  not change it, not replace it.</em>
</p>
<p>
He adds the notion of metamodel to both the problem and the solution space. I like his views and triggered by them I was thinking how to fit the notion of architecture in the Model-Driven Engineering picture. So, what's the place of architecture in MDE?</p><p align="center" style="text-align:center;"><img src="http://www.theenterprisearchitect.eu/images/generative_software_development.gif" style="border:0px solid" title="Mapping between problem space and solution space" alt="Mapping between problem space and solution space" class="pivot-image" /></p>

<p align="center">
<em>Figure 1 - Mapping between problem space and solution space</em>
</p>
<p>
Let's start with a picture, Figure 1, from a <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/08/20/dsl-in-the-context-of-uml-and-gpl" title="Concepts of MDE">previous post on the concepts of MDE</a>. I'd like to combine this view with some of my previous articles on <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2007/05/15/architecture-a-definition" title="Definition of Architecture">architecture</a>, <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2007/11/22/enterprise-engineering-based-on-architecture-and-ontology" title="Enterprise Engineering">enterprise engineering</a>, and the <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2007/10/27/the-value-of-architecture" title="Economic value of Architecture">economic value of architecture</a>. I think the place of architecture in Model-Driven Engineering is as visualized in Figure 2 (below). It's a first concept, but I think the essence is clear. Architecture plays an important role in both the problem and the solution space.
</p>
<p>
In the problem domain enterprise architecture guides the design of an enterprise based on the strategy of the enterprise. Enterprise architecture is <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2007/05/15/architecture-a-definition" title="Presciptive notion of architecture">prescriptive</a> and is formulated using <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2007/06/01/architecture-principles-formalized" title="Architecture principles">principles</a> [1]. Enterprise architecture principles are based on the goals and policies of an organization and guide the design of the organization/enterprise. A design of an enterprise can be formulated using enterprise ontology, which provides a conceptual model of the enterprise that is coherent, comprehensive, consistent, and concise, and that only shows the essence of the operation of an enterprise [2]. 
</p>
<p>
Based on the design of the enterprise business components can be identified. Business components &lsquo;directly model and implement the business logic, rules and constraints that are typical, recurrent and comprehensive notions characterizing a domain or business area' [3]. I see a business components as an implementation of a part of the enterprise design, specified in terms of the problem domain (i.e. functional models / models of the problem space, specified in domain-specific abstractions).
</p>
<p align="center" style="text-align:center;"><img src="http://www.theenterprisearchitect.eu/images/problem-solution-mapping.gif" style="border:0px solid" title="Architecture and Model Driven Engineering" alt="Architecture and Model Driven Engineering" class="pivot-image" /></p>

<p align="center">
<em>Figure 2 - Architecture and MDE</em>
</p>
Besides playing an important role in the problem domain, architecture is also a key element in the solution domain. The technical architecture is closely related to the enterprise architecture. Technology is essential for supporting business, organization, information, and future enterprise developments. From this perspective the technical architecture guides or conditions how IT-systems should be designed. Following the IEEE 1471 the technical architecture also conditions the internal structure of an IT system (the quality attributes) and how IT-system are related to each other. Note that in this definition architecture also contains a <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2007/05/15/architecture-a-definition" title="Descriptive notion on architecture">descriptive notion of architecture</a>.
<p>
The transformation from functional models (in the problem domain) to executable models (in the solution domain) should be organized in such a way that the resulting artifacts conform to the technical architecture. The technical architecture also guides the behavior of the model interpreter or the transformation of the models into source code.
</p>
<p>
From an architectural perspective Model-Driven Engineering gives a lot of opportunities. Using properly defined metamodels with additional constraints ensures that the models are guaranteed to conform to the architecture. Due to the automatic generation of source code or the direct interpretation of the models (I favor the last option, but that's another discussion ;), the resulting system also fully conforms to the defined architecture.
</p>
<p>
<br />
--------------------------<br />
[1] J. A. P. Hoogervorst. Enterprise Governance &amp; Architectuur - Corporate, IT en enterprise governance in samenhangend perspectief. Sdu Uitgevers bv, Den Haag, 2007.
</p>
<p>
[2] Jan L. G. Dietz. Enterprise Ontology. Springer-Verlag, Berlin Heidelberg, 2006.
</p>
<p>
[3] F. Barbier and C Atkinson. Business Component-Based Software Engineering, chapter Business Components, pages 1-26. Kluwer Academic Publishers Group, 2003.
</p>
<div>
<br />
</div> ]]></description>
			<guid isPermaLink="false">72@http://theenterprisearchitect.eu/pivot/</guid>
			<category>Enterprise architecture</category>
			<pubDate>Thu, 27 Nov 2008 19:52:00 +0100</pubDate>
		</item>
		
		
		
		<item>
			<title>Domain-Specific Modeling needs multi-models</title>
			<link>http://www.theenterprisearchitect.eu/archive/2008/11/03/domain-specific-modeling-needs-multi-models</link>
			<comments>http://www.theenterprisearchitect.eu/archive/2008/11/03/domain-specific-modeling-needs-multi-models#comm</comments>
                        <description><![CDATA[ In previous articles I've mentioned a couple of times that a successful model-driven approach is based on a combination of <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/08/11/dsl-and-mde-necessary-assets-for-model-driven-approaches" title="MDE DSL">MDE and DSLs</a>. An MDE ( Model-Driven Engineering ) approach should define what models are needed, the modeling notations / languages and the processes (i.e. in what order should de models be defined and how are they transformed). So, DSLs are just part of MDE, they define how the models are notated: a DSL is a model language. Note: a model can be expressed in both a visual (<a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/09/03/the-structure-of-domain-specific-languages" title="DSVL DSL syntax">DSVL</a>) and a textual syntax.
<p>
When talking about different kind of models, people mostly think about models on different abstraction levels. For example the PIMs and PSMs of the <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/01/16/mda-model-driven-architecture-basic-concepts" title="MDA Model Driven Architecture">Model-Driven Architecture ( MDA )</a>. In such cases the idea is to move from the <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/08/20/dsl-in-the-context-of-uml-and-gpl" title="problem and solution space models dsl">problem to the solution space</a> by refining high level models into lower levels models, until an executable model (<em>can</em> be expressed in a programming language) is created. I like to use the term refining instead of transforming, because in most cases additional information is needed (e.g. a business process model expressed in BPMN, modeled from a user perspective, can't be transformed into an executable model without adding information).
</p>
<p>
However, to accurately abstract complex systems one monolithic model in one modeling language isn't sufficient. Besides the abstract/concrete dimension sketched above, we need the concept of multi-models.</p><br />
<h3>Multi-modeling</h3>Large and complex systems can be accurately abstracted by the use of multiple DSLs. In complex projects multiple DSLs are usually necessary in order to cope with different concerns. In other terms: multiple domain-specific models (DSMs), specified in different DSLs are needed to accurately abstract complex systems. Warmer and Kleppe [Warmer and Kleppe, 2006] also advocate the use of many small, loosely-coupled models, because they are easier to handle and improve readability in comparison with a single, monolithic model.
<p>
In literature multi-modeling is defined as the act of combining diverse models, which can be done in two ways [Brooks et al., 2008]:
</p>
<ul>
	<li><em>Hierarchical multi-modeling</em>: hierarchical compositions of distinct modeling styles are combined to take advantage of the unique capabilities and expressiveness of the distinct modeling styles.</li>
	<li><em>Multi-view modeling</em>: distinct and separate models of the same system are constructed to model different aspects of the system.</li>
</ul>
<h3>Multi-model challenges</h3>
<p>
If I refer to multi-modeling I mean multi-view modeling as defined above. While in multi-modeling a complete system is described using multiple interdependent DSMs, the integration of these DSMs is needed to synthesize the described system. This poses several research challenges [Denton et al., 2008]:
</p>
<ul>
	<li><em>Capturing multi-model interdependencies</em>: as the number of models, the complexity of their interactions, and/or the size of the system being modeled increases, it becomes extremely difficult to manually keep track of the interdependencies.</li>
	<li><em>Maintaining multi-model consistency</em>: to reach multi-model consistency, model changes must be propagated in order with respect to their interdependencies. While multiple modelers must be allowed to change their models simultaneously, the propagation of changes must be performed across compatible versions of the various models.</li>
	<li><em>Semantic precision of inter-model data exchange</em>: while the different models in a multi-model are interdependent it is necessary that they share or exchange data. The semantics of the data must be precisely known and understood by all models participating in the exchange. This requires that the models either be described in languages derived from the same metamodel, or that experts specify the relationships between elements of disparate metamodels.</li>
</ul>
<h3>Solutions in literature</h3>
<p>
In literature, several solutions to the problem of multi-model integration have been proposed:
</p>
<p>
<em>Name-based references</em>. Warmer and Kleppe [Warmer and Kleppe, 2008] suggest to connect models by referencing model elements by name from within other models. The drawback of this solution is that all semantics are delegated to the code generator, i.e. the actual integration happens at code level. On the model level it isn't visible how two model elements are semantically related.
</p>
<p>
<em>Weaving models</em>. A model weaver allows to define and visualize correspondendences between elements in different models using an extensible weaving metamodel. The references between model elements are kept outside the models. This approach has two disadvantages, first the weaving model can only express the semantics of the links, it does not actually define the meaning of the corresponding language constructs. Second, a model weaver usually connect pairs of models and thus is not suited for an integration of a large number of DSLs [Brauer and Lochmann, 2007].
</p>
<p>
<em>Model mappings</em>. Mappings, or transformations, between models can be seen as models themselves, which describe the relationship between elements from the source and target model and allow to validate inter-model consistency constraints. However, a mapping specification expresses semantics of different DSL elements only implicitly and does not assign an explicit meaning to each language construct [Brauer and Lochmann, 2007].
</p>
<p>
<em>Common upper ontology</em>. Bruer and Lochmann [Brauer and Lochmann, 2007] stipulate that language integration must be based on ontological foundations, guided by a common upper ontology for software modeling languages. This allows to reuse fundamental relationships, constraints, and axioms when integrating a new DSL. The core idea of their approach is to address the insufficiencies of the previously mentioned approaches by using a semantic model connector, see Figure 1.  Only the elements required for a semantic connection between participating models are mapped to ontology in the semantic connector. In other words: the interfaces of the different models are connected by mapping the elements of the metamodel (describing the DSL in which the model is expressed) to an ontology.
</p>
<p align="center" style="text-align:center;"><img src="http://www.theenterprisearchitect.eu/images/081022_dslintegration.jpg" style="border:0px solid" title="Integrating multiple DSLs using a semantic connector" alt="Integrating multiple DSLs using a semantic connector" class="pivot-image" /></p>

<p>
As we see, current scientific research is focusing on integrating Domain-Specific Models (DSMs) specified in different DSLs on an ontological level. If we can tackle that problem adding new DSLs to a modeling space becomes much easier. However, just integrating DSMs on a syntactical level as proposed in the first approach (name-based references) does already a great job in making life a lot easier. With good <a href="http://www.mendix.com/products/technology" target="_blank" title="Mendix dsm tools">tool support</a>, a system can be successfully modeled using multiple DSMs specified in different DSLs, thereby gaining all the <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/08/11/dsl-and-mde-necessary-assets-for-model-driven-approaches" title="Advantages of DSL">advantages of Domain-Specific Languages</a>.
</p>
<h3>Structuring the modeling space</h3>
<p>
Besides researching how to integrate multiple DSMs defined in different DSLs, it is also important to structure the modeling space. As stated in a <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/08/11/dsl-and-mde-necessary-assets-for-model-driven-approaches" title="Structuring the modeling space">previous article </a>this can be done using multiple modeling dimensions, for example the ones shown in Table 1.
</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="2" width="462" height="140" style="border-color: #000000; border-width: 1px">
	<tbody>
		<tr>
			<td><strong> Dimension</strong></td>
			<td><strong>Possible values </strong></td>
		</tr>
		<tr>
			<td>Abstract / concrete<br />
			</td>
			<td>CIM, PIM, PSM<br />
			</td>
		</tr>
		<tr>
			<td>Subject areas <br />
			</td>
			<td>Order entry, customer portal, back-end administration, ...<br />
			</td>
		</tr>
		<tr>
			<td>Aspects<br />
			</td>
			<td>Data, presentation, security, business rules, workflows, ...<br />
			</td>
		</tr>
		<tr>
			<td>Stakeholders<br />
			</td>
			<td>Domain expert, programmer<br />
			</td>
		</tr>
	</tbody>
</table>
<em>
Table 1 - Example dimensions for an MDE project</em> 
</div>
<p>
<br />
Examples of models for the dimensions presented in Table 1 are:
</p>
<ul>
	<li>A Computation Independent Model (CIM) of the workflows of
	the order entry part of the software artifact aimed at a domain expert.</li>
	<li>A
	Platform Independent Model (PIM) of the data of the back-end
	administration part of the software artifact aimed at a domain expert.</li>
	<li>A Platform Specific Model (PSM) of the security of the customer portal part of the software artifact aimed at a programmer.</li>
</ul>
The various dimensions at an intersection play an important role in the
choice for a modeling language for that particular model. By example,
the modeling language is influenced by the subject area, the
stakeholders and the level of abstraction. In this way languages can be true DSLs, i.e. they are small, specific, and tailored to their purpose users.
<p>
Looking at the example dimensions in Table 1 we see that the first dimension (abstract / concrete) is the one in which refinements and transformations take place. The other dimensions in this case are used to structure the modeling space at each of these abstraction levels. So, at each abstraction level (for example: <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/01/16/mda-model-driven-architecture-basic-concepts" title="MDA CIM PIM PSM">CIM, PIM and PSM</a>) we have a multi-model, consisting of models for each subject area and within a subject area a model for each system aspect.
</p>
<h3>Conclusion</h3>
<p>
Model-Driven Engineering needs:
</p>
<ul>
	<li>A process to come from a model of the problem space (i.e. a business model) to a model of the solution space (i.e. an executable model of a software system). Such a process usually consists of several steps with models at different abstraction levels. Higher level models are refined until the executable model level has been reached. We can call this part of MDE the abstract-concrete dimension of the modeling space.</li>
	<li>Multi-models. In real-life we have to deal with business problems leading to large and complex software systems. As explained in this article such systems need multiple Domain-Specific Models specified in different Domain-Specific Languages to reach the right level of abstraction. Each model described in the previous bullet point in practice is a multi-model.&nbsp;</li>
	<li>Domain-Specific Languages. For each model a notation is needed as much as possible tailored to the domain expert who's going to specify that model. We've explained (in this and previous articles) how the modeling space can be structured to determine the needed DSLs.</li>
</ul>
</p>
<p>
<br />
-----------------------
</p>
<p>
J. B. Warmer and A. G. Kleppe. Building a flexible software factory using partial domain specific models. In Sixth OOPSLA Workshop onDomain-Specific Modeling (DSM'06), Portland, Oregon, USA, pages 15-22, Jyvaskyla, October 2006. University of Jyvaskyla.
</p>
<p>
Christopher Brooks, Thomas Huining Feng, Edward A. Lee, and Reinhard von Hanxleden. Multimodeling: A preliminary case study. Technical Report UCB/EECS-2008-7, EECS Department, University of California, Berkeley, Jan 2008.
</p>
<p>
Trip Denton, Edward Jones, Srini Srinivasan, Ken Owens, and Richard W. Buskens. Naomi - an experimental platform for multi-modeling. In Krzysztof Czarnecki, Ileana Ober, Jean-Michel Bruel, Axel Uhl, and Markus V&ouml;lter, editors, Model Driven Engineering Languages and Systems, 11th International Conference, MoDELS 2008, Toulouse, France, September 28 - October 3, 2008. Proceedings, volume 5301 of Lecture Notes in Computer Science, pages 143-157. Springer, 2008.
</p>
<p>
Matthias Br&auml;uer and Henrik Lochmann. Towards semantic integration of multiple domain-specific languages using ontological foundations. In Fourth International Workshop on Software Language Engineering, Nashville, USA, Grenoble, France, October 2007. megaplanet.org.</p> ]]></description>
			<guid isPermaLink="false">71@http://theenterprisearchitect.eu/pivot/</guid>
			<category>Software Engineering</category>
			<pubDate>Mon, 03 Nov 2008 22:02:00 +0100</pubDate>
		</item>
		
		
		
		<item>
			<title>MoDELS'08: Panel discussion on the past &amp; future of MDD</title>
			<link>http://www.theenterprisearchitect.eu/archive/2008/10/08/models08-panel-discussion-on-the-past--future-of-mdd</link>
			<comments>http://www.theenterprisearchitect.eu/archive/2008/10/08/models08-panel-discussion-on-the-past--future-of-mdd#comm</comments>
                        <description><![CDATA[ Moderator: <strong>Robert B. France</strong><br />
Panelists:<br />
<ul>
	<li><strong>Richard M. Soley</strong>, Chariman and CEO, Object Management Group, USA</li>
	<li><strong>Jeff Kramer</strong>, Professor of Distributed Computing, Dean of the Faculty of Engineering, Imperial College, UK</li>
	<li><strong>Bran Selic</strong>, Retired IBM Distinguished Engineer, Canada</li>
	<li><strong>Grady Booch</strong>, IBM Fellow and Chief Scientist, IBM Rational, USA</li>
	<li><strong>Patrick Farail</strong>, Airbus, France</li>
</ul>
<p>
To give you an idea of the ambiance I'll start by listing some quotes from this panel discussion, the question to you: who has pronounced each one?
</p>
<ol>
	<li>UML is the worst modeling language except for all the others.</li>
	<li>The difference between terrorists and modeling experts: you can negotiate with terrorists.</li>
	<li>Java is not a bad Lisp, if it were not for the lack of parentheses.</li>
	<li>UML is both a blessing and a curse.</li>
	<li>An UML tool has a far more complex interface than a modern aircraft cockpit.</li>
</ol>
<p>
The panelists did all receive the opportunity to start with a seven minute explanation of their view on the past and future of MDD. That was really educational, let's just not talk about the seven minutes time limit...</p><h3>Grady Booch</h3>Since Grady wasn't able to come to Toulouse, he did his part of the game via Second Life. However, the connection didn't help and in real life we didn't understand anything of it.
<h3>Bran Selic</h3>
<p>
Bran did use the term Model-Based Software Engineering (MBSE) (another abbreviation to add to my <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/06/11/mda_mdd_mde_mdsd_mdse_help" title="MD*">collection</a>) instead of Model-Driven Engineering. His reason: models don't drive anything, they're just part of the process.
</p>
<p>
In principle MBSE is an approach to software development in which computer-based models play an indispensable role. Models can be refined continuously until the application is fully specified, i.e. the model becomes the system it was modeling. The two proven ideas of MBSE are
</p>
<ul>
	<li><a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/10/01/models_08_abstraction_the_negl" title="Abstraction">Abstraction </a>(the realm of modeling languages)</li>
	<li>Automation (the realm of tools)</li>
</ul>
<p>
According to Bran the two major successes of MBSE are:
</p>
<ol>
	<li>Executable modeling languages and supporting tools, which have increased productivity and quality (proven in industry). For example <a href="http://en.wikipedia.org/wiki/Executable_UML" target="_blank" title="Executable UML">executable UML</a>. </li>
	<li><u>Standardization</u> of UML. This process raised the awareness of MBSE in the greater community.</li>
</ol>
</p>
<p>
The question Bran asks whether we need a language aimed at design, analysis and documentation, an executable language, or a language supporting both. He thinks MBSE can only successfully be done using viable executable models. For him it is no question that Domain-Specific Languages (DSLs) are the way to go. 
</p>
<p>
Bran sees a maturity model for MBSE with a movement in the last phases from a model-centric approach to a model-only approach. He closes his speech with the remark that maybe the current generation of MBSE will not be the winner/survivor. 
</p>
<h3>Richard Soley</h3>
<p>
Looking at the past Richard mentions that the OMG has moved from distributed computing standards to modeling standards. The OMG is now active in more than 80 vertical markets in which they are very successful because they start from a modeling perspective instead of starting from a programming perspective (as they did with UML).
</p>
<p>
According to Richard the most important thing to recognize is that we have to deal with people, even more than with technology. People are used to tool, languages, etc. and they often don't change that in an easy way. Even if the notation of languages is the same, people want to have languages which (they think) are specialized to their needs. Richard gives the example of BPMN. Although the UML has models looking a lot like BPMN, most people prefer BPMN.
</p>
<p>
Richard also explains why he sees directly executable models as the future. If you specify a system using some language, which will be transformed in some other executable language, there often is a difference in computational models between these languages. In debugging such a system you need to understand both computational models AND the transformation. If we directly execute the model we can debug at the model level. Richard needs a language which means something by itself, without a lot of transformations. He compares a visual model which is transformed into code with <a href="http://en.wikipedia.org/wiki/C_preprocessor" target="_blank" title="C macro">C macro's</a>.
</p>
<h3>Patrick Farail</h3>
<p>
Patrick did give a nice overview of the past and future of Model-Driven Engineering within Airbus. However, I think it's a bit to specialized to repeat it at this place.
</p>
<h3>Jeff Kramer</h3>
<p>
Jeff only had three adds to the previous speakers:
</p>
<ul>
	<li>Don't underestimate the adoption of Models, MDD, MDE, MDA, etc. into Software Engineering. There really is some adoption. Of course quality is still an important issue, but Jeff states that the industry should demand for that. Unless they do so, it won't become any better.</li>
	<li>Don't forget software architecture. <a href="http://en.wikipedia.org/wiki/Architecture_description_language" target="_blank" title="ADL">Architecture Description Languages</a> (ADL) are almost not used in industry.</li>
	<li>UML is both a blessing and a curse. It's great to have a common language, but in research we shouldn't only focus on UML parts. He recalls his <a href="http://www.theenterprisearchitect.eu/archive/2008/10/01/models_08_abstraction_the_negl" target="_blank" title="Abstraction">keynote on abstraction</a>, we have to ensure that models fit their purpose. Models must support and encourage experimentation.</li>
</ul>
</p>
<h3>Q&amp;A</h3>
<p>
Why the presumption that models are pictures and not text? Fortran was mentioned as a textual modeling language. This triggered a long discussion on <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/09/03/the_structure_of_domainspecifi" title="graphical versus textual domain-specific languages dsl">graphical versus textual languages</a>. I'll list some remarks of the panel members.
</p>
<p>
Richard: if you design something, do you draw boxes and lines or write Fortran? Graphical languages are more expressive, and we can use them, we don't have terminals anymore.
</p>
<p>
Bran: but we need expertise on graphical/visual syntax. We have no theory behind and now we just model how we like it.
</p>
<p>
Jeff: the <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/09/03/the_structure_of_domainspecifi" title="structure of domain specific languages">structure of languages</a> isn't the most important point. It's about finding the right <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/10/01/models_08_abstraction_the_negl" title="abstraction">abstraction</a>. The purpose of a model is to reason, argue, and discover new facts.
</p>
<p>
Bran: a language can be both graphical and textual at the same time. Writing is sometimes easier in text, but other models, like a hierarchical state machine are very difficult to express using a textual language.
</p>
<p>
Robert: graphical doesn't automatically mean visual!
</p>
<p>
Another discussion was about tools. Some panel members indicate that usability is a problem. Most tools are build for developers themselves and not for the users. Tool developers are too much thinking in computer science terms. The result: most of the time users are busy learning the tool, fight against it, and it will cost years to become an expert in a certain tool. Why not learn from the user, i.e. build a model of the user using expert systems and game theory.</p> ]]></description>
			<guid isPermaLink="false">70@http://theenterprisearchitect.eu/pivot/</guid>
			<category>Common</category>
			<pubDate>Wed, 08 Oct 2008 12:26:00 +0100</pubDate>
		</item>
		
		
		
		<item>
			<title>MoDELS '08: Metamodeling and Modularity</title>
			<link>http://www.theenterprisearchitect.eu/archive/2008/10/04/models-08-metamodeling-and-modularity</link>
			<comments>http://www.theenterprisearchitect.eu/archive/2008/10/04/models-08-metamodeling-and-modularity#comm</comments>
                        <description><![CDATA[ In the metamodeling an modularity session I've visited two presentations. The first one about Metamodel Components and Composition. The second one about Interfaces and Metainterfaces for Models and Metamodels.<h3>Metamodel Components and Composition</h3>The essence of the first presentation was the creation of interfaces between MOF metamodels. Using this technique metamodel components can be created using elements of each others. This enables the use of <a href="http://www.ebpml.org/blog/139.htm" target="_blank" title="metamodel-oriented programming">metamodel-driven development</a> on a much larger scale. 
<p>
Some issues:
</p>
<ul>
	<li>How to handle transformations? If components have their own transformations, the transformations of the combined components can be significantly different.</li>
	<li>Semantics are important, structural composition only isn't enough.</li>
</ul>
</p>
<h3>Interfaces and Metainterfaces for Models and Metamodels</h3>
<p>
At the first day of MoDELS '08 the subject of <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/10/02/models_08_domainspecific_model" title="multi-modelling">multi-modeling was already touched</a>. This presentation was also focused on this subject, but from a whole different angle. The research group analyzed two software projects, one of them was <a href="http://ofbiz.apache.org/" target="_blank" title="Apache Open for Business (OFBiz)">Apache Open for Business (OFBiz)</a> which consist of 17 different XML based DSLs. They came up with the following observations:
</p>
<ul>
	<li>Extensive use of soft references (links between elements of different DSLs).</li>
	<li>Developers report:
	<ul>
		<li>Inconsistency among XML nodes.</li>
		<li>Hard to evolve without errors.</li>
		<li>No proper tool support.</li>
	</ul>
	</li>
</ul>
</p>
<p>
The researchers came up with the idea to define explicit interfaces between the XML DSLs. They did mine the existing systems to automatically detect the soft references. Based on that information they automatically generated the interfaces between the DSLs. The interfaces are defined using XPath expressions.
</p>
<p>
The advantage of this approach is that interfaces can be detected in an automatic way. Once detected the interfaces are explicit and can be used in evolving the system.</p> ]]></description>
			<guid isPermaLink="false">69@http://theenterprisearchitect.eu/pivot/</guid>
			<category>Common</category>
			<pubDate>Sat, 04 Oct 2008 19:45:00 +0100</pubDate>
		</item>
		
		
		
		<item>
			<title>MoDELS '08: The objects and Arrows of Computational Design</title>
			<link>http://www.theenterprisearchitect.eu/archive/2008/10/04/models-08-the-objects-and-arrows-of-computational-design</link>
			<comments>http://www.theenterprisearchitect.eu/archive/2008/10/04/models-08-the-objects-and-arrows-of-computational-design#comm</comments>
                        <description><![CDATA[ The third keynote, titled &lsquo;The Objects and Arrows of Computational Design', of the MoDELS '08 conference was by Don Batory from the University of Texas, US.
<p>
Don starts by stating that the future of software design and development is automation. The age of computational design consists of:
</p>
<ul>
	<li>Design: steps to take to create an artifact.</li>
	<li>Synthesis: the evaluation of these steps to produce the actual output / artifact.</li>
</ul>
</p>
<p>
Don sees two important complementary notions in this field: <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/03/14/model_driven_engineering" title="Model-Driven Engineering MDE">Model-Driven Engineering (MDE)</a> and Software Product Lines (SPL). MDE is about using high-level models to specify software and transforming them into low-level artifacts, while SPL is about software families. In SPL we know the problems and the solutions, we just want to automate the construction of these solutions. In short: MDE can be seen as a general paradigm for program synthesis while SPL can be seen as a domain-specific paradigm for program synthesis.</p><h3>Background</h3>In the old days program generation was relational query optimization (RQO). This has influenced Don's view on automatic software generation. Software design can be approached in a mathematical way, because it's all about structure and manipulating structure. The core ideas of Don's work are inspired by the <a href="http://en.wikipedia.org/wiki/Category_theory" target="_blank" title="Category Theory">category theory</a> (theory of mathematical structures).
<h3>Definitions</h3>
<p>
An object is a domain of points, its instances. This holds for all technological spaces, by example: a meta model is a domain of models, an XSD is a domain of XML files, and so on. This perspective on objects can be visualized using cones. In this universe of cones recursion exists (think about the UML meta model structure).
</p>
<p>
An arrow is a mapping / function / transformation / morphism between objects. Don further formalizes this definition to:
</p>
<ul>
	<li>Arrow: map between objects.</li>
	<li>Transformation: MDE implementation of an arrow.</li>
	<li>Tool: non-MDE implementation of an arrow.</li>
</ul>
<p>
A category is a collection of objects and arrows. A category has the following properties:
</p>
<ul>
	<li>Arrows are composable.</li>
	<li>Composition is associative.</li>
	<li>For each object an identity arrow exist (visualized by an arrow having the same object as input and output).</li>
</ul>
<p>
In literature other names for categories exist, like toolchain diagrams or megamodels.
</p>
<p>
Multiple arrows can have the same input, meaning that an object is transformed into different other objects. Multiple arrows can also have the same output, meaning that an output is constructed via different transformation from different objects.
</p>
<p>
If we look at a chain of objects connected with arrows, we can express the output as a multiplication of the transformation functions. So, the output can be described as an expression.
</p>
<h3>Software Product Lines</h3>
<p>
As said before an SPL is a set of similar programs (a family), which are defined by features and related by features. Don gives an example of a base program B1 which can be transformed (add code / add a feature) into a second program B2, and so on.
</p>
<p>
Combined with the previous definitions of objects and arrows, an SPL can be seen as a set of programs related with arrows, each arrow representing a feature. Reasoning along in the same way a program design can be seen as a chain of arrows and thus be described as an expression. We can also deduct that a program can have multiple designs. The last observation is that an SPL is a category. 
</p>
<h3>Model-Driven Software Product Lines</h3>
<p>
A Model-Driven Software Product Line (MDSPL) is a combination of MDE and SPL. In this combination commuting diagrams arise. Commuting diagrams are the foundational idea of categories. The key property of a commuting diagram is that all paths from one object to another yield equivalent results.
</p>
<p>
Don adds one extra key concept to the definitions given above: operators. Operators are transformation to transformation mappings, i.e. a mapping from one arrow to another arrow.
</p>
<p>
Commuting diagrams enable verification and optimization of program design. Program design can be verified by relating different paths to each other using operators. Optimization of program design can be done by choosing different paths.
</p>
<h3>Conclusions</h3>
<p>
According to Don the main challenge of these techniques is to find domains were there are different ways to implement the same functionality. If so, commuting diagrams occurs and program design can be verified and/or optimized.
</p>
<p>
Don's main advice: do not only focus on models, that's just a part of the picture. You also have to focus on transformations and operators.
</p>
<p>
I'm aware of the fact that it is difficult to grasp the idea's of Don's keynote without any pictures. For a full understanding of the subject I recommend to read his paper. I like his fundamental view on MDE and I can see how we can benefit from these ideas. However, actually using his ideas in practice will be quite a challenge.</p> ]]></description>
			<guid isPermaLink="false">68@http://theenterprisearchitect.eu/pivot/</guid>
			<category>Common</category>
			<pubDate>Sat, 04 Oct 2008 19:24:00 +0100</pubDate>
		</item>
		
		
		
		<item>
			<title>MoDELS '08: Composition and Analysis of Behavorial Models</title>
			<link>http://www.theenterprisearchitect.eu/archive/2008/10/04/models-08-composition-and-analysis-of-behavorial-models</link>
			<comments>http://www.theenterprisearchitect.eu/archive/2008/10/04/models-08-composition-and-analysis-of-behavorial-models#comm</comments>
                        <description><![CDATA[ I've followed two presentations in the session on composition and analysis of behavioral models. The first one on a general approach for scenario integration, the second one on behavioral modeling and composition of object slices using event observation.<h3>A general approach for Scenario Integration</h3>The baseline of this presentation is that model integration is essential to support team development. If multiple, distributed teams have to work on the models separately, you'll need a system to integrate the models back into a central managed model.
<p>
The presentation was focused on scenario integration, i.e. integrate two sequence diagrams. In principle four steps are needed to perform model integration:
</p>
<ul>
	<li>Formalization: not every modeling language is formal enough to perform integration operations on.</li>
	<li>Specifying view correspondence: specify the overlap between the models by providing a span.</li>
	<li>Merge: execute a &quot;pushout&quot; operation on the span (see <a href="http://en.wikipedia.org/wiki/Category_theory" target="_blank" title="Category Theory">category theory</a>).</li>
	<li>Normalization: try to remove redundant elements, etc.</li>
</ul>
</p>
<h3>Behavioral Modeling and Composition of Object Slices using Event Observation</h3>
<p>
A well-known software modularity dilemma is that of crosscutting concerns. While in traditional programming approaches this can be solved using Aspect-Oriented Programming (AOP), when handling crosscutting concerns in behavioral models you'll need Aspect-Oriented Modeling (AOM). AOM comes in two flavors:
</p>
<ul>
	<li>(offline) transformation: we have a base model and separately defined aspects. These are transformed into one new model, which is executed.</li>
	<li>(online) composition: the aspects are not included in the base model, but executed separately. At runtime the base models and aspects are &lsquo;composed'.</li>
</ul>
</p>
<p>
In the first approach you need full insight in the models and aspects (white box). In the second approach interfaces can be used, so you don't have to have full insight in the &lsquo;other' models (black box).
</p>
<p>
The presented solution for (online) composition was based on observation (using probes, event based) rather than explicit communication between the base model and aspects. For technical details I recommend to read the paper.</p> ]]></description>
			<guid isPermaLink="false">67@http://theenterprisearchitect.eu/pivot/</guid>
			<category>Common</category>
			<pubDate>Sat, 04 Oct 2008 17:50:00 +0100</pubDate>
		</item>
		
		
		
		<item>
			<title>MoDELS '08: Domain-Specific Modeling</title>
			<link>http://www.theenterprisearchitect.eu/archive/2008/10/02/models-08-domain-specific-modeling</link>
			<comments>http://www.theenterprisearchitect.eu/archive/2008/10/02/models-08-domain-specific-modeling#comm</comments>
                        <description><![CDATA[ I've of course attended the session on Domain-Specific Modeling @ MoDELS '08. Three really interesting (and different) presentations of papers were given. The first one about a Domain-Specific Language (DSL) for workflows, the second one was about a graphical DSL for train signaling, and last but not least, a more infrastructural paper was presented focussing on the problems around multi-modeling.<br />
<h3>WebWorkFlow</h3>
<p>
The WebWorkFlow DSL was presented by Zef Hemel from the Delft University of Technology. This Object-Oriented Workflow Modeling Language for Web Applications is an extension of <a href="http://webdsl.org/webdslorg/home" target="_blank" title="WebDSL">WebDSL</a>.&nbsp; Why another workflow language besides BPEL, <a href="http://www.yawlfoundation.org/" target="_blank" title="YAWL">YAWL</a> or Petri Nets? According to Zef these languages have the following drawbacks:
</p>
<ul>
	<li>They do not describe full applications.</li>
	<li>They are separated languages, and thus not nicely integrated with other languages needed to model a full application.</li>
	<li>They ignore the user interface aspects.</li>
	<li>It's all or nothing.</li>
</ul>
<p>
The 3 main design principles of WebWorkflow are:
</p>
<ul>
	<li>Linguistic integration.</li>
	<li>Abstraction layers (from concise to more verbose: process expressions, procedural workflow, WebDSL).&nbsp;</li>
	<li>Full application generation.</li>
</ul>
<p>
WebDSL already contains a data model, UI and access control module, which are all specified using textual DSLs. On top of that the WebWorkFlow module has been build. 
</p>
<p>
Zef demonstrated how to define a workflow using the WebWorkFlow language. I'm not going into details, I think the documentation of WebDSL will be updated soon. 
</p>
<p>
WebWorkFlow supports quite a lot of the <a href="http://www.yawlfoundation.org/resources/patterns.html" target="_blank" title="Workflow patterns">workflow patterns defined in literature</a>.
</p>
<h3>TCL: Train Control Language </h3>
<p>
Andreas Svendsen did show a nice application of Domain-Specific Languages. He, his collegues, and some domain experts did define a graphical language for train controlling. The language includes line segments, signals, stillers, switches, track circuits, etc. and is defined using an EMF meta model. The graphical editor was constructed using GMF. Using MOFscript source code for PLC's is generated.
</p>
<p>
Andreas states the following experiences:
</p>
<ul>
	<li>It is import to involve domain experts in the process and to exchange domain knowlegde.</li>
	<li>It is quite a challenge to transform models into an already existing framework.</li>
	<li>Some manual code updates were needed in specific situations.</li>
	<li>They still make use of the V-model, because the system has safety critical constraints.</li>
</ul>
<p>
In their future work their going to focus on variability modeling for creating variations on values and structure. He refers to the paper <a href="http://www2.computer.org/portal/web/csdl/doi/10.1109/SPLC.2008.25" target="_blank" title="Paper">Adding Standardized Variability to Domain Specific Language</a> I didn't have time to read this paper, so you have to do it with the link ;) 
</p>
<h3>NAOMI: An experimental platform for Multi-Modeling </h3>
<p>
Edward Jones from Lockheed Martin Advanced Technology Labratories did show NAOMI, a platform for Multi-Modeling. Multi-Modeling is about having <a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/08/11/dsl_and_mde_necessary_assets_f" title="Multiple DSLs for different system aspects">different DSLs for different system aspects</a>. Edward identifies the following key challenges in multi-modeling:
</p>
<ul>
	<li>Multi-model interdependencies (you'll need <a href="http://www.infoq.com/articles/8-reasons-why-MDE-fails" target="_blank" title="Change propagation in MDE">change propagation (see point 3 of the linked article)</a>).</li>
	<li>Multi-model consistency (how to identify inconsistencies and how to fix them? How to allow independent simultanous model changes with distributed teams?).</li>
	<li>Semantic precision of inter-model data exchange (do DSMLs need to share the same meta model?)</li>
</ul>
<p>
Edward demonstrated NAOMI, which in principle provides an infrastructure for managing multiple models with interfaces among them. Some addressed challenges:
</p>
<ul>
	<li>Consistency management (using 4 types of consistency: attribute, constraint, model attributes and project integrity).</li>
	<li>Change propagation (orchestrated and distributed).</li>
	<li>Version control system (multi-model repository management, multi-model time machine, etc.).</li>
	<li>Multi-model visualization (dependency graphs, etc.).</li>
</ul>
<p>
I did like his approach in explicitly focusing on the interfaces between DSLs and solving the multi-model issues. I also liked his example, showing the possibilities of multi-model management. He did show how a project budget model (in Excel) uses information from technical models as input, all managed by NAOMI. Of course the real advantage is in other scenario's, but it was just a funny example which I didn't expect.
</p>
<p>
They've planned to make NAOMI open source... I'm waiting...</p> ]]></description>
			<guid isPermaLink="false">66@http://theenterprisearchitect.eu/pivot/</guid>
			<category>Common</category>
			<pubDate>Thu, 02 Oct 2008 18:34:00 +0100</pubDate>
		</item>
		
		
		
		<item>
			<title>MoDELS '08: Abstraction, the neglected side of modelling</title>
			<link>http://www.theenterprisearchitect.eu/archive/2008/10/01/models-08-abstraction-the-neglected-side-of-modelling</link>
			<comments>http://www.theenterprisearchitect.eu/archive/2008/10/01/models-08-abstraction-the-neglected-side-of-modelling#comm</comments>
                        <description><![CDATA[ Jeff Kramer did a very interesting talk about abstraction in the first keynote of MoDELS '08. He'd start with the question why some students are able to produce elegant designs and also comprehend complex distributed algorithms, while others can just apply patterns and don't grasp the essence. He states that the heart of the problem is the ability to deal with abstraction.<h3>What is abstraction?</h3>
<p>
In principle abstraction consist of two elements:
</p>
<ul>
	<li>Simplify and focus (removing details)</li>
	<li>Generalisation (core or essence)</li>
</ul>
<p>
Jeff gives a nice example of the London underground map. In 1930 the underground lines are visualized according to the actual curves and distances of the lines. However, the map isn't easy to read. In 1932 Harry Beck came up with the first schematic image map, which just shows the essence, e.g. the underground lines and stations, without showing the curves and real distances. Nowadays each public transfer map uses this way of abstraction. One important thing: you have to mind the gap with reality. It's not a map of London, distances between stations can be much longer than visualized (so don't try to walk without looking at a real map). The message: fit for purpose.
</p>
<p>
Why is abstraction important in Software Engineering? Just because software is abstract. All kind of activities in Software Engineering have to deal with abstraction. For example:
</p>
<ul>
	<li>Requirements: elicit critical aspects of the real world, neglect the irrelevant.</li>
	<li>Design: avoid unnessary implementation constraints. Design is often done using abstract syntax or abstract machines.</li>
	<li>Programming: use data abstraction, classes, and so on.</li>
</ul>
<h3>Is it possible to teach abstraction?</h3>
<p>
Jeff cites Jean Piaget, which defines four stages of cognitive development. The 4th stage, which is usually from 12 years old to adult, is called 'formal operational thought'. In this phase man learns to think abstractly, systematically and hypothetically. The bad news is that only 30%-35% of adults will develop the ability for abstract thought. The question is, can we teach abstraction and thereby give the other 65% also some ability for abstract thought? Or can we just improve it?
</p>
<p>
Although abstract thinking is key to software engineering, no courses on abstraction are given at university. However, each course in software engineering studies uses abstract thinking. So, abstraction is essential, but is thaught <em>indirectly</em>.
</p>
<p>
According to Jeff it can be ensured that students can make use (or understand) abstraction, by
</p>
<ul>
	<li>Teaching enough mathematics,</li>
	<li>Teaching (formal) modelling and analysis.</li>
</ul>
<p>
He goes something deeper into modelling, with some definitions. If you're interested in the fundamentals of modelling and meta modelling, just read the first part of my article on&nbsp;<a target="_blank" href="http://www.theenterprisearchitect.eu/archive/2008/04/15/combining_general_purpose_lang" title="Combining GPLs and DSLs for MDE">Combining GPLs and DSLs for Model Driven Engineering</a>.
</p>
<p>
He concludes that teaching abstraction works for understanding abstract models. However, producing a model is still difficult, unless you're part of the lucky 35%.
</p>
<h3>Conclusion</h3>
<p>
If we want the best Software Engineers we have to teach abstraction. Teaching abstraction in an indirect way works quite well, however, making it more explicit will help in understanding the essence and making the knowlegde transferrable among domains. Besides teaching abstraction it is important to test formal operational thinking, put in another way: we have to test whether someone has the ability to think abstractly. Jeff is researching the possibility for such a test.&nbsp;
</p>
<p>
The article <a href="http://www.scribd.com/full/3320680?access_key=key-2d243046qoi791wa1pk5" target="_blank" title="Ability to program">The camel has two humps</a> came into my mind when listening to Jeff. This article describes the ability to learn programming and points out that programming teaching is useless for those who are bound to fail and pointless for those who are certain to succeed.</p> ]]></description>
			<guid isPermaLink="false">65@http://theenterprisearchitect.eu/pivot/</guid>
			<category>Common</category>
			<pubDate>Wed, 01 Oct 2008 20:27:00 +0100</pubDate>
		</item>
		
		
		
	</channel>
</rss>
