Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!caen!hellgate.utah.edu!dog.ee.lbl.gov!nosc!ucsd!mvb.saic.com!eafbvax!eafbtems!martin From: martin@edwards-tems.af.mil Newsgroups: comp.software-eng Subject: S/W, H/W, Engineers, & Creativity Message-ID: <1991Apr18.141639.51@edwards-tems.af.mil> Date: 18 Apr 91 21:16:38 GMT References: <3201:Apr705:40:4591@kramden.acf.nyu.edu> <1991Apr16.124522.16592@dg-rtp.dg.com> Organization: T&E Mission Simulator - Edwards AFB, CA Lines: 63 Random House College Dictionary, 1985: > Engineering, 1. the art or science of making practical application of the > knowledge of pure science, (such) as physics, chemistry, etc., as in the > construction of engines, buildings, bridges, mines, chemical plants, and the > like. Steve Savitzky writes: > Every working definition of ``engineering'' appears to exclude computer > science. I don't see anything in the definition that excludes software from being engineered. Certainly, aircraft flight control software or automotive engine control software is engineered. Practical knowledge of information science is applied in database software, wouldn't that be engineering? Practical knowledge of the science of psychology is applied in developing a good user interface. Any given computer hardware/software system could instead be implemented as an all hardware system. This would require that same set of skills and processes be applied in the design of the system. Only the physical implementation would be different. Why would the all-hardware implementation be "engineered" and the software portion of a hybrid implementation not be? > > .... It's possible to treat software as a product > of engineering only when it's embedded in a non-interactive system. > As soon as the software has a user interface, artistic considerations > take over. > An aircraft is clearly an interactive system. "Artistic considerations" (actually human factors considerations, or the practical application of the knowledge of the sciences of pschology and human physiology) are certainly critical in the design of these systems and are employed by aerospace engineers, as well as software engineers. Bill Cole writes: > .... Programming is a creative endeavor at some level. If we were strictly > engineers, we could (run?) down a catalog of routines and, by cleverly > sticking them together, build a program. .... The difference is that > programmers are tasked to build new components if they can't find one in > the own catalog of program components. How many CEs build bridges out of > self-designed components? Engineers don't just open a handbook and pick out a few standard components and cleverly stick them together when they design something (unless it's a trivial something). Designing anything worthwile is a creative process and an iterative process, whether it involves engineering or not. Good design requires the application of knowledge of some subject area (or areas) to the iteration of the design until the designer decides that it is good enough to satisfy the design requirements. It doesn't matter whether the thing is a book to be written (where the design requirements may be only the author's conception of the story that needs to be told), a bicycle, a bridge, the Pond Racer, or a piece of software. No design of any substantial complexity ever achieves perfection, it just becomes good enough and the designer abandons it to pursue the next one. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Gary S. Martin ! (805)277-4509 DSN 527-4509 6510th Test Wing/TSWS ! Martin@Edwards-TEMS.af.mil Edwards AFB, CA 93523-5000 ! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -