<?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>Art of Software Reuse &#187; rules</title>
	<atom:link href="http://artofsoftwarereuse.com/tag/rules/feed/" rel="self" type="application/rss+xml" />
	<link>http://artofsoftwarereuse.com</link>
	<description>Enabling Organizational Agility using Systematic Software Reuse</description>
	<lastBuildDate>Sun, 27 May 2012 03:44:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='artofsoftwarereuse.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/867ea3399412f403d50af9d95344fa89?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Art of Software Reuse &#187; rules</title>
		<link>http://artofsoftwarereuse.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://artofsoftwarereuse.com/osd.xml" title="Art of Software Reuse" />
	<atom:link rel='hub' href='http://artofsoftwarereuse.com/?pushpress=hub'/>
		<item>
		<title>Decouple App Specific and App Agnostic Logic</title>
		<link>http://artofsoftwarereuse.com/2009/08/01/decouple-app-specific-and-app-agnostic-logic/</link>
		<comments>http://artofsoftwarereuse.com/2009/08/01/decouple-app-specific-and-app-agnostic-logic/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 15:58:06 +0000</pubDate>
		<dc:creator>vijaynarayanan</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Reuse]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[components]]></category>
		<category><![CDATA[rules]]></category>
		<category><![CDATA[software reuse]]></category>

		<guid isPermaLink="false">http://softwarereuse.wordpress.com/?p=914</guid>
		<description><![CDATA[Your application typically consists of a variety of functionality &#8211; user interface components, business logic components including domain assets, business rules, and services, backend assets such as legacy components, packaged systems etc. If you tie your assets too specific to an application it will severely inhibit reuse.  Application agnostic logic should be built as reusable [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&#038;blog=7058737&#038;post=914&#038;subd=softwarereuse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Your application typically consists of a variety of functionality &#8211; user interface components, business logic components including domain assets, business rules, and services, backend assets such as legacy components, packaged systems etc. If you tie your assets too specific to an application it will severely inhibit reuse.  Application agnostic logic should be built as reusable assets. If they aren&#8217;t, plan to refactor so they are reusable.</p>
<p>Business tier assets could be a combination of objects and services. Your SOA efforts need to be brought into the picture here so you can leverage existing services for fulfilling application functionality. Enterprise data can be decoupled from your application either via a data access layer or a data services layer or a combination of both. Business rules can be encapsulated using Classes via the Strategy pattern or via a declarative rules engine. Either way you should ensure that most of your rules are standalone units of logic that taken a bunch of inputs and return a result. That way they are not specific to a single application. External system integrations should be encapsulated as well including connectivity, data transformations, target specific data values, and error handling. Equally important is handling exceptions in a consistent way across your application.</p>
<p>The idea is to reduce coupling between application specific logic and application agnostic ones. This will help you reuse technology assets in new and unexpected ways! This in fact is a foundational idea of <a href="http://www.sei.cmu.edu/productlines/" target="_blank">Software Product Lines</a>.</p>
<p><strong>Like this post?</strong> Subscribe to <a href="http://feeds2.feedburner.com/SoftwareReuseInTheRealWorld">RSS feed</a> or get blog <a href="http://feedburner.google.com/fb/a/mailverify?uri=SoftwareReuseInTheRealWorld&amp;loc=en_US">updates via email</a>.</p>
<p style="text-align:right;"><strong><a href="http://del.icio.us/post?url=http://softwarereuse.wordpress.com/2009/08/01/decouple-app-specific-and-app-agnostic-logic/&amp;title=Software%20Reuse%20Quick%20Tip%2015"><img title="del.icio.us:Decouple App Specific and App Agnostic Logic" src="http://sunburntkamel.files.wordpress.com/2006/11/delicious.gif?w=450" alt="add to del.icio.us" /></a></strong>: <a href="http://digg.com/submit?url=http://softwarereuse.wordpress.com/2009/08/01/decouple-app-specific-and-app-agnostic-logic/&amp;title=Software%20Reuse%20Quick%20Tip%2015"><img title="Digg it:Decouple App Specific and App Agnostic Logic" src="http://sunburntkamel.files.wordpress.com/2006/11/digg.gif?w=450" alt="Digg it" /></a> : <a href="http://www.facebook.com/sharer.php?u=http://softwarereuse.wordpress.com/2009/08/01/decouple-app-specific-and-app-agnostic-logic/&amp;title=Software%20Reuse%20Quick%20Tip%2015"><img title="facebook:Decouple App Specific and App Agnostic Logic" src="http://sunburntkamel.files.wordpress.com/2008/02/facebookcom.gif?w=450" alt="post to facebook" /></a>: <a href="http://www.stumbleupon.com/submit?url=http://softwarereuse.wordpress.com/2009/08/01/decouple-app-specific-and-app-agnostic-logic/&amp;title=Software%20Reuse%20Quick%20Tip%2015"><img title="Stumble it:Decouple App Specific and App Agnostic Logic" src="http://sunburntkamel.files.wordpress.com/2006/11/stumbleit.gif?w=450" alt="Stumble It!" /></a> : <a href="http://reddit.com/submit?url=http://softwarereuse.wordpress.com/2009/08/01/decouple-app-specific-and-app-agnostic-logic/&amp;title=Software%20Reuse%20Quick%20Tip%2015"><img title="reddit:Decouple App Specific and App Agnostic Logic" src="http://sunburntkamel.files.wordpress.com/2006/11/reddit.gif?w=450" alt="" /></a> :</p>
<br /> Tagged: application, components, rules, software reuse <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/softwarereuse.wordpress.com/914/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/softwarereuse.wordpress.com/914/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/softwarereuse.wordpress.com/914/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/softwarereuse.wordpress.com/914/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/softwarereuse.wordpress.com/914/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/softwarereuse.wordpress.com/914/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/softwarereuse.wordpress.com/914/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/softwarereuse.wordpress.com/914/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/softwarereuse.wordpress.com/914/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/softwarereuse.wordpress.com/914/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/softwarereuse.wordpress.com/914/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/softwarereuse.wordpress.com/914/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/softwarereuse.wordpress.com/914/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/softwarereuse.wordpress.com/914/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&#038;blog=7058737&#038;post=914&#038;subd=softwarereuse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://artofsoftwarereuse.com/2009/08/01/decouple-app-specific-and-app-agnostic-logic/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/edf4a0cc88a15552fecbf78099c790ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vijay</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/delicious.gif" medium="image">
			<media:title type="html">del.icio.us:Decouple App Specific and App Agnostic Logic</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/digg.gif" medium="image">
			<media:title type="html">Digg it:Decouple App Specific and App Agnostic Logic</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2008/02/facebookcom.gif" medium="image">
			<media:title type="html">facebook:Decouple App Specific and App Agnostic Logic</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/stumbleit.gif" medium="image">
			<media:title type="html">Stumble it:Decouple App Specific and App Agnostic Logic</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/reddit.gif" medium="image">
			<media:title type="html">reddit:Decouple App Specific and App Agnostic Logic</media:title>
		</media:content>
	</item>
		<item>
		<title>Software Reuse Quick Tip #12</title>
		<link>http://artofsoftwarereuse.com/2009/06/02/software-reuse-quick-tip-12/</link>
		<comments>http://artofsoftwarereuse.com/2009/06/02/software-reuse-quick-tip-12/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 23:54:41 +0000</pubDate>
		<dc:creator>vijaynarayanan</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Reuse]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[business process]]></category>
		<category><![CDATA[rules]]></category>
		<category><![CDATA[software reuse]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://softwarereuse.wordpress.com/?p=612</guid>
		<description><![CDATA[Tip # 12 Encapsulate Complex Decisions If you have a set of business rules that are complex in nature determining decisions in your business process flow, it is better to encapsulate the into a separate component. If you have a rules engine in your SOA you can place these rules here and expose the rule [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&#038;blog=7058737&#038;post=612&#038;subd=softwarereuse&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong>Tip # 12 Encapsulate Complex Decisions<br />
</strong></p>
<p>If you have a set of business rules that are complex in nature determining decisions in your business process flow, it is better to encapsulate the into a separate component. If you have a rules engine in your SOA you can place these rules here and expose the rule as a decision service. If your implementation environment doesn&#8217;t have a rules engine, you can encapsulate rules as objects so they are isolated from the rest of the process orchestration logic. Why? Two immediate benefits: your rules can be changed independent of the process flow and your rules can be reused across multiple business process orchestrations.</p>
<p><strong>Like this post?</strong> Subscribe to <a href="http://feeds2.feedburner.com/SoftwareReuseInTheRealWorld">RSS feed</a> or get blog <a href="http://feedburner.google.com/fb/a/mailverify?uri=SoftwareReuseInTheRealWorld&amp;loc=en_US">updates via email</a>.</p>
<p style="text-align:right;"><strong><a href="http://del.icio.us/post?url=http://softwarereuse.wordpress.com/2009/06/02/software-reuse-quick-tip-12/&amp;title=Software Reuse Quick Tip 12"><img title="del.icio.us:Software Reuse Quick Tip 12" src="http://sunburntkamel.files.wordpress.com/2006/11/delicious.gif?w=450" alt="add to del.icio.us" /></a></strong>: <a href="http://digg.com/submit?url=http://softwarereuse.wordpress.com/2009/06/02/software-reuse-quick-tip-12/&amp;title=Software Reuse Quick Tip 12"><img title="Digg it:Software Reuse Quick Tip 12" src="http://sunburntkamel.files.wordpress.com/2006/11/digg.gif?w=450" alt="Digg it" /></a> : <a href="http://www.facebook.com/sharer.php?u=http://softwarereuse.wordpress.com/2009/06/02/software-reuse-quick-tip-12/&amp;title=Software Reuse Quick Tip 12"><img title="facebook:Software Reuse Quick Tip 12" src="http://sunburntkamel.files.wordpress.com/2008/02/facebookcom.gif?w=450" alt="post to facebook" /></a>: <a href="http://www.stumbleupon.com/submit?url=http://softwarereuse.wordpress.com/2009/06/02/software-reuse-quick-tip-12/&amp;title=Software Reuse Quick Tip 12"><img title="Stumble it:Software Reuse Quick Tip 12" src="http://sunburntkamel.files.wordpress.com/2006/11/stumbleit.gif?w=450" alt="Stumble It!" /></a> : <a href="http://reddit.com/submit?url=http://softwarereuse.wordpress.com/2009/06/02/software-reuse-quick-tip-12/&amp;title=Software Reuse Quick Tip 12"><img title="reddit:Software Reuse Quick Tip 12" src="http://sunburntkamel.files.wordpress.com/2006/11/reddit.gif?w=450" alt="" /></a> :</p>
<br /> Tagged: business process, rules, SOA, software reuse, tips <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/softwarereuse.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/softwarereuse.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/softwarereuse.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/softwarereuse.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/softwarereuse.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/softwarereuse.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/softwarereuse.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/softwarereuse.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/softwarereuse.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/softwarereuse.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/softwarereuse.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/softwarereuse.wordpress.com/612/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/softwarereuse.wordpress.com/612/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/softwarereuse.wordpress.com/612/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&#038;blog=7058737&#038;post=612&#038;subd=softwarereuse&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://artofsoftwarereuse.com/2009/06/02/software-reuse-quick-tip-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/edf4a0cc88a15552fecbf78099c790ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vijay</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/delicious.gif" medium="image">
			<media:title type="html">del.icio.us:Software Reuse Quick Tip 12</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/digg.gif" medium="image">
			<media:title type="html">Digg it:Software Reuse Quick Tip 12</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2008/02/facebookcom.gif" medium="image">
			<media:title type="html">facebook:Software Reuse Quick Tip 12</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/stumbleit.gif" medium="image">
			<media:title type="html">Stumble it:Software Reuse Quick Tip 12</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/reddit.gif" medium="image">
			<media:title type="html">reddit:Software Reuse Quick Tip 12</media:title>
		</media:content>
	</item>
	</channel>
</rss>
