software engineering

3459 Words7 Pages

Software engineering (SE) is the profession concerned with specifying, designing, developing and maintaining software applications by applying technologies and practices from computer science, project management, and other fields.
SE applications are used in a wide range of activities, from industry to entertainment. Software applications improve user productivity and quality of life. Application software examples: office suites, video games, and the world wide web. System software examples: embedded systems and operating systems.
SE technologies and practices improve the productivity of developers and the quality of the applications they create. Software engineering examples: databases, languages, libraries, patterns, and tools. Computer science examples: algorithms and data structures. Project management examples: processes.
Origins
The term software engineering was used occasionally in the late 1950s and early 1960s. Software engineering was popularized by the 1968 NATO Software Engineering Conference held in Garmisch, Germany and has been in widespread use since.
Meanings
As of 2004, in common parlance the term software engineering is used with at least three distinct meanings:
• As the usual contemporary term for the broad range of activities that was formerly called programming or systems analysis;
• As the broad term for the technical analysis of all aspects of the practice, as opposed to the theory of computer programming;
• As the term embodying the advocacy of a specific approach to computer programming, one that urges that it be treated as an engineering profession rather than an art or a craft, and advocates the codification of recommended practices in the form of software engineering methodologies.
Levels
There are currently no widely accepted criteria for distinguishing someone who is a software engineer from someone who is not a software engineer. In addition, the industry is in the midst of a complex debate on the licensing of practicing software engineers. For the localities that do not license software engineers, some hiring classifications are made based on education and experience. Classification levels may include: entry-level, mid-level, and senior.
Typical entry-level software engineers have a bachelor's degree and zero to five years of experienc...

... middle of paper ...

...ep toward the management of disease was replacement of demon theories and humours theories by the germ theory. That very step, the beginning of hope, in itself dashed all hopes of magical solutions. It told workers that progress would be made stepwise, at great effort, and that a persistent, unremitting care would have to be paid to a discipline of cleanliness. So it is with software engineering today. (Fred Brooks in No Silver Bullet)
• [SE advocates] have climbed a social ladder for a few decades and are now fighting against a tide of open source software that seems to be bringing bazaar anarchy and taking the well-deserved control out of their hands. Part of this is their utopia of "software engineering" by some magic cathedral approach which has never worked and whose failure the authors of these utopias tend to blame on the lack of control that copyright offers them over their projects. The strange thing here is that they have had the chance to put all these things into practice in their university haven. But, strangely enough, the more successful university projects are carried out in a bazaar-like open-source manner. -- Hartmut Pilch

Open Document