<?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>Application Development Tools &#187; Process Maturity</title>
	<atom:link href="http://www.selectbs.com/adtblog/index.php/category/process-maturity/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.selectbs.com/adtblog</link>
	<description>Process Improvement, Business &#38; Systems Modeling</description>
	<lastBuildDate>Mon, 05 Jul 2010 09:22:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Training Software Engineers &#8211; Part 3 &#8211; Aspect-Oriented Teaching</title>
		<link>http://www.selectbs.com/adtblog/index.php/2010/06/training-software-engineers-aspect-oriented-teachin/</link>
		<comments>http://www.selectbs.com/adtblog/index.php/2010/06/training-software-engineers-aspect-oriented-teachin/#comments</comments>
		<pubDate>Sun, 20 Jun 2010 04:12:31 +0000</pubDate>
		<dc:creator>Phil Webb</dc:creator>
				<category><![CDATA[Business modeling]]></category>
		<category><![CDATA[Process Maturity]]></category>
		<category><![CDATA[System modeling]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://www.selectbs.com/adtblog/?p=59</guid>
		<description><![CDATA[While recently pulling together over 130 hours of video-based training material for software engineers and project managers I was reminded of how regularly a number of key aspects kept cropping up, even as we looked at very different software engineering practices and ideas, like SSADM, UML, BPMN, test driven development, risk management and so on.  [...]]]></description>
			<content:encoded><![CDATA[<p>While recently pulling together over 130 hours of <a href="http://www.selectbs.com/adt/solutions-general/video-based-training">video-based training material for software engineers and project managers</a> I was reminded of how regularly a number of key aspects kept cropping up, even as we looked at very different <a href="http://www.selectbs.com/adt/analysis-and-design/analysis-and-design">software engineering practices and ideas</a>, like SSADM, UML, BPMN, test driven development, risk management and so on.  In an ideal teaching environment I would love to see these concepts form the backbone of the curriculum, so that a student is effectively able to navigate the course content through following the concepts, while at the same time covering a wide range of topics.</p>
<p>Let&#8217;s call this &#8216;aspect-oriented teaching&#8217; and consider how it might work&#8230;</p>
<p><span id="more-59"></span>In my first post of this series a few weeks back I mentioned the relevance of using conventional techniques such as <a href="http://www.selectbs.com/adtblog/index.php/2010/05/training-software-engineers-ssadm/">SSADM to illustrate the concepts of abstraction and iteration</a>. These are ideal illustrations of what I term <em>software engineering aspects</em>. Although these should not to be confused with the specific discipline of <a href="http://www.developer.com/lang/article.php/3308941/Aspect-Oriented-Programming.htm"><em>aspect-oriented programming (AOP)</em></a>, they are a concept not dissimilar to the <em>crosscutting concerns</em> of AOP.</p>
<p>The usual example of a crosscutting concern is <em>logging</em> &#8211; a technique often used to help trace method calls, particularly in distributed systems which may not be easily debugged. Entry and exit points to methods will often be logged with some textual information stored to some file or other storage mechanism. The difficulty is that in most programming languages in order to acheive this the engineer is forced to add appropriate logging method calls in each and every method of the system.</p>
<p>The idea of AOP is that these crosscutting concerns are transformed into single units called aspects which are implemented separately from the rest of the project, then combined into the final executable form using an aspect weaver. This enables a single, self-contained aspect to contribute to the implementation of many methods and classes without the original code having any knowledge of the aspect or its functionality.</p>
<p>So, dragging us back to the point of this post, I consider software engineering aspects to be a means of identifying common concepts across a range of SE disciplines, thereby allowing those disciplines to be better integrated in the curriculum. This means that in addition to the publication of a series of modules on the basics of programming, data structures, object-oriented analysis and design, UML, SSADM, architectures, project management, software testing and so on, one might consider publishing a matrix which shows how aspects such as abstraction and iteration apply to these topics.</p>
<p>An even braver approach might even re-arrange course content so that each semester was aspect-themed, with traditional modules run over a longer period of time in order to allow the student to be led through an exploration of an aspect in different disciplines. The semester is then effectively &#8216;framed&#8217; by the aspect, providing a common meeting place for the varied topics, and a means of communicating to students the importance and relevance of identifying commonalities in a range of subjects. This exercise in itself might also help students in their own quest to generalise concepts in the systems they create.</p>
<p>I&#8217;m sure that this poses a number of questions to those involved in the day-to-day education of software engineers.</p>
<ul>
<li>Are examinations aspect-oriented or topic-oriented?</li>
<li>If a topic is being spread over a longer period to allow all relevant aspect-related subjects to be covered, how can the topic be efficiently assessed?</li>
</ul>
<p>Fair enough &#8211; post them and let&#8217;s discuss.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.selectbs.com/adtblog/index.php/2010/06/training-software-engineers-aspect-oriented-teachin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outsourcing Development</title>
		<link>http://www.selectbs.com/adtblog/index.php/2010/05/outsourcing-development/</link>
		<comments>http://www.selectbs.com/adtblog/index.php/2010/05/outsourcing-development/#comments</comments>
		<pubDate>Mon, 10 May 2010 14:19:28 +0000</pubDate>
		<dc:creator>Phil Webb</dc:creator>
				<category><![CDATA[Business modeling]]></category>
		<category><![CDATA[Process Maturity]]></category>
		<category><![CDATA[System modeling]]></category>
		<category><![CDATA[BPMN]]></category>
		<category><![CDATA[cmmi]]></category>
		<category><![CDATA[offshore]]></category>
		<category><![CDATA[outsource]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.selectbs.com/adtblog/?p=51</guid>
		<description><![CDATA[A year or so ago, Callum Potter blogged about an article regarding the outsourcing of business processes, and the role that Business Motivation Modeling (BMM) techniques and Business Process Modeling using BPMN can play in facilitating this. I&#8217;ve continued to investigate the needs of the outsourcing community, and have recently published a new whitepaper entitled [...]]]></description>
			<content:encoded><![CDATA[<p>A year or so ago, Callum Potter blogged about an article regarding the <a href="http://www.selectbs.com/adtblog/index.php/2009/03/do-you-know-your-business-processes-well-enough-to-outsource-them/">outsourcing of business processes</a>, and the role that <a href="http://www.selectbs.com/adt/analysis-and-design/business-motivation-modeling-bmm">Business Motivation Modeling (BMM)</a> techniques and <a href="http://www.selectbs.com/adt/analysis-and-design/business-process-modeling-bpm">Business Process Modeling using BPMN</a> can play in facilitating this. I&#8217;ve continued to investigate the needs of the outsourcing community, and have recently published a new whitepaper entitled &#8216;<a href="http://www.selectbs.com/adt/whitepapers/outsourcing-development">Outsourcing Development</a>&#8216; in which I aim to map the challenges of outsourcing to the application of process support, analysis &amp; design, and asset management tools.</p>
<p><span id="more-51"></span></p>
<p>The five key challenges I examined were:</p>
<ul>
<li>Keeping business processes and the solutions that support them closely aligned</li>
<li>Maintaining investment in intellectual property within, or accessible to, the organization</li>
<li>Understanding the hand-over points between client and supplier organizations</li>
<li>Preserving interoperability of long-lived IT system assets</li>
<li>Minimizing client risk through adherence to standards for development practices</li>
</ul>
<p>Of course, these challenges are in addition to the risks that are associated with the management of outsourced activities themselves.</p>
<p>In times where standards-based process improvement is <em>de rigueur</em>, seen in the continued push towards CMMI levels 4 &amp; 5, it seems strange to me that so often these activities don&#8217;t include the use of <a href="http://www.selectbs.com/adt/analysis-and-design/analysis-and-design">standards-based analysis &amp; design methods</a>. Even stranger is that the software assets which are being developed offshore are so rarely subject to formal <a href="http://www.selectbs.com/adt/software-asset-management/software-asset-management">asset management techniques</a> which can help to not only control the assets, but also to widen their use within a component- or service-based approach.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.selectbs.com/adtblog/index.php/2010/05/outsourcing-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

