[comp.software-eng] What is CASE

lomow@calgary.UUCP (Greg Lomow) (03/15/88)

I have started hearing a lot about CASE. What is it?

My understanding is that a CASE system should support all
aspects of the software development life cycle. What does CASE
offer that we don't already have? Or does CASE require more
things to be described in a form that can be processed and
maintained by a computer? What CASE tools support which portions
of the development cycle?

What is the difference between CASE and CAPM (Computer Aided
Project Management :-))? By this I mean what benefits could I
expect from using a CASE system that I would not get from using
a set of computer based tools for requirements analysis,
interface typing, test case generators, configuration
management, etc.

Finally, are there any commercial CASE systems? Alternatively,
what set of existing computer tools would you suggest a
small/medium sized project (20,000 to 100,000 lines of code)
needs to manage product development.
-- 
Greg Lomow
	lomow@cpsc.calgary.cdn
      or
	....![ubc-vision,ihnp4]!alberta!calgary!lomow

rhj@wdl1.UUCP (Bob Jones) (03/22/88)

> I have started hearing a lot about CASE. What is it?

The term CASE stands for Computer Aided Software (or Systems) Engineering.
It is a generic term (like the term 4GL) and applies loosely to the set of
tools which collectively enhance the process of software and software based
systems development.
 
> My understanding is that a CASE system should support all
> > aspects of the software development life cycle. What does CASE
> offer that we don't already have? Or does CASE require more
> things to be described in a form that can be processed and
> maintained by a computer? What CASE tools support which portions
> of the development cycle?

Various CASE software toolkits support different phases of the software
development effort.  Many focus heavily on the early analysis and design
phases because a small reduction in design errors yields a big reduction
in development costs.  Most CASE toolkits are simply modeling tools that
allow the systems designer to understand the proposed target system better.

Various methodologies such as Structured Analysis and Structured Design
or Entity Relationship Diagrams are incorporated along with graphics-based
user interfaces into toolkits which allow the designer to model the target 
system using formal modeling tools.  Some of the toolkits can transform
one type of model (a Data Flow Diagram, for example) into another type of
model (say a Module Heirarchy). Some tools even incorporate language
sensitive editors or syntax directed parse trees and support the actual
code generation process.  

The goal of all of these tools is to reduce the cost and improve the
quality of the software developed using these tools.

> What is the difference between CASE and CAPM (Computer Aided
> Project Management :-))? By this I mean what benefits could I
> expect from using a CASE system that I would not get from using
> a set of computer based tools for requirements analysis,
> interface typing, test case generators, configuration
> management, etc.

Project Management is also a form of modeling, but it models the software
development process (or darn near any other process) rather than the 
system being developed by the process. To my view, a project management
tool is a part of the overall CASE process, but it is not a tool that
is usually thought of when we talk about CASE tools.

The second part of your question (what benefits could I expect ...) is
more subjective.  Nobody today is marketing a single CASE product or even
a complete set of CASE tools which give you everything you need to build
software.  All CASE products are just tools.  A well integrated toolkit
is easier to use, but harder to come by, but the tools you identify
(requirements analysis, test case generators, configuration management, etc.)
are important pieces in the overall process.  

> Finally, are there any commercial CASE systems? 

There are many commercially available CASE toolkits (I wouldn't call any
of them complete systems).  Here are some names:

  Software Through Pictures from IDE (runs on Suns and VMS Vaxstations)
  Teamwork from Cadre (runs on several platforms)
  Excelerator fro Index Technology
  CASE 2000 from Nastec
  Promod (has several integrated tools)

This is only a partial list.  There are many other good products.

Bob Jones
Ford Aerospace Corporation

cl@datlog.co.uk (Charles Lambert) (03/28/88)

In article <3850005@wdl1.UUCP> rhj@wdl1.UUCP (Bob Jones) writes:
>There are many commercially available CASE toolkits ...
>
>  Teamwork from Cadre (runs on several platforms)

    ...or, in the UK, from Hewlett Packard who market it under licence.

--------------
Charles Lambert

fad@think.COM (franklin a davis) (03/30/88)

In article <3850005@wdl1.UUCP> rhj@wdl1.UUCP (Bob Jones) writes:
>> I have started hearing a lot about CASE. What is it?
>
>The second part of your question (what benefits could I expect ...) is
>more subjective.  Nobody today is marketing a single CASE product or even
>a complete set of CASE tools which give you everything you need to build
>software.  All CASE products are just tools.  A well integrated toolkit
>is easier to use, but harder to come by, but the tools you identify
>(requirements analysis, test case generators, configuration management, etc.)
>are important pieces in the overall process.  

My two cents -- the current state of the art in CASE tools is that
they are fancy "word processors" for design diagrams.  Some of them
check syntax ("spelling checking") and some of them can transform
between views, but none of them (yet) really understands design, and
can help find design flaws.  

For example, drawing data-flow diagrams is a tedious process.
Revising and correcting them as a design evolves is even worse.  A
good CASE tool helps a lot -- but basically it gives you pretty
diagrams, some degree of easy editing, and a few other valuable extras
such as summary lists of contents and connections (data dictionaries).


>> Finally, are there any commercial CASE systems? 
>
>There are many commercially available CASE toolkits (I wouldn't call any
>of them complete systems).  Here are some names:
>
>  Software Through Pictures from IDE (runs on Suns and VMS Vaxstations)
>  Teamwork from Cadre (runs on several platforms)
>  Excelerator fro Index Technology
>  CASE 2000 from Nastec
>  Promod (has several integrated tools)
>
>This is only a partial list.  There are many other good products.
>
>Bob Jones
>Ford Aerospace Corporation

While I was a student at the Wang Institute of Graduate Studies we
used Teamwork and Excelerator, and looked at others.  Some are
clunkier than others -- it partly depends on hardware platform -- but
none of them are close to the dream system, that would automatically
find problems in the design and suggest alternatives.

StateMate from iLogix (formerly AdCad) is an interesting system,
deveolped in Israel and now sold here.  It's new, and I don't know how
mature, but it's a different idea from the others.  It is a
state-machine model, with hierarchy, that can actually execute
(simulate) the state machine you've drawn.  For example, it can find
all the possible conditions that lead to a particular outcome.  I
think it's a very interesting idea, but probably a ways from robust
usefulness. 

Design, from Meta Software, is purely a drawing tool.  It has some
power that most of the others don't have, at a very low price, but
doesn't support a whole project, data dictionary, etc.  It's much less
intuitive than MacDraw, but it supports connectivity and hierarchy in
a way that normal drawing programs on the Mac and PC don't.  They have
plans to extend the graphics platform with design rules etc., and even
sell two versions of the system with hooks to implement your own
methods and syntax on top of Design.

Another pair of quite different systems that I don't know much about
are Ken Orr's tool that implements his "methodolgy", and JSD Tool, (?)
a tool that draws Jackson JSD diagrams. 

A caveat about useing CASE tools: it was generally agreed by users at
Wang Institute and by attendees at a CASE conference that the tools
don't teach the methods well -- you should know the design method
before the tool is much use.  The tool may be an aid or an incentive to
learning, and the methods are now becoming more driven by their
software implementations.  But a word processor doesn't make you a
good writer.

My own use is mostly for requirements definition and architecture
design, when you need to lay out the pieces of the big picture and get
the connections right.  When the tools are more powerful it will be
worth my time to draw diagrams at the level of subroutines and
functions, especially when the tools can automatically generate code.
(Some claim that now, but what I've seen just create data structure
descriptions, which isn't such an issue in the applications I work
on.)

A last opinion and I'll get off my soapbox.  The CASE field is overly
dominated by gurus.  There are a number of models, and each has
fervent proponents.  I've seen a room full of these people arguing.
It's interesting, but it seems to me like psychology -- each approach
is only a partial model of the actual process (which is too complex to
model given our current understanding).  None is particularly more
"correct" than any other, and all have their uses. 

--Franklin Davis

  franklin a davis  Thinking Machines Corp. Cambridge, MA 02142   617-876-1111
  <fad@think.com>   {ihnp4, harvard, seismo}!think!fad  "Roll away...the dew!"

rhj@wdl1.UUCP (Bob Jones) (04/06/88)

Some added comments on the general notion of CASE tools:

The various design methodologies are simply techniques for viewing a
problem.  To the extent that a methodology helps you understand the
problem, it is good.  If all you use it to do is document the fact
that you don't understand the problem, then it is a useless exercise.

The various toolkits are just automated reflections of the methodology.
I would agree with the analogy that they are just glorified word processors
except that the good ones do have the ability to verify that the model
is correct to the extent that it conforms to the rules of the methodology.
This certainly does not assure the best design or even a good design.

The real key to the proper use of these tools is the understanding of
the methodologies. Without proper training, the results will be sporadic
at best.  

The old phrase "there are many ways to skin a cat" applies here.  There 
are many ways that a software analyst/designer/developer can approach
the problem of understanding what the target system should do. Data flow
diagrams are one way (i.e. one mothodology), but there are others.  The
good news about Data Flow diagrams is that a lot of organizations have
used them and found that they do help, if used properly by trained people.
They are, therefore, a somewhat "proven commodity". The bad news is that
there are no really definative and objective studies that I am aware of
that clearly show just how much better Data Flow diagrams are over various
alternatives.  If anyone knows of any such studies, please let me know.

Bob Jones
Ford Aerospace