Google

วันพฤหัสบดีที่ 2 สิงหาคม พ.ศ. 2550

Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.[1] The term software engineering was popularized during the 1968 NATO Software Engineering Conference (held in Garmisch, Germany) by its chairman F.L. Bauer, and has been in widespread use since. The discipline of software engineering encompasses knowledge, tools, and methods for defining software requirements, and performing software design, software construction, software testing, and software maintenance tasks.[2] Software engineering also draws on knowledge from fields such as computer engineering, computer science, management, mathematics, project management, quality management, software ergonomics, and systems engineering.[2]

As of 2004, the U. S. Bureau of Labor Statistics counts 760,840 software engineers holding jobs in the U.S.; for comparison, in the U.S. there are some 1.4 million practitioners employed in all other engineering disciplines combined.[3] The term software engineer is used very liberally in the corporate world. Very few of the practicing software engineers actually hold engineering degrees from accredited universities. There are estimated to be about 1.5 million practitioners in the E.U., Asia, and elsewhere[citation needed]. SE pioneers include Barry Boehm, Fred Brooks, C. A. R. Hoare, and David Parnas.

Debate over the term 'engineering'

Some people believe that software development is a more appropriate term than software engineering for the process of creating software. Pete McBreen, (author of "Software Craftsmanship: The New Imperative" (ISBN 0-201-73386-2)), argues that the term Software Engineering implies levels of rigor and proven processes that are not appropriate for all types of software development. He argues strongly for 'craftsmanship' as a more appropriate metaphor because that term brings into sharper focus the skills of the developer as the key to success instead of the "manufacturing" process. Using a more traditional comparison, just as not everyone who works in construction is a civil engineer, not everyone who can write code is a software engineer.

Some people dispute the notion that the field is mature enough to warrant the title "engineering"[citation needed]. In each of the last few decades, at least one radical new approach has entered the mainstream of software development (e.g. Structured Programming, Object Orientation, ... ), implying that the field is still changing too rapidly to be considered an engineering discipline. Other people would argue that the supposedly radical new approaches are actually evolutionary rather than revolutionary, the mere introduction of new tools rather than fundamental changes[citation needed].

Ref: Fundamentals of Software Engineering Project Management by Dr. Johan Gouws for methodology with the view 'Software Engineering' is an unchanging procedure.