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 profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

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]

developerWorks Community:

  • 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:  8417 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 profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

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

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=