[comp.software-eng] CASE - Computer Aided SYSTEMS E

render@m.cs.uiuc.edu (06/15/90)

Written  5:27 am  Jun 13, 1990 by jmi@dac.mdcbbs.com:
>I have a problem here. Everyone who has posted on this topic has defined CASE 
>to be Computer Aided SOFTWARE Engineering. I have to agree that "software 
>engineering" is a bit of a falicy. What we are really dealing with is SYSTEMS 
>engineering.

No, we are not.  The whole point is that right now the methods and tools
for designing, constructing and maintaining software systems (so-called 
"software engineering") are not up to par with those used in other kinds
of system design, construction, and maintenance.  The big questions
people are trying to answer about this are, "Why is this so?" and, 
"How can this be improved?"  One answer to the latter is Computer Aided
*Software* Engineering.

Because software tools have helped many other kinds of engineers, it seems 
logical to presume that the same would be true for software engineers. 
Some software engineering tools have been constructed which are analogous
to hardware engineering tools, e.g. graphical editors for representing
the components of a system, simulation systems for constructing prototypes
of proposed systems, and flow analysers for examining a prototype.  Yet 
despite the similarities, software systems are not the same as hardware 
systems, and the methods and tools used to engineer them have to take 
into account the differences.  

For example, software systems evolve much more rapidly than hardware systems,
because a software component is much easier to change than a hardware 
component.  Further, changes to a software component can have a much 
greater affect than changes to a hardware component, because a software 
component often has the ability to circumvent normal component interfaces 
to affect other system components.  The control of changes to software systems
is also more difficult because software system changes are often less visible
and more difficult to track.  Finally, developing engineering standards 
for software is more difficult because of the huge set of software languages,
tools, and environments already in use.
	
All this boils down to a set of properties that distinguish software systems
from hardware systems.  The properties make software systems more difficult 
to engineer because other kinds of engineering methods and tools are not 
always transferable.  Some researchers are attempting to overcome this, and 
I believe that some of these efforts will inevitably help.  But I also believe 
that many efforts towards computer aided software engineering will not succeed 
until we better understand the nature of software system construction and 
recognize the differences between it and hardware system construction.  

hal.