Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!sdd.hp.com!cs.utexas.edu!uunet!visix!news From: amanda@visix.com (Amanda Walker) Newsgroups: comp.object Subject: Re: Software Engineering (was Re: Documenting OO Message-ID: <1991Apr18.230252.3299@visix.com> Date: 18 Apr 91 23:02:52 GMT References: <3201:Apr705:40:4591@kramden.acf.nyu.edu> <1991Apr17.170635@ece.arizona.edu> Sender: news@visix.com Distribution: world,local Organization: Visix Software Inc., Reston, VA Lines: 123 In article <1991Apr17.170635@ece.arizona.edu> dan@ece.arizona.edu (Dan Filiberti) writes: but the primary defn of science is the following: science - knowledge attained through study or practice That's an awfully general definition. I myself like it from a philosophical standpoint, but it covers most human activity. There are many things which I have studied and practiced, but which I would hesitate to call "science." For example: - Playing baroque music on the 'cello - Cooking Szechuan food - Speaking French or Japanese - Mediaeval manuscript illumination And so on. The word "science" usually carries some connotations which restrict its applicability. In particular, it usually signifies the acquisition of formalized knowledge through observation and experimentation. Now, I have taken scientific approaches to aspects of all of the above-metioned subjects, but I would still not call them scientific endeavors. Also, you're wrong. By your defn, designing a computer is NOT engineering. Sorry. Hardware designers hardly ever deal with the construction of devices on a physical science level. Funny, the hardware engineers I have worked with seem to do wire wrapping, figure out where to put decoupling caps, use oscilloscopes to look at signal levels and quality, etc. Seems pretty close to the physical level to me. Granted, there's always *some* level of abstraction involved in any activity that involves humans beings :), but I think you'll agree that, say, a silicon compiler or simulator is a higher level of abstraction than a 100MHz oscilloscope... They symbolically represent the internal architecture of a computer, using CAD. Seems to me that's design, not construction, but point taken. Design is a common aspect of many different kinds of activity. Please point out the difference between working with symbols of "and" gates, etc...and microcode. That's right, the only difference is a difference in symbols and terms. Not entirely. At the microcode level, a whole set of factors is abstracted out, such as propogation delay, fanout and fanin, signal decoupling, etc. How do you build a processor with "virtual architecture", and then not build it in hardware? Simulation. Software. Microcode and something like SoftPC (which implements a virtual IBM AT on machines ranging from a Mac to a Sparcstation) are doing basically the same thing. They are implementing a virtual architecture in terms of a physical one that is quite different. I can microprogram a handful of 2900 chips so that they act like, say, a Z80, even though the actual hardware involved is completely different. How many engineers actually solder the parts of a computer together? *laugh* I've done it... Please do, since neither one of these examples is a computer. Since when can a telephone switch be programmed and store, retrieve and process data? That's what happens when you place a call, after all... If you are now claiming that "computer" can only mean "stored program computer," I beg to differ. Software was invented after computers were. Von Neumann's innovation was important, but it is not what constitutes "computing." That's pretty good. Now, please show me a computer built within the last decade that was designed without the aid of software. How is this relevant? I can't even show you an *automobile* built within the last decade that was designed without the aid of software. All this says is that software is extremely useful, not whether or not its construction is "engineering..." >However, how it was designed is immaterial--very few things are >designed without the aid of software these days :). I agree. Hence the term "software engineering". Wouldn't that be "engineering software?" 1/2 :-) Oh? And, there was no software differences between the two machines. Very few. None from an operational point of view... I like how you conveniently left the two machines you used out, Sparcstation IPC and a DECstation 3100. so I couldn't point out the differences in software that allowed you to run Emacs, window manager, and Usenet. These differences are invisible at the level at which I interacted with the software--the software presents me with the same virtual reality (well, OK, modulo a small difference in screen size). This is part of my point: for at least a large set of actions, the hardware architecture is irrelevant. No it doesn't. My previous defn was general, I didn't feel like pulling out the old dictionary. It violates nothing, because you can't possibly build anything for people without using learned knowledge. Well, OK, if "applying learned knowledge" constitutes engineering, then I'll cede the point: just about everything I do is engineering, then. Well, I have no problem with it. It fits with how engineering is defined in our society today. And, that's all that counts... Must be a different society. Maybe is a coastal thing :)... -- Amanda Walker amanda@visix.com Visix Software Inc. ...!uunet!visix!amanda -- "I wouldn't be surprised if the architecture of Intel's microprocessors were eventually linked to the eventual fall of mankind." --Steve Gibson