Path: utzoo!attcan!uunet!snorkelwacker!usc!zaphod.mps.ohio-state.edu!uwm.edu!ux1.cso.uiuc.edu!ux1.cso.uiuc.edu!m.cs.uiuc.edu!render From: render@m.cs.uiuc.edu Newsgroups: comp.software-eng Subject: Re: CASE - Computer Aided SYSTEMS E Message-ID: <39400104@m.cs.uiuc.edu> Date: 14 Jun 90 18:13:00 GMT References: <102726@<1990Jun13> Lines: 46 Nf-ID: #R:<1990Jun13:102726:m.cs.uiuc.edu:39400104:000:2711 Nf-From: m.cs.uiuc.edu!render Jun 14 13:13:00 1990 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.