<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Antoine Savelkoul</title>
	<atom:link href="http://www.savelkoul.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.savelkoul.net/blog</link>
	<description>Innovation starts with the user</description>
	<lastBuildDate>Sun, 12 Feb 2012 17:16:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Selling customized home automation software at license base</title>
		<link>http://www.savelkoul.net/blog/2012/02/selling-customized-home-automation-software-at-license-base/</link>
		<comments>http://www.savelkoul.net/blog/2012/02/selling-customized-home-automation-software-at-license-base/#comments</comments>
		<pubDate>Sun, 12 Feb 2012 17:16:04 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.savelkoul.net/blog/?p=92</guid>
		<description><![CDATA[As soon as my framework for home automation software is stable (my goal is to realize this in the first half of this year), it will be time to launch the third stage of my rocket. In this stage, a licensing model for custom build applications based on the framework will be introduced. Selling custom [...]]]></description>
			<content:encoded><![CDATA[<p>As soon as my framework for home automation software is stable (my goal is to realize this in the first half of this year), it will be time to launch the third stage of my rocket. In this stage, a licensing model for custom build applications based on the framework will be introduced.</p>
<p>Selling custom build applications on a license base is also in line with the movements that are going on the software market in general. With the introduction of cloud computing and SaaS, on which software applications more and more rely, many more software companies are moving to licensed base selling models. But to be able to sell custom build software at license base, you should be able to minimize the costs on the custom development part.</p>
<p>For my home automation framework, the only parts left for custom development will be the configuration of modules, the user interface and vendor specific protocols. With the current version of my framework, it will take around two days to implement all supported functionality for the average http based protocol. The framework will take care of queuing, error handling etc., so these techniques do not have to be implemented for each protocol separately taking also away a lot of work.</p>
<p>As most of the efforts will be on the shared part, it might be possible to share these costs over the licenses. A margin will cover in most cases the custom development part. Only clients who like to have complex protocols to be implemented have to take additional custom development fees in account.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.savelkoul.net/blog/2012/02/selling-customized-home-automation-software-at-license-base/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A framework for home automation software</title>
		<link>http://www.savelkoul.net/blog/2012/02/a-framework-for-home-automation-software/</link>
		<comments>http://www.savelkoul.net/blog/2012/02/a-framework-for-home-automation-software/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 22:21:01 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.savelkoul.net/blog/?p=86</guid>
		<description><![CDATA[The first stage has already been launched and the second one is already stand by. The framework I am creating has as goal to form an easy to extend base for home automation software. It can be extended to collect information from multiple home automation systems, like the functionality already available in eControl. One of [...]]]></description>
			<content:encoded><![CDATA[<p>The first stage has already been launched and the second one is already stand by. The framework I am creating has as goal to form an easy to extend base for home automation software. It can be extended to collect information from multiple home automation systems, like the functionality already available in eControl.</p>
<p>One of the most important characteristics of the framework is that it’s basic design should be applicable to a broad range of devices, from smart phones to home automation gateways. This is a really big challenge, as all these kind of devices have to deal with different kind of requirements like power consumption, usage of resources and costs on data usage. However, we see, for example with looking at the upcoming Windows 8, that even complete operating systems are now being designed in a way that they can deal with all these kind of requirements.</p>
<p>I will not describe the framework in every detail, but some of the most distinguishing features will be discussed in this blog post. I will begin with the way the framework will handle data.</p>
<p>Home automation systems are build up by multiple devices like lights, climate sensors, multimedia equipment and much more. There could also be involved multiple devices that are meant as interfaces between these devices, like network bridges and serial device servers. The framework will be capable of collecting information from all these systems. Extensions can be made easy on top of basic functionality like error handling, queuing and auto detection mechanisms.</p>
<p>All information collected from the devices, including rooms, scenes etc. that have been configured, will be stored into a cash. Rooms, scenes and other duplicate information will be merged automatically. This collection of data will form a layer between the connections with the home automation systems and the applications on top of it and can be extended with data objects for all kind of devices.</p>
<p>Depending on the type of device, a user interface or other application will be build on top of the data cash. The user interface will also be build using specif patterns making it possible to define it’s design without knowledge about the protocols or any other technical implementation on device level. Applications, like speech recognition, macro engines etc. can also be build on top of the same interfaces, making them usable at multiple home automation systems.</p>
<p>Next to these three layers, other extensions can be made in the form of managers. A manager will be responsible for one specific functionality like data storage, connection management or user interface themes. A connection manager for example will, in case of a smart phone, be responsible for making the choice to connect using a local connection or via Internet. The base for this manager will be the same for all smart phone applications, but implementation will be different as each smart phone OS will have it’s own set of APIs to determine when the devices uses for example a cellular data connection.</p>
<p>The image below gives an abstract view of how all components are related to each other.</p>
<p><a href="http://www.savelkoul.net/blog/wp-content/uploads/2012/02/Architecture.jpg"><img class="alignnone size-medium wp-image-87" title="Architecture" src="http://www.savelkoul.net/blog/wp-content/uploads/2012/02/Architecture-262x300.jpg" alt="" width="262" height="300" /></a></p>
<p>I believe that this kind of frameworks will be integrated in all kind of operating systems like Windows and Android. Google is already active on home automation with it’s Android@Home project and the nice video’s in which Microsoft show their vision about the future also make us believe that integration of all devices in home will become a fact.</p>
<p>Integration of home automation frameworks into operating systems will bring home automation to a next level where integration with for example smart grid systems will be realized via apps that can be downloaded and run distributed over multiple devices.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.savelkoul.net/blog/2012/02/a-framework-for-home-automation-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stage one of my multi stage rocket, eControl</title>
		<link>http://www.savelkoul.net/blog/2012/01/stage-one-of-my-multi-stage-rocket-econtrol/</link>
		<comments>http://www.savelkoul.net/blog/2012/01/stage-one-of-my-multi-stage-rocket-econtrol/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 09:17:46 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Home Automation]]></category>

		<guid isPermaLink="false">http://www.savelkoul.net/blog/?p=75</guid>
		<description><![CDATA[The smart phone application I was talking about is of course eControl. I already told what eControl will do and I even posted some screenshots. But what distinguishes eControl from other home automation applications? I agree, it will not be it’s name. It should be a year of 7 or 8 ago when I came [...]]]></description>
			<content:encoded><![CDATA[<p>The smart phone application I was talking about is of course eControl. I already told what eControl will do and I even posted some screenshots. But what distinguishes eControl from other home automation applications? I agree, it will not be it’s name.</p>
<p>It should be a year of 7 or 8 ago when I came up with the idea of a framework that should make it possible to synchronize object models between software applications running at different devices. While frameworks for synchronizing objects where also at that time not something new, my ideas went a little bit further by making it possible to define different kinds of behaviour like permissions at higher abstraction levels, load data via XML like documents and a self organizing network of connected nodes. However, also some other things got my attention like domain specific modeling and those ideas disappeared to the background.</p>
<p>When I started the development of software for controlling home automation systems, my ideas of synchronizing objects got a second life. What I wanted to create was software that collected all information from home automation devices in home and handles that information in a uniform way, making it easy to build user interfaces and other application on top of it. The design that resulted from there made it into a smart phone application I call eControl.</p>
<p>Many home automation systems work with a central device or server (also called Home Automation Gateway). All home automation devices in home will become registered on this central unit and smart clients will control them through this central unit. The central unit will function as a kind of translation device. To be able to controll devices from the Internet, the central unit will connect to a kind of forwarding service on Internet. The image below gives an impression of such a set-up.</p>
<div id="attachment_80" class="wp-caption alignnone" style="width: 222px"><a href="http://www.savelkoul.net/blog/wp-content/uploads/2012/01/HASCentralized.jpg"><img class="size-medium wp-image-80" title="Home Automation System Centralized" src="http://www.savelkoul.net/blog/wp-content/uploads/2012/01/HASCentralized-212x300.jpg" alt="Home Automation System Centralized" width="212" height="300" /></a><p class="wp-caption-text">Home Automation System Centralized</p></div>
<p>eControl however is designed in a way that it will be less depending on a central unit. Where possible, eControl will connect directly to devices in a self organizing way, making setup of a home automation system much easier. eControl will also make optimal use of services available with the smart phone, like cloud storage. In many cases, this will even take away the need for the end user to set up additional user accounts. The image below shows the same set-up with eControl.</p>
<div id="attachment_81" class="wp-caption alignnone" style="width: 222px"><a href="http://www.savelkoul.net/blog/wp-content/uploads/2012/01/HASEControl.jpg"><img class="size-medium wp-image-81" title="Home Automation System with eControl" src="http://www.savelkoul.net/blog/wp-content/uploads/2012/01/HASEControl-212x300.jpg" alt="Home Automation System with eControl" width="212" height="300" /></a><p class="wp-caption-text">Home Automation System with eControl</p></div>
<p>Of course, to profit from all these advantages, the home automation systems to connect with should also support discovery mechanisms and automatic port forwarding. Also some additional security precautions have to be taken and multiple data connection can have advantages but also disadvantages around data efficiency.</p>
<p>The architecture of eControl is also suitable to be used in other kinds of home automation software. A framework is already under development and will form the base of eControl. For the moment, only elements that are crucial for making eControl a functional application are implemented.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.savelkoul.net/blog/2012/01/stage-one-of-my-multi-stage-rocket-econtrol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to realise my ultimate goal, building software without software developers</title>
		<link>http://www.savelkoul.net/blog/2012/01/how-to-realise-my-ultimate-goal-building-software-without-software-developers/</link>
		<comments>http://www.savelkoul.net/blog/2012/01/how-to-realise-my-ultimate-goal-building-software-without-software-developers/#comments</comments>
		<pubDate>Sun, 22 Jan 2012 20:18:48 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[Model Driven Software Development]]></category>

		<guid isPermaLink="false">http://www.savelkoul.net/blog/?p=71</guid>
		<description><![CDATA[Maybe it’s time to show more about the projects I’m working on at night and in the weekends in relation to my ambitions. As many people know, I’m working on some applications for smart phones for controlling home automation equipment. What some of them know is that the real product behind these applications will be [...]]]></description>
			<content:encoded><![CDATA[<p>Maybe it’s time to show more about the projects I’m working on at night and in the weekends in relation to my ambitions. As many people know, I’m working on some applications for smart phones for controlling home automation equipment. What some of them know is that the real product behind these applications will be a framework for home automation software. This framework will allow home automation software to be extended easily with support for additional devices, protocols and cloud based services. What nobody (except for myself) knew till now is the real intention behind these projects, developing valuable assets that can be used to realize more ambitious projects.</p>
<p>My projects can be compared with a multistage rocket. To bring one project on a higher stage, it needs anther project to lift on. My home automation projects are projects that are needed to bring other projects of myself to a level they can be launched. From the first stage off launch, untill the last launch, the rocket will look like:</p>
<ul>
<li>Smart phone application for controlling home automation equipment</li>
<li>Home automation framework</li>
<li>Offering custom build home automation software at license base</li>
<li>Automated software product line for home automation software</li>
<li>Platform for creating automated software product lines</li>
<li>Platform for automated software creation by using knowledge from expertise systems</li>
<li>Automated software creation using AI algorithms</li>
</ul>
<p>Each stage will result in it’s own products that are part of a much more ambitious vision. Unlike a multistage rocket I hope that jettisoned stages will grow further in a way that they will profit from the results of following stages instead of burning into the atmosphere. However, they are primarily meant to serve a higher purpose. For example the smart phone application will be build in a way that it can grow with the framework. Thereby, the smart phone application will influence the design of the framework. The framework will be designed in a way that it extensions can be made at minimal efforts, making costs more predictable and making it possible to offer custom build software at licence base. And this way it will go further.</p>
<p>The ultimate goal will be a situation in which programs (simple as well as complex) will be created from scratch without the involvement of software developers. This sounds like science fiction, but I really believe it will be possible. Of course it will take us many years to get there, but it will provide us with enough challenges for the next decades.</p>
<p>I will write a blog post about each of the stages. By doing this, I hope to get in touch with people who share my vision and also see opportunities.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.savelkoul.net/blog/2012/01/how-to-realise-my-ultimate-goal-building-software-without-software-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building a low cost network enabled RGB-controller using an Arduino and eControl</title>
		<link>http://www.savelkoul.net/blog/2012/01/building-a-low-cost-network-enabled-rgb-controller-using-an-arduino-and-econtrol/</link>
		<comments>http://www.savelkoul.net/blog/2012/01/building-a-low-cost-network-enabled-rgb-controller-using-an-arduino-and-econtrol/#comments</comments>
		<pubDate>Sun, 15 Jan 2012 21:08:24 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Home Automation]]></category>

		<guid isPermaLink="false">http://www.savelkoul.net/blog/?p=59</guid>
		<description><![CDATA[Recently I build a prototype of a RGB-controller which can be controlled over a home network using eControl (a smartphone application I’m building for controlling home automation devices). The RGB-controller is based on an Arduino with network shield, which should proof that a ‘Internet of things’ with low cost devices is realizable right now. The [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitpic.com/80q4ds" title="Share photos on twitter with Twitpic"><img src="http://twitpic.com/show/full/80q4ds.jpg" width="160" height="240" align="right" ></a>Recently I build a prototype of a RGB-controller which can be controlled over a home network using eControl (a smartphone application I’m building for controlling home automation devices). The RGB-controller is based on an Arduino with network shield, which should proof that a ‘Internet of things’ with low cost devices is realizable right now.</p>
<p>The Arduino uses a ATmega328 which is a 8bit microcontroller with only 32KB of flash memory and running at a max of 16MHz. The ethernet shield is using a simple W5100 controller, which means that all TCP/IP protocol handling should be done by the micrcontroller. So I’m not cheating by using an ethernet controller with build in webserver. <img src='http://www.savelkoul.net/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>To compare, the average home router (sold around 25 Euro) contains a 32bit microprocessor running over 100MHz and contains at least megabytes of flash. The average smart phone (sold around 200 Euro) comes is around1GHz containing gigabytes of Flash. For the people not knowing what I’m talking about, it will be hard to find cheaper hardware then the hardware I used for this prototype.</p>
<p>The prototype includes the following functionalities:</p>
<ul>
<li>Automatically obtaining an ip-adress from an home router using DHCP</li>
<li>Advertising the device (making it detectable) using a online service connected to using DNS</li>
<li>Simple HTTP server making it possible to smartphones, computers etc. to connect</li>
<li>HSV like color cycling</li>
</ul>
<p>And there is even enough memory left for applications like:</p>
<ul>
<li>The addition of an RF Transmitter making it possible to control for example wireless wall switches</li>
<li>Running time schedules, scenes etc.</li>
<li>Addition of climate sensors</li>
<li>Addition of an IR-receiver</li>
</ul>
<p>A YouTube movie will be created soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.savelkoul.net/blog/2012/01/building-a-low-cost-network-enabled-rgb-controller-using-an-arduino-and-econtrol/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best wishes and may 2012 be a tweeting good year!</title>
		<link>http://www.savelkoul.net/blog/2012/01/best-wishes-and-may-2012-be-a-tweeting-good-year/</link>
		<comments>http://www.savelkoul.net/blog/2012/01/best-wishes-and-may-2012-be-a-tweeting-good-year/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 14:49:32 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[Model Driven Software Development]]></category>

		<guid isPermaLink="false">http://www.savelkoul.net/blog/?p=52</guid>
		<description><![CDATA[Best wishes and a happy 2012 to everyone! My good intention for this year is to share more about my activities on code generation, home automation and mobile development. I would like to invite you all to follow me on Twitter @a_savelkoul and @ExtundoApps.]]></description>
			<content:encoded><![CDATA[<p>Best wishes and a happy 2012 to everyone!</p>
<p>My good intention for this year is to share more about my activities on code generation, home automation and mobile development. I would like to invite you all to follow me on Twitter <a href="http://www.twitter.com/a_savelkoul">@a_savelkoul</a> and <a href="http://www.twitter.com/ExtundoApps">@ExtundoApps</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.savelkoul.net/blog/2012/01/best-wishes-and-may-2012-be-a-tweeting-good-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extundo Apps</title>
		<link>http://www.savelkoul.net/blog/2011/04/44/</link>
		<comments>http://www.savelkoul.net/blog/2011/04/44/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 22:00:15 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Home Automation]]></category>

		<guid isPermaLink="false">http://www.savelkoul.net/blog/?p=44</guid>
		<description><![CDATA[Today, April 1, I officially started my own (part-time) business. With Extundo Apps, I will focus myself on the development of software for home automation systems. Within the next year, a number of applications for smart phones and tablets will be developed and released. Many of my ideas that are now just concepts will find [...]]]></description>
			<content:encoded><![CDATA[<p>Today, April 1, I officially started my own (part-time) business. With <a href="http://www.extundo.eu">Extundo Apps</a>, I will focus myself on the development of software for home automation systems.</p>
<p>Within the next year, a number of applications for smart phones and tablets will be developed and released. Many of my ideas that are now just concepts will find their way to the world through these applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.savelkoul.net/blog/2011/04/44/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My second visit to the home automation event in Eindhoven</title>
		<link>http://www.savelkoul.net/blog/2010/11/my-second-visit-to-the-home-automation-event-in-eindhoven/</link>
		<comments>http://www.savelkoul.net/blog/2010/11/my-second-visit-to-the-home-automation-event-in-eindhoven/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 19:37:19 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.savelkoul.net/blog/?p=38</guid>
		<description><![CDATA[This time I will spend less space on my blog to it. In contrast to the previous year, there were a lot of companies showing home automation interfaces on SmartPhones and Tablets. Together with developments like Philips leaving this market with its Pronto remotes, we can conclude that the market is moving rapidly and new [...]]]></description>
			<content:encoded><![CDATA[<p>This time I will spend less space on my blog to it.</p>
<p>In contrast to the previous year, there were a lot of companies showing home automation interfaces on SmartPhones and Tablets. Together with developments like Philips leaving this market with its Pronto remotes, we can conclude that the market is moving rapidly and new market segments will get in reach. However, one of the most important things to make tablets a really interesting replacement for dedicated remotes is to improve the user interfaces. I am sorry that I have to say it, but in general they are still awful!!! Companies are often still trying to push as much as possible on a single screen or are nearly literally copying the user interfaces of there competitors because they seem to miss the initiative to do some research themselves.</p>
<p>There was also a lot of attention for Smart Metering. Not only companies specialized in Smart Metering could been found on the event, but also a lot of general purpose home automation systems were showing energy statistics on there touch panels, web interfaces and whatever you can think about.</p>
<p>The lower-end market was, just like previous year, underrepresented. There was only one company that really got my attention after speaking with them. This start-up will enter the market March next year with surprisingly low priced home automation sets. For a little bit more than 200 Euro for a starter set containing a small remote with display, internet gateway, two switches, two dimmers and two energy meters it will be still difficult to attract people who are still thinking about spending a tenner for a wireless remote set from the DIY-shop. But I am sure it will attract people that realize that a Z-Wave set is much more value for money than a set from the DIY-shop. Other people need something more.</p>
<p>At the end of the day I can conclude that there are a lot of opportunities for my own plans for home automation. I am nevertheless still missing something that will make home automation really attractive for the mass public. Looking at the popularity of the overpriced iPad, I am sure that this will no longer be the price. The fun-factor has become the main focus of the public and needs therefore to be taken into consideration.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.savelkoul.net/blog/2010/11/my-second-visit-to-the-home-automation-event-in-eindhoven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New look</title>
		<link>http://www.savelkoul.net/blog/2010/11/new-look/</link>
		<comments>http://www.savelkoul.net/blog/2010/11/new-look/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 18:27:36 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.savelkoul.net/blog/?p=35</guid>
		<description><![CDATA[Some people already noticed it. I recently migrated my blog from Community Server to WordPress and I am playing with a more personal look and feel. The reason for this is that I moved from webhoster and took the opportunity to choose a better blog engine. However, because of the rush around my marriage (yes, [...]]]></description>
			<content:encoded><![CDATA[<p>Some people already noticed it. I recently migrated my blog from Community Server to WordPress and I am playing with a more personal look and feel. The reason for this is that I moved from webhoster and took the opportunity to choose a better blog engine. However, because of the rush around my marriage (yes, I am a married men by now!) and developments around other projects, I did not yet take the time to redirect the old permalinks and restyle my old blog posts. I&#8217;m sorry for that.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.savelkoul.net/blog/2010/11/new-look/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Next big step, building my own modeling tools. Let&#8217;s blog again!</title>
		<link>http://www.savelkoul.net/blog/2010/07/next-big-step-building-my-own-modeling-tools-let-s-blog-again/</link>
		<comments>http://www.savelkoul.net/blog/2010/07/next-big-step-building-my-own-modeling-tools-let-s-blog-again/#comments</comments>
		<pubDate>Fri, 02 Jul 2010 15:15:00 +0000</pubDate>
		<dc:creator>Antoine</dc:creator>
				<category><![CDATA[Model Driven Software Development]]></category>

		<guid isPermaLink="false">/cs/blogs/antoine/archive/2010/07/02/next-big-step-building-my-own-modeling-tools-let-s-blog-again.aspx</guid>
		<description><![CDATA[I have a so many ideas I would like to write about, but it is difficult to find the time to really do my ideas justice. Therefore, I decided to focus myself more on development then writing. Shortly after my previous blog post I made a start with my first prototype for the home automation [...]]]></description>
			<content:encoded><![CDATA[<p>I have a so many ideas I would like to write about, but it is difficult to find the time to really do my ideas justice. Therefore, I decided to focus myself more on development then writing.<br />
Shortly after my previous blog post I made a start with my first prototype for the home automation DSL for which I decided to use MetaEdit+. I do have to confess that this was the first time I really made use of MetaEdit+. However I do not regret spending my time on getting used with it. In other words, I am impressed by how quick I got my self familiarized with the tooling (only a matter of hours). The concept MetaEdit+ uses to store models is in line with what I expect from a language workbench. Objects, properties and relations are well separated and offer the flexibility needed during the design process of a language. You can modify the language without the need to regenerate a document model or the visual representation of it.<br />
<img style="width: 556px; height: 357px;" title="SLP prototype DSL in MetaEdit+" src="/projects/DSM/SLP_MetaEdit.jpg" alt="SLP prototype DSL in MetaEdit+" width="556" height="357" /> </p>
<p>However, from the usability perspective I still see room for improvements. MetaEdit+ is definitely one of the more intuitive and flexible domain modeling tools. Nevertheless, the user still has to get used to concepts as languages, visualizations and models. From a technical perspective I really prefer this clear distinguish, but for domain experts who would like to create models without being forced to use a language pre-defined by others it might be interesting to make this as transparent as possible. </p>
<p>After seeing and working with tools like the Microsoft DSL Tools, Microsoft SQL Modeling, MetaCase MetaEdit+, MetaEnvironment (CWI) and Intentional Software, the conclusion is that they all have some overlap in concepts, but are unique in their own way. Some tools are more focused on academic people with knowledge about formal languages, others on developers creating frameworks. But in all the tools I am missing something and that is the focus on domain experts and collaboration between people with different kind of expertise. </p>
<p>For the most part language workbenches seem to follow a process, where as the first step a language has to be designed, then a visual representation and then the models. Before a domain expert is able to define its models someone with knowledge of designing languages should be involved. In some cases, languages and visual representations even have to be compiled and distributed by installation packages before they can be used. This might be no issue when these tools are used in combination with existing software frameworks. A very good example of a successful DSL is the ACA.NET Service Factory from Avanade, build using the DSL Tools from Microsoft. ACA.NET Service Factory is build for a technical domain, meant to be used by developers and to be used at multiple projects to pay back the investment. The DSLs in this case are quite stable, so not using dynamic modeling tools is not a big issue. </p>
<p>The less flexible a DSL tooling will be, the more time it will take to develop a specific version of a DSL. In my opinion, this will become an issue on projects where custom build DSLs are a key element of the requirements engineering and development process and constantly subject of changes. But how can we make DSM more interesting for to be used in crucial parts of projects where the domain is not clear yet?<br />
In practice, domain experts within companies already created their own languages. They use applications like Excel to write down business roles. One example I have are the medical acceptance procedure from my Masters thesis. The medical advisor used Excell sheets. These sheets had columns to refer to other questions depending on the answers given and columns with values for calculating risks. The sheets however could not be used as input for generating code. </p>
<p>I am working on a concept that will follow different process of designing languages then currently used when working with other language workbenches. In my concept models are used as a starting point rather than a language design. The first prototype I am creating will definitely support tables, graphs and forms but might also include for example flows and trees in future versions. The first step by the user will be to choose a visualization form it thinks will be suitable to express its thoughts, for example a table. The user then puts the data into the table. When it adds columns, it is has to name them. By doing this, the user is creating a language.<br />
The previous months I have worked on a prototype. The results so far are, despite of a lot of concessions I had to made, very promising. Building a graph tool using WPF (Windows Presentation Foundation) is one of the biggest challenges I am currently focusing on, but will result in a interactive experience for the end user. In the coming months I intend to post about my experiences with WPF and post more details about the design of my prototype.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.savelkoul.net/blog/2010/07/next-big-step-building-my-own-modeling-tools-let-s-blog-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

