Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

When should you use CASE tools?

Ensure that the cost of CASE outweighs its benefits

Scott W. Ambler, Prectice Leader, Agile Development, Rational Methods Group, IBM, Software Group
Scott W. Ambler is a Practice Leader for Agile Development within the IBM Methods group. He develops process materials, speaks at conferences, and works with IBM clients worldwide to help improve their software processes. Scott is author of several books, listed on his Web site at www.ambysoft.com. Scott is also a recognized Ratonal Thought Leader, whose homepage may be viewed here.

Summary:  There is a wide range of costs, as well as benefits, associated with CASE tools, so you should adopt one only when it actually is your best option. On the surface, it is easy to assume that if you're an agile modeler (see also my previous tip on Agile Modeling) that you aren't going to use a Computer Aided System Engineering (CASE) tool. Poppycock! An agile modeler uses a tool, any tool, when that tool makes the most sense for that situation. Just like a carpenter will use a manual screwdriver sometimes and other times an electric screwdriver, sometimes an agile modeler will use an index card and other times a complex software design tool.

Date:  01 Jun 2001
Level:  Introductory
Also available in:   Japanese

Activity:  4930 views
Comments:  

Any tools, including CASE tools, should be used only when using the tool is the option that provides the maximal value for your investment. This is basic investment theory -- if you can invest your money one way and get a 10 percent overall return, or if you can invest your money another way and get a 15 percent overall return, everything else being equal, you're better off with the second investment. With respect to modeling tools, you always have several choices:

  • Use simple tools such as index cards and whiteboards.
  • Use a diagramming tool such as Microsoft Visio.
  • Use a more complicated tool such as TogetherSoft's Together/J, Rational Rose, or Computer Associate's ERWin.

So how do you calculate the expected value for your investment in a tool? I suggest that you don't, at least not from a strict accounting sense of the idea. Yes, you could prepare a complex spreadsheet listing all the costs (see costs for suggestions), both quantitative costs that have a clear dollar value and qualitative costs that need to be fudged into a dollar value -- and then compare them with the expected quantitative and qualitative benefits (see benefits). And of course, you'd naturally have to calculate the net present value (NPV) of all of those figures to ensure that you're comparing apples to apples. I've got a pretty good write-up of how to do all this in my book Process Patterns if you're really interested, but I strongly recommend against this sort of lengthy analysis. Why? Because it's a lot of work that is, more often than not, just a facade used to justify a political decision anyway.

Potential CASE tool costs

  • Initial training and education
  • Evaluation costs
  • Maintenance of the model over time (it's even worse when the model has outlasted its usefulness but you're still maintaining it for posterity)
  • Upgrade costs of the tool
  • Ongoing usage/maintenance fees
  • Time lost waiting for the tool to do its job
  • Time lost over-using the tool (e.g. making your diagrams look pretty, extraneous information, and so on)
  • Migration costs to port models to another tool
  • Increased effort to synchronize models with other artifacts, such as source code
  • CASE tools often promote syntax over communication between developers (in other words, your model looks good but doesn't necessarily work)
  • Generated code is often too simplistic, or cluttered with extraneous information required by the tool
  • Poor user interfaces often hamper the modeling effort
  • Inadequate integration with other tools reduces productivity and/or requires integration work
  • Complex tools often prevent the inclusion of non-developers in your modeling efforts

Potential CASE tool benefits

  • Forward engineering (code generation)
  • Reverse engineering of existing code
  • Support for changing levels of abstraction (for example, from requirements to analysis to design to code)
  • Testing of the consistency and validity of your models
  • Synchronization of models with delivered code
  • Support for different views and/or potential solutions to a problem
  • Generation of documentation

Acknowledgements: I'd like to thank Malte Finsterwalder, Larry O'Brien, and Jack Surveyor for their insights posted on the Agile Modeling (AM) mailing list regarding this subject.


Resources

About the author

Scott W. Ambler is a Practice Leader for Agile Development within the IBM Methods group. He develops process materials, speaks at conferences, and works with IBM clients worldwide to help improve their software processes. Scott is author of several books, listed on his Web site at www.ambysoft.com. Scott is also a recognized Ratonal Thought Leader, whose homepage may be viewed here.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your developerWorks profile is displayed to the public, but you may edit the information at any time. Your first name, last name (unless you choose to hide them), and display name will accompany the content that you post.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and Web services
ArticleID=86990
ArticleTitle=When should you use CASE tools?
publish-date=06012001
author1-email=scott_ambler@ca.ibm.com
author1-email-cc=

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

For articles in technology zones (such as Java technology, Linux, Open source, XML), Popular tags shows the top tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), Popular tags shows the top tags for just that product zone.

For articles in technology zones (such as Java technology, Linux, Open source, XML), My tags shows your tags for all technology zones. For articles in product zones (such as Info Mgmt, Rational, WebSphere), My tags shows your tags for just that product zone.

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Try IBM PureSystems. No charge.

Special offers