Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!visix!news From: amanda@visix.com (Amanda Walker) Newsgroups: comp.object Subject: Re: Software Engineering (was Re: Documenting OO Syst Message-ID: <1991Apr16.171011.14050@visix.com> Date: 16 Apr 91 17:10:11 GMT References: <3201:Apr705:40:4591@kramden.acf.nyu.edu> <1991Apr15.151016@ece.arizona.edu> Sender: news@visix.com Distribution: world,local Organization: Visix Software Inc., Reston, VA Lines: 79 dan@ece.arizona.edu (Dan Filiberti) writes: Uh, I don't think you live in the real world...people in the real world use user interfaces...people in the real world use numerical analysis and statistics...and electrical engineers use simulation and modelling...I can't think of anything more directly related to the real world than a user interface...maybe you don't live in the same world that I do... However, building a user interface (as the term is generally applied in the computer industry) does not entail building something that a person interacts with. It involves constructing a metaphor for, or a depiction of, something that does not exist; the user then interacts with this symbolic construct instead of interacting with the "real world". The screen in front of me is a hunk of glass--nonetheless I interact with it as if it were composed of several sheets of paper, terminal screens, a mailbox, and several other things. It is this virtual quality which, to my mind, makes software more of an art than a science. Books are virtual reality. Music is virtual reality. A painting is virtual reality. A tractor is not virtual reality. Now, is software more like a book or a tractor? What? How can you compare literature with software...their purpose is completely different. I disagree. The purpose of both is to allow a person to interact with something that has no concrete existence. without software, hardware is moot. No, just special purpose, since its design must embody what it will be used for. Why do you think microprocessors use microcode? Because building the logic isn't feasible... What about RISC designs, which tend to explicitly avoid microcode? Software can often gain you many of the benefits of a physical device without some of the costs of building such a device. This is one of the main reasons it is useful. Again, it lets a person work *as if* they had a particular tool. Emacs lets me work to large extent as if I had the world's best typewriter, without requiring me to actually have one. software allows hardware to reach its highest potential, and without it hardware development would virtually stop. I think of it the other way around: Hardware is simply the medium through which people can use software... In an important respect, my workstation is the interface between me (and the real world I live in) and the software I use. My tools are virtual, not physical. I can replace all of the hardware that I use in the course of a day, and still be using the same tools and materials, because those tools and materials are software and data, not physical things. Well let me teach you something more...an engineer is someone who builds things for people... This seems to be a much wider definition than I am used to. Ultimately, both are done by people for people, and are used by people...Thus, whether you build software or hardware, you are still engineering...:) But if building things for people defines engineering, I think that we've wandered quite a bit from Jim's version of "engineering," or the definitions that seem prevalent in industry. By your definition, a sculptor is an engineer, as is a composer, or manager, or a politician. Now, I very much agree that all of these share characteristics and techniques with engineering, but I would nonetheless hestitate to call all of them "engineers." To do so would make the term almost meaningless. -- Amanda Walker amanda@visix.com Visix Software Inc. ...!uunet!visix!amanda -- "I used to be Snow White, but I drifted." ---Mae West