<?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"
	>

<channel>
	<title>Blogging about Software Development &#187; General</title>
	<atom:link href="http://www.bloggingaboutjava.org/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bloggingaboutjava.org</link>
	<description>Blogging about Software Development</description>
	<pubDate>Wed, 03 Dec 2008 15:09:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Process Acceleration</title>
		<link>http://www.bloggingaboutjava.org/2008/11/process-acceleration/</link>
		<comments>http://www.bloggingaboutjava.org/2008/11/process-acceleration/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 23:46:45 +0000</pubDate>
		<dc:creator>Michel Klabbers</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Methodologies]]></category>

		<category><![CDATA[acceleration]]></category>

		<category><![CDATA[process]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=408</guid>
		<description><![CDATA[Last thursday I visited a presentation about Process Acceleration (PA) [1]. PA is a Business Change method that also uses separation of concerns: it separates the end result from anything else in the business process. The end result of the process is the success state, i.e. all employees correctly submitted their billing forms and all [...]]]></description>
			<content:encoded><![CDATA[<p>Last thursday I visited a presentation about Process Acceleration (PA) [1]. PA is a Business Change method that also uses separation of concerns: it separates the end result from anything else in the business process. The end result of the process is the success state, i.e. all employees correctly submitted their billing forms and all team managers got a correct summary by mail. The emphasis lies primarely on getting the definition of the end result as accurate as possible.</p>
<p><span id="more-408"></span>I will try to give more insight into PA by using a more formal approach. In the section below I will use the definitions &#8220;success state&#8221; and &#8220;system&#8221; a lot. I will define these first:</p>
<blockquote><p>Success state: P_1 and P_2 and &#8230; P_N</p>
<p>P_x (1 &lt;= x &lt;= N) is a predicate, for example: P_1 == (All timesheets employees are submitted), P_2 == (All submitted timesheets are correct).</p>
<p>System: S</p>
<p>S =&gt; P_i and P_i+1 and &#8230; P_i+m and Q_j and Q_j+1 and &#8230; Q_j+n</p>
<p>where P_i and P_i+1 and &#8230; P_i+m is a subset of our success state P_1 and P_2 and &#8230; P_N</p>
<p>Q_j and Q_j+1 and &#8230; Q_j+n are additional predicates, not in our success state.</p></blockquote>
<p>Instead of system you can also read solution. A system can be an already existing system or something that can be built. To illustrate the difference between traditional strategies and the PA strategy, we will do a step by step construction towards an at first unknown success state T_success. We will start from an empty state T_empty.</p>
<blockquote><p>Traditional strategy 1:<br />
Step 1) Design new component C_1.<br />
Step 2) Check new state T_1 with customer: is this state the success state? Yes: done, No: proceed.<br />
Step 3) Design new component C_2, connect C_2 to C_1.<br />
Step 4) Check new state T_2 with customer: is this state the success state? Yes: done, No: proceed.<br />
Step 5) Design new component C_3, connect C_3 to C_2 and C_1.<br />
Step 6) Check new state T_3 with customer: is this state the success state? Yes: done, No: proceed.<br />
&#8230;</p></blockquote>
<p>The first strategy starts building new components, one at a time. After each component is finished we check if success state is reached. This is not unlike many hobby projects where you start from scratch and build a component at a time. Once you are happy with result you have reached T_success.</p>
<blockquote><p>Traditional strategy 2:<br />
Step 1) Apply systems S_q, S_q+1, &#8230; , S_q+k (short: S_q&#8217;) to T_empty.<br />
Step 2) Check new state T_k&#8217; with customer: is this state the success state? Yes: done, No: proceed.<br />
Step 3) Design new component C_1, add this component to S_q&#8217;.<br />
Step 4) Check new state T_k1&#8242; with customer: is this state the success state? Yes: done, No: proceed.<br />
Step 5) Design new component C_2, add this component to S_q+1&#8242;.<br />
Step 6) Check new state T_k2&#8242; with customer: is this state the success state? Yes: done, No: proceed.<br />
&#8230;</p></blockquote>
<p>The second strategy starts from a combination of, most likely existing, systems. We then add components one at a time. After each component we check if we have reached the success state. This is a way of building systems which is used often when adding functionality to legacy systems.</p>
<blockquote><p>Traditional strategy 3:<br />
Step A.1) Apply a permutation of systems S_q, S_q+1, &#8230; , S_q+k (short: S_q&#8217;) to T_empty.<br />
Step A.2) Check new state T_k&#8217; with customer: is this state a good enough approximation of the success state? Yes: proceed to B.1), No: proceed.<br />
Step A.3) Apply a different permutation of systems S_q, S_q+1, &#8230; , S_q+k (short: S_q1&#8242;) to T_empty.<br />
Step A.4) Check new state T_k1&#8242; with customer: is this state a good enough approximation of the success state? Yes: proceed to B.1), No: proceed.<br />
Step A.5) Apply a different permutation of systems S_q, S_q+1, &#8230; , S_q+k (short: S_q2&#8242;) to T_empty.<br />
&#8230;<br />
Step B.1) Design new component C_1, add this component to previously found near success system permutation S_q&#8221;.<br />
Step B.2) Check new state T_k1&#8221; with customer: is this state the success state? Yes: done, No: proceed.<br />
Step B.3) Design new component C_2, add this component to previously found near success system permutation S_q&#8221;.<br />
Step B.4) Check new state T_k1&#8221; with customer: is this state the success state? Yes: done, No: proceed.<br />
&#8230;</p></blockquote>
<p>The third, somewhat less traditional, starts by finding a good combination of systems. This combination should give a good approximation of the final state the customer wants to achieve. Only then you start adding new components.</p>
<blockquote><p>Classic PA strategy:<br />
Step A.1) Create a definition of T_success, called T_success&#8217;.<br />
Step A.2) Check T_success&#8217; with customer: is this state the success state? Yes: proceed to B.1), No: proceed.<br />
Step A.3) Change the definition of T_success&#8217; resulting in a new definition called T_success1&#8242;.<br />
Step A.4) Check T_success1&#8242; with customer: is this state the success state? Yes: proceed to B.1), No: proceed.<br />
&#8230;<br />
Step B.1) Directly derive definitions of components C_1, &#8230; C_u from best definition T_success&#8221;.<br />
Note that C_1, &#8230;, C_u =&gt; P_1 and P_2 and &#8230; P_N must hold.<br />
Step B.2) Match components C_1, &#8230; C_u with systems S_q, S_q+1, &#8230; , S_q+k.<br />
Step B.3) Choose best matching(s). For these matchings T_success&#8221; must be a subset of resulting state T_matching.</p></blockquote>
<p>PA first creates a state definition as close as possible to the success state. It then reviews and alters this state iteratively. Only when the definition is satisfactory the next phase starts. In this phase component definitions are derived from the success state definition. These component definitions are then matched with systems and the best matchings are chosen. Simplicity is important in PA: we always strive for a correct succes state with minimal size.</p>
<p>Note that the first two traditional strategies have no real focus on the final success state. This means that during development the chosen success state might actually be (a lot) different than the real success state. The biggest difference between the third strategy and the PA strategy is that in PA we disregard existing systems (read: solutions) until a really good success state definition has been found. Also, we extract as much information as we can from the success state definition. We then use this information to define components. Each component definition should represent a part of the success state. These component definitions should be mutually exclusive (i.e. no overlap) and all component definitions together should imply the success state. Next we match the component definitions with all known systems and come up with the best matchings. Classic PA is almost done here. We now compare the best matchings and present them, with cost figures, to the customer.</p>
<p>As mentioned earlier an important aspect of PA is the separation of the success state from any solution. This is important because of the reduced effort needed: anyone involved in the process can just think about the success state and can forget about (existing) systems. Depending on the number of systems this can be a serious advantage.</p>
<p>When there are only few solutions and the customer really doesn&#8217;t know what he or she wants, starting from an existing solution and building from that is the way to go. However, when there is one clear success state and many possible (existing) solutions PA will shine.</p>
<ul>
<li>[1]: <a title="http://www.procesacceleratie.nl/" href="http://www.procesacceleratie.nl/" target="_blank">http://www.procesacceleratie.nl/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/11/process-acceleration/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Separation of Concerns and SOA</title>
		<link>http://www.bloggingaboutjava.org/2008/11/separation-of-concerns-and-soa/</link>
		<comments>http://www.bloggingaboutjava.org/2008/11/separation-of-concerns-and-soa/#comments</comments>
		<pubDate>Sun, 23 Nov 2008 23:39:27 +0000</pubDate>
		<dc:creator>Michel Klabbers</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=402</guid>
		<description><![CDATA[According to Google Trends SOA is not as &#8220;hot&#8221; as it was a year ago. According to a recent poll by Finalist [0] at the J-Fall [1] SOA is actually very &#8220;not&#8221;. Does this mean that companies are already preparing or even using SOA? Or are they abandoning SOA?

The idea behind SOA is actually very [...]]]></description>
			<content:encoded><![CDATA[<p>According to Google Trends SOA is not as &#8220;hot&#8221; as it was a year ago. According to a recent poll by Finalist [0] at the J-Fall [1] SOA is actually very &#8220;not&#8221;. Does this mean that companies are already preparing or even using SOA? Or are they abandoning SOA?</p>
<p><span id="more-402"></span></p>
<p>The idea behind SOA is actually very good. It loosely couples the service and the front-end, thus separating our concerns. The term seperation of concerns (SoC) was first introduced by Edsger Dijkstra about 35 years ago. The Wiki has an interesting qoute on SoC [2]:</p>
<blockquote><p>&#8220;All programming paradigms aid developers in the process of improving separation of concerns. For example, object-oriented programming languages can separate concerns into objects, and a design pattern like MVC can separate content from presentation and data-processing (model) from content. Service-oriented design can separate concerns into services.&#8221;</p></blockquote>
<p>In this context SOA really looks like the next step in programming.</p>
<p>Assuming your company is planning to &#8220;go SOA&#8221; in near future, what challenges await?<br />
Here are some of the implications that come to mind when using SOA:</p>
<ul>
<li> use of external services means higher internet bandwidth usage</li>
<li> exposure of internal services to external companies means additional security measures become necessary</li>
<li> using just a single connection to external services means a higher chance of losing messages</li>
<li> use of possibly badly written external services means additional infrastructure and code measures, such as timeouts, become necessary</li>
<li> when chaining services complex behaviour can emerge and message based testing tools are highly advised</li>
</ul>
<p>Using SOA we also have to be more aware of:</p>
<ul>
<li>connection failure</li>
<li> message loss</li>
<li>service failure</li>
</ul>
<p>By using a polling mechanism we could improve our awareness, but the transition to a Service Oriented Architecture will still be a step-by-step process [3], where we will learn by doing.</p>
<ul>
<li>[0]: <a title="http://www.finalist.com/content/19787/hot_or_not_contest_vermaakt_bezoekers_j-fall_" href="http://www.finalist.com/content/19787/hot_or_not_contest_vermaakt_bezoekers_j-fall_" target="_blank">http://www.finalist.com/content/19787/hot_or_not_contest_vermaakt_bezoekers_j-fall_</a></li>
<li>[1]: <a title="http://www.nljug.org/jfall/" href="http://www.nljug.org/jfall/" target="_blank">http://www.nljug.org/jfall/</a></li>
<li>[2]: <a title="http://en.wikipedia.org/wiki/Separation_of_concerns" href="http://en.wikipedia.org/wiki/Separation_of_concerns" target="_blank">http://en.wikipedia.org/wiki/Separation_of_concerns</a></li>
<li>[3]: <a title="http://it.toolbox.com/blogs/the-soa-blog/soa-benefits-challenges-and-risk-mitigation-8075" href="http://it.toolbox.com/blogs/the-soa-blog/soa-benefits-challenges-and-risk-mitigation-8075">http://it.toolbox.com/blogs/the-soa-blog/soa-benefits-challenges-and-risk-mitigation-8075</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/11/separation-of-concerns-and-soa/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Pro4Pro season starting tomorrow</title>
		<link>http://www.bloggingaboutjava.org/2008/10/pro4pro-season-starting-tomorrow/</link>
		<comments>http://www.bloggingaboutjava.org/2008/10/pro4pro-season-starting-tomorrow/#comments</comments>
		<pubDate>Mon, 27 Oct 2008 09:31:07 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[Pro4Pro]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=392</guid>
		<description><![CDATA[



 Tomorrow is the start of a new &#8216;Pro4Pro season&#8217;. Pro4Pro sessions are given by some of the best professionals of Logica.
“Extreem RAD : Live Web Applicatie Ontwikkeling met Oracle Application Express”
“Standardizing SOA with Oracle&#8217;s Application Integration Architecture&#8221;
“Practical Approach to SOA Adoption”




Subject: “Extreem RAD : Live Web Applicatie Ontwikkeling met Oracle Application Express”
Pro: Roel Hartman
Office: [...]]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td>
<img class="alignleft" style="padding:4px;" src="http://www.bloggingaboutjava.org/cms/wordpress2/wp-content/themes/LogicaCMG/images/pro4pro-200x85.gif" alt="" width="160" align="left" /></td>
<td> Tomorrow is the start of a new &#8216;Pro4Pro season&#8217;. Pro4Pro sessions are given by some of the best professionals of Logica.</p>
<li><strong>“Extreem RAD : Live Web Applicatie Ontwikkeling met Oracle Application Express”</strong></li>
<li><strong>“Standardizing SOA with Oracle&#8217;s Application Integration Architecture&#8221;</strong></li>
<li><strong>“Practical Approach to SOA Adoption”</strong></li>
</td>
</tr>
</table>
<p><span id="more-392"></span></p>
<p><strong>Subject: “Extreem RAD : Live Web Applicatie Ontwikkeling met Oracle Application Express”</strong><br />
Pro: Roel Hartman<br />
Office: Arnhem, the Netherlands<br />
Date: 28 oktober 2008</p>
<p><strong>Subject: “Standardizing SOA with Oracle&#8217;s Application Integration Architecture&#8221;</strong><br />
Pro: Adri Greeve<br />
Office: Rotterdam<br />
Date: 13 november 2008</p>
<p><strong>Subject: “Practical Approach to SOA Adoption”</strong><br />
Pro: Edwin van Dis<br />
Office: Amstelveen<br />
Date: 27 november 2008</p>
<p><a href="http://www.logica.nl/pro4pro/">Register for a Pro4Pro session</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/10/pro4pro-season-starting-tomorrow/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Guru4Pro: Thomas Erl @ Logica</title>
		<link>http://www.bloggingaboutjava.org/2008/10/guru4pro-thomas-erl-logica-nl/</link>
		<comments>http://www.bloggingaboutjava.org/2008/10/guru4pro-thomas-erl-logica-nl/#comments</comments>
		<pubDate>Mon, 13 Oct 2008 09:21:03 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[Events]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Guru4Pro]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=378</guid>
		<description><![CDATA[
Guru4Pro Thomas Erl - - ‘How to overcome the key challenges within SOA’.
Date: 20 oktober 2008
On Monday the 20th of October Logica has invited Thomas Erl to speak on the Principles of Service Design and Patterns to transform the most important challenges into a successful realization of a Service Oriented Architecture. Business analyst, functional designers [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="padding:4px;" src="http://www.logica.nl/file/10754" alt="" width="160" align="left" /><br />
<strong>Guru4Pro Thomas Erl - - ‘How to overcome the key challenges within SOA’.<br />
Date: 20 oktober 2008</strong></p>
<p>On Monday the 20th of October Logica has invited Thomas Erl to speak on the Principles of Service Design and Patterns to transform the most important challenges into a successful realization of a Service Oriented Architecture. Business analyst, functional designers and architects will gain new valuable insights on the modeling of services and supporting architecture.</p>
<p><span id="more-378"></span></p>
<p><strong>About Thomas Erl:</strong><br />
Thomas Erl is the world&#8217;s top-selling SOA author, Series Editor of the &#8220;Prentice Hall Service-Oriented Computing Series from Thomas Erl&#8221; (www.soabooks.com), and Editor of The SOA Magazine (www.soamag.com). With over 95,000 copies in print world-wide, his books have become international bestsellers. His most recent titles “SOA Design Patterns” (www.soapatterns.com) and “Web Service Contract Design and Versioning for SOA” were co-authored with a series of industry experts and are being released in the latter half of 2008.</p>
<p>Thomas is also the founder of SOA Systems Inc. (www.soasystems.com), a company specializing in SOA training, certification, and strategic consulting services with a vendor-agnostic focus. For more information, visit www.thomaserl.com.</p>
<p><strong>Program</strong><br />
18.00 uur Welcome &#038; diner<br />
19.00 uur Welcome speach<br />
19.15 uur Thomas Erl – ‘How to overcome the key challenges within SOA’<br />
20.30 uur Drinks</p>
<p><em><strong>The presentation will be in English of course.</strong></em></p>
<p><strong>Location</strong><br />
Logica, Prof. W.H. Keesomlaan 14 in Amstelveen</p>
<p>There is more info on the Logica site (in Dutch). <a href="http://www.logica.nl/guru4pro+-+thomas+erl/400013044">You can also register (”aanmeldingsformulier”) there</a>.</p>
<p><img src="http://www.logica.nl/file/3192" alt="Guru4Pro" width="200" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/10/guru4pro-thomas-erl-logica-nl/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Oracle Developer Certification (professional)</title>
		<link>http://www.bloggingaboutjava.org/2008/09/new-oracle-developer-certification-professional/</link>
		<comments>http://www.bloggingaboutjava.org/2008/09/new-oracle-developer-certification-professional/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 12:43:17 +0000</pubDate>
		<dc:creator>Jasper</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Nice to know]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[PL/SQL]]></category>

		<category><![CDATA[certification]]></category>

		<category><![CDATA[OCP]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=370</guid>
		<description><![CDATA[If you would like to be an Oracle Certified Profressional on a developer level, OCA + Forms was always the only way to go. Until now! Oracle is currently running a beta exam on OCP that includes not Oracle Forms, but goes in deeper to PL/SQL. The official title: Oracle Advanced PL/SQL Developer Certified Professional. [...]]]></description>
			<content:encoded><![CDATA[<p>If you would like to be an Oracle Certified Profressional on a developer level, OCA + Forms was always the only way to go. Until now! Oracle is currently running a beta exam on OCP that includes not Oracle Forms, but goes in deeper to PL/SQL. The official title: Oracle Advanced PL/SQL Developer Certified Professional. The exam (IZ0-146) contains the following subjects:<br />
<br />
<span id="more-370"></span></p>
<ul>
<li>Oracle11g: Advanced PL/SQL</li>
<li>PL/SQL Programming Concepts: Review</li>
<li>Designing PL/SQL Code</li>
<li>Working with Collections</li>
<li>Using Advanced Interface Methods</li>
<li>Implementing Fine-Grained Access Control for VPD</li>
<li>Manipulating Large Objects</li>
<li>Administering SecureFile LOBs</li>
<li>Performance and Tuning</li>
<li>Improving Performance with Caching</li>
<li>Analyzing PL/SQL Code</li>
<li>Profiling and Tracing PL/SQL Code</li>
<li>Safeguarding Your Code Against SQL Injection Attacks</li>
</ul>
<p>More info: <a href="http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=155">http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=155</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/09/new-oracle-developer-certification-professional/feed/</wfw:commentRss>
		</item>
		<item>
		<title>APEX application for maintaining personal contracts</title>
		<link>http://www.bloggingaboutjava.org/2008/09/apex-application-for-maintaining-personal-contracts/</link>
		<comments>http://www.bloggingaboutjava.org/2008/09/apex-application-for-maintaining-personal-contracts/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 12:35:34 +0000</pubDate>
		<dc:creator>Jasper</dc:creator>
		
		<category><![CDATA[Apex]]></category>

		<category><![CDATA[Databases]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Oracle]]></category>

		<category><![CDATA[PL/SQL]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/?p=369</guid>
		<description><![CDATA[APEX is famous for it&#8217;s useful applications, so when the idea poped into my head that I would like to track my personal contracts, APEX was first in line to develop such an application.
The purpose of this app is to be able to track longrunning contracts with their renewalperiods. One month before you should end [...]]]></description>
			<content:encoded><![CDATA[<p>APEX is famous for it&#8217;s useful applications, so when the idea poped into my head that I would like to track my personal contracts, APEX was first in line to develop such an application.</p>
<p>The purpose of this app is to be able to track longrunning contracts with their renewalperiods. One month before you should end the contract (checked on contract enddate) you&#8217;ll receive an email. I used Oracle&#8217;s DBMS_SCHEDUAL to call the procedure that sends out the email. Also, it has an authentication scheme so that different users can use this online app. Although it&#8217;s dutch, everyone can apply <a title="Contract Notifier" href="http://apex.oracle.com/pls/otn/f?p=23729" target="_blank">now</a>.</p>
<p> <a href="http://apex.oracle.com/pls/otn/f?p=23729">http://apex.oracle.com/pls/otn/f?p=23729</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/09/apex-application-for-maintaining-personal-contracts/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Metrics in practice</title>
		<link>http://www.bloggingaboutjava.org/2008/07/metrics-in-practice/</link>
		<comments>http://www.bloggingaboutjava.org/2008/07/metrics-in-practice/#comments</comments>
		<pubDate>Sat, 05 Jul 2008 14:08:40 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<category><![CDATA[General]]></category>

		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/cms/wordpress/?p=154</guid>
		<description><![CDATA[This blog is about software metrics in a very broad interpretation; software quality metrics. During our last project we wanted to elevate the software quality and the quality of the software development process. The first thing that came to our mind was to focus on metrics to evaluate and guide the quality of the code, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="padding:4px;" src="http://www.greenhome.org/img/iStock_000002670795XSmall.jpg" alt="" width="150" align="left" />This blog is about software metrics in a very broad interpretation; software quality metrics. During our last project we wanted to elevate the software quality and the quality of the software development process. The first thing that came to our mind was to focus on metrics to evaluate and guide the quality of the code, but after further thought we decided this was not the complete answer. We needed to upgrade our development process first. On the other hand we didn’t want to try it on the whole project so we decided to build one component using the new strategy and the other using the default one.</p>
<p><span id="more-158"></span></p>
<p>To realize a better workflow the first thing we did was to implement a build-server. We used CruiseControl which suited perfectly for the task, it’s pretty easy to setup and it has a lot of extension points to combine it with all kinds of tools (notifiers, automated tests, software—metrics, version control etc.)</p>
<p>This way we would be able to keep an eye on the status of the code in version control. And we could see when the software ‘breaks’ or works. Well actually we could only see if it would compile, which is not the same  <img src='http://www.bloggingaboutjava.org/cms/wordpress2/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So we installed the automated testing component of CruiseControl and were &#8216;ready to rock&#8217; the project.</p>
<p>Then again, automated testing only works if you got the right tests. So we decided to use the test-driven approach. First write the test, then the code. This way the build server could tell us, what functionality was thought of, and which part was actually working.</p>
<p>Was this it? Well not really, as the test-driven approach was new for our team it was easy to fall back on the old approach, with the risk of writing more code then was necessary to pass the test. Resulting in untested code.<br />
To pin-down this risk we decided to integrate test-coverage into the build-server, cobertura. This way we would be able to see what code was touched by the test and what code not.</p>
<p>What did we learn with our experiment? First of all it felt like the whole process was going a lot smoother, the test driven approach and tooling made us feel much more confident about the quality of our work. And we realized a pretty high velocity, (the work was done much faster then expected).</p>
<p>This project was for a backend component which I think suits the testdriven approach better then a pure frontend component.</p>
<p>So using this approach(TDD+Cobertura+CruiseControl) for this project helped us achieve a better software engineering process. And it&#8217;s very likely that we&#8217;ll re-use this approach on our next project.</p>
<p><a href="http://cobertura.sourceforge.net/">Cobertura</a><br />
<a href="http://cruisecontrol.sourceforge.net/">CruiseControl</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/07/metrics-in-practice/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Goodbye BloggingAboutJava/Oracle, welcome Blogging About Software Development!!</title>
		<link>http://www.bloggingaboutjava.org/2008/05/goodbye-bloggingaboutjavaoracle-welcome-bloggingaboutsoftware/</link>
		<comments>http://www.bloggingaboutjava.org/2008/05/goodbye-bloggingaboutjavaoracle-welcome-bloggingaboutsoftware/#comments</comments>
		<pubDate>Tue, 13 May 2008 08:55:41 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/cms/wordpress2/?p=296</guid>
		<description><![CDATA[As of today two of Logica&#8217;s weblogs have been merged; BloggingAboutJava &#38; BloggingAboutOracle. Both have been around for quite some time but since the internal movement of management to combine oracle and java into the Software Development Cluster, we decided it was time to merge the blogs.
We now have one blog with about 45 users [...]]]></description>
			<content:encoded><![CDATA[<p>As of today two of Logica&#8217;s weblogs have been merged; BloggingAboutJava &amp; BloggingAboutOracle. Both have been around for quite some time but since the internal movement of management to combine oracle and java into the Software Development Cluster, we decided it was time to merge the blogs.</p>
<p>We now have one blog with about 45 users and 290 blogposts. The old urls will remain, but both now point to the central merged blog.</p>
<p>For everyone at Logica who hasn&#8217;t signed up for a blog account this is your chance, use the contact form to sign up and claim your fame <img src='http://www.bloggingaboutjava.org/cms/wordpress2/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<table border="0" bgcolor="#ffffff">
<tbody>
<tr>
<td><img src="http://upload.wikimedia.org/wikipedia/en/thumb/2/2e/Java_Logo.svg/100px-Java_Logo.svg.png" border="0" alt="" width="100" height="186" /></td>
<td><img src="http://www.pocketpcmag.com/blogs/media/java_duke_mascot.jpg" alt="" /></td>
<td><img src="http://oracleimg.com/admin/images/ocom/hp/oralogo_small.gif" alt="" /></td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/05/goodbye-bloggingaboutjavaoracle-welcome-bloggingaboutsoftware/feed/</wfw:commentRss>
		</item>
		<item>
		<title>String newCompanyName = OldCompanyName.substring(0,6);</title>
		<link>http://www.bloggingaboutjava.org/2008/03/string-newcompanyname-oldcompanynamesubstring06/</link>
		<comments>http://www.bloggingaboutjava.org/2008/03/string-newcompanyname-oldcompanynamesubstring06/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 15:57:03 +0000</pubDate>
		<dc:creator>Arjen van Schie</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutjava.org/2008/03/string-newcompanyname-oldcompanynamesubstring06/</guid>
		<description><![CDATA[So the day has finally come, after the announcement a few months ago, we now changed our brand name to Logica. Some like it, others still have feelings for the old one.
The reason for the new brand; simplicity, a unified brand replacing the former LogicaCMG, Edinfor, Unilog and WM-data.
On the other hand, it&#8217;s just a [...]]]></description>
			<content:encoded><![CDATA[<p>So the day has finally come, after the announcement a few months ago, we now changed our brand name to Logica. Some like it, others still have feelings for the old one.</p>
<p>The reason for the new brand; simplicity, a unified brand replacing the former LogicaCMG, Edinfor, Unilog and WM-data.</p>
<p>On the other hand, it&#8217;s just a new name and a new logo which both don&#8217;t differ that much from the old LogicaCMG. Apply substring() to LogicaCMG and there you go, firm upgraded.</p>
<p> So goodbye LogicaCMG,</p>
<p>         welcome Logica</p>
<p><img width="309" height="82" src="http://www.logica.com/img/content-design/header-imagery/76-Logica_Sublevel_Header.jpg " /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/03/string-newcompanyname-oldcompanynamesubstring06/feed/</wfw:commentRss>
		</item>
		<item>
		<title>LogicaCMG becomes Logica</title>
		<link>http://www.bloggingaboutjava.org/2008/02/logicacmg-becomes-logica/</link>
		<comments>http://www.bloggingaboutjava.org/2008/02/logicacmg-becomes-logica/#comments</comments>
		<pubDate>Wed, 27 Feb 2008 13:01:12 +0000</pubDate>
		<dc:creator>Administrator</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.bloggingaboutoracle.org/archives/logicacmg-becomes-logica</guid>
		<description><![CDATA[The LogicaCMG group is unifying all its existing brands under one new name :Logica.
The LogicaCMG brand, along with the brands of Edinfor, Unilog and WM-data, will transition to the new global brand name in conjunction with the companies preliminary financial results for 2007.
Logica combines the local strengths of all its previous brands with the scale, [...]]]></description>
			<content:encoded><![CDATA[<p>The LogicaCMG group is unifying all its existing brands under one new name :Logica.</p>
<p>The LogicaCMG brand, along with the brands of Edinfor, Unilog and WM-data, will transition to the new global brand name in conjunction with the companies preliminary financial results for 2007.</p>
<p>Logica combines the local strengths of all its previous brands with the scale, capability and reach to compete effectively for major opportunities and larger customers. The enlarged group draws on the strength of the local businesses, enhancing its ability to cross-sell propositions and capabilities.</p>
<p>For more information, please look at the <a class="url" href="http://www.logica.com/news+and+media/400010916" target="_blank">full news bulletin</a> on logica.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bloggingaboutjava.org/2008/02/logicacmg-becomes-logica/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
