<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Development At Heart &#187; Software Engineering</title>
	<atom:link href="http://ruicurado.com/category/software-engineering/feed/" rel="self" type="application/rss+xml" />
	<link>http://ruicurado.com</link>
	<description>Passionate About Software Development</description>
	<lastBuildDate>Mon, 02 Jan 2012 12:39:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>The Lego Hypothesis: Software Building Blocks</title>
		<link>http://ruicurado.com/2011/07/04/the-lego-hypothesis/</link>
		<comments>http://ruicurado.com/2011/07/04/the-lego-hypothesis/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 09:03:40 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[ABSE]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=113</guid>
		<description><![CDATA[I&#8217;ve been aware for some years now of the &#8220;Lego Hypothesis&#8221;, a software engineering &#8220;dream&#8221; conceived by James Noble, Professor of Computer Science and Software Engineering at Victoria University of Wellington, New Zealand. For decades, software engineering has &#8220;dreamed an impossible dream&#8221;, to build software as easily as building Lego houses, says James. There&#8217;s a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been aware for some years now of the &#8220;Lego Hypothesis&#8221;, a software engineering &#8220;dream&#8221; conceived by James Noble, Professor of Computer Science and Software Engineering at Victoria University of Wellington, New Zealand.</p>
<p>For decades, software engineering has &#8220;dreamed an impossible dream&#8221;, to build software as easily as building Lego houses, says James.</p>
<p>There&#8217;s a <a href="http://www.infoq.com/presentations/lego-hypothesis" target="_blank">talk by James Noble on InfoQ</a> about this subject. In this talk, James Noble imagines a world where the dream has been realized, where software parts can be found in worldwide repositories, where most software is built by reusing existing software, and where we&#8217;ve &#8220;finally been freed from the mundane necessity of programming&#8221;.</p>
<p>Of course, it&#8217;s a dream but, how close (or how far) are we from such dream? I, for one, have certainly been working in that direction with ABSE:</p>
<p>ABSE allows you to create the building blocks of your software systems that, though simple constraint mechanisms, allow you to build your software by snapping them together, just like Lego.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2011/07/04/the-lego-hypothesis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ABSE and Patterns-Based Engineering (PBE)</title>
		<link>http://ruicurado.com/2011/02/03/abse-and-patterns-based-engineering-pbe/</link>
		<comments>http://ruicurado.com/2011/02/03/abse-and-patterns-based-engineering-pbe/#comments</comments>
		<pubDate>Thu, 03 Feb 2011 00:22:12 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[ABSE]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[The Developer's Mind]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=109</guid>
		<description><![CDATA[In their book, &#8220;Patterns-Based Engineering &#8211; Successfully Delivering Solutions via Patterns&#8221;, Lee Ackerman and Celso Gonzalez introduce PBE, the concept of a pattern implementation as an asset that “automates the application of a pattern in a particular environment”: Specifically, PBE is a specialized approach to asset-based development that focuses on patterns, a specific type of [...]]]></description>
			<content:encoded><![CDATA[<p>In their book, &#8220;Patterns-Based Engineering &#8211; Successfully Delivering Solutions via Patterns&#8221;, Lee Ackerman and Celso Gonzalez introduce PBE, the concept of a pattern implementation as an asset that  “automates the application of a pattern in a particular environment”:</p>
<p>Specifically, PBE is a specialized approach to asset-based development that focuses on patterns, a specific type of reusable asset. PBE provides guidance and support for using patterns in a systematic, disciplined, and quantifiable way.</p>
<p>You can use these types of patterns to support design, testing, deployment, and other aspects of the software development lifecycle. In performing these tasks, you use patterns in many ways such as documenting, generating, refactoring, and harvesting. As a result, you are able to use patterns to boost productivity, improve quality, leverage expertise, simplify, and improve communication within an organization. The goal is to ensure that as you use and create patterns, you are doing so in a way that adds value and boosts the agility of your projects.</p>
<p>Similarly, ABSE uses reusable patterns (a.k.a. “Atoms”) as the basis of  its model-driven approach.</p>
<p>ABSE patterns are coupled with metadata, giving them the necessary  variability to deal with real-world applications. ABSE Atoms have  borrowed concepts from OOP like inheritance and composition, allowing  you to create pattern families, and build “patterns of patterns”. Atoms  are glued together like Lego to form a model that has a tree-like  structure. A code generator “executes” the model to obtain the desired  generated artifacts.</p>
<p>If you want to learn to use and apply ABSE, you may start by introducing yourself to the Patterns-Based Engineering approach. It will give you a thought process and logic foundation that will be quite useful to fully understand and take advantage of ABSE and its IDE, AtomWeaver.</p>
<p>To buy the book, contact the authors or if you are just plain curious about PBE, stop by the <a href="http://patternsbasedengineering.net/">PBE site</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2011/02/03/abse-and-patterns-based-engineering-pbe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software reuse&#8230; where is it?</title>
		<link>http://ruicurado.com/2010/10/22/software-reuse-where-is-it/</link>
		<comments>http://ruicurado.com/2010/10/22/software-reuse-where-is-it/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 14:19:11 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[Rants]]></category>
		<category><![CDATA[Software Asset Reuse]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=105</guid>
		<description><![CDATA[During the last decade, the gap between the demand for new, complex software systems and its supply has widened. This gap and the difficulties faced by software engineers in bridging it have been described, some decades ago by Dijkstra as the Software Crisis: systems have become so large and complex that creating software for them [...]]]></description>
			<content:encoded><![CDATA[<p>During the last decade, the gap between the demand for new, complex software systems and its supply has widened. This gap and the difficulties faced by software engineers in bridging it have been described, some decades ago by Dijkstra as the Software Crisis: systems have become so large and complex that creating software for them is increasingly more difficult to complete on time and within the constraints of the project budget.</p>
<p>Software reuse is then of growing importance as a major factor in alleviating some of the problems resulting from the Software Crisis.</p>
<p>At first glance, software reuse appears a natural way to develop software, but in practice this does not happen. The challenges are numerous and require a fresh approach to the entire range of activities involved in the engineering of software. Every time new software is needed, developers tend to write it from scratch rather than harness components developed through previous projects.</p>
<p>In the first four decades of computer history the emphasis was on hardware developments, but now the emphasis has shifted toward human concerns. In the mid-1950’s, 90 percent of application costs were devoted to hardware but now, at least 90 percent of these costs are software. This reversal reflects not only the decline in hardware costs and the increase in programmer salaries, but also the recognition that systems must be carefully designed and developed to accommodate human users.</p>
<p>Software is essentially a symbolic product. It differs from the vast range of other products produced by conventional engineering techniques. Software, once designed, has no manufacturing phase and does not deteriorate, although changing environments will usually require software modifications.</p>
<p>The most often cited reasons why software is not reused are:</p>
<ul>
<li>lack of tools to support a developer in trying to reuse components</li>
<li>lack of training for developers to create reusable components and to use reusable components</li>
<li>lack of an educational methodology and motivation towards reuse and its benefits</li>
</ul>
<p>The fact that software reuse has not been widely accepted questions the suitability of existing management practices, organizational structures and technologies involved in the development of software.</p>
<p>In short, a rethink of the software development process is long due.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2010/10/22/software-reuse-where-is-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Towards Software Craftsmanship</title>
		<link>http://ruicurado.com/2009/03/12/towards-software-craftsmanship/</link>
		<comments>http://ruicurado.com/2009/03/12/towards-software-craftsmanship/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 10:16:22 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[The Developer's Mind]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=38</guid>
		<description><![CDATA[Software Craftsmanship is an alternative way of thinking about the activity of writing computer software and skill acquisition mechanisms. It is a growing movement amongst software developers dissatisfied by the mainstream software industry&#8217;s focus on the skill-level of the median programmer. In December of 2008, a summit was held in Chicago that resulted in the [...]]]></description>
			<content:encoded><![CDATA[<p>Software Craftsmanship is an alternative way of thinking about the activity of writing computer software and skill acquisition mechanisms. It is a growing movement amongst software developers dissatisfied by the mainstream software industry&#8217;s focus on the skill-level of the median programmer.</p>
<p>In December of 2008, a summit was held in Chicago that resulted in the drafting of the <a href="http://manifesto.softwarecraftsmanship.org/main">Software Craftsmanship Manifesto</a>:</p>
<blockquote><p><span style="color: #333399;">As aspiring Software Craftsmen we are raising the bar of professional software development by practicing it and helping others learn the craft. Through this work we have come to value:</span></p>
<p><strong>- Not only working software, but also well-crafted software<br />
- Not only responding to change, but also steadily adding value<br />
- Not only individuals and interactions, but also a community of professionals<br />
- Not only customer collaboration,but also productive partnerships</strong></p>
<p>That is, in pursuit of the items on the left we have found the items on the right to be indispensable.</p>
<p><span style="color: #008000;">© 2009, the undersigned. this statement may be freely copied in any form, but only in its entirety through this notice.</span></p></blockquote>
<p>Although we are using code generation more and more, shifting some responsibilities away from the average developer, we still need to keep crap code at bay. When we upgrade to model-driven development, we switch to the trade of keeping crap models at bay. A Software Craftmanship orientation is here to stay and we should embrace it.</p>
<p>In-house code generators help implement a Software Craftsmanship initiative by enforcing the use of correct and tried-and-tested designs and patterns.</p>
<p>Read more about Software Craftsmanship (books @ Amazon):</p>
<p><a class="external text" title="http://www.amazon.com/gp/product/0596518382/ref=s9_subs_c1_s1_p14_t1?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-1&amp;pf_rd_r=1Z0QNDTCZ19FXPJZ9BSK&amp;pf_rd_t=101&amp;pf_rd_p=470938131&amp;pf_rd_i=507846" rel="nofollow" href="http://www.amazon.com/gp/product/0596518382/ref=s9_subs_c1_s1_p14_t1?pf_rd_m=ATVPDKIKX0DER&amp;pf_rd_s=center-1&amp;pf_rd_r=1Z0QNDTCZ19FXPJZ9BSK&amp;pf_rd_t=101&amp;pf_rd_p=470938131&amp;pf_rd_i=507846">Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman<br />
</a><a class="external text" title="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882" rel="nofollow" href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882">Clean Code: A Handbook of Agile Software Craftsmanship<br />
</a><a class="external text" title="http://www.amazon.com/Software-Craftsmanship-Imperative-Pete-McBreen/dp/0201733862/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1236433152&amp;sr=8-1" rel="nofollow" href="http://www.amazon.com/Software-Craftsmanship-Imperative-Pete-McBreen/dp/0201733862/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1236433152&amp;sr=8-1">Software Craftsmanship: The New Imperative</a><a class="external text" title="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882" rel="nofollow" href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882"><br />
</a><a class="external text" title="http://www.amazon.com/Craftsman-Richard-Sennett/dp/0300119097" rel="nofollow" href="http://www.amazon.com/Craftsman-Richard-Sennett/dp/0300119097">The Craftsman</a><a class="external text" title="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882" rel="nofollow" href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882"><br />
</a></p>
<p>I&#8217;ve just signed the manifesto. Did you?</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/03/12/towards-software-craftsmanship/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

