Path: utzoo!mnetor!uunet!husc6!bloom-beacon!gatech!rutgers!mtune!mtunx!lzaz!lznv!psc From: psc@lznv.ATT.COM (Programmers against Sleepy Computing) Newsgroups: comp.software-eng Subject: Towards a definition of software engineering Message-ID: <1321@lznv.ATT.COM> Date: 16 Mar 88 22:38:47 GMT Organization: AT&T Lines: 32 Keywords: definition < If you lined all the news readers up end-to-end, they'd be easier to shoot. > I was reading TO ENGINEER IS HUMAN (Henry Petroski, St. Martin's Press, 1985; ISBN 0-312-80680-9), and came across the following definition of structural engineering from THE STRUCTURAL ENGINEER, "the official journal of the British Institution of Structural Engineers": > Structural engineering is the science and art of designing and > making, with economy and elegance, buildings, bridges, frameworks, > and other similar structures so that they can safely resist the > forces to which they may be subjected. Petroski spends a page and a half admiring the language of this definition. My immediate reaction was to try and reword it: Software engineering is the science and art of designing and making, with economy and elegance, computer programs, so that they can safely fulfill the requirements of their users, and safely resist the errors to which the programs may be subjected. Since the function of a given piece of software is less obvious than the function of a given bridge, I thought it was important to say something about requirements. Note the implication of "appropriate" ["their"] users; a complete novice is not necessarily the appropriate user of AutoCAD, nor is MacPaint the right tool for an experienced professional draftsperson. Comments? -Paul S. R. Chisholm, {ihnp4,cbosgd,allegra,rutgers}!mtune!lznv!psc AT&T Mail !psrchisholm, Internet psc@lznv.att.com Founding member, Programmers against Sleepy Computizzzzzzz