4

...or why did they fail?

I am going to build a proof of a concept of something which could be classified as CASE, but I want to avoid some of the mistakes done before.

Thanks!

Gabriel Ščerbák
  • 18,240
  • 8
  • 37
  • 52
  • ok... let me know what kind of CASE tools do you what to know? CASE stands for computer aided software engineering so... you have a very wide range of very different tools to pick up. (because that I think is almost impossible to say in so fairy way that CASE are a failure) regards –  May 04 '11 at 00:05
  • 1
    Ok, then it should be easy for you to name three different CASE tools, which were a breakthrough and describe how are they helpful. I am asking because the general opinion is that CASE aren't very useful - see the other answer for example. I think the notion of a CASE tool is a good idea, but I haven't heard about a good example of a CASE tool, so please name and describe them, thanks! – Gabriel Ščerbák May 04 '11 at 09:46
  • why case tools didn't succeed? they have a lot of succeed I what do you think when you think in CASE tools? I can, easily name several breakthrough case tools. Maybe you are thinking in uml tools? or code generation or tools? –  Feb 14 '11 at 15:40
  • So then, please name them and write why they were a breakthrough in your opinion. – Gabriel Ščerbák Feb 14 '11 at 19:28

3 Answers3

9

First, I think diagrams provide real value when they're small and simple. Large, highly detailed diagrams mostly waste a lot of paper, time, hard drive space, etc. A pencil and paper work quite nicely for diagrams that are small enough (and simple enough) to be useful. A software tool only helps when you're producing a diagram that's so large and complex that it's practically guaranteed to be useless.

Second, with most CASE tools, the fastest way to draw a diagram is to start by writing some (possibly simplified, mockup) code, and then "reverse engineer" the diagram from the code. Drawing the diagram directly is often slower than writing the code. To provide much real value, producing the high level diagram has to be quite a bit simpler than writing equivalent code.

When you get down to it, I've rarely seen CASE tools used as an actual "aid" to "software engineering" anyway. In most cases I've seen, the software engineering is done entirely separately, and the CASE tools were used to reverse engineer diagrams from code that was already written. The people producing the diagrams generally found them useless, and included them in reports to higher-level managers for "wow factor". The only "aid" they hoped for from the diagrams was impressing management with the complexity of what they were doing in the hope of increasing funding (some included diagrams of things like portions of the standard library, purely to add to apparent complexity).

As to how the tools failed at the software engineering part, I don't know of a single simple answer -- from what I've seen, I'd say it's more of a "death of a thousand nicks", than any single, glaring problem. If I did have to point to a single large problem, it would be that the ones I've looked at don't really take Patterns into account. Just for example, what I'd like is to work at an even higher level of abstraction, so I can point to some functionality, and play with things like "how would things look if I were to implement the following parts of that functionality as decorator classes?" Yes, I can draw one diagram with them as decorator classes, and one without, but I don't have a really quick, easy way to say "transform this entire hierarchy to move X, Y, and Z into decorator classes."

Contrast a typical CASE tool with a spreadsheet. In a spreadsheet, I can change one cell, and it will automatically recalculate how that affects anything else in the spreadsheet that depends on it. By contrast, CASE tools seem (at least to me) stuck at roughly the level of a grid control, where I can make changes in a cell, but I still have to manually track what other cells depend on that one, and what formulas to use, and calculate and modify all the affected cells by hand. Yes, if I want to print out a sheet of the right values, being able to edit them on the computer so I don't have eraser marks in the cells and such would be an improvement -- but only a small improvement, not the kind that turned personal computers from toys for a few hobbyists into a staple of essentially every business on earth.

Jerry Coffin
  • 476,176
  • 80
  • 629
  • 1,111
  • ah, interresting:) Let us imagine I am going to use textual syntax for models instead of diagrams (similar to mockup code) and from that I will generate diagrams and documentation. What I am trying to get right now is the "software engineering" part. Could you comment on how did thos tools failed at this? – Gabriel Ščerbák Aug 29 '10 at 20:18
3

If you look at the Wikipedia entry: http://en.wikipedia.org/wiki/Computer-aided_software_engineering then you'll see the "classic" tools from the 1990s. Having worked with many of those tools, I would suggest that the focus on commercialisation fragmented the market. Typically, not only did you pay huge sums for the tools, but then for consulting, training and run-time environments. With so many tools on offer, it was hard to build a competent team specialising on given tool.

Furthermore, it didn't help that the tools were over-sold. Promising managements unrealistic increases in productivity. There isn't any other area of IT where I've seen so much shelf-ware - products used for one project and then abandoned, often along with the project too.

The concepts of CASE live on in Eclipse and many other MDE tools. The problems of steep learning curves and fragmentation have still not been solved. Whilst the cost of the tools has reduced (to free in many cases) the training, consulting and ramp up costs are still there.

Before you expend a lot of effort on your CASE tool, have a look at the fields of MDA, MDE, DSL, even UML. Its worth browsing the OMG web site as well.

At the end of the day you should focus on the what you produce and not the tool. If you are able to automate some tasks then that's good. Building yet another CASE-like tool is a great intellectual exercise, but with minimal chances of commercial success. After all IBM, Oracle and Computer Associates have only had sporadic successes with their tools and they are still vigorously marketing them to enterprise customers.

CyberFonic
  • 3,957
  • 1
  • 21
  • 21
1

I worked with Knowldegeware back in the early 90's. My simple answer to the demise of CASE is that as soon as you printed the model it was old. Keeping the model and the code in synch became impossible. The first target platform was MicroFocus COBOL, but then came Client-Server 94-95, followed by the internet 97-98 and nobody really wanted to use CASE with those new platforms.