Technology and Engineering Atlas

How Things Are Built
Sign In
Text size
100%
Theme
Field

Software Engineering

Also Known As SWE Common industry abbreviation, as in job titles such as "SWE II".
Electrical Engineering

Software engineering is the branch of engineering concerned with the systematic design, development, testing and maintenance of computer software, applying engineering discipline such as specification, design review, testing and version control to a medium that has no physical mass and can be copied without cost. The term and the formal discipline date to the late 1960s, when the growing size and unreliability of software systems prompted engineers to argue that writing software needed the same rigor as building a bridge.

Facts
Origin Year
1968 1
The term software engineering was coined for the 1968 NATO Software Engineering Conference in Garmisch, West Germany.
Core Concern
The systematic design, development and maintenance of computer software. 1
Core Principle
The IEEE Standard Glossary of Software Engineering Terminology defines the field by its discipline: the application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software, treating programming as an engineering practice rather than a craft. 2
Connections

Associated With

Source Agricultural Engineering (Wikipedia)Wikipedia contributors
Computer Engineering, Fields

Computer engineering and software engineering meet at firmware and low-level system software.

Developed the first compiler and helped found the discipline of software engineering practice.

Robotics Engineering, Fields

Robot behavior, perception and control depend on software running on embedded systems.

Described the waterfall model of the software development process.

Includes

Ada Lovelace, Engineers

Software engineering did not exist as a named discipline in her lifetime. She is linked here as the field own recognized precursor, for Note G and its accompanying description of a machine that manipulates symbols by rule.

Source Adas Algorithm: How Lord Byrons Daughter Ada Lovelace Launched the Digital AgeJames Essinger
Blockchain, Inventions
Bob Kahn, Engineers
Source A History of TechnologyCharles Singer, E. J. Holmyard, A. R. Hall and Trevor I. Williams, editors
Source Grace Hopper and the Invention of the Information AgeKurt W. Beyer
Hypervisor, Inventions
JavaScript, Inventions
Kubernetes, Inventions
RSS, Inventions
Source Technology: A World HistoryDaniel R. Headrick
Source Encyclopaedia BritannicaEncyclopaedia Britannica editors
Vint Cerf, Engineers
Source A History of TechnologyCharles Singer, E. J. Holmyard, A. R. Hall and Trevor I. Williams, editors

Open Questions

In the Other Atlases
Sources
1. Encyclopaedia Britannica
Encyclopaedia Britannica editors, Encyclopaedia Britannica, Inc.View the Source
2. Software Engineering (Wikipedia)
Wikipedia contributors, Wikimedia Foundation
  • Terminology, Definition section
    The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
  • Lead section, opening definition of software engineering
    Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining software applications.
View the Source
Technology: A World History
Daniel R. Headrick, Oxford University Press, 2009Includes: The InternetView the Source
Grace Hopper and the Invention of the Information Age
Kurt W. Beyer, MIT Press, 2009Includes: Grace Hopper
Adas Algorithm: How Lord Byrons Daughter Ada Lovelace Launched the Digital Age
James Essinger, Melville House, 2014Includes: Ada Lovelace
A History of Technology
Charles Singer, E. J. Holmyard, A. R. Hall and Trevor I. Williams, editors, Oxford University Press, 1954
  • Includes: Vint Cerf
  • Includes: Bob Kahn
View the Source
Agricultural Engineering (Wikipedia)
Wikipedia contributors, Wikimedia FoundationAssociated With: Agricultural Engineering, Lead sectionView the Source
Open Questions (1 open question)
Is software engineering genuinely a form of engineering in the licensed-profession sense, and should software engineers be licensed as Professional Engineers the way civil or electrical engineers are?

Wikipedia's software engineering article records that "the NCEES began offering a Professional Engineer exam for Software Engineering in 2013...NCEES ended the exam after April 2019 due to lack of participation. Mandatory licensing is currently still largely debated, and perceived as controversial." The same article notes the ACM and IEEE Computer Society examined licensing in the 1990s and concluded it was inappropriate for industrial practice, a conclusion the article says was not universally accepted.

What would resolve this A revival of the licensing exam with sustained participation, or a clear professional consensus statement from ACM/IEEE Computer Society settling whether licensure suits the field, neither of which exists yet.
Wikipedia contributors, Software Engineering (Wikipedia)
Dissenting Readings (1 dissenting reading)
Description

After the ACM and IEEE Computer Society jointly concluded in the 1990s that licensing software engineers as Professional Engineers was inappropriate for the professional industrial practice of software engineering, Knight and Leveson published a 2002 analysis of the licensing question that Wikipedia's software engineering article describes as "a more balanced analysis of the licensing issue," implying the 1990s conclusion was not the last word and that a case for licensing remained live.

A dissenting reading, from John C. Knight and Nancy G. LevesonWikipedia contributors, Software Engineering (Wikipedia), Wikimedia Foundation
Frequently Asked Questions

Is software engineering the same as computer science?

No, though the two overlap heavily. Computer science studies computation itself, algorithms, data structures, theory of computation and how computers process information. Software engineering applies engineering discipline, systematic design, testing, maintenance and process management, to building software that works reliably at scale over its whole lifecycle. A computer scientist might prove an algorithm's properties; a software engineer builds, tests and maintains the system that uses it in production.
Community

Organizations In This Tradition

Comments (0)
No comments yet. Be the first to share a thought.
Reader Challenges (0)
No disputes yet. Spotted an error or a better source? Open the first one.

View At A Past Year

Choose a year to see this entry's facts and connections as the atlas records them at that moment: what it held then, what it held instead, and what it had not yet adopted. Choose Present for the current record.