<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Software erosion in pictures &#8211; Findbugs</title>
	<atom:link href="http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/</link>
	<description></description>
	<lastBuildDate>Fri, 23 Dec 2011 12:59:15 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Software erosion and package tangles &#171; sutts on software</title>
		<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/comment-page-1/#comment-597</link>
		<dc:creator>Software erosion and package tangles &#171; sutts on software</dc:creator>
		<pubDate>Sat, 17 Jul 2010 07:00:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.headwaysoftware.com/blog/?p=131#comment-597</guid>
		<description>[...] a comment, Emeric questioned whether cyclic dependencies at the package level are anything more than a smell [...]</description>
		<content:encoded><![CDATA[<p>[...] a comment, Emeric questioned whether cyclic dependencies at the package level are anything more than a smell [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The parable of the two watchmakers &#124; Deconstructing Software</title>
		<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/comment-page-1/#comment-203</link>
		<dc:creator>The parable of the two watchmakers &#124; Deconstructing Software</dc:creator>
		<pubDate>Mon, 30 Mar 2009 14:15:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.headwaysoftware.com/blog/?p=131#comment-203</guid>
		<description>[...] Because, mostly, we only pay attention to aspects of modularity and component-ness at two levels of granularity: low-level code (classes, methods) at one end of the spectrum, and unit of deployment (jar, dll) at the other. Everything in between we tend to treat as a largely amorphous blob comprising hundreds or even thousands of interacting entities. Even in those case where we do have meaningful abstractions/layers between the low-level code and and the unit of deployment, these are generally invisible and unmeasured. In this context it is hardly surprising that they will tend to degrade over time. [...]</description>
		<content:encoded><![CDATA[<p>[...] Because, mostly, we only pay attention to aspects of modularity and component-ness at two levels of granularity: low-level code (classes, methods) at one end of the spectrum, and unit of deployment (jar, dll) at the other. Everything in between we tend to treat as a largely amorphous blob comprising hundreds or even thousands of interacting entities. Even in those case where we do have meaningful abstractions/layers between the low-level code and and the unit of deployment, these are generally invisible and unmeasured. In this context it is hardly surprising that they will tend to degrade over time. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David Hovemeyer</title>
		<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/comment-page-1/#comment-122</link>
		<dc:creator>David Hovemeyer</dc:creator>
		<pubDate>Sun, 14 Dec 2008 18:42:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.headwaysoftware.com/blog/?p=131#comment-122</guid>
		<description>You&#039;re right - the architecture of FindBugs is not pretty.  I&#039;ve occasionally thought about doing a reimplementation, but it would be a huge amount of work.</description>
		<content:encoded><![CDATA[<p>You&#8217;re right &#8211; the architecture of FindBugs is not pretty.  I&#8217;ve occasionally thought about doing a reimplementation, but it would be a huge amount of work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raoul Duke</title>
		<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/comment-page-1/#comment-104</link>
		<dc:creator>Raoul Duke</dc:creator>
		<pubDate>Fri, 05 Dec 2008 16:54:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.headwaysoftware.com/blog/?p=131#comment-104</guid>
		<description>@revisions

cool. at least one important difference between you and me is that you actually *do* things; thanks for being somebody who really does stuff!

(some day down the road in your future copious free time i wonder if you could animate the graphs morphing along, so there&#039;s no fade even? i&#039;d hazard to guess that there is some code lying around somewhere on the web to let one do something like that, although i certainly don&#039;t know where.

or maybe simply having them lined up vertically statically one after another in a long strip of images would let people scroll the document to easily compare? like, if 2 (or 3?) fit on a screen at a time? maybe at 3 then they&#039;d have to be horizontal since most monitors are wider than they are tall.)</description>
		<content:encoded><![CDATA[<p>@revisions</p>
<p>cool. at least one important difference between you and me is that you actually *do* things; thanks for being somebody who really does stuff!</p>
<p>(some day down the road in your future copious free time i wonder if you could animate the graphs morphing along, so there&#8217;s no fade even? i&#8217;d hazard to guess that there is some code lying around somewhere on the web to let one do something like that, although i certainly don&#8217;t know where.</p>
<p>or maybe simply having them lined up vertically statically one after another in a long strip of images would let people scroll the document to easily compare? like, if 2 (or 3?) fit on a screen at a time? maybe at 3 then they&#8217;d have to be horizontal since most monitors are wider than they are tall.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Sutton</title>
		<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/comment-page-1/#comment-103</link>
		<dc:creator>Ian Sutton</dc:creator>
		<pubDate>Fri, 05 Dec 2008 10:53:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.headwaysoftware.com/blog/?p=131#comment-103</guid>
		<description>&lt;a href=&quot;#comment-97&quot; rel=&quot;nofollow&quot;&gt;@Raoul Duke&lt;/a&gt; 
Thanks for the compliments &lt;b&gt;and&lt;/b&gt; the beautifully couched criticism :)
Between you and me, I&#039;m crud at graphics (perhaps that&#039;s why I like tools that draw things for me). But I had another go and perhaps &lt;a href=&quot;/images/findbugs2.gif&quot; rel=&quot;nofollow&quot;&gt;this one&lt;/a&gt; is better. 
Hardest bit is the juggling between trying to have something which is quick and snappy (&lt; 1 min) but at the same time useful - animated gif may have been a bad call there. So I also did yet another version, but this time as &lt;a href=&quot;/products/structure101/demos/findbugs-swf/findbugs-swf.html&quot; rel=&quot;nofollow&quot;&gt;swf (with a pause button)&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p><a href="#comment-97" rel="nofollow">@Raoul Duke</a><br />
Thanks for the compliments <b>and</b> the beautifully couched criticism <img src='http://www.headwaysoftware.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Between you and me, I&#8217;m crud at graphics (perhaps that&#8217;s why I like tools that draw things for me). But I had another go and perhaps <a href="/images/findbugs2.gif" rel="nofollow">this one</a> is better.<br />
Hardest bit is the juggling between trying to have something which is quick and snappy (&lt; 1 min) but at the same time useful &#8211; animated gif may have been a bad call there. So I also did yet another version, but this time as <a href="/products/structure101/demos/findbugs-swf/findbugs-swf.html" rel="nofollow">swf (with a pause button)</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Sutton</title>
		<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/comment-page-1/#comment-100</link>
		<dc:creator>Ian Sutton</dc:creator>
		<pubDate>Thu, 04 Dec 2008 00:00:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.headwaysoftware.com/blog/?p=131#comment-100</guid>
		<description>&lt;a href=&quot;#comment-95&quot; rel=&quot;nofollow&quot;&gt;@Otavio Ferreira&lt;/a&gt; 
Hi Otavio. Nice posts, and I kicked off another round of ping-pong on your &lt;a href=&quot;http://www.mihswat.com/2008/11/27/good-software-modularity-what-exactly-is-it/&quot; rel=&quot;nofollow&quot;&gt;modularity&lt;/a&gt; piece. Agree on the stay in touch!</description>
		<content:encoded><![CDATA[<p><a href="#comment-95" rel="nofollow">@Otavio Ferreira</a><br />
Hi Otavio. Nice posts, and I kicked off another round of ping-pong on your <a href="http://www.mihswat.com/2008/11/27/good-software-modularity-what-exactly-is-it/" rel="nofollow">modularity</a> piece. Agree on the stay in touch!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Raoul Duke</title>
		<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/comment-page-1/#comment-97</link>
		<dc:creator>Raoul Duke</dc:creator>
		<pubDate>Tue, 02 Dec 2008 02:21:03 +0000</pubDate>
		<guid isPermaLink="false">http://www.headwaysoftware.com/blog/?p=131#comment-97</guid>
		<description>very awesome post.

...up until watching the animated GIF. the cube rotation thing does not add didacticism, it pretty much destroys it. please, please, please, meditate deeply upon your sin and post one that just fades between stages, or something like that. ;-)</description>
		<content:encoded><![CDATA[<p>very awesome post.</p>
<p>&#8230;up until watching the animated GIF. the cube rotation thing does not add didacticism, it pretty much destroys it. please, please, please, meditate deeply upon your sin and post one that just fades between stages, or something like that. <img src='http://www.headwaysoftware.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Otavio Ferreira</title>
		<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/comment-page-1/#comment-95</link>
		<dc:creator>Otavio Ferreira</dc:creator>
		<pubDate>Sun, 30 Nov 2008 13:24:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.headwaysoftware.com/blog/?p=131#comment-95</guid>
		<description>Hello Ian. I really like your post, it&#039;s very well set out. 

I&#039;ve been studying dependencies among modules for a while, and I must say that I really understand the problem you&#039;re presenting here, as well as your suggestions that would make the architecture depicted above better. BTW, Structure101 seems to be a very interesting software indeed, good stuff!

Ian, you might be interested in reading other two post I wrote for the MIH SWAT blog, namely &lt;a href=&#039;http://www.mihswat.com/2008/10/14/the-object-orientations-worst-enemy/&#039; rel=&quot;nofollow&quot;&gt;Object Orientation’s Worst Enemy&lt;/a&gt; and &lt;a href=&#039;http://www.mihswat.com/2008/10/21/dependency-inversion-killing-gorillas-and-butterflies/&#039; rel=&quot;nofollow&quot;&gt;Dependency Inversion: Killing Gorillas and Butterflies&lt;/a&gt;, as they talk about the same subject. Any thoughts?

I kept our conversation going on &lt;a href=&#039;http://www.mihswat.com/2008/11/27/good-software-modularity-what-exactly-is-it/&#039; rel=&quot;nofollow&quot;&gt;Good software modularity. What exactly is it?&lt;/a&gt;.

Let&#039;s keep in touch. Cheers!</description>
		<content:encoded><![CDATA[<p>Hello Ian. I really like your post, it&#8217;s very well set out. </p>
<p>I&#8217;ve been studying dependencies among modules for a while, and I must say that I really understand the problem you&#8217;re presenting here, as well as your suggestions that would make the architecture depicted above better. BTW, Structure101 seems to be a very interesting software indeed, good stuff!</p>
<p>Ian, you might be interested in reading other two post I wrote for the MIH SWAT blog, namely <a href='http://www.mihswat.com/2008/10/14/the-object-orientations-worst-enemy/' rel="nofollow">Object Orientation’s Worst Enemy</a> and <a href='http://www.mihswat.com/2008/10/21/dependency-inversion-killing-gorillas-and-butterflies/' rel="nofollow">Dependency Inversion: Killing Gorillas and Butterflies</a>, as they talk about the same subject. Any thoughts?</p>
<p>I kept our conversation going on <a href='http://www.mihswat.com/2008/11/27/good-software-modularity-what-exactly-is-it/' rel="nofollow">Good software modularity. What exactly is it?</a>.</p>
<p>Let&#8217;s keep in touch. Cheers!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Sutton</title>
		<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/comment-page-1/#comment-90</link>
		<dc:creator>Ian Sutton</dc:creator>
		<pubDate>Fri, 28 Nov 2008 12:06:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.headwaysoftware.com/blog/?p=131#comment-90</guid>
		<description>&lt;strong&gt;&lt;a href=&quot;#comment-88&quot; rel=&quot;nofollow&quot;&gt;Emeric&lt;/a&gt; :&lt;/strong&gt;
Them&#039;s good questions. I&#039;ll follow up in a &lt;a href=&quot;/blog/2008/12/software-erosion-and-package-tangles/&quot; rel=&quot;nofollow&quot;&gt;separate post&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p><strong><a href="#comment-88" rel="nofollow">Emeric</a> :</strong><br />
Them&#8217;s good questions. I&#8217;ll follow up in a <a href="/blog/2008/12/software-erosion-and-package-tangles/" rel="nofollow">separate post</a>.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ian Sutton</title>
		<link>http://www.headwaysoftware.com/blog/2008/11/software-erosion-findbugs/comment-page-1/#comment-89</link>
		<dc:creator>Ian Sutton</dc:creator>
		<pubDate>Fri, 28 Nov 2008 11:24:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.headwaysoftware.com/blog/?p=131#comment-89</guid>
		<description>&lt;a href=&quot;#comment-85&quot; rel=&quot;nofollow&quot;&gt;@Rahul&lt;/a&gt; 
That is very likely overstating things (though smiley duly noted). The impact of this kind of erosion will be predominantly on the internal development - I would speculate that their rate of change has degraded over time and the level of coupling at the class levels leads to more side effects (though tests can counteract that in many cases). But this is not the same saying that they should tear it up and start again.

There is a &lt;a href=&quot;http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/52/4548393/04548410.pdf?arnumber=4548410&quot; rel=&quot;nofollow&quot;&gt;paper&lt;/a&gt; on this subject in IEEE Software, looking at a couple of other open source Java code-bases. Paraphrasing liberally, the thrust here is that there were recurring phases (called &quot;structural epochs&quot;) in the code-base evolution where development of new features largely ground to a halt while the team was striving to rescue the architecture (combat erosion). In the cases, observed, however, these efforts were only moderately successful, and were generally more about moving excessive complexity around rather than actually reducing it...</description>
		<content:encoded><![CDATA[<p><a href="#comment-85" rel="nofollow">@Rahul</a><br />
That is very likely overstating things (though smiley duly noted). The impact of this kind of erosion will be predominantly on the internal development &#8211; I would speculate that their rate of change has degraded over time and the level of coupling at the class levels leads to more side effects (though tests can counteract that in many cases). But this is not the same saying that they should tear it up and start again.</p>
<p>There is a <a href="http://ieeexplore.ieee.org/Xplore/login.jsp?url=/iel5/52/4548393/04548410.pdf?arnumber=4548410" rel="nofollow">paper</a> on this subject in IEEE Software, looking at a couple of other open source Java code-bases. Paraphrasing liberally, the thrust here is that there were recurring phases (called &#8220;structural epochs&#8221;) in the code-base evolution where development of new features largely ground to a halt while the team was striving to rescue the architecture (combat erosion). In the cases, observed, however, these efforts were only moderately successful, and were generally more about moving excessive complexity around rather than actually reducing it&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

