From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,bf72ca9e8a6b3cf X-Google-Attributes: gid103376,public From: Marin Condic Subject: Re: Software Engineering in Florida Date: 1999/11/08 Message-ID: <3826F9A8.452F305@pwfl.com>#1/1 X-Deja-AN: 545961720 Content-Transfer-Encoding: 7bit Sender: condicma@bogon.pwfl.com References: <1e0rgtb.6j187t1hibcsaN@[209.132.126.64]> <7vv26t$tju$1@nnrp1.deja.com> <804plo$dvs$1@nntp5.atl.mindspring.net> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Organization: Pratt & Whitney Mime-Version: 1.0 Reply-To: condicma@pwflcom Newsgroups: comp.lang.ada Date: 1999-11-08T00:00:00+00:00 List-Id: Richard D Riehle wrote: > We really need to take more care in our use of the word "engineering" > when discussing software. I post the following in the form of a > "Devil's advocate," proposition. > It seems that there are some things common to engineering fields which computer software does not share. Maybe as a result we should quit trying to call our field "engineering" and opt for some other moniker: "Logician?" "Designer?" "Doctor?" I can think of no field of engineering normally recognized as such which does not in some way deal with the arrangement of physical matter into some kind of repeatable patterns to make it do something useful: Mechanical engineers arrange metal into weapons. Civil engineers arrange concrete into targets. Chemical engineers arrange molecules into fuel/explosives so that the ME's can destroy the work of the Civil engineers. Electrical engineers arrange silicon, etc. to flow electrons which will guide the ME's and Chem E's work to the Civil E's work. What physical anything does software arrange into? Software has no physical reality. It is not some form of matter that is arranged into a useful and repeatable pattern. (Indeed, if we had such a pattern, we'd never repeat it - just subroutinize it.) Software is the writing down of rules for solving some problem. It is as abstract as mathematics. Would we ever refer to a mathematician as a "Numerical Engineer"? Is there any way we would ever line up what a mathematician does and say it is very similar to what an ME does except his medium is numbers instead of metal? Another - and in my mind, very fundamental - difference between what we software practitioners do and what "engineers" do is that we never build the same thing twice. A civil engineer can say "Well, this structure is a cantilever only it is made out of this new material 'Unobtanium' which has the following strength and weight properties, so I can compute the following equations which will tell me what the dimensions of the cantilever should be to support the loads expected." There is no equivalent to the "cantilever" in software practice. If it exists at all, it becomes a reusable component and is never again repeated. Think of "sort" or "search" as the parallel - if indeed they are. Once you figure out the algorithm and code/test it, you don't revisit it the next time you want to sort something. Its not like we have in the field "Sort" experts as the CE's might have a "Cantilever Bridge" expert who's job it is to keep redesigning cantilever bridges in a variety of places and using a variety of materials. The "engineer" applies a set of historically discovered rules in solving a new, yet categorizable, problem. The "software practitioner" is in the business of dreaming up the rules to solve a problem. It seems to me there is something very different about the two professions. > > I realize I have probably opened a hornet's nest with this, but it is > important enough for Ada practitioners to consider since we so often > tout Ada as a software engineering language. Well, I admit I certainly can't resist the opportunity to help you poke around in that hornet's nest. It can't be any worse than the "free software" debate, eh? :-) MDC -- Marin David Condic If you hurry you can, for a short time only, still find me at: Real Time & Embedded Systems, Propulsion Systems Analysis United Technologies, Pratt & Whitney, Large Military Engines M/S 731-95, P.O.B. 109600, West Palm Beach, FL, 33410-9600 ***To reply, remove "bogon" from the domain name.*** Visit my web page at: http://www.mcondic.com/