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
Software Engineering
Filter Results14 entries
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
Source Agile software development (Wikipedia)
Blockchain, Inventions
Bob Kahn, Engineers
Source A History of TechnologyCharles Singer, E. J. Holmyard, A. R. Hall and Trevor I. Williams, editors
Source CSS - Wikipedia
DevOps, Methods
Source Extreme programming (Wikipedia)Wikipedia contributors
Source File Transfer Protocol - Wikipedia
Firewall, Inventions
Source Firewall (computing) (Wikipedia)
Source Grace Hopper and the Invention of the Information AgeKurt W. Beyer
Source HTTP - Wikipedia
Hypervisor, Inventions
JavaScript, Inventions
JPEG, Inventions
Source JPEG (Wikipedia)Wikipedia contributors
Kubernetes, Inventions
Source Pair programming, Wikipedia
Source Rapid application development, Wikipedia
RSS, Inventions
Source Wikipedia: Secure Shell
Source Wikipedia: Simple Mail Transfer Protocol
Source Wikipedia: Single sign-on
Source Technology: A World HistoryDaniel R. Headrick
Source Encyclopaedia BritannicaEncyclopaedia Britannica editors
Source Transport Layer Security - Wikipedia
Source Version control, Wikipedia
Vint Cerf, Engineers
Source A History of TechnologyCharles Singer, E. J. Holmyard, A. R. Hall and Trevor I. Williams, editors
Source Waterfall model (Wikipedia)
Source Winston W. Royce (Wikipedia)Wikipedia contributors

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.
  • In Group: Computing and Software Systems Engineering, lead sentence: 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
Winston W. Royce (Wikipedia)
Wikipedia contributors, Wikimedia FoundationIncludes: Winston W. Royce, Categories
Quote, Includes: Winston W. Royce, Categories
American software engineers
View the Source
Waterfall model (Wikipedia)
Includes: Waterfall Model, Categories
Quote, Includes: Waterfall Model, Categories
Software development philosophies
View the Source
Agile software development (Wikipedia)
Includes: Agile Software Development, Categories
Quote, Includes: Agile Software Development, Categories
Agile software development
View the Source
Extreme programming (Wikipedia)
Wikipedia contributors, Wikimedia FoundationIncludes: Extreme Programming, Categories
Quote, Includes: Extreme Programming, Categories
Agile software development
View the Source
Pair programming, Wikipedia
Includes: Pair Programming, Categories
Quote, Includes: Pair Programming, Categories
Agile software development
View the Source
Rapid application development, Wikipedia
Includes: Rapid Application Development, Categories
Quote, Includes: Rapid Application Development, Categories
Programming tools
View the Source
Firewall (computing) (Wikipedia)
Includes: Firewall, Categories
Quote, Includes: Firewall, Categories
Firewall software
View the Source
Version control, Wikipedia
Includes: Version Control System, Categories
Quote, Includes: Version Control System, Categories
Distributed version control systems
View the Source
HTTP - Wikipedia
Includes: Hypertext Transfer Protocol, Categories
Quote, Includes: Hypertext Transfer Protocol, Categories
World Wide Web Consortium standards
View the Source
File Transfer Protocol - Wikipedia
Includes: File Transfer Protocol, Categories
Quote, Includes: File Transfer Protocol, Categories
Internet Standards
View the Source
CSS - Wikipedia
Includes: Cascading Style Sheets, Categories
Quote, Includes: Cascading Style Sheets, Categories
Typesetting programming languages
View the Source
Transport Layer Security - Wikipedia
Includes: Transport Layer Security, Categories
Quote, Includes: Transport Layer Security, Categories
Cryptographic protocols
View the Source
Wikipedia: Simple Mail Transfer Protocol
Includes: Simple Mail Transfer Protocol, Categories
Quote, Includes: Simple Mail Transfer Protocol, Categories
Internet mail protocols
View the Source
JPEG (Wikipedia)
Wikipedia contributors, Wikimedia FoundationIncludes: JPEG, Categories
Quote, Includes: JPEG, Categories
Lossy compression algorithms
View the Source
Wikipedia: Secure Shell
Includes: Secure Shell, Lead section
Quote, Includes: Secure Shell, Lead section
The Secure Shell Protocol (SSH Protocol) is a cryptographic network protocol for operating network services securely over an unsecured network.
View the Source
Wikipedia: Single sign-on
Includes: Single Sign-On, Lead section
Quote, Includes: Single Sign-On, Lead section
Single sign-on (SSO) is an authentication scheme that allows a user to log in with a single ID to any of several related, yet independent, software systems.
View 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.