Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!rutgers!apple!voder!parns!berlioz!rgo From: rgo@berlioz (Ronald Olshausen) Newsgroups: comp.software-eng Subject: Re: What exactly is a software engineer ? Message-ID: <263@blenheim.nsc.com> Date: 25 May 89 17:02:08 GMT References: <5596@hubcap.clemson.edu> Reply-To: rgo@logic.nsc.com (Ronald Olshausen) Organization: National Semiconductor, Santa Clara Lines: 50 In article <5596@hubcap.clemson.edu> billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu writes: >From article , by cline@sunshine.ece.clarkson.edu (Marshall Cline): CACM Article excerpt: > > "[...] many software development practitioners believe it is > easier to teach programming to an engineer than it is to teach > engineering to a programmer. The SEI Education Program has > been repeatedly asked for recommended undergraduate software > engineering degree requirements. We resist by arguing that > the best education remains a solid major in computer science > followed by graduate professional education such as an MSE > (Master's in Software Engineering) program." > I'd have to agree with the CACM article. Over the course of undergraduate and graduate study of Computer Science, one can master the basics of "programming in the small", as well as develop certain problem-solving skills. I have my doubts, though, as to whether academia can cultivate a commitment to the software life cycle, as can industrial experience. I was TA for a Senior-level software engineering course while I was in grad school. We tried to have the students tackle large software systems, over the course of a full academic year, starting with the requirements analysis and ending up with a deliverable product. We only encountered limited success with this approach. Whatever one chooses for a working definition of software engineering, we can probably agree that it is a discipline in its infancy. As a research discipline, software engineering is to me rather nebulous. There are some researchers who are convinced that the high cost of software systems development can best be alleviated by throwing even more software at the problem. Others attempt to formalize, by various methods, the specification, design, and test procedure for aggregate software systems. There seems to be a great deal of fragmentation, even within the research community, as to what exactly software engineering comprises. My own professional software engineering experience comes in the area of real-time, embedded systems. For that, I am convinced that the key to on-time, under-budget delivery is a thorough requirements analysis. For this, the bottom line is that this phase of the project needs to be staffed with individuals possessing both strong analytical skills and communication skills, and a commitment to the "big picture" of the software life cycle. "Computer Scientists", as opposed to "systems engineers", may not necessarily be very well suited to this task. Ron Olshausen NSC-Santa Clara rgo@logic.nsc.com