<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>IT-Dinosaurus Blog</title>
	<atom:link href="http://jukkatamminen.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jukkatamminen.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Thu, 26 Jan 2012 13:40:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='jukkatamminen.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/bd26107a98f3c3f7782c260217d76061?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>IT-Dinosaurus Blog</title>
		<link>http://jukkatamminen.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://jukkatamminen.wordpress.com/osd.xml" title="IT-Dinosaurus Blog" />
	<atom:link rel='hub' href='http://jukkatamminen.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Domain model for person&#8217;s social life</title>
		<link>http://jukkatamminen.wordpress.com/2012/01/26/domain-model-for-persons-social-life/</link>
		<comments>http://jukkatamminen.wordpress.com/2012/01/26/domain-model-for-persons-social-life/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 13:40:03 +0000</pubDate>
		<dc:creator>Jukka Tamminen</dc:creator>
				<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[OO]]></category>
		<category><![CDATA[OO domain models]]></category>

		<guid isPermaLink="false">http://jukkatamminen.wordpress.com/?p=498</guid>
		<description><![CDATA[This is a domain model for SoMe type of applications. In the center of this model is quite obviously class Person. This differ from typical business model because it is much harder to decide what to include and what to exclude. Also the level of abstraction need consideration. Here I have stayed on a pretty [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=498&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p lang="en-US">This is a domain model for SoMe type of applications. In the center of this model is quite obviously class Person. This differ from typical business model because it is much harder to decide what to include and what to exclude. Also the level of abstraction need consideration. Here I have stayed on a pretty high abstraction level to give my readers most clear picture of the most essential structures.</p>
<p>There are a few very concrete entity classes: Person, Place and Building ( which can be a subclass of place). Then there is also a more abstract entity class Organization, which can be for instance a company in which one works at or a club where one belongs to. At first the class Place looks very innocent, but after consideration one find out that it is a tricky one. Basically it is a geographical spot or an area. How ever it must be able to handle well-defined distinct areas like an named city: Helsinki of a square: Trafalgar  square and on the other hand it must cope with more fuzzy are like southern Helsinki  of western Kent.</p>
<p lang="en-US">Then we have these most essential events around the person. This list start with simple things like where person is or is heading. At the other end of that spectrum are events like activity and participation.</p>
<p lang="en-US">Here is the class diagram:</p>
<p style="text-align:center;" lang="en-US"> <a href="http://jukkatamminen.files.wordpress.com/2012/01/luokkakaavio-0-8.jpg"><img class="aligncenter  wp-image-499" title="Luokkakaavio 0.8" src="http://jukkatamminen.files.wordpress.com/2012/01/luokkakaavio-0-8.jpg?w=562&#038;h=392" alt="" width="562" height="392" /></a></p>
<p>The human social networks are all take care with event call relationship. I have added here also a classifying description type class Circle.</p>
<p>Here are an object diagram and a collaboration diagrams. The object diagram is a case with part of John&#8217;s social network. The other one have two short collaborations where Jim creates an activity and buyes a concert ticket.</p>
<p><a href="http://jukkatamminen.files.wordpress.com/2012/01/verkostocoll.jpg"><img class="aligncenter size-full wp-image-500" title="verkostoColl" src="http://jukkatamminen.files.wordpress.com/2012/01/verkostocoll.jpg?w=468&#038;h=163" alt="" width="468" height="163" /></a></p>
<p>Social network (object diagram)</p>
<p><a href="http://jukkatamminen.files.wordpress.com/2012/01/uusitoimimintacoll.jpg"><img class="aligncenter size-full wp-image-501" title="uusiToimimintaColl" src="http://jukkatamminen.files.wordpress.com/2012/01/uusitoimimintacoll.jpg?w=468&#038;h=328" alt="" width="468" height="328" /></a></p>
<p lang="en-US">Collaboration to create an activity and buying an ticket.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jukkatamminen.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jukkatamminen.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jukkatamminen.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jukkatamminen.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jukkatamminen.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jukkatamminen.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jukkatamminen.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jukkatamminen.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jukkatamminen.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jukkatamminen.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jukkatamminen.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jukkatamminen.wordpress.com/498/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jukkatamminen.wordpress.com/498/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jukkatamminen.wordpress.com/498/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=498&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jukkatamminen.wordpress.com/2012/01/26/domain-model-for-persons-social-life/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a4214421b8b014ae94ee01e1af1e6454?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jukkatamminen</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2012/01/luokkakaavio-0-8.jpg" medium="image">
			<media:title type="html">Luokkakaavio 0.8</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2012/01/verkostocoll.jpg" medium="image">
			<media:title type="html">verkostoColl</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2012/01/uusitoimimintacoll.jpg" medium="image">
			<media:title type="html">uusiToimimintaColl</media:title>
		</media:content>
	</item>
		<item>
		<title>2011 in review</title>
		<link>http://jukkatamminen.wordpress.com/2012/01/01/2011-in-review/</link>
		<comments>http://jukkatamminen.wordpress.com/2012/01/01/2011-in-review/#comments</comments>
		<pubDate>Sun, 01 Jan 2012 08:50:31 +0000</pubDate>
		<dc:creator>Jukka Tamminen</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jukkatamminen.wordpress.com/?p=493</guid>
		<description><![CDATA[The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog. &#160; Thank You all for your interest in Object Oriented modeling and application development in the passed year 2011. I really appreciate it ! &#160; I wish you all prosperous New Year 2012! Sincerely   Jukka Tamminen  Here&#8217;s an excerpt: The concert hall [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=493&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.</p>
<div style="background:url('/wp-content/mu-plugins/annual-reports/img/emailteaser.jpg') no-repeat center center;height:300px;"></div>
<p>&nbsp;</p>
<p>Thank You all for your interest in Object Oriented modeling and application development in the passed year 2011. I really appreciate it !</p>
<p>&nbsp;</p>
<p>I wish you all prosperous New Year 2012!</p>
<p>Sincerely</p>
<p><em>  Jukka Tamminen </em></p>
<p>Here&#8217;s an excerpt:</p>
<blockquote><p>The concert hall at the Syndey Opera House holds 2,700 people. This blog was viewed about <strong>8,300</strong> times in 2011. If it were a concert at Sydney Opera House, it would take about 3 sold-out performances for that many people to see it.</p></blockquote>
<p><a href="/2011/annual-report/">Click here to see the complete report.</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jukkatamminen.wordpress.com/493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jukkatamminen.wordpress.com/493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jukkatamminen.wordpress.com/493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jukkatamminen.wordpress.com/493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jukkatamminen.wordpress.com/493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jukkatamminen.wordpress.com/493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jukkatamminen.wordpress.com/493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jukkatamminen.wordpress.com/493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jukkatamminen.wordpress.com/493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jukkatamminen.wordpress.com/493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jukkatamminen.wordpress.com/493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jukkatamminen.wordpress.com/493/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jukkatamminen.wordpress.com/493/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jukkatamminen.wordpress.com/493/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=493&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jukkatamminen.wordpress.com/2012/01/01/2011-in-review/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a4214421b8b014ae94ee01e1af1e6454?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jukkatamminen</media:title>
		</media:content>
	</item>
		<item>
		<title>Difficult OO concepts: type, class and object</title>
		<link>http://jukkatamminen.wordpress.com/2011/12/13/difficult-oo-concepts-type-class-and-object/</link>
		<comments>http://jukkatamminen.wordpress.com/2011/12/13/difficult-oo-concepts-type-class-and-object/#comments</comments>
		<pubDate>Tue, 13 Dec 2011 08:43:42 +0000</pubDate>
		<dc:creator>Jukka Tamminen</dc:creator>
				<category><![CDATA[Domain Driven Development]]></category>
		<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[OO]]></category>
		<category><![CDATA[OO domain models]]></category>

		<guid isPermaLink="false">http://jukkatamminen.wordpress.com/?p=488</guid>
		<description><![CDATA[I have just read an article from a Finnish magazine about Scala. It contained confusing claims about OO implementation with OO languages. It have come across this argumentation earlier but it still remains as mystic to me as on previous occasions. I am convinced that it is a complete misunderstanding. The line of thought is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=488&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p lang="en-GB">I have just read an article from a Finnish magazine about Scala. It contained confusing claims about OO implementation with OO languages. It have come across this argumentation earlier but it still remains as mystic to me as on previous occasions. I am convinced that it is a complete misunderstanding. The line of thought is combining OO- programming and functional programming in a way that is not even in theory possible. Similar lines of argumentation were earlier present wit OO- programming languages and SOA and this of course proved to be false too.</p>
<p lang="en-GB">I must start once again from the very beginning. When we create an operational business application the domain model is the core of that. The business layer is typically only 10 – 20 % of the whole application code but the importance of it is in most cases 80 – 90 %. The implementation of this business layer is almost automatic generation of the OO domain model.</p>
<p lang="en-GB">The domain object web is a many to one mapping from reality to the model. This means that the objects in the business layer has their corresponding objects in reality. This way ever <strong>real</strong> object and its corresponding model object has <strong>an identity</strong> and thus a life cycle. This means that all business object in the implementation are born and die according their counterparts in reality.</p>
<p lang="en-GB">Let&#8217;s expand from object web to analysis and domain class model. Classes are classification instrument for real objects. Class gives a simplification of a category of real object. Is kind of minim commonality among objects that belong to this category. This way<strong> the classification gives an object a type.</strong></p>
<p lang="en-GB">Now when we have finalized our abstract analysis of reality and we have created the domain class model as an highest level abstraction and a few object level fragments (called collaboration diagrams), the implementation reverses the order and start from classes in the implementing code.</p>
<p>Sometimes when people come from strong programming background and the modelling and reality for application mapping is not that strongly emphasized, they loose this visibility. Somehow the techniques of language structure confuses these persons. This way <strong>the crucial fundamental of an identity gets lost.</strong> This way someone quite sincerely uses <em>complex number </em>as an example of an object. The fact is that <strong>it is NOT an object!</strong> In an OO- programming language we use class definition for <strong>two different purposes:</strong></p>
<p>1) to describe object type (classification) or</p>
<p>2) to create “object like” structures that are NOT object!</p>
<p>The second choice is actually a misuse! It is quite convenient to use this structure in this way and it is quite OK, if the users understands these two aspects and don&#8217;t confuse them.</p>
<p lang="en-GB">Day is a type for an event but it is<strong> not an object</strong>. Every technical event object requires at least one binding association to some real object to become a real object! We can of course technically create “an day-object”: myDay = new Day(); . But <strong>myDay is not an object </strong>because it<strong> doesn&#8217;t have an identity</strong> and there is no real thing that this <em>artefact maps to</em>. The only thing that can be said about this thing is that it is “an object-like structure”. This means that it has private attributes and public methods, but it still is not an object! The time semi object is transformed into a real object when it is associated with a real object. This gives the time object indirectly an identity. After this an event is not any more a template but a real event (in past, present or future). Then it is identifiable and unique in the universe.</p>
<p lang="en-GB">A third way of misuse is to create a class and on object that has only behaviour. Here the confusion steams from something like sub function or a procedure. This is a fatal confusion and indicates that the designer has not cached up the object idea at all. Disconnecting a functionality from its context will definitely destroy the whole OO paradigm and its benefits.</p>
<p lang="en-GB">Eric Evans in his book Domain-Driven Design in the chapter Services warn about this thing in the beginning of the chapter, but surprisingly he then accepts “Manager” or “Control” type of classes. My strong opinion has always been that this is a fatal mistake. Everywhere that I have seen this done it has lead to complete procedural programming with OO- language and this has always let to dome sort of disaster. One of the reason explaining Evans position is the week separation of implementation layers: application and domain. For instance value-objects belong to the realm application implementation. There are quite a lot of trick that we still have to do during implementation – sometimes for instance value-objects. The reason behind this is the extremely poor implementation platforms. Such problems should be take care of in the platform “operating system layer”, but this is not the case today far from it!</p>
<p lang="en-GB">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jukkatamminen.wordpress.com/488/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jukkatamminen.wordpress.com/488/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jukkatamminen.wordpress.com/488/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jukkatamminen.wordpress.com/488/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jukkatamminen.wordpress.com/488/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jukkatamminen.wordpress.com/488/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jukkatamminen.wordpress.com/488/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jukkatamminen.wordpress.com/488/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jukkatamminen.wordpress.com/488/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jukkatamminen.wordpress.com/488/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jukkatamminen.wordpress.com/488/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jukkatamminen.wordpress.com/488/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jukkatamminen.wordpress.com/488/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jukkatamminen.wordpress.com/488/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=488&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jukkatamminen.wordpress.com/2011/12/13/difficult-oo-concepts-type-class-and-object/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a4214421b8b014ae94ee01e1af1e6454?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jukkatamminen</media:title>
		</media:content>
	</item>
		<item>
		<title>ADDD is future!</title>
		<link>http://jukkatamminen.wordpress.com/2011/10/25/addd-is-future/</link>
		<comments>http://jukkatamminen.wordpress.com/2011/10/25/addd-is-future/#comments</comments>
		<pubDate>Tue, 25 Oct 2011 14:10:16 +0000</pubDate>
		<dc:creator>Jukka Tamminen</dc:creator>
				<category><![CDATA[Domain Driven Development]]></category>
		<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[OO]]></category>
		<category><![CDATA[OO domain models]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[OO-development]]></category>

		<guid isPermaLink="false">http://jukkatamminen.wordpress.com/?p=471</guid>
		<description><![CDATA[Within at least 10 years I have not seen a slightest indication that there would be anything wrong with my ADDD approach on the contrary ever time it has been tried everything in the method has been proved to be working. Almost the opposite is true with many people and organizations! I was fired by [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=471&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Within at least 10 years I have not seen a slightest indication that there would be anything wrong with my ADDD approach on the contrary ever time it has been tried everything in the method has been proved to be working. Almost the opposite is true with many people and organizations!</p>
<p>I was fired by Tieto software house, because they did not find me any work. The reasons for this are<br />
1. they don&#8217;t believe in object paradigm but processes and orchestrations.<br />
2. they don&#8217;t want to work in lean and agile way, but they believe in detailed planning and waterfall.<br />
3. they don&#8217;t believe in custom made but packages.<br />
4. they don&#8217;t believe in professional teams but resource pools.<br />
5. they don&#8217;t believe professional operating team (surgeon team) but distributed offshore development.</p>
<p>These differences drifted us apart. This is not just between me and one big software house. This is a global phenomena. The change here between the parties is <strong>a paradigm sift</strong>. Paradigm sifts are really big thing to do and to happen! Peter Coad in early 1990&#8242;s used as an example the wrist watch industry. When Japanese developed and electrical watch based on oscillating quarts crystal. Swiss had a flourishing watch industry base on old paradigm: mechanical machinery. These people from old paradigm were laughing at Japanese at their “toy” watches until their own industry collapsed totally! The same story repeats over and over again in our resent history: car production in UK or in US and Japan, home electronics in Germany and Japan, camera production in Germany and Japan, national flag carrier airlines and low cost airlines all over the world etc. Here the basic physics apply: the bigger the old paradigm activity is the more energy is required for the new paradigm activity to overthrow the old, but also the bigger the old is the faster the collapse will be after it has started.</p>
<p>The old paradigm will materialized in organizational structures. The bigger the organizations grow the more internal friction it will generate. This means that when a organization is created and its functional basic principles are set it is extremely difficult to change that fundamentally. The first big obstacles are the peoples&#8217; skills. As the persons are selected by their their skills to suite the initial functions it is next to impossible to manage and carry out a process where the skill set is changed for most of the persons in the organization. This would require almost duple personnel if these people are to perform both their daily tasks and at the same time learn completely new skills. The next big question is do these people really learn required new skills at all! In short if this sometimes works it will be a miracle.</p>
<p>The most crucial part of this chain is of course the customer for whom the application is intended to. This current situation continues as long a the ability to secure their vital interests lacks almost totally from the client organizations. Of course this doesn’t change quickly. I have no idea how long this is actually going to take but anyhow it is required prerequisite for any progress! I can easily understand the responsible management when they are facing a situation, where they have a terrifying legacy backlog, ongoing critical production usage of the old system.</p>
<p>My prediction is that the change is going to start from medium size innovative modern companies. After the new far better production methods have been driven into at least some strong professional teams that has really internalize the fundamentals and the work processes thoroughly the last and then the customer that really wants the best and is not content when they only get something. This kind of customer must understand the underline principles at its high management, check the team&#8217;s quality and then trust it and fully commit to really work together to reach the results. A few such hits will finally start an avalanche.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jukkatamminen.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jukkatamminen.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jukkatamminen.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jukkatamminen.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jukkatamminen.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jukkatamminen.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jukkatamminen.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jukkatamminen.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jukkatamminen.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jukkatamminen.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jukkatamminen.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jukkatamminen.wordpress.com/471/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jukkatamminen.wordpress.com/471/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jukkatamminen.wordpress.com/471/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=471&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jukkatamminen.wordpress.com/2011/10/25/addd-is-future/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a4214421b8b014ae94ee01e1af1e6454?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jukkatamminen</media:title>
		</media:content>
	</item>
		<item>
		<title>Domain model of retail business line</title>
		<link>http://jukkatamminen.wordpress.com/2011/09/12/domain-model-of-retail-business-line/</link>
		<comments>http://jukkatamminen.wordpress.com/2011/09/12/domain-model-of-retail-business-line/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 13:44:54 +0000</pubDate>
		<dc:creator>Jukka Tamminen</dc:creator>
				<category><![CDATA[OO domain models]]></category>
		<category><![CDATA[Domain modeling]]></category>
		<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[OOA]]></category>

		<guid isPermaLink="false">http://jukkatamminen.wordpress.com/?p=472</guid>
		<description><![CDATA[Here is my next business line model. The business is retail. The amount of variation between individual retail businesses is quite huge. This is why the current model is perhaps somewhat more abstract than some others. In retail the key to the business is the material flow. When we consider contemporary retail like Amazon.com the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=472&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">Here is my next business line model. The business is retail. The amount of variation between individual retail businesses is quite huge. This is why the current model is perhaps somewhat more abstract than some others.</span></h2>
<p>In retail the key to the business is the material flow. When we consider contemporary retail like Amazon.com the modern trend is close to JOT ( Just On Time ) production. The point is to avoid any unnecessary storing of component. The implication of this is of course highly organized supply flow. Emphasis on the delivery mechanism is a must. In production it is actually more critical than in retail in average.</p>
<p>This demand is reflected in the domain model as well. The deepest essential event flow gos like this:</p>
<ol>
<li>Provide the customers a comprehensive catalog of product<strong> descriptions</strong>.</li>
<li>Then the customer can order based on this catalog. When the order is received it is immediately replicated to the provider of the product.</li>
<li>In the worst case this will trigger a request to production. Then the customer is kept updated of the process.</li>
<li>In many cases and at least in more classical scenario the retail company is keeping and managing a stock of goods and maintaining order limits and quantities.</li>
</ol>
<p>My model here includes all above aspects. The event-object purchase can thus be either and event between producer and the retail company or between the retailer and end customer.</p>
<p>I have of course also included the work-events and the worker role in the model as well.</p>
<p style="text-align:center;"><a href="http://jukkatamminen.files.wordpress.com/2011/09/retailclassdiag.jpg"><img class="aligncenter size-full wp-image-474" title="RetailClassDiag" src="http://jukkatamminen.files.wordpress.com/2011/09/retailclassdiag.jpg?w=468" alt=""   /></a></p>
<p>Here is the object collaboration of a classical even chain, where the product is first ordered, received and placed on a shelf in the stock (or in the shop) and finally purchased by a customer.</p>
<p><a href="http://jukkatamminen.files.wordpress.com/2011/09/retailcollab_11.jpg"><img class="aligncenter size-full wp-image-477" title="RetailCollab_1" src="http://jukkatamminen.files.wordpress.com/2011/09/retailcollab_11.jpg?w=468&#038;h=387" alt="" width="468" height="387" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jukkatamminen.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jukkatamminen.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jukkatamminen.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jukkatamminen.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jukkatamminen.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jukkatamminen.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jukkatamminen.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jukkatamminen.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jukkatamminen.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jukkatamminen.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jukkatamminen.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jukkatamminen.wordpress.com/472/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jukkatamminen.wordpress.com/472/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jukkatamminen.wordpress.com/472/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=472&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jukkatamminen.wordpress.com/2011/09/12/domain-model-of-retail-business-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a4214421b8b014ae94ee01e1af1e6454?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jukkatamminen</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2011/09/retailclassdiag.jpg" medium="image">
			<media:title type="html">RetailClassDiag</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2011/09/retailcollab_11.jpg" medium="image">
			<media:title type="html">RetailCollab_1</media:title>
		</media:content>
	</item>
		<item>
		<title>Managing complexity</title>
		<link>http://jukkatamminen.wordpress.com/2011/08/01/managing-complexity/</link>
		<comments>http://jukkatamminen.wordpress.com/2011/08/01/managing-complexity/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 05:23:24 +0000</pubDate>
		<dc:creator>Jukka Tamminen</dc:creator>
				<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[OO domain models]]></category>
		<category><![CDATA[application complexity]]></category>
		<category><![CDATA[combinatorial explosion]]></category>
		<category><![CDATA[model complexity]]></category>

		<guid isPermaLink="false">http://jukkatamminen.wordpress.com/?p=464</guid>
		<description><![CDATA[The whole history of application development with computers has been management of complexity. The focal point has changed in the course of time due to exponential growth of computing power of the hardware. This complexity can be divided into two aspects: domain model complexity and full application complexity of which the former is clearly a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=464&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">The whole history of application development with computers has been<strong> management of complexity</strong>. The focal point has changed in the course of time due to exponential growth of computing power of the hardware.</span></h2>
<p>This complexity can be divided into two aspects: domain model complexity and full application complexity of which the former is clearly a subset.</p>
<p>In this post I will analyze<strong> the object model complexity</strong> and I will return to other aspects in later posts.</p>
<p>When we have developed application for business needs for companies, they have always been a<strong>imed at operation automation and management</strong>.  This is the main trend still. The model in the core of the application has to be a <strong>model of the operational realty</strong>. In other words it has to reflect the reality that the business is part of.</p>
<p>The purpose of this model is to capture the deepest flow of the business events in that reality. Every reality can be modelled as set of objects , their relationships, their internal behaviour  and collaboration with other objects.</p>
<p>The number of ways that we can limit or hide complexity is very limited. Our only tools are <strong>abstraction,</strong> which can only hideaway chosen amount of detail and identification of <strong>natural structures</strong> that limit the possible combinatorial explosion of behaviour.   As we have many times seen abstraction is a double-edged sword. Having an overdose of it will definitively kill.</p>
<p>Atomic objects (even as  this is a relative concept) are always simple. <strong>The complexity </strong>of the world is mostly manifested by <strong>the relationships between the objects</strong>.</p>
<p>By indentifying and understanding the structures of the reality we can limit the combinatorial explosion in the abstraction of behaviour. This requires distribution of the behaviour into the structure. This is the most effective way to <strong>minimise the behavioural description</strong>. This is way we need objects. <strong>Optimal domain model complexity</strong> yields to <strong>least complex system.</strong></p>
<h3>Complexity and 3-tier architecture</h3>
<p>We can still decrease the overall complexity of an application by applying structure of “second order” . This means isolating all business structures and behaviour in one separated <strong>business domain layer</strong> and connecting that as loosely as possible to other layers of the application. Here the clue is that there are <strong>no references out </strong>from this <strong>business domain layer</strong>. This means that the whole layer “doesn’t know anything of its surrounding” or how, where from and why it is used.  This principle was clearly realized already in the introduction of MVC-pattern by Smalltalk developers somewhere late 1980’s.</p>
<p>I have call this extension of MVC to 3-tier architecture (<strong>MVC)^^2 pattern</strong>.</p>
<h3>Business domain model complexity</h3>
<p>This deals actually with object model complexity but fulfils our needs as domain models are a genuine subset of object models.</p>
<p>I have written this at least 5 years ago, but it seems to me as valid now as at the time of its writing:</p>
<h2>The complexity of object model</h2>
<h3>Background</h3>
<p>The complexity of domain model is very important. As we all intuitively know the complexity grows non-linearly with the increase of classes in the model. It could be that the growth rate is &gt; n<sup>2</sup> . To have some practical use -a real measure of complexity we need something more precise.</p>
<p>It is evident that the things that constitute the complexity are at least:</p>
<ul>
<li>number of classes</li>
<li>number of association between classes</li>
<li>number of attributes</li>
<li>number of services</li>
</ul>
<p>NK-complexity and the biological derivations from that made by</p>
<p>Stuart Kauffmann: At Home in the Universe: The Search for the Laws of Self-Organization and Complexity (Paperback)</p>
<p>(at Amazone</p>
<p><a href="http://www.amazon.com/exec/obidos/tg/detail/-/0195111303/103-2499940-3404643">http://www.amazon.com/exec/obidos/tg/detail/-/0195111303/103-2499940-3404643</a></p>
<p><a href="http://www.amazon.com/exec/obidos/ASIN/0195079515/qid=1059554173/sr=2-2/ref=sr_2_2/103-2499940-3404643">http://www.amazon.com/exec/obidos/ASIN/0195079515/qid=1059554173/sr=2-2/ref=sr_2_2/103-2499940-3404643</a></p>
<p>)</p>
<p>inspirited the idea that the base line of complexity comes from the product of the number of classes and associations.</p>
<p>On the other hand it has been long and well know fact that a even distribution of both attributes and services is a sign of good design. According to my intuition and experience this is valid for the distribution of connections between classes as well.</p>
<h3>The measure</h3>
<p>The source of complexity is two fold. The primary and genuine source is the selected domain itself. The other is in the creation of the model itself. The former cannot be influenced but the latter we can try to minimize.</p>
<p>The complexity measure is following:</p>
<p><strong>C<sub>m </sub>= c * avgr( r<sub>i</sub> )*( stdev (r<sub>i</sub> ) +1)*((avgr( a<sub>i </sub>) * (stdev ( a<sub>i</sub> )+1) + avgr( m<sub>i</sub> ) * (stdev ( m<sub>i</sub> )+1))</strong></p>
<p>c = number of classes in the model</p>
<p>r<sub>i</sub> =  number of relations in the class i</p>
<p>avgr( r<sub>i</sub>  ) = average relation in class</p>
<p>stdev ( r<sub>i</sub> ) = standard deviation of relation over classes</p>
<p>a<sub>i</sub> = number of attributes in class i</p>
<p>m<sub>i</sub> = number of methods in class i</p>
<p>avgr( a<sub>i</sub> ) = average attributes in class</p>
<p>avgr( m<sub>i</sub> ) = average methods in class</p>
<p>stdev ( a<sub>i</sub> ) = standard deviation of attributes over classes</p>
<p>stdev ( m<sub>i </sub>) = standard deviation of methods over classes</p>
<p>(Here relation means any kind of connection to a class (association or inheritance)</p>
<h3>Theoretical basis</h3>
<p>Let’s start with a given set of behaviour within a given domain.</p>
<p>This can always be modelled with an object model. In this object model the required and sufficient artefact are:</p>
<p>Class diagram with class descriptions</p>
<p>A set of collaboration diagrams.</p>
<p>A set of state diagrams (optional)</p>
<p>This is indeed all we need (actually without state diagram). This is <strong>a precise simulation model </strong>of the reality within the domain scope.  All rest is explaining, redundant or in worst case conflicting. Even state diagrams are overlapping, but they give neat additional view of time within one object –object’s essential life cycle. This is described in indirect way in collaboration diagrams too.</p>
<p>Within an object model the total behaviour is reached always with a set of services that will have the predefined behaviour. One service is composed of object’s own actions and a set of messages that it send to initiate services on other object. So each service is own actions combined with collaboration with set of other object that contributes to fulfil the initial service request.</p>
<p>The objects own actions are described with algorithms that operate on objects attributes.</p>
<p>The total business behaviour is <strong>the transitive closure of these services.</strong> This way we can create an abstract model of any<strong> total behaviour</strong>. This model has a homomorphic mapping to any object-oriented programming language. We call this mapping implementation of the model.</p>
<p>Now the degrees of freedom here are in the structure of the model and the distribution and placement of the behaviour (namely services) across the web of classes. All the classes (the name space) can bee freely chosen. Thus the whole static structure is completely in hands of the modeller.</p>
<h3>    Considerations</h3>
<ol>
<li><strong>1.    </strong><strong>finding: Number of classes in the model</strong></li>
</ol>
<p>The number of classes can be <strong>freely chosen</strong>. We can always start with <strong>one class</strong>. This structure is isomorphic with on-object programmed implementation.</p>
<p>We can expand the class structure by adding a new of classes. At first I thought that there is an upper limit for this, but at the moment I am not quite sure. We can of course think that ( at least in most of our cases) there is absolutely finite collection of actions in the domain scope and thus this would be the upper limit of the classes too, but the fact (that I can not prove though) is that to be able to add the behaviour to the classes as well we need increasing amount of control or managing classes and this can be the source of class explosion.</p>
<p>There is a correlation between number of classes and complexity minimum.</p>
<ol>
<li><strong>2.     </strong><strong><strong>finding: Ruggedness of the fitness landscape of the class structure</strong></strong><strong></strong></li>
</ol>
<p>From NK-complexity Kauffman (see Stuart Kauffman; At home in the universe ) has developed dependent complexity. He studies show that when K indicates the number of dependent objects on an object and when K is increased the ruggedness of the fitness landscape increases. This will effectively disable the possibility to reach highest peek ( actually in this case it is the lowest valley of complexity). This urges the need for loos coupling between objects. This can of course conflicting demand with the required behaviour.</p>
<p>The best way to achieve most of this is to follow next <strong>2 simple rules</strong>:</p>
<ol>
<li>Create the service to any class of the web that ‘knows’ the most of the matter at hand (e.g. has the most attributes associated to the action).</li>
<li>If one object can not complete the task it should delegate the responsibility for those parts completely to other objects and to collaborate with them.</li>
</ol>
<ol>
<li><strong>3.    </strong><strong>finding: Patching of the class structure</strong></li>
</ol>
<p>Kauffman also finds that the whole is wise to divide into subgroups to increase adaptively.  The analogy here in domain model context could be Packaging. This is could true (see. Grady Booch Object Solution) but I have not seen it and I doubt it..</p>
<p>One kind of patching of course is the divisions of aspects: domain and application.</p>
<ol>
<li><strong>4.    </strong><strong>finding: Number of services</strong></li>
</ol>
<p>Here the arguments including the number of services in a class into the complexity measure are somewhat conflicting. We all know by experience and recommendations that the number of methods behaves in the same way as the number of classes. The optimum of complexity is somewhere <strong>between</strong> t1 and t2, where t1 is the number of attributes  –and t2 is perhaps around 10 – but at least bigger than t1<strong>.</strong> Currently the formula does not treat the count of methods quite correctly. When we consider the implementation (not actually know yet in the analyses phase) we know that there is an other correlation between the size of a method and the number of methods in a class (or at lest in the model).</p>
<ol>
<li><strong>5.    </strong><strong>finding: Counting the collaboration complexity as well</strong></li>
</ol>
<p>Actually it is most evident that some knowledge of the total complexity of the model is also in the collaboration diagrams, but this knowledge is not utilized in any way –at lest yet!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jukkatamminen.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jukkatamminen.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jukkatamminen.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jukkatamminen.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jukkatamminen.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jukkatamminen.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jukkatamminen.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jukkatamminen.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jukkatamminen.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jukkatamminen.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jukkatamminen.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jukkatamminen.wordpress.com/464/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jukkatamminen.wordpress.com/464/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jukkatamminen.wordpress.com/464/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=464&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jukkatamminen.wordpress.com/2011/08/01/managing-complexity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a4214421b8b014ae94ee01e1af1e6454?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jukkatamminen</media:title>
		</media:content>
	</item>
		<item>
		<title>Modelling patterns part 2</title>
		<link>http://jukkatamminen.wordpress.com/2011/05/15/modelling-patterns-part-2/</link>
		<comments>http://jukkatamminen.wordpress.com/2011/05/15/modelling-patterns-part-2/#comments</comments>
		<pubDate>Sun, 15 May 2011 13:45:39 +0000</pubDate>
		<dc:creator>Jukka Tamminen</dc:creator>
				<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[OO]]></category>
		<category><![CDATA[OO domain models]]></category>

		<guid isPermaLink="false">http://jukkatamminen.wordpress.com/?p=448</guid>
		<description><![CDATA[First issue here is about an actual pattern. It could be name as Reservation pattern. It deals with two event objects: reservation and participation. In many cases of participation to an event is quite simple a capacity reservation object with only one attribute -time. In most cases my recommendation is to combine these two events. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=448&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>First issue here is about an actual pattern. It could be name <strong>as Reservation pattern</strong>. It deals with two event objects: <strong>reservation</strong> and<strong> participation</strong>. In many cases of participation to an event is quite simple a capacity reservation object with only one attribute -time.</p>
<p><a href="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-1.jpg"><img class="aligncenter size-full wp-image-449" title="Pattern2-1" src="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-1.jpg?w=468&#038;h=212" alt="" width="468" height="212" /></a></p>
<p>In most cases my recommendation is to combine these two events. This means theoretically that we interpret that the participation event is created before it actually happens. This participation will now housing also the attributes of reservation. This is a very effective simplification with no drawbacks. This way we can save one class and three associations and that is a lot!</p>
<p><a href="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-2.jpg"><img class="aligncenter size-full wp-image-450" title="Pattern2-2" src="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-2.jpg?w=468&#038;h=179" alt="" width="468" height="179" /></a></p>
<p>This solution can be applied to variety of participation events like participations to a flight, a concert, a play, a party and it can be extended to cover even a stay in a hotel.</p>
<p>There is also a other issue that want to take up with you. This is more of a fragment of almost every business domain model. I will call this “person- organisation” pattern. In my very first implemented domain model in Finnair 1994 I was so inexperienced and at the beginning of my OO learning curve that I created the following class model:</p>
<p><a href="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-3.jpg"><img class="aligncenter size-full wp-image-451" title="Pattern2-3" src="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-3.jpg?w=468" alt=""   /></a></p>
<p>and it proved to be inadequate  as soon as the application was taken to production and almost first user came and asked how do I put Nokia here!</p>
<p>of course the far more correct model is the following:</p>
<p><a href="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-4.jpg"><img class="aligncenter size-full wp-image-452" title="Pattern2-4" src="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-4.jpg?w=468&#038;h=373" alt="" width="468" height="373" /></a></p>
<p>Here a bit more elements than just the role organisation.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jukkatamminen.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jukkatamminen.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jukkatamminen.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jukkatamminen.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jukkatamminen.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jukkatamminen.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jukkatamminen.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jukkatamminen.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jukkatamminen.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jukkatamminen.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jukkatamminen.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jukkatamminen.wordpress.com/448/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jukkatamminen.wordpress.com/448/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jukkatamminen.wordpress.com/448/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=448&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jukkatamminen.wordpress.com/2011/05/15/modelling-patterns-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a4214421b8b014ae94ee01e1af1e6454?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jukkatamminen</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-1.jpg" medium="image">
			<media:title type="html">Pattern2-1</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-2.jpg" medium="image">
			<media:title type="html">Pattern2-2</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-3.jpg" medium="image">
			<media:title type="html">Pattern2-3</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2011/05/pattern2-4.jpg" medium="image">
			<media:title type="html">Pattern2-4</media:title>
		</media:content>
	</item>
		<item>
		<title>Patterns of domain model</title>
		<link>http://jukkatamminen.wordpress.com/2011/04/13/patterns-of-domain-model/</link>
		<comments>http://jukkatamminen.wordpress.com/2011/04/13/patterns-of-domain-model/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 19:04:26 +0000</pubDate>
		<dc:creator>Jukka Tamminen</dc:creator>
				<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[OO]]></category>

		<guid isPermaLink="false">http://jukkatamminen.wordpress.com/?p=439</guid>
		<description><![CDATA[The concept of pattern is a complicated one. When I here the word pattern I remember my history teacher ages ago when he described the difference between Roman and Gothic churches. There is a pattern of with which you can separate these. The pattern is window and door holes. During Roman times the building techniques [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=439&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p lang="en-US">The concept of pattern is a complicated one. When I here the word pattern I remember my history teacher ages ago when he described the difference between  Roman and Gothic churches. There is <strong>a pattern </strong>of with which you can separate these. The pattern is window and door holes. During Roman times the building techniques was more primitive and the arcs were round. The during Gothics the constructing skill developed so that people learned to create narrow and sharp angel arch. These two arch shapes are the <strong>patterns.</strong></p>
<p lang="en-US">&nbsp;</p>
<p lang="en-US">So pattern is something that is nothing precise but <strong>something vague</strong> that one can identify.</p>
<p lang="en-US">&nbsp;</p>
<p lang="en-US">When we consider Gang Of Four Design Pattern there is actually no domain area pattern at all!</p>
<p lang="en-US">&nbsp;</p>
<p lang="en-US">I have tried to find domain model pattern but I have found only a few. Actually I think so that all my business line models are close to patterns.</p>
<p lang="en-US">&nbsp;</p>
<p>Here is quite genuine domain pattern. One leading idea on pattern is that one <strong>cannot </strong>use pattern as such but one have to modify it to suite the current usage of pattern.</p>
<p>As I did already mentioned in previous post I call this “plan – implement” pattern.</p>
<p>The pattern concerns a design and implementation process of designing of repeating events. The idea is to design a repeating base time period like week, month or day as a template and for some period the actual even are created according to this template.</p>
<p>Examples of areas where this ably are for instance: all route transports like buss lines, railway connections, airline route flight, route transfer business on track and ships and also training organization or broadcasting companies.</p>
<p>The basic pattern is the follow ( at least I think so).</p>
<p style="text-align:center;"><a href="http://jukkatamminen.files.wordpress.com/2011/04/dompatterns.png"><img class="aligncenter size-full wp-image-440" title="domPatterns" src="http://jukkatamminen.files.wordpress.com/2011/04/dompatterns.png?w=468" alt=""   /></a></p>
<p>Some of the classes like Week and Day can be omitted, but this will give best give you the idea.</p>
<p>Thanks for all the comments to previous post and <strong><span style="color:#333333;"><span style="font-family:Arial, sans-serif;">Tim Lethbridge</span></span></strong>for the reference to his book.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jukkatamminen.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jukkatamminen.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jukkatamminen.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jukkatamminen.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jukkatamminen.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jukkatamminen.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jukkatamminen.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jukkatamminen.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jukkatamminen.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jukkatamminen.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jukkatamminen.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jukkatamminen.wordpress.com/439/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jukkatamminen.wordpress.com/439/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jukkatamminen.wordpress.com/439/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=439&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jukkatamminen.wordpress.com/2011/04/13/patterns-of-domain-model/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a4214421b8b014ae94ee01e1af1e6454?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jukkatamminen</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2011/04/dompatterns.png" medium="image">
			<media:title type="html">domPatterns</media:title>
		</media:content>
	</item>
		<item>
		<title>Railway Model</title>
		<link>http://jukkatamminen.wordpress.com/2011/04/12/railroad-model/</link>
		<comments>http://jukkatamminen.wordpress.com/2011/04/12/railroad-model/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 19:21:08 +0000</pubDate>
		<dc:creator>Jukka Tamminen</dc:creator>
				<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[OO]]></category>

		<guid isPermaLink="false">http://jukkatamminen.wordpress.com/?p=432</guid>
		<description><![CDATA[I actually created a city commuter model and I will publish it in the next post. These models are very close to each other. I have just dropped street aspect away from this. &#160; Here is the class diagram: Here is also one variation of “ plan – implementation” domain pattern. This is also an [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=432&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p lang="en-US">I actually created a<strong> city commuter model</strong> and I will publish it in the next post. These models are very close to each other. I have just dropped street aspect away from this.</p>
<p lang="en-US">&nbsp;</p>
<p lang="en-US">Here is the class diagram:</p>
<p lang="en-US"><a href="http://jukkatamminen.files.wordpress.com/2011/04/railmodel.jpg"><img class="aligncenter size-full wp-image-433" title="RailModel" src="http://jukkatamminen.files.wordpress.com/2011/04/railmodel.jpg?w=468&#038;h=324" alt="" width="468" height="324" /></a></p>
<p lang="en-US">Here is also one variation of “ plan – implementation” domain pattern. This is also an issue that I will return in future posts.</p>
<p lang="en-US">There are also some class name that I am not very happy with. I don&#8217;t actually know what I should call the event that I here call Run ??</p>
<p lang="en-US">&nbsp;</p>
<p lang="en-US">Anyone have any constructive proposals ?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jukkatamminen.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jukkatamminen.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jukkatamminen.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jukkatamminen.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jukkatamminen.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jukkatamminen.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jukkatamminen.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jukkatamminen.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jukkatamminen.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jukkatamminen.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jukkatamminen.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jukkatamminen.wordpress.com/432/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jukkatamminen.wordpress.com/432/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jukkatamminen.wordpress.com/432/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=432&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jukkatamminen.wordpress.com/2011/04/12/railroad-model/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a4214421b8b014ae94ee01e1af1e6454?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jukkatamminen</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2011/04/railmodel.jpg" medium="image">
			<media:title type="html">RailModel</media:title>
		</media:content>
	</item>
		<item>
		<title>IT revolution – 3 layered model driven information systems</title>
		<link>http://jukkatamminen.wordpress.com/2011/02/28/426/</link>
		<comments>http://jukkatamminen.wordpress.com/2011/02/28/426/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 12:06:23 +0000</pubDate>
		<dc:creator>Jukka Tamminen</dc:creator>
				<category><![CDATA[Domain Driven Development]]></category>
		<category><![CDATA[Object Oriented]]></category>
		<category><![CDATA[OO]]></category>

		<guid isPermaLink="false">http://jukkatamminen.wordpress.com/?p=426</guid>
		<description><![CDATA[There are frequently questions about why this abstract domain driven approach is not widely used yet. This post tries to answer those questions – at least partially. There is no doubt about the fact, that model driven information systems are theoretically simpler to design and implement than their procedural counterpart. There is also enough evidence [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=426&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There are frequently questions about why this abstract domain driven approach is not widely used yet.</p>
<p>This post tries to answer those questions – at least partially.</p>
<p>There is no doubt about the fact, that model driven information systems are theoretically simpler to design and implement than their procedural counterpart. There is also enough evidence to prove that this is also the case in practical implementation and it works. But why then it is not used  in the mainstream yet?</p>
<p>I don’t really know the full answer myself, but I know different aspects that are at least part of the explanation.  This is most complex issue. If it was a simple and strait foreword one it would have been solved ages a go.</p>
<p>The key issue here is the understanding of the 3-tier architecture and especially <strong>the role and importance of the domain layer. </strong>When we go backwards in time then all the earlier application implementation were <strong>design as single</strong> applications. In this case the viewpoint and focus is strongly in the workflow and the usage of application. In this case it is extremely hard to force the separation of domain and application layer and the developers for good reason haven’t seen any value in doing so.</p>
<p>The complexities of the developed applications during long period of time have gradually increased. This has meant exponential increase in number of attributes and especially association. This rapidly grown complexity has not been and is not very visible and for this reason it is dramatically neglected! This means that the impact and the consequences of this have not been generally understood at all. To get forward from this we need at least two things. First one must realized the full meaning of the complexity growth and secondly <strong>one must understand that to meet the challenge of that complexity one needs a paradigm shift </strong>from procedural <strong>to object oriented world</strong> vision.  The two paradigms are orthogonal and they see the world from two different perspectives. There is nothing wrong with either paradigm as such. So the trigger for changing the paradigm must come from understanding how to manage complexity. The path to here has been rocky and difficult. It took over 30 years and a enormous hardware development from the IT-community to gradually understand this. This understanding did not reach critical mass before the late 90’s web bubble almost totally washed away this knowledge.</p>
<p>In the early days of OO during the booming phase the OO-applications where poorly designed due to lack of understanding OO thoroughly. This in average led to too low level of abstraction and at the same time also no separation of domain and application concepts and their implementations. This led to huge numbers of implementation classes with very little structure. Here the complexity exploded and the outcome was totally unmanageable. The most ambiguous and therefore the saddest expression that I know of this type was IBM’s San Francisco project. This was in the last years of last millennium and if I remember the figures right at some time there were 3500 classes and about 25 000 methods in it !!</p>
<p><a href="http://jukkatamminen.files.wordpress.com/2010/10/abskolmio.png"><img class="aligncenter size-full wp-image-367" title="absKolmio" src="http://jukkatamminen.files.wordpress.com/2010/10/abskolmio.png?w=468&#038;h=389" alt="" width="468" height="389" /></a></p>
<p>SOA, talk about services and process modelling took the development backward at least 10 – 15 years and is still taking it share. I don’t know from which source the whole SOA came from but I think that it started from application server vendor and at least Web Logic was one of the early promoters. Today it can be found from major database vendors such as IB and Oracle.</p>
<p>Now I have a guts feeling that the tide have change again. With strengthening demands of lean and agile development the focus is moving to domain modelling again.</p>
<p>The best solution</p>
<p>The ADDD- approach in <strong>ideal case</strong> in an organisation leads to <strong>one single domain implementation</strong> that contains <strong>all the business functionality</strong> to mirror the organisations reality. Then there are <strong>a set of application</strong> that share <strong>the one </strong>and only <strong>domain core</strong> and build up from it to implements different workflows of organisation. This means that there is no separate integration layer but only one aspect of the domain implementation acts as an natural integration point.  This is theoretically the same approach the ERP-systems (like SAP) have. The drawbacks of current ERPs are that the implementations are quite old and they don’t have object solution.</p>
<p><a href="http://jukkatamminen.files.wordpress.com/2011/02/mallikukka.png"><img class="aligncenter size-full wp-image-427" title="malliKukka" src="http://jukkatamminen.files.wordpress.com/2011/02/mallikukka.png?w=468" alt=""   /></a></p>
<p>The obstacles to achieve this:</p>
<ol>
<li>Abstract domain modelling seems to be more difficult for many people than I anticipated. This means in many cases that the skills to create good abstract domain OO- models with proper domain behaviour.</li>
</ol>
<ol>
<li>Skilful people who can design and implement this are very rear today(well at least in Finland). Currently these people don’t form effective teams to really deliver what I have promised here.</li>
</ol>
<ol>
<li>Packet software vendors’ and a general <strong>attitude is</strong> of course<strong> </strong>that <strong>packet solutions are without an exception GOOD</strong>. Packet software is indeed very good if or when the user is 100% ready to adjust to use the software as it has been implemented. The more the user requires changes into the product the worse the situation grows. Clearly to worst case is a company trying to cover their application needs by requiring many independent software packages.  As we in the early days of IT (somewhere mid 80’s) hade silo application and gradually this caused multiple occurrences of same entity in different silos. This led to growing demand of<strong> integration</strong>. In the given situation and environment this is at last very complex and in most cases mission impossible. Now a collection of unrelated (and un-integrated) packages is actually <strong>worse silo effect than the old department silos</strong>. In spite of that there is still <em>a stubborn belief that packet solutions are far better than tailor-made ones</em>. In tailored solution without skilful OO-implementation this belief might be valid. Of course all packet vendors promote this attitude.</li>
</ol>
<ol>
<li>Actually the current ERP package solutions (like SAP) are implemented from the same domain model root ideas, but they are very old and they lack the OO-domain model. All this has resulted in a situation where the initial package has far too much detail and thus right from the start has a overwhelming load (in many cases completely unnecessary) detail.</li>
<li>When ADDD is adopted it means <strong>dramatically decreased amount of work</strong> compared to current situation. The industry doesn’t like to reduce the amount of work and really be far more productive. This will have a huge and even cumulating impact on the whole IT-industry. The industry would like to see more work not less!</li>
</ol>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/jukkatamminen.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/jukkatamminen.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/jukkatamminen.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/jukkatamminen.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/jukkatamminen.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/jukkatamminen.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/jukkatamminen.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/jukkatamminen.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/jukkatamminen.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/jukkatamminen.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/jukkatamminen.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/jukkatamminen.wordpress.com/426/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/jukkatamminen.wordpress.com/426/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/jukkatamminen.wordpress.com/426/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=jukkatamminen.wordpress.com&amp;blog=6111312&amp;post=426&amp;subd=jukkatamminen&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://jukkatamminen.wordpress.com/2011/02/28/426/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a4214421b8b014ae94ee01e1af1e6454?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">jukkatamminen</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2010/10/abskolmio.png" medium="image">
			<media:title type="html">absKolmio</media:title>
		</media:content>

		<media:content url="http://jukkatamminen.files.wordpress.com/2011/02/mallikukka.png" medium="image">
			<media:title type="html">malliKukka</media:title>
		</media:content>
	</item>
	</channel>
</rss>
