Baylor > ECS > Computer Science > Undergraduate > Software Engineering Track > What is Software Engineering?
What is Software Engineering?

"It has been over thirty-five years since the first organized, formal discussion of software engineering as a discipline took place at the 1968 NATO Conference on Software Engineering [Naur 69]. The term ‘software engineering' is now widely used in industry, government, and academia: hundreds of thousands of computing professionals go by the title ‘software engineer'; numerous publications, groups and organizations, and professional conferences use the term software engineering. However, there are still disagreements and differences of opinion about the meaning of the term. The following definitions provide several views of the meaning and nature of software engineering. Nevertheless, they all possess a common thread, which states, or strongly implies that software engineering is more than just coding – it includes quality, schedule and economics, and the knowledge and application of principles and discipline.

"Over the years, numerous definitions of the discipline of Software Engineering have been presented...

  • ‘The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and works on real machine' [Bauer 72]
  • ‘Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems.' [CMU 90]
  • ‘The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software' [IEEE 1990].

"There are aspects of each of these definitions that contribute to the perspective of software engineering. One particularly important aspect is that software engineering builds on computer science and mathematics. But, in the engineering tradition, it goes beyond this technical basis to draw upon a broader range of disciplines.

"These definitions clearly state that software engineering is about creating high-quality software in a systematic, controlled, and efficient manner. Consequently, there are important emphases on analysis and evaluation, specification, design, and evolution of software. In addition, there are issues related to management and quality, to novelty and creativity, to standards, to individual skills, and to teamwork and professional practice that play a vital role in software engineering."

– Excerpt from [IEEE 04]


[IEEE 04]
"Software Engineering 2004: Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering", The Joint Task force on Computing Curricula, IEEE Computer Society and The Association of Computing Machinery, August 23, 2004, pp 5, 6.

[Bauer 72]
Bauer, F.L., "Software Engineering", Information Processing, 71, 1972.

[CMU 90]
SEI Report on Undergraduate Software Engineering Education, CSI/SEI-90-TR-003, Software Engineering Institute, Carnegie Mellon, 1990.

[IEEE 90]
IEEE STD 610.12-1990, IEEE Standard Glossary of Software Engineering Terminology, IEEE Computer Society, 1990.

[Naur 69]
Naur, P. and Randell, B. (editors), Software Engineering: Report on a Conference Sponsored by the NATO Science Committee, Oct. 7-11, 1968, Brussels, Scientific Affairs Division, NATO, 1969.