<?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>SDLC Blog &#187; Case</title>
	<atom:link href="http://www.rodenas.org/blog/category/case/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rodenas.org/blog</link>
	<description>Software Development Life Cycle: Methodologies and Tools for the Enterprise</description>
	<lastBuildDate>Fri, 09 Sep 2011 12:02:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Explicit Design</title>
		<link>http://www.rodenas.org/blog/2008/11/27/explicit-design/</link>
		<comments>http://www.rodenas.org/blog/2008/11/27/explicit-design/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 22:45:59 +0000</pubDate>
		<dc:creator>ferdy</dc:creator>
				<category><![CDATA[Case]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Explicit Design]]></category>

		<guid isPermaLink="false">http://www.rodenas.org/blog/?p=488</guid>
		<description><![CDATA[TweetTweetSteve Cook: Cameron has been blogging about new features in our product.. In a recent post he used the term Explicit Design. I&#8217;ve been reflecting on this, and I like it. In software development we really do need to capture design data that is not just the code, but should be saved and versioned just [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.rodenas.org/blog/2008/11/27/explicit-design/&via=ferdy&text=Explicit Design&related=:&lang=en&count=vertical" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.rodenas.org/blog/2008/11/27/explicit-design/&via=ferdy&text=Explicit Design&related=:&lang=en&count=vertical" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p><a href="http://blogs.msdn.com/stevecook/archive/2008/11/27/explicit-design.aspx">Steve Cook</a>:</p>
<blockquote><p>
<a href="http://blogs.msdn.com/camerons/">Cameron</a> has been blogging about new features in our product.. In <a href="http://blogs.msdn.com/camerons/archive/2008/11/10/testing-draft-to-blog.aspx">a recent post</a> he used the term Explicit Design.  I&#8217;ve been reflecting on this, and I like it. In software development we really do need to capture design data that is not just the code, but should be saved and versioned just like the code.  What do we call it?  We could call it &#8220;models&#8221; but &#8220;model&#8221; and &#8220;model driven development&#8221; are subject to so much historical baggage and methodology and <a href="http://blogs.msdn.com/keith_short/archive/2008/11/18/comments-on-communication-between-doug-purdy-and-lars-corneliussen.aspx">terminology arguments</a>.  &#8220;Model&#8221; just seems to imply baked-in code generation and round tripping, when there is so much more that you can do with it: planning, verifying, testing, refactoring. We need new vocabulary that represents our ability to capture versioned design data at a more abstract level than the code without simultaneously implying the history of CASE.
</p></blockquote>
<p>I have to agree: changing the name doesn&#8217;t solve the root of the problem, but perhaps we start thinking in a different way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rodenas.org/blog/2008/11/27/explicit-design/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Repositories for Models: VCS or Databases?</title>
		<link>http://www.rodenas.org/blog/2008/08/07/repositories-for-models-vcs-or-databases/</link>
		<comments>http://www.rodenas.org/blog/2008/08/07/repositories-for-models-vcs-or-databases/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 23:29:36 +0000</pubDate>
		<dc:creator>ferdy</dc:creator>
				<category><![CDATA[Case]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[Case Tools]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[DSM]]></category>
		<category><![CDATA[VCS]]></category>

		<guid isPermaLink="false">http://www.rodenas.org/blog/?p=346</guid>
		<description><![CDATA[TweetTweetA recent post from Markus Voelter replying some articles from Martin Fowler has resulted in an excellent discussion about repositories for MDSD and textual vs graphical DSLs. I was thinking about joining the discussion in the original post, but as my answer is a bit long to be added as a comment, I&#8217;ll reply him [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.rodenas.org/blog/2008/08/07/repositories-for-models-vcs-or-databases/&via=ferdy&text=Repositories for Models: VCS or Databases?&related=:&lang=en&count=vertical" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.rodenas.org/blog/2008/08/07/repositories-for-models-vcs-or-databases/&via=ferdy&text=Repositories for Models: VCS or Databases?&related=:&lang=en&count=vertical" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p>A recent <a href="http://voelterblog.blogspot.com/2008/07/replying-to-martin-fowlers-recent-co.html">post</a> from Markus Voelter replying <a href="http://martinfowler.com/bliki/MDSDandDSL.html">some</a> <a href="http://martinfowler.com/bliki/ModelDrivenSoftwareDevelopment.html">articles</a> from Martin Fowler has resulted in an excellent discussion about repositories for <acronym title="Model Driven Software Development">MDSD</acronym> and textual vs graphical <acronym title="Domain Specific Languages">DSLs</acronym>. I was thinking about joining the discussion in the original post, but as my answer is a bit long to be added as a comment, I&#8217;ll reply him here.</p>
<p>In his post, Markus raised a question that recurrently appears in my thoughts: where is it better to store models? as files in a <a href="http://en.wikipedia.org/wiki/Version_control_system">VCS</a> (like CVS/SVN) or as structured data in databases?</p>
<p>Unlike Markus, my first answer is usually: without any doubt, in databases. I suppose that this answer has much to do with my professional background, since in the past I <a href="http://www.rodenas.org/blog/2006/11/07/object-oriented-case-tools-lost-opportunities-and-future-directions/">have worked</a> extensively with <acronym title="Computer Aided Software Engineering)">CASE</acronym> tools. Yes, I believe I&#8217;m one of these people that M. Fowler describes in his <a href="http://martinfowler.com/bliki/ModelDrivenSoftwareDevelopment.html">post</a> about MDSD:</p>
<blockquote><p>The MDSD vision evolved from the development of graphical design notations and CASE tools. Proponents of these techniques saw graphical design notations as a way to raise the abstraction level above programming languages &#8211; thus improving development productivity. While these techniques and tools never caught on too far, the basic core ideas still live on and there is an ongoing community of people still developing them.</p>
</blockquote>
<p>But also, it is because I&#8217;m used to working with very large repositories, where there are lots of relationships between models. If you work with lots of components but few relationships, you usually do not have problems working with local files (such as Eclipse does). VCSs are able to deal quite well large amount of files. But what happens when you have, for example, your entire transactional system modeled (> 30,000 components), with a very high index of reusability between models (lots of links), and each model can belong to a different owner (only the owner can modify it)? As Markus points out at the comments:</p>
<blockquote><p>Also, text files tend to be a bit hard to scale. Often the minimum you need is some kind of &#8220;cross-indexer&#8221; via a database so you can efficiently cross-ref, search, etc. In a &#8220;real repository&#8221; that&#8217;s easier.</p>
<p>Consider the Xtext case. What do you do once you have hundreds of Xtext resources? Each linking into each other. How do you efficiently load, unload, search, find-refs, etc? You need some kind of (in memory or persistent) index.</p>
</blockquote>
<p>Exactly. When you work with huge amount of data and links, you need to provide some kind of impact analysis or cross-reference functionalities, you must be able to do complex queries, you must version not only the components but also the relationships, and you must be able to link to other models without the need to download them locally. Yes, I know that there are some solutions out there that provide some of those facilities also for files, as text search engine libraries (<a href="http://lucene.apache.org/java/docs/">Apache Lucene</a>) and query languages (for example, <a href="http://www.w3.org/TR/xquery/">XQuery</a> for <acronym title="Extensible Markup Language">XML</acronym> or <a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL</a> for <acronym title="Resource Description Framework">RDF</acronym>). But IMHO all of these solutions, although they work very well with few components, are not as powerful as what you can get *for free* using relational databases.</p>
<p>But I must also say that my opinion has changed somewhat over the years, due to my experience working with repositories. The approach of working with databases also has some problems. One of them is that in order to work with the tool you always must be connected to the database, and, although this situation sounds silly, this may limit the productivity of some developers. With VCS, you only need to be connected while you perform the checkout of the component, but after that, you can work locally with it. Another pain point is that in relational databases, you must to create a fixed schema (no matter if you use a metamodel, you always must create it), and that could be a mess when you need to modify the data structure, since <acronym title="Relational Database Management System">RDBMS</acronym> doesn&#8217;t provide schema versioning facilities. Fortunately, some new approaches has appeared in the market in the last years, as <a href="http://www.rodenas.org/blog/2008/02/19/playing-with-couchdb/">schema-free</a> databases, that will help in this task. Another side effect is that if you want to preserve the integrity of the models and the relationships, you have to deal with locking mechanisms, so the scenario become worse, and usually, the system tends to be over-engineered. And finally, there are also some functionalities not provided by databases, as versioning, accountability (who, when and what) and in some cases traceability (why), so you must develop it by yourself (yay! we love to reinvent the wheel!). Almost all VCSs provide these facilities.</p>
<p>Let&#8217;s go back again to the original post. Markus talks about some conditions where repositories could fit well in this scenario:</p>
<blockquote><p>My point is that a repository is not per se a bad thing, provided the following criteria: (1) you store all your relevant stuff in it (2) it provides versioning facilities (3) supports diff/merge on a meaningful abstraction level.</p>
</blockquote>
<p>Ummm, I agree with almost everything, but I&#8217;ve some concerns:</p>
<ol>
<li>Not sure, if he talks about storing all of the data that belongs to a model in the repository, then I agree. But if he talks about storing the model and the code together, then I disagree. There are some scenarios where this is not convenient. For example, when you want to be platform independent (and I&#8217;m not talking about all the <acronym title="Model-Driven Architecture">MDA</acronym> stuff). The various parser/generator/interpret could run and store the code/binary on several platforms, and not always the same platform where you store the model.</li>
<li>I agree, versioning is an essential facility.</li>
<li>Diff/Merge works well with textual DSL&#8217;s, with a concrete syntax. But, although this is a great feature, is it mandatory? I have worked a long time without this feature and I assure you that you can survive without it. And what happens with graphical DSLs?</li>
</ol>
<p>Before concluding, I would also like to comment one of the latest projects where <a href="http://www.rodenas.org/blog/2007/02/10/behind-the-firewall-experiencies/">we applied</a> MDSD. At this project, we decided to use a <a href="http://www.oracle.com/technology/tech/xml/xmldb/index.html">Oracle XML DB</a> to store our models in XML (something like to what <a href="http://www.cfmu.eurocontrol.int/">Eurocontrol-CFMU</a> <a href="http://www.oracle.com/technology/oramag/oracle/06-jan/o16xml.html">have done</a> for their <acronym title="Unified Modeling Language">UML</acronym> models), but we added also some <a href="http://en.wikipedia.org/wiki/Metadata">metadata</a>. By storing the XML directly in the database, we avoid the need to decompose the XML into a relational schema, and allow developers to download the XML and work locally without the need to be connected to the database. We could use also all the <acronym title="Structured Query Language">SQL</acronym> query facilities, and for those situations where the performance could be a problem, then we use the metadata to store some relevant data and relationships. Oh, and this RDBMS provides us also with versioning facilities. At this moment, we don&#8217;t have enough data in the repository to tell you if this approach will be a success or not. Let&#8217;s see!</p>
<p>To sum up (or not!). I believe you should never reject the database approach (nor the VCS option). I can not give you a &#8220;Golden Rule&#8221;, but my advice is that if you are not going to have lots of relationships between models, then use the VCS approach. If not, then analyze first what a VCS approach could offer you, and if it doesn&#8217;t fit well with your requirements, then use the database approach. But please, be careful and don&#8217;t tend to design the metamodel too much complicated, or you could have lots of performance problems.</p>
<p>As the post is quite long, I will leave for another post my thoughts about textual vs graphical DSLs. In the meantime, what is your opinion? I would love to hear stories from other folks on what people are doing in their companies.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rodenas.org/blog/2008/08/07/repositories-for-models-vcs-or-databases/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Behind the firewall experiencies</title>
		<link>http://www.rodenas.org/blog/2007/02/10/behind-the-firewall-experiencies/</link>
		<comments>http://www.rodenas.org/blog/2007/02/10/behind-the-firewall-experiencies/#comments</comments>
		<pubDate>Sat, 10 Feb 2007 01:59:16 +0000</pubDate>
		<dc:creator>ferdy</dc:creator>
				<category><![CDATA[Case]]></category>
		<category><![CDATA[MDA]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rodenas.org/blog/2007/02/10/behind-the-firewall-experiencies/</guid>
		<description><![CDATA[TweetTweetWell, I just finished the work I have been involved during the last month. The task consisted mainly to assemble a RFP document to renew all of our modeling and automatic code generation toolset. Next Monday, we will introduce to some selected providers which are the project objectives and which are the requirements. Advancing some [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.rodenas.org/blog/2007/02/10/behind-the-firewall-experiencies/&via=ferdy&text=Behind the firewall experiencies&related=:&lang=en&count=vertical" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.rodenas.org/blog/2007/02/10/behind-the-firewall-experiencies/&via=ferdy&text=Behind the firewall experiencies&related=:&lang=en&count=vertical" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p>Well, I just finished the work I have been involved during the last month. The task consisted mainly to assemble a <a href="http://en.wikipedia.org/wiki/RFP">RFP</a> document to renew all of our modeling and automatic code generation toolset. Next Monday, we will introduce to some selected providers which are the project objectives and which are the requirements.</p>
<p>Advancing some details, I will tell you that in a first stage we will start designing and developing an infrastructure where all the development tools will rely on. We will also ask to design and develop a tool to model the business logic flow and to automatically generate the code that will execute on a <a href="http://en.wikipedia.org/wiki/Information_Management_System">IMS</a>/<a href="http://en.wikipedia.org/wiki/PL/I">PL/I</a>/<a href="http://en.wikipedia.org/wiki/IBM_DB2">DB2</a> mainframe environment under a property framework (we call this framework “<i>Application Services Integration</i>”).</p>
<p>The architecture of this framework could be compared to a <a href="http://en.wikipedia.org/wiki/Service-oriented_architecture">service oriented architecture</a> (<acronym title="Service Oriented Architecture">SOA</acronym>), thought in this case services are coupled, mainly because performance (we have constant peaks of 1.500 tx/s and one requirement is that the response time must be lower than 1 second).</p>
<p>This RFP is our second attempt to renew our development toolset. First attempt, developed under something similar to the <a href="http://en.wikipedia.org/wiki/Model-driven_architecture">MDA</a> paradigm (or should I say <a href="http://en.wikipedia.org/wiki/Domain_Specific_Language">DSL</a> as we didn’t use <a href="http://en.wikipedia.org/wiki/Unified_Modeling_Language">UML</a>?) and based on <a href="http://www.eclipse.org/pde/">Eclipse PDE</a> framework plus a <a href="http://en.wikipedia.org/wiki/Meta-modeling">metamodel</a> that relies on a central repository database, was a complete failure. I will explain the reasons (a forensic analysis) in another post, although it’s about performance and scalability in a geographically disperse environment.</p>
<p>Why I’m telling you this? Well, because I want to share with you similar experiences. Unfortunately, this kind of experiences are usually hidden “<i>behind the firewall</i>”, and, in my opinion, it’s positive to share these details with others as we can learn about success and failures (as my manager usually says to me, “<i>you always must assume that the rest of the people are cleverer than you</i>”).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rodenas.org/blog/2007/02/10/behind-the-firewall-experiencies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IBM Application Development Cycle (AD/Cycle)</title>
		<link>http://www.rodenas.org/blog/2006/12/12/ibm-application-development-cycle-adcycle/</link>
		<comments>http://www.rodenas.org/blog/2006/12/12/ibm-application-development-cycle-adcycle/#comments</comments>
		<pubDate>Mon, 11 Dec 2006 23:34:42 +0000</pubDate>
		<dc:creator>ferdy</dc:creator>
				<category><![CDATA[Case]]></category>
		<category><![CDATA[IBM]]></category>

		<guid isPermaLink="false">http://www.rodenas.org/blog/2006/12/12/ibm-application-development-cycle-adcycle/</guid>
		<description><![CDATA[TweetTweetI&#8217;ve found an IBM Systems Journal article about the AD/Cycle strategy and architecture that makes me cry. AD/Cycle was one of the first projects that I had been involved as a software engineer (1991). Years ago, repository technology promised to change the way corporate IT units build mission-critical software. Development teams could store meta data [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.rodenas.org/blog/2006/12/12/ibm-application-development-cycle-adcycle/&via=ferdy&text=IBM Application Development Cycle (AD/Cycle)&related=:&lang=en&count=vertical" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.rodenas.org/blog/2006/12/12/ibm-application-development-cycle-adcycle/&via=ferdy&text=IBM Application Development Cycle (AD/Cycle)&related=:&lang=en&count=vertical" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p>I&#8217;ve found an <a href="http://www.research.ibm.com/journal/sj/">IBM Systems Journal</a> article about the <a href="http://domino.watson.ibm.com/tchjr/journalindex.nsf/0/d44faeb516f5013985256bfa00685c34?OpenDocument">AD/Cycle strategy and architecture</a> that makes me cry. AD/Cycle was one of the first projects that I had been involved as a software engineer (1991).</p>
<p>Years ago, repository technology promised to change the way corporate IT units build mission-critical software. Development teams could store meta data in a single warehouse and access that meta data using a variety of tools from multiple vendors. IBM&#8217;s AD/Cycle <acronym title="Computer Aided Software Engineering">CASE</acronym> initiative, based on <a href="http://en.wikipedia.org/wiki/Systems_Application_Architecture">Systems Application Architecture</a>, was an attempt to centralize the management of mainframe application development, supporting the integration of tools through a consistent user interface (<a href="http://en.wikipedia.org/wiki/Common_User_Access">CUA</a>), workstation services, an AD information model, tool services, Repository Services, and Library Services that provide control for defining and sharing application development data. The centerpiece was the Repository Manager MVS (RM/MVS) running on a mainframe (<a href="http://en.wikipedia.org/wiki/MVS">MVS</a>) and <a href="http://en.wikipedia.org/wiki/IBM_DB2">DB2</a>, that was built somewhat on the lines of the <acronym title="Information Resource Dictionary System">IRDS</acronym> though not quite compliant with the specifications. In addition, IBM also developed <acronym title="Source Code Library Manager">SCLM</acronym> to manage the various files of application development code. The architectural vision was to provide seamless operation between the IBM Repository and the SCLM.</p>
<p>Unfortunately, repository-based development failed to deliver the goods to IT development shops. Since then, IBM has switched to the client/server model, and its repository technology has evolved through <a href="http://en.wikipedia.org/wiki/IBM_Configuration_Management_Version_Control_%28CMVC%29">Configuration Management Version Control</a>, from 1991, to newer products in the <a href="http://www-306.ibm.com/software/rational/offerings/scm.html">Rational product line</a>.</p>
<p>In our shop, we finally dropped AD/Cycle and developed an in-house meta data repository that it&#8217;s still running in production, providing a useful integration through our mainframe toolset.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rodenas.org/blog/2006/12/12/ibm-application-development-cycle-adcycle/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Object Oriented CASE Tools: Lost Opportunities and Future Directions</title>
		<link>http://www.rodenas.org/blog/2006/11/07/object-oriented-case-tools-lost-opportunities-and-future-directions/</link>
		<comments>http://www.rodenas.org/blog/2006/11/07/object-oriented-case-tools-lost-opportunities-and-future-directions/#comments</comments>
		<pubDate>Tue, 07 Nov 2006 00:13:22 +0000</pubDate>
		<dc:creator>ferdy</dc:creator>
				<category><![CDATA[Case]]></category>
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.rodenas.org/blog/2006/11/07/object-oriented-case-tools-lost-opportunities-and-future-directions/</guid>
		<description><![CDATA[TweetTweetI have enjoyed reading the &#8220;Object Oriented CASE Tools: Lost Opportunities and Future Directions&#8221; article at developer.* I have spent more than 15 years designing and developing in-house case tools for our legacy systems (more than 1.000 developers). I have implemented almost all of the “Traditional CASE tools” features described in the article, and they [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.rodenas.org/blog/2006/11/07/object-oriented-case-tools-lost-opportunities-and-future-directions/&via=ferdy&text=Object Oriented CASE Tools: Lost Opportunities and Future Directions&related=:&lang=en&count=vertical" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div style="float: right; margin-left: 10px;"><a href="http://twitter.com/share?url=http://www.rodenas.org/blog/2006/11/07/object-oriented-case-tools-lost-opportunities-and-future-directions/&via=ferdy&text=Object Oriented CASE Tools: Lost Opportunities and Future Directions&related=:&lang=en&count=vertical" class="twitter-share-button">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><p>I have enjoyed reading the &#8220;<a href="http://www.developerdotstar.com/mag/articles/oo_case.html">Object Oriented CASE Tools: Lost Opportunities and Future Directions</a>&#8221; article at <a href="http://www.developerdotstar.com/">developer.*</a></p>
<p>I have spent more than 15 years designing and developing in-house case tools for our legacy systems (more than 1.000 developers). I have implemented almost all of the “Traditional CASE tools” features described in the article, and they have proved that they are necessary to archive a very productive development environment.</p>
<p>Now, we are focusing our efforts on distributed systems, and specifically, in OO environments. We have a current discussion about which is the best strategy towards our toolset in these environments. On one side, there is the opinion that we must use OO <a href="http://en.wikipedia.org/wiki/Commercial_off-the-shelf">COTS</a> tools; and on the other side, that we must developed our own tools following the guidelines of the traditional case tools. The absence of some of the features stated in the article is inclining the balance towards the second option (the traditional one). Some features, as the central repository relying on databases, are essentials in environments focused in the reusability of the artifacts, and with OO COTS tools you can’t implement them, with or without “frameworks”. They seem designed for individual developers or small teams and not for a big enterprise.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rodenas.org/blog/2006/11/07/object-oriented-case-tools-lost-opportunities-and-future-directions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

