<?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>Wazi &#187; Features</title>
	<atom:link href="http://olex.openlogic.com/wazi/category/features/feed/" rel="self" type="application/rss+xml" />
	<link>http://olex.openlogic.com/wazi</link>
	<description>Thinking OPEN</description>
	<lastBuildDate>Fri, 06 Nov 2009 19:33:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Creating a Continuous Integration Server for Java Projects Using Hudson</title>
		<link>http://olex.openlogic.com/wazi/2009/creating-a-continuous-integration-server-for-java-projects-using-hudson/</link>
		<comments>http://olex.openlogic.com/wazi/2009/creating-a-continuous-integration-server-for-java-projects-using-hudson/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 17:56:16 +0000</pubDate>
		<dc:creator>Grant Smith</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Continuum]]></category>
		<category><![CDATA[CruiseControl]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://olex.openlogic.com/wazi/?p=44227</guid>
		<description><![CDATA[A continuous integration (CI) engine is an automated build system that checks out the most current code from a source code repository, builds it, and makes the resulting artifacts available for download and review. This tutorial covers the setup of a continuous integration server for Java projects with Hudson, one of the top open source CI engines.]]></description>
			<content:encoded><![CDATA[<p>In a previous article we demonstrated <a href="http://olex.openlogic.com/wazi/2009/creating-a-maven-based-development-environment-on-linux/" target="_blank">how to setup a Linux server to use Maven</a>, the primary Java build tool. Now we&#8217;ll look at how to use <a href="https://olex.openlogic.com/packages/hudson" target="_blank">Hudson</a> to provide continuous integration to your build environment. Just what is continuous integration? Think of it this way: you have a team of developers who are all busily committing code to your source code repository. Each developer is focused on his or her role, or area of functionality, for the system being developed. A continuous integration (CI) engine is an automated build system that checks out the most current code from the source code repository, builds it, and makes the resulting artifacts available for download and/or review. It&#8217;s also a great way to see if the entire system is, in fact, compilable. More often than we&#8217;d like to admit, developers check in their code without checking for compile errors – creating a problem for others in the team who update their local sources to the trunk, only to find the system no longer compiles! The Continuous Integration Engine can be linked to a mailing list to notify developers that the build has failed. Additionally, it can show a &#8220;diff&#8221; of what has changed since the previous build, so users can see exactly who the culprit is – and follow up with merciless ridicule.</p>
<p>So why use Hudson to create a continuous integration server?  There are certainly other CI engines out there, such as the primary open source rivals to Hudson: <a href="https://olex.openlogic.com/packages/continuum" target="_blank">Apache Continuum</a> and <a href="https://olex.openlogic.com/packages/cruisecontrol" target="_blank">CruiseControl</a>.  Some good commercial CI engines are also available, but those are beyond the scope of this article.</p>
<p>We&#8217;ve worked with both Continuum and CruiseControl in the past, and consider them to be functional – in an adequate sort of way. Continuum&#8217;s web-based front-end isn&#8217;t bad, and for the most part it does what it&#8217;s designed to do. We&#8217;ve found CruiseControl to be more competent than Continuum when it comes to stability, although we must admit that we have not tried any of Continuum&#8217;s newer builds. But when it comes to ease of configuration Hudson wins, hands down. If, like us, you&#8217;re visually-oriented, and if you find it painful to edit an XML file to configure CI (as is the case with CruiseControl), Hudson&#8217;s graphical user interface just makes perfect sense.</p>
<p>Interested readers should be able to find more detailed comparisons of CI engines (like <a href="http://globalgateway.wordpress.com/2007/12/17/cruisecontrol-vs-hudson/" target="_blank">this one</a>) with a quick search, but our conclusion – based on a combination of first-hand experience and other people&#8217;s opinions – is that Hudson is the current front-runner among open source CI engines.</p>
<h2>Before You Start</h2>
<p>You&#8217;ll need to be proficient in  <a href="https://olex.openlogic.com/packages/maven" target="_blank">Maven</a> and <a href="https://olex.openlogic.com/packages/subversion" target="_blank">Subversion</a> before you continue. The principle here is to have a mock application hosted in a Subversion repository. We&#8217;ll then download and configure Hudson to access the Subversion repository, and perform continuous integration builds from there. We&#8217;ll assume you already have Maven configured. If not, have a look at the tutorial titled <a href="http://olex.openlogic.com/wazi/2009/creating-a-maven-based-development-environment-on-linux/" target="_blank">Creating a Maven-Based Development Environment on Linux</a>. You&#8217;ll also need to have an accessible Subversion server set up somewhere.  If you don&#8217;t, a good place to get started is at <a href="http://subversion.tigris.org/faq.html#repository" target="_blank">http://subversion.tigris.org/faq.html#repository</a>.</p>
<h2>Meat &amp; Potatoes</h2>
<h3>Creating a Test Project</h3>
<p>Let&#8217;s start with a software project for illustration purposes. For this, we&#8217;ll use Maven to generate a project with one simple command:</p>
<pre>mvn archetype:generate</pre>
<p>You&#8217;ll be asked to select an application type to generate. Let&#8217;s go with a simple web application. Choose option 18. Then enter the following information into the prompts:</p>
<pre>Define value for groupId: : com.example
Define value for artifactId: : testWebApp
Define value for version:  1.0-SNAPSHOT: : [Press Enter]
Define value for package:  com.example: : [Press Enter]
Define value for package:  com.example: :
Confirm properties configuration:
groupId: com.example
artifactId: testWebApp
version: 1.0-SNAPSHOT
package: com.example
 Y: : [Press Enter]</pre>
<p>Good job. You now have a fully functional web application that does very, very little indeed. You can compile and execute it for test purposes like this:</p>
<pre>cd testWebApp/</pre>
<pre>mvn -Djetty.port=9999 org.mortbay.jetty:maven-jetty-plugin:6.1.18:run</pre>
<p>The reason we use port 9999 is because we have other web applications already running on our machine. Point your favorite web browser to http://localhost:9999/testWebApp and you&#8217;ll be greeted by the now famous &#8220;Hello World!&#8221; greeting. Excited yet?</p>
<h3>Importing the Test Project into Subversion</h3>
<p>Next we need to import our new project into Subversion. We don&#8217;t want to import any generated artifacts so we first perform an <em>mvn clean</em> operation.</p>
<pre>mvn clean</pre>
<pre>cd ..</pre>
<pre>su</pre>
<pre># svnadmin create /var/lib/svn/repositories/testWebApp</pre>
<pre># cd ..</pre>
<pre># svn import testWebApp file:///var/lib/svn/repositories/testWebApp -m "initial import"</pre>
<p>Now remove your existing <em>webapp</em> directory, and check it out from Subversion.</p>
<pre>rm -rf testWebApp</pre>
<pre>svn checkout svn://armor.osdcorp.com/testWebApp</pre>
<p>Your Subversion repository will obviously be different. Substitute the <em>svn://armor.osdcorp.com</em> part with your configuration.</p>
<p>In a normal team development environment, your team would now joyfully check out the source from Subversion, make changes, and check them back in. Let&#8217;s shift our focus to the role of Hudson, our continuous integration engine of choice.</p>
<h3>Downloading and Installing Hudson</h3>
<p>To download Hudson:</p>
<pre>wget http://hudson-ci.org/latest/hudson.war</pre>
<p>Simple as that. Now, to execute it you have two options. You can either drop it into a Servlet container like Tomcat, or you can simply start it up like this:</p>
<pre>java -jar hudson.war --httpPort=8075</pre>
<p>Again, due to our system already running certain web applications, we can specify an alternate port. Point your browser to <em>http://localhost:8075</em> and you should be rewarded with the following:</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson1.png"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson1.png" alt="hudson1" width="600" height="281" /></a></p>
<p>We&#8217;ll need to do some basic configuration first. Essentially, we need to tell Hudson where the JDK and Maven reside. Click on &#8220;Manage Hudson&#8221;, then &#8220;Configure System&#8221;. In the resulting screen, configure the locations respectively. This is what it looks like on our server:</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson3.png"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson3.png" alt="hudson3" width="600" height="255" /></a></p>
<p>Next, make sure you have configured the &#8220;Hudson URL&#8221; at the bottom of this configuration screen. You need to change it from &#8220;localhost&#8221; to the actual hostname of your server. Something like this:</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson4.png"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson4.png" alt="hudson4" width="600" height="38" /></a></p>
<p>Excellent. Now click &#8220;Save&#8221;, and then click on the &#8220;New Job&#8221; link in top left corner of the page and fill out the resulting form as we have below:</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson2.png"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson2.png" alt="hudson2" width="600" height="281" /></a></p>
<p>Continuing from here, a more detailed page of your project is available:</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson5.png"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson5.png" alt="hudson5" width="600" height="311" /></a></p>
<p>Continued&#8230;</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson6.png"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/10/hudson6.png" alt="hudson6" width="600" height="283" /></a></p>
<p>Some explanation is required here. Hudson has various methods of deciding when to perform a build. These are called <em>build triggers</em>. The method we have chosen here is to poll Subversion every minute. If anything has changed, we perform a build. Other trigger mechanisms exist internally to Hudson. We say <em>internally</em> because there is one other important method to trigger a build. An HTTP GET on http://localhost:8075/job/testWebApp/build will trigger a build from an external source. How is that useful? You could use the <a href="https://olex.openlogic.com/packages/wget" target="_blank">Wget</a> utility to trigger that URL from the command line or a shell. It&#8217;s particularly handy if you use the <em>Wget</em> command on the URL from within a Subversion post-commit hook. So: every time someone commits a change to your source code repository, a build will be performed automatically. In this way we eliminate the wasteful polling of the Subversion repository by Hudson itself.</p>
<p>Let&#8217;s go ahead and set up the post-commit hook now. But first, go back into the testWebapp Hudson job configuration and uncheck the &#8220;Poll SCM&#8221; checkbox. Then click &#8220;Save&#8221;.  Now we&#8217;re ready to configure the post commit hook. Our repository resides in /var/lib/svn/repositories/testWebApp (see above):</p>
<pre>cd /var/lib/svn/repositories/testWebApp/hooks
cp post-commit.tmpl post-commit
chmod 755 post-commit</pre>
<p>Now edit post-commit and ensure that the last three lines look like this:</p>
<pre>REPOS="$1"
REV="$2"

wget http://localhost:8075/job/testWebApp/build</pre>
<p>That&#8217;s it! From now on, every time someone commits code, the build is triggered.</p>
<h2>Finishing Up</h2>
<p>There&#8217;s a lot more you can do with Hudson. It supports multiple other source code control repositories, build triggers, build notifiers&#8230; even Twitter and IRC interfaces! It uses plugins to perform much of this functionality. Take a look <a href="http://wiki.hudson-ci.org/display/HUDSON/Plugins" target="_blank">here</a> for the current list of plugins available. We hope this has been a useful introduction to Hudson. If you&#8217;re keen for more, there&#8217;s detailed information at the <a href="http://hudson-ci.org/" target="_blank">Hudson Website</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://olex.openlogic.com/wazi/2009/creating-a-continuous-integration-server-for-java-projects-using-hudson/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Primer on Europe for US-Based Open Source Communities and Vendors</title>
		<link>http://olex.openlogic.com/wazi/2009/primer-on-europe-for-us-communities-vendors/</link>
		<comments>http://olex.openlogic.com/wazi/2009/primer-on-europe-for-us-communities-vendors/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 21:14:34 +0000</pubDate>
		<dc:creator>Sandro Groganz</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[typo3]]></category>

		<guid isPermaLink="false">http://olex.openlogic.com/wazi/?p=40039</guid>
		<description><![CDATA[Europe leads the world in open source adoption and development, so it's no coincidence that many open source communities and vendors based in the US are interested in reaching across the Atlantic. This article explores the differences between the US and Europe and provides insight about how communities and vendors can bridge the gap to test and develop new markets within Europe.]]></description>
			<content:encoded><![CDATA[<p>Europe leads the world in open source software adoption and development.  Open source solutions have greater market share in Europe than the rest of the world, both on the server and the desktop, and more open source developers live in Europe than on any other continent including North America.  Only 18% of the <a href="http://www.socallinuxexpo.org/scale5x/conference+info/speakers/Ross+Turk/" target="_blank">developers on SourceForge</a> live in the United States, while 33% live in the European Union (EU).  European firms that contribute to open source projects account for about 565,000 jobs and have combined annual revenues of <a href="http://www.euractiv.com/en/infosociety/study-open-source-software-boost-eu-economy/article-160963" target="_blank">over €260 billion</a> ($350 billion).</p>
<p>Angel investor Larry Augustin said &#8220;Europe and most of the rest of the world is ahead of the US in Open Source adoption&#8221; in an often cited <a href="http://lmaugustin.typepad.com/lma/2008/09/commercial-open-source-in-europe-verses-the-us.html" target="_blank">Weblog entry</a>, and a <a href="http://news.cnet.com/8301-13505_3-9992379-16.html" target="_blank">report from Forrester Research</a> showed that France and Germany lead in open source adoption.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/forrester_foss_adoption.png" alt="" /><br />
<em>Illustration 1: Adoption statistics for FL/OSS in the EU</em></p>
<p>Given that open source offers companies and organizations a highly cost-effective route into international markets, Europe is a land of milk and honey due to its high adoption of open source software.  This article outlines the differences between the US and Europe in order to help open source software vendors develop strategies to bridge the gap and begin testing and developing new markets and communities within Europe.  The main focus of this article is on providing facts and sharing experiences that allow one to understand the European IT market.  We&#8217;ll outline the implications for marketing, communications, and community building within Europe in another article.  Entrepreneurial and legal aspects are covered only as they provide valuable background information that can help one understand the implications for the primary topic of interest.  In detail, this article concentrates on:</p>
<ol>
<li>Comparing the economies and open source software adoption rates in the EU and US</li>
<li>Understanding societies in the EU and the role open source software plays</li>
</ol>
<p>The information covered in this article applies to member states of the European Union as well as closely associated states such as Norway and Switzerland.  En passant, we&#8217;ll also take a quick look at Eastern European states.</p>
<h3>European Union, the Largest Market In the World</h3>
<p>Europe is the largest market in the world.  Taken as a whole, the European Union has a <a href="https://www.cia.gov/library/publications/the-world-factbook/geos/ee.html#Econ" target="_blank">GDP of over $18 trillion USD</a>, $4 trillion more than the <a href="https://www.cia.gov/library/publications/the-world-factbook/geos/us.html#Econ" target="_blank">US</a>.  The EU&#8217;s GDP accounts for 30% of <a href="https://www.cia.gov/library/publications/the-world-factbook/geos/xx.html#Econ" target="_blank">world production</a>, and the population of about <a href="https://www.cia.gov/library/publications/the-world-factbook/geos/ee.html#People" target="_blank">500 million people</a> is over 60% larger than the <a href="https://www.cia.gov/library/publications/the-world-factbook/geos/us.html#People" target="_blank">US</a>.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/gdp_eu_vs_usa.png" alt="" width="500" height="286" /><br />
<em>Illustration 2: GDP of EU and USA</em></p>
<h3>Adoption of Open Source Software in Europe</h3>
<p>RedHat published an <a href="http://www.redhat.com/about/where-is-open-source/activity/" target="_blank">open source activity map</a> that indicates the hot spots of global open source software development.  Europe is one of the most active regions, as are the US, Brazil, China, Australia, Japan, and South Africa.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/activity_map_open_source.png" alt="" width="500" height="259" /><br />
<em>Illustration 3: RedHat&#8217;s Open Source Activity Map</em></p>
<p>The breakdown of market share by country for <a href="https://olex.openlogic.com/packages/firefox">Firefox</a> also helps illustrate how Europe compares to the US in terms of open source software adoption.  Firefox serves as a good benchmark because its actual distribution can be measured quite reliably by tracking access to web sites through Firefox.  Contrast this with <a href="http://www.openoffice.org/" target="_blank">OpenOffice</a>, where the number of downloads does not directly translate into the number of installations because one could download OpenOffice once and install it on many desktops.</p>
<p>As shown in the chart below, Firefox usage is clearly higher in France and Germany than the US, although all three countries are above the worldwide adoption average.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/firefox_market_share.png" alt="" width="500" height="213" /><br />
<em>Illustration 4: Average Firefox market share Nov 08 to Mar 09</em></p>
<p>Looking at the worldwide distribution of contributors and users to open source projects on <a href="http://www.ohloh.net/" target="_blank">Ohloh</a>, one gets the impression that there are in general more of them in Europe compared to the US.  For example, the <a href="http://www.ohloh.net/p/debian/map" target="_blank">activity map for Debian</a> shows significantly more contributors in Europe.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/activity_map_debian.png" alt="" width="500" height="406" /><br />
<em>Illustration 5: Debian contributors</em></p>
<p>However, we have to be careful about interpreting data on these maps, as they display only a fraction of only the contributors registered on Ohloh.  Nevertheless, they indicate rough trends.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/activity_map_typo3_vs_drupal.png" alt="" width="500" height="193" /><br />
<em>Illustration 6: TYPO3 vs. Drupal users</em></p>
<p>Comparing the distribution of <a href="https://olex.openlogic.com/packages/typo3">TYPO3</a> and <a href="https://olex.openlogic.com/packages/drupal">Drupal</a> users on Ohloh, it&#8217;s clear that TYPO3 has a stronger adoption in Europe than Drupal.  On the other hand, Drupal has equally strong adoption rates in the US and Europe, while TYPO3 lacks adoption in the US.  It would be out of the scope of this article to discuss the reasons for the diverging uptake, but vendors should note that when an abundance of open source alternatives has emerged (as is the case in the CMS market) regional preferences can develop, with certain regions favoring one open source system over the other.</p>
<p>To get a more complete picture of open source software adoption in Europe, we assembled the following map based on <a href="http://ec.europa.eu/information_society/activities/opensource/cases/index_en.htm" target="_blank">reports</a>, <a href="http://www.osor.eu/news/news-by-country" target="_blank">news coverage</a>, <a href="http://blogs.the451group.com/opensource/2008/06/06/were-all-going-on-a-european-tour/" target="_blank">Matt Aslett&#8217;s tour of Europe</a>, and the experience of the <a href="http://www.initmarketing.com/" target="_blank">InitMarketing</a> team.  It is far from scientifically correct, but it nonetheless serves as a good start.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/open_source_adoption_europe.png" alt="" width="500" height="502" /><br />
<em>Illustration 7: Open source software adoption in Europe</em></p>
<p>Note that European countries with lower GDP (mostly those in Eastern Europe) tend to have lower open source software adoption rates, although one of the major political arguments in favor of open source software is that it can help build a strong local IT economy with less initial investment.  Some of the likely reasons for this disparity include:</p>
<ul>
<li>Markets in countries with lower GDP might be too small to attract or generate medium to large open source system integrators, instead supporting only a few small ones.  These markets may benefit from affirmative laws or declarations endorsing open source software.  For example, the Spanish province <a href="http://www.osor.eu/news/es-extremaduras-open-source-system-offers-first-web-services" target="_blank">Extremadura</a> created a flourishing market for small system integrators when it announced plans to use more open source.</li>
<li>Municipalities and governmental organizations are often highly independent.  This can decrease open source software adoption because regulations favoring open source are unlikely to be effective when pushed top-down by state ministries.</li>
<li>The circulation of illegal copies of proprietary software is higher in such countries, which most likely contributes to lower open source software adoption rates.</li>
</ul>
<h3>Primary Reason For Open Source Adoption in Europe</h3>
<p>In the above-mentioned Weblog post, Larry Augustin cites avoiding vendor lock-in as the primary reason behind open source software adoption in Europe.  However, a <a href="http://www.heise.de/open/Trendstudie-Open-Source--/artikel/126682" target="_blank">study conducted in Germany</a> by the major IT publisher <a href="http://www.heise.de/" target="_blank">Heise</a> actually found that users adopt free and open source software (FOSS) to lower licensing costs, and less so to avoid vendor lock-in.  Similarly, a <a href="http://www.osor.eu/news/es-saving-on-licences-is-a-main-advantage-of-open-source-report-says" target="_blank">Spanish report</a> indicates that saving on software licenses is the main advantage of open source usage by Spanish public administrations.</p>
<p>Given the lack of similar reports (or at least the difficulty in finding them) for other European countries, Larry&#8217;s assumption might still be valid for most European countries excluding Germany and Spain.  On the other hand, Germany and Spain are at the forefront of open source software adoption in Europe, and saving on software licenses might also be (or soon become) the primary reason driving open source usage in all other European countries.</p>
<p>It&#8217;s worth noting here the German study revealed that saving on licensing costs is more important to those adopting open source software for the first time.  The longer someone uses FOSS, the more important the &#8220;freedom&#8221; aspects become — namely open standards, vendor independence, and the free and open source software philosophy.  Hence, open source vendors need to approach potential customers in Europe differently depending on how open source savvy these potentials are.</p>
<h3>Understanding European Societies</h3>
<p>The title of this section says it all: there is no single European society, but rather many different European societies, cultures, and languages, all united in diversity.  A classic cartoon entitled <a href="http://www.erothitan.com/press_info/2002-10-28_the_perfect_european_en.html" target="_blank">The Perfect European</a> summarizes the diversity in a humorous and ironic way, with much truth.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/the_perfect_european.png" alt="" width="500" height="345" /><br />
<em>Illustration 8: Cartoon, The Perfect European</em></p>
<p>Especially direct sales efforts in Europe must take into account important differences in communication.  For example, German business persons typically like to do the work first and have fun later, while French business persons enjoy sharing a nice conversation before the work starts.  However, the proximity of these diverse cultures adds yet another dimension.  Most people in the European software business have traveled abroad for business trips or during university, and these experiences allow them to reflect upon their own culture&#8217;s communication style and take into account the subtle differences.</p>
<p>This is where things get complicated, yet funny.  A French business person might suggest to a German that they complete the work before engaging in small talk in order to conform to the German&#8217;s cultural expectations.  That might confuse the German, who expected the Frenchman to want to schmooze first.</p>
<h3>Language Barriers Fracture the European IT Market</h3>
<p>Cultural and geographic differences significantly shape the IT market in the EU, so understanding local language and culture is often a prerequisite to doing business with local firms.  However, this is complicated by the fact that there are over <a href="http://en.wikipedia.org/wiki/Languages_of_the_European_Union" target="_blank">20 languages</a> spoken across the EU, and in some cases there are language differences between regions in the same country.</p>
<p>Comparing the Information and Communication Technology (ICT) output in 2008 to the distribution of &#8220;mother tongue&#8221; languages in the EU, we can see that the European ICT market is actually quite fractured.  For example, the most widespread mother tongue is German, which is the primary language spoken by 18% of EU inhabitants (spread amongst Germany, Austria, Switzerland, and a few small regions). However, the countries and regions where German is the mother tongue account for roughly 25% of ICT output.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/ict_outpu_eu_per_language.png" alt="" /><br />
<em>Illustration 9: ICT output in EU per language in 2008</em></p>
<p>The good news for US-based vendors and communities is that English is the most widely-spoken language throughout much of Europe.  51% of EU inhabitants can carry on a conversation in English, either as their mother tongue, a second language, or a foreign language.  Next in line are German and French, which are spoken in some capacity by 32% and 26% of the EU population, respectively.</p>
<p>However, it would be false to assume that communicating in English, German and perhaps French will enable Americans to cover the entire European market.  Some regions have a strong bias against particular languages, such as the Flemish community in Belgium where people speak Dutch and might not be amused if you tried to sell software in French.  Similarly, some people in France will call you names if you speak in German.  Luckily, most of these resentments are only a problem with older generations.</p>
<p>The simple truth for open source vendors trying to get a foothold in the European market is that English should be fine as long as the focus is only on building an initial developer community and partner network.  Once you decide to build a growing business in Europe, contracts written in English will be a show-stopper in countries where English is not the mother tongue — especially so to small and mid-sized enterprises.</p>
<h3>Type of engagements in Europe</h3>
<p>The cultural diversity of Europe also impacts the type of business and community engagements you can find in various regions.  In short, <a href="http://blogs.the451group.com/opensource/2008/11/03/europe-is-not-a-single-market-for-open-source/" target="_blank">Europe is not a single market for open source</a>.  Open source adoption seems to be driven by commercial engagements in Northern Europe, while Southern and Eastern Europe is characterized by community-driven engagements.</p>
<p>Concerning the sales channel, Northern Europe seems to prefer direct sales — especially the UK.  There, customers want to buy the product and less so services.  At least in Germany, SMEs are fine with having system integrators implement projects, but large enterprises want to include the open source vendor in negotiations and have the vendor guarantee the success of the project, recommend system integrators, and perhaps even lead the project.  In Italy and Spain, economic buyers might outright reject vendors and commercial editions of products because open source software is supposed to be available at no cost.  There, the market prefers to buy services from system integrators.</p>
<p>For open source software vendors, this means that commercial whole-product offerings and direct sales tactics could well work in Northern European countries, while in Southern and Eastern Europe they should leverage community development tactics and build a partner network.  There is also the mushy middle of Mid Europe, such as Germany, where the appropriate sales or marketing approach depends on the project volume and type of customer.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/type_of_engagements.png" alt="" width="500" height="555" /><br />
<em>Illustration 10: Types of engagements in Europe</em></p>
<p>The aforementioned Heise study on open source software adoption in Germany found that the main drivers are CIOs and CEOs.  Although open source can still be introduced &#8220;through the back door&#8221; by developers and system administrators, it appears that, at least in Germany, open source software has won the hearts and minds of executives and become a strategic element of the corporate IT landscape.</p>
<p><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/07/drivers_of_foss_adoption_in_de.png" alt="" width="500" height="207" /><br />
<em>Illustration 11: Open source is highly relevant in Germany&#8230;</em></p>
<p>It is hard to say if this is true for other EU countries as well because the data is missing.  Our best educated guess is that the companies with highest open source software adoption in the EU are also those where executives increasingly regard open source as a strategic tool.</p>
<h3>Conclusion</h3>
<p>Europe is a gold mine for open source software vendors, but the gold is often deeply hidden in culturally diverse ground.  The united market of the European Union is actually a fractured market that needs to be approached accordingly.  Otherwise, community building efforts will run dry, marketing communications will make your company look outlandish, and sales will bounce off cultural barriers.</p>
<p>Although Europe is a fractured market, there are regional similarities that make the market less daunting to US-based businesses and communities seeking to gain a foothold in the EU.  Two of these similarities will ultimately have to be addressed in any go-to-market strategy employed by US-based open source vendors casting an eye towards Europe:</p>
<ul>
<li><strong>Major languages equal major ICT markets</strong> &#8211; As we&#8217;ve seen, English, German, and French are widely spoken within the EU as mother tongues, second languages, and foreign languages.  Roughly speaking, these three languages also correlate with the most prosperous ICT regions within the EU.</li>
<li><strong>Two types of engagements</strong> &#8211; While Northern Europe prefers direct sales, the South prefers the partner channel.  Customers in the center of the EU want to be able to either work directly with the vendor, with partners, or both.</li>
</ul>
<p>In an upcoming article we&#8217;ll take a look at how to test and develop new markets in Europe with effective outreach through marketing, community development, PR, and more, thus showcasing how open source offers companies and organizations a highly cost-effective route into international markets.</p>
]]></content:encoded>
			<wfw:commentRss>http://olex.openlogic.com/wazi/2009/primer-on-europe-for-us-communities-vendors/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Survey of Open Source Modeling Tools for Software Development</title>
		<link>http://olex.openlogic.com/wazi/2009/oss-modeling-tools-for-software-development/</link>
		<comments>http://olex.openlogic.com/wazi/2009/oss-modeling-tools-for-software-development/#comments</comments>
		<pubDate>Thu, 05 Feb 2009 18:21:55 +0000</pubDate>
		<dc:creator>Grant Smith</dc:creator>
				<category><![CDATA[Comparisons]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[Acceleo]]></category>
		<category><![CDATA[AndroMDA]]></category>
		<category><![CDATA[ArgoUML]]></category>
		<category><![CDATA[BOUML]]></category>
		<category><![CDATA[Dia]]></category>
		<category><![CDATA[Gaphor]]></category>
		<category><![CDATA[Kivio]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[PyUML]]></category>
		<category><![CDATA[StarUML]]></category>
		<category><![CDATA[Taylor]]></category>
		<category><![CDATA[UML]]></category>
		<category><![CDATA[UniMod]]></category>
		<category><![CDATA[Violet]]></category>

		<guid isPermaLink="false">http://olex.openlogic.com/wazi/?p=1415</guid>
		<description><![CDATA[Poor planning is one of the top reasons why software projects are delivered late, over budget, or not at all, so it’s important to get organized before you start coding. In this article we survey some of the open source modeling tools available to help you streamline the development planning process.]]></description>
			<content:encoded><![CDATA[<p>Poor planning is one of the top reasons why software projects are delivered late, over budget, or not at all, so it’s important to get organized before you start coding.  For decades programmers tried all manner of flow charts, elaborate diagrams, and volumes of specifications in an attempt to fully understand the code they planned to write, but these methods often proved to be ineffective and time consuming.  Fortunately, programmers today can choose from a wide range of modeling tools that make it relatively easy to lay out the functionality and use cases for a new project.</p>
<p>In this article we’ll survey some of the modeling tools available to help you streamline the development planning process.  All of the modeling tools covered in this survey are open source applications. The modeling tools addressed in this survey are:</p>
<ul>
<li><a href="https://olex.openlogic.com/packages/acceleo" target="_blank">Acceleo</a></li>
<li><a href="https://olex.openlogic.com/packages/andromda" target="_blank">AndroMDA</a></li>
<li><a href="https://olex.openlogic.com/packages/argouml" target="_blank">ArgoUML</a></li>
<li><a href="https://olex.openlogic.com/packages/bouml" target="_blank">BOUML</a></li>
<li><a href="https://olex.openlogic.com/packages/dia" target="_blank">Dia</a></li>
<li><a href="http://www.fujaba.de/" target="_blank">Fujaba</a></li>
<li><a href="https://olex.openlogic.com/packages/gaphor" target="_blank">Gaphor</a></li>
<li><a href="https://olex.openlogic.com/packages/kivio" target="_blank">Kivio</a></li>
<li><a href="https://olex.openlogic.com/packages/netbeans" target="_blank">NetBeans</a></li>
<li><a href="http://www.papyrusuml.org/" target="_blank">Papyrus</a></li>
<li><a href="https://olex.openlogic.com/packages/pyuml" target="_blank">PyUML</a></li>
<li><a href="https://olex.openlogic.com/packages/staruml" target="_blank">StarUML</a></li>
<li><a href="https://olex.openlogic.com/packages/taylor" target="_blank">Taylor</a></li>
<li><a href="https://olex.openlogic.com/packages/uml" target="_blank">Umbrello</a></li>
<li><a href="https://olex.openlogic.com/packages/unimod" target="_blank">UniMod</a></li>
<li><a href="https://olex.openlogic.com/packages/violet" target="_blank">Violet</a></li>
</ul>
<h3>Background</h3>
<p>As modeling tools have evolved, they’ve blurred the boundaries of traditional software development planning. For example, some modeling tools can analyze and reverse engineer source code in order to produce UML diagrams. Similarly, most modeling tools support <a href="http://en.wikipedia.org/wiki/Model_Driven_Architecture" target="_blank">model-driven architecture (MDA)</a>, which means they can generate code from the models. Whether or not you use those features — and to what extent — is up to you. One option is to use the generated code as a skeleton and add in technology of your choice further down the road.</p>
<p>Most of the modeling tools covered in this survey use the <a href="http://en.wikipedia.org/wiki/Unified_Modeling_Language" target="_blank">Unified Modeling Language (UML)</a>, so you may wish to become proficient in UML to maximize your understanding of these tools.  In addition to UML compliance, some of the other factors we’ll examine for these modeling tools include:</p>
<ul>
<li>Code generation capabilities</li>
<li>Ease of use</li>
<li>Documentation</li>
</ul>
<p>We’ll start by taking a look at &#8220;contenders&#8221; that have unique strengths or benefits but lack some of the features we feel are most desirable. Then, we’ll move on to our list of &#8220;primary candidates&#8221; that offer the strongest combination of capabilities, documentation, and ease of use.</p>
<h3>Condenders</h3>
<h4>AndroMDA</h4>
<p>If you&#8217;re serious about taking the MDA approach to software development, <a href="https://olex.openlogic.com/packages/andromda" target="_blank">AndroMDA</a> is candidate worthy of consideration.  While it does not have UML diagramming tools of it&#8217;s own, AndroMDA integrates with others to do the code generation. What we love about it is that it integrates with <a href="https://olex.openlogic.com/packages/maven" target="_blank">Maven</a>, which is quickly becoming the standard build tool for Java development.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_andromda.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_andromda.png" alt="" width="350" height="263" /></a></p>
<h4>Dia</h4>
<p><a href="https://olex.openlogic.com/packages/dia" target="_blank">Dia</a> is an application for creating technical diagrams. Its interface and features are loosely patterned after the Windows program Visio, so many users will find it easy to get started. Features of Dia include multiple-page printing, export to many formats (including EPS, SVG, CGM, and PNG), and the ability to use custom shapes created by the user as simple XML descriptions.  Dia is useful for drawing UML diagrams, network maps, and flowcharts, but it does not support code generation. It runs on Linux, Unix and Windows and is released under the <a href="https://olex.openlogic.com/license_classes/4" target="_blank">GPL License</a>.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_dia.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_dia.png" alt="" width="350" height="347" /></a></p>
<h4>Fujaba</h4>
<p><a href="http://www.fujaba.de/" target="_blank">Fujaba</a> is a UML modeling tool that generates code in Java and vice-versa. Most of the documentation is is German, but there is great tutorial in English that demonstrates how to create a networked game using Fujaba exclusively. It is distinguished from other CASE-Tools by the fact that it performs Story Driven Modeling (SDM). Fujaba seems to be popular among German academic institutions and is used as a teaching aid for software development.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_fujaba4.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_fujaba4.png" alt="" width="350" height="216" /></a></p>
<h4>Gaphor</h4>
<p><a href="https://olex.openlogic.com/packages/gaphor" target="_blank">Gaphor</a> is a simple UML 2.0 modeling environment, and simplicity seems to be its primary aim — it is easy to install, use and extend. Gaphor is cross-platform, running on multiple flavors of Unix and Windows. No code generation is supported. However the models can be exported to XMI, and SVG, PNG and PDF format exports are supported for the diagrams.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_gaphor-ss2.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_gaphor-ss2.png" alt="" width="350" height="305" /></a></p>
<h4>Kivio</h4>
<p><a href="https://olex.openlogic.com/packages/kivio" target="_blank">Kivio</a> is the <a href="https://olex.openlogic.com/packages/koffice" target="_blank">KOffice</a> flowchart and diagram creation tool. It allows you to create accurate scale diagrams by arranging pre-drawn shapes and stencils on a page. The stencils might represent stages of a process, office furniture, or components on an electronic circuit. Kivio comes with a large collection of different stencils, which are grouped into collections — known as stencil sets — by subject area. Kivio features script-able stencils using Python, support for Dia stencils, and a plugin framework for adding more functionality. No code generation is supported.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_kivio.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_kivio.png" alt="" width="350" height="264" /></a></p>
<h4>PyUML</h4>
<p><a href="https://olex.openlogic.com/packages/pyuml" target="_blank">PyUML</a> is described as a fully functional UML-Roundtrip-Tool for <a href="https://olex.openlogic.com/packages/python" target="_blank">Python</a>. It is implemented as an <a href="https://olex.openlogic.com/packages/eclipse" target="_blank">Eclipse</a> plugin based on the plugins <a href="https://olex.openlogic.com/packages/pydev" target="_blank">PyDev</a> and <a href="https://olex.openlogic.com/packages/eclipseplugin-eclipse_uml2" target="_blank">Eclipse Uml2Tools</a>. Unfortunately, the user guide is only available in German, and as such we were not able to thoroughly evaluate its features. It appears to support code generation for Python only, and as of publication of this survey it did not support the latest version of Eclipse (Ganymede).</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_pyuml.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_pyuml.png" alt="" width="350" height="141" /></a></p>
<h4>StarUML</h4>
<p><a href="https://olex.openlogic.com/packages/staruml" target="_blank">StarUML</a> is a Windows-only code generator and UML editor.  The documentation is reasonably good, but it&#8217;s obvious that it was directly translated from Korean or written by a non-native English speaker. Documentation is available in Korean, Russian and Japanese, too. The product itself is very powerful; generation is not limited at all, so you can generate Word documents and spreadsheets as well as source code. Although it is touted as open source, several commercial dependencies are required to build from source.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_staruml.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_staruml.png" alt="" width="350" height="227" /></a></p>
<p>The last release of StarUML was in 2005, so it seems the product is either completely stable or development has stalled. A recent discussion on the forum page indicates that the project may have been abandoned, and some developers have started a fork called <a href="http://sunuml.wiki.sourceforge.net/" target="_blank">SunUML</a>.</p>
<h4>Umbrello</h4>
<p><a href="https://olex.openlogic.com/packages/uml" target="_blank">Umbrello</a> is a nice KDE-based UML modeler and code generator with a wealth of code generation options. In fact, it supports more languages out of the box than all of the other generators included in this survey. Most new Linux distributions with KDE4 include Umbrello as part of the kdesdk package. Umbrello is not yet available for Windows, but it looks as though this may soon change — there&#8217;s a screenshot of Umbrello running on Windows in an experimental capacity on the project website.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_umbrello-20.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_umbrello-20.png" alt="" width="350" height="264" /></a></p>
<h4>UniMod</h4>
<p>One approach to software development is to concentrate on defining and implementing application behavior using SWITCH-technology with the help of Structural Finite State Machines (FSM), and <a href="https://olex.openlogic.com/packages/unimod" target="_blank">UniMod</a> falls within this methodology. However, UniMod is different from other projects using FSMs for describing application logic in that it uses UML and is not focused on embedded systems. UniMod generates Java code exclusively and is another plugin for the Eclipse platform.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_unimod.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_unimod.png" alt="" width="350" height="312" /></a></p>
<h4>Violet</h4>
<p><a href="https://olex.openlogic.com/packages/violet" target="_blank">Violet</a> is a simple UML diagram editor and is not intended as an industrial strength modeling tool. No code generation or reverse engineering capabilities are provided, and it does not support XMI export or perform semantic checking of models (in other words, you can draw contradictory diagrams). Violet can be run as an applet, via Java Web Start or as an Eclipse plugin. Violet&#8217;s strength lies in its simplicity and easy of use.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_violet.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_violet.png" alt="" width="350" height="268" /></a></p>
<h3>Primary Candidates</h3>
<h4>ArgoUML</h4>
<p><a href="https://olex.openlogic.com/packages/argouml" target="_blank">ArgoUML</a> is another mature code generating CASE tool, supporting diagram editing for all 9 UML 1.4 diagrams. It boasts a rich set of features including code generation for Java, C++, C#, PHP4 and PHP5, and it&#8217;s platform independent and available in ten languages. Diagrams can be exported in as GIF, PNG, PS, EPS, PGML and SVG. Another nice feature is that it supports reverse engineering with Jar/class file importing. Even though we found the user documentation to be lacking in some areas, the documentation seems to be an active work in progress.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_argouml.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_argouml.png" alt="" width="350" height="318" /></a></p>
<p>ArgoUML is very easy to install, as it has no dependencies other than Java. In most cases it can be installed with a single click using Java Web Start. ArgiUML supports XMI, which is an XML based exchange format between UML tools, so interchange between XMI-compliant tools should be a snap. Other cool features include to-do lists, design critics, OCL support, checklists and multiple overlapping views.</p>
<p>It&#8217;s worth mentioning that there is a commercial product called Poseidon, which uses the ArgoUML code base and presents a more complete, rounded product. Having used both, we can live with some of the rough edges in ArgoUML in order to gain some of the other benefits of using an open source solution.</p>
<h4>BOUML</h4>
<p><a href="https://olex.openlogic.com/packages/bouml" target="_blank">BOUML</a> is a very promising project. Running under Linux, Solaris, MacOS X and Windows, it provides UML diagram editing and code generation for C++, Java, Python, PHP and IDL. The generated code is achieved through what the author calls &#8220;plug-outs&#8221; (named because they execute outside of the BOUML environment), which can be developed in C++ or Java to support other languages. Considering the author is a non-native English speaker, the documentation is excellent. This is a great example of useful open source.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_bouml.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_bouml.png" alt="" width="350" height="270" /></a></p>
<h4>Netbeans</h4>
<p>The popular <a href="https://olex.openlogic.com/packages/netbeans" target="_blank">Netbeans IDE</a> has a great UML plugin, which is easily installed via the Plugin Manager. Designers and analysts design applications using the UML modeling language, then developers generate Java code from the UML model. You can also update the model from changes made in the source code. Generated source code can be saved into new source files or merged into existing source code files, thereby providing full round-trip engineering capability. Your collection types are preserved during Forward and Reverse Engineering and may be set and changed.  The Netbeans documentation is very good, and there are tutorial trails covering UML based development. However, code generation is currently Java only.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_netbeans.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_netbeans.png" alt="" width="350" height="191" /></a></p>
<h4>Papyrus / Acceleo</h4>
<p>Another tool based on the Eclipse environment, <a href="http://www.papyrusuml.org/" target="_blank">Papyrus</a> models within UML 2.0 and supports multiple code generation possibilities. It supports the DI (Diagram Interchange) standard, an extensible architecture that allows users to add new diagrams and new code generators as well as profile development support facilities for UML2 profiles, nested profiles, and OCL constraints in profile descriptions. Code generation is supported through interfacing with Acceleo.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_papyrus.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_papyrus.png" alt="" width="350" height="237" /></a></p>
<p><a href="https://olex.openlogic.com/packages/acceleo" target="_blank">Acceleo</a>, built as an Eclipse plugin and utilizing the Eclipse EMF (Eclipse Modeling Framework), is a mature MDA environment. With syntax highlighting, real-time error detection, meta-model and scripts-based completion, and real-time preview of generated code, this is certainly an extremely useful product. Acceleo lets you insert custom coding into the generated code by defining coding zones, which are preserved in future iterations of generation. What this means is that you can use Acceleo throughout your development process and seamlessly evolve your project without losing any customization code. It uses custom templates to generate many commonly used programming artifacts, using wizards and a special syntax defined as a result of many years of experience in code generation. In addition, Acceleo uses &#8220;services&#8221; to extend templates to implement complex operations — basically allowing unlimited extensibility while keeping the templates clean and easy to read. Acceleo can be used to generate C, Fortran, Java, Smalltalk, XML, VB.Net, and virtually any markup language. This is accomplished by the use of Modules, which are basically groups of several templates that describe the information required to generate source code.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_acceleo.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_acceleo.png" alt="" width="350" height="200" /></a></p>
<p>A large number of commercial and open source UML Case tools are compatible with Acceleo, and it runs on any Eclipse-compatible operating system. And if this all sounds way too technical, don&#8217;t despair — the online documentation and tutorials are superb. The website features a support forum for both English and French language users. Additionally, there is a wiki, an IRC channel, a mailing list and an RSS feed.</p>
<h4>Taylor</h4>
<p>Implemented as a set of Eclipse plugins and targeted towards JEE development, <a href="https://olex.openlogic.com/packages/taylor" target="_blank">Taylor</a> aims to make creating JEE applications as easy as Ruby-on-Rails, but with the power of JEE and UML. We were very pleased to see that Taylor can generate <a href="https://olex.openlogic.com/packages/jsf" target="_blank">JSF</a> and <a href="https://olex.openlogic.com/packages/jboss-seam" target="_blank">JBoss Seam</a> code, as well as EJB3 Entity and Session Beans. Equally exciting is the fact it can generate Maven pom.xml files and APT documentation from the UML comments. This merely scratches the surface of its feature list — Java Enterprise developers won&#8217;t be disappointed with the direction of this project. The documentation is excellent and includes a cool Flash-based demo.</p>
<p><a href="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_taylor.png" target="_blank"><img src="http://olex.openlogic.com/wazi/wp-content/uploads/2009/02/uml_modeling_taylor.png" alt="" width="350" height="264" /></a></p>
<h3>Conclusion</h3>
<p>From the perspective of a reviewer with no specific software development project in mind, the most feature-laden option is the Papyrus / Acceleo combination. If your primary IDE is Eclipse, you will benefit from having your modeling software running in the same environment as your active code editor. For Java programmers using Netbeans, the same can said of its modeling tool. BOUML, while superb in its own right, is the vision of a single author and, as such, enterprise development institutions may be hesitant to adopt it. If you don&#8217;t mind breaking away from your IDE, give Taylor a test drive.</p>
<p>As we’ve seen, there are many good open source choices for project conception and planning tools, but the best tool for the job is not easily defined.  Your unique programming language requirements, environment, operating system, and IDE will guide your decision making process.</p>
]]></content:encoded>
			<wfw:commentRss>http://olex.openlogic.com/wazi/2009/oss-modeling-tools-for-software-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
