Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!samsung!uunet!lll-winken!ames!amdahl!dgcad!dg-rtp!farmhand!cole From: cole@farmhand.rtp.dg.com (Bill Cole) Newsgroups: comp.object Subject: Re: Documenting OO Systems Message-ID: <1991May3.153724.11492@dg-rtp.dg.com> Date: 3 May 91 15:37:24 GMT References: <3201:Apr705:40:4591@kramden.acf.nyu.edu> <1991Apr16.124522.16592@dg-rtp.dg.com> <1991Apr18.013537.27947@isc.rit.edu> Sender: cole@farmhand (Bill Cole) Distribution: na Organization: Data General Corporation, Research Triangle Park, NC Lines: 51 Jim Showalter replies to Bill Cole: |> >> If we were strictly engineers, |> >>we could down a catalog of routines and, by cleverly sticking them |> >>together, build a program. |> |> Isn't that what we DO? We gather together small chunks (e.g. various |> library routines) and big chunks (e.g. X-Windows), and paste together |> a system. At least, that's what a software engineer does--I've known |> a lot of hackers who want to start from a blank sheet of paper each time... Yup, we use lots of 'off the shelf' stuff and almost all of it has lots of bugs in it. But we design and implement the interfaces ourselves. It may be that you and I write perfect software (well, I don't know about you....), but we have virtually no control of that commodity stuff. Unlike the CE who's building a bridge and knows the strength of his materials and can reject materials that are sub-standard. |> >>The difference is that programmers are |> >>tasked to build new components if they can't find one in the own catalog |> >>of program components. |> |> As are all other engineers. Consider four-wheel steering. It didn't exist |> until a few years ago. Someone had to design it. It was built out of as |> many low-level units as possible (e.g. universal joints), but it was still |> a brand-new mechanism for automobiles. I can think of examples for any |> engineering discipline you'd care to name. My point was that many 'software engineers' believe that they are the only one capable of some particular feat even though that same feat may have been accomplished hundreds of times before. The difference in in the frame of mind the engineer brings to the project. |> >How many CEs build bridges out of self-designed |> >>components? |> |> If bridges are not very creative avenues for civil engineers, it is because |> civil engineering is a more mature discipline than software engineering. It |> is NOT because there is some fundamental difference between the two. Consider |> this: until the 1800's, HALF of all bridges built fell down. Why? Because the |> principles of civil engineering were not well-understood, and so much of it |> was empirical and artistic: more craft than science. It is different now, but |> I bet for a while there were members of the old guard who protested loudly |> that civil engineering was not a science and never could be...just like hackers |> proclaim loudly now. And half of the bridges stayed up. We don't understand our discipline well enough to state many 'well-defined' priniciples. I've seen too many problems surface because the software engineer didn't deal with situations that "couldn't" happen, even though they did. /Bill We agree more than it might appear.