The following
outline is provided as an overview of and topical guide to software engineering:
Software engineering
Software engineering is a branch of both computer science and engineering focused on designing, developing, testing, and maintaining Application software, software applications. It involves applying engineering design process, engineering principl ...
– application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
; that is the application of
engineering
Engineering is the practice of using natural science, mathematics, and the engineering design process to Problem solving#Engineering, solve problems within technology, increase efficiency and productivity, and improve Systems engineering, s ...
to
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
.
The ACM Computing Classification system is a poly-hierarchical ontology that organizes the topics of the field and can be used in semantic web applications and as a de facto standard classification system for the field. The major section "Software and its Engineering" provides an outline and ontology for software engineering.
Software applications
Software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
engineers build
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
(
applications,
operating systems,
system software) that people use.
Applications influence software engineering by pressuring developers to solve problems in new ways. For example, consumer software emphasizes low cost, medical software emphasizes high quality, and Internet commerce software emphasizes rapid development.
*
Business software
Business software (or a business application) is any software or set of computer programs used by business users to perform various business functions. These business applications are used to increase productivity, measure productivity, and per ...
**
Accounting software
*
Analytics
Analytics is the systematic computational analysis of data or statistics. It is used for the discovery, interpretation, and communication of meaningful patterns in data, which also falls under and directly relates to the umbrella term, data sc ...
**
Data mining closely related to
database
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
**
Decision support systems
*
Airline
An airline is a company that provides civil aviation, air transport services for traveling passengers or freight (cargo). Airlines use aircraft to supply these services and may form partnerships or Airline alliance, alliances with other airlines ...
reservations
*
Banking
A bank is a financial institution that accepts Deposit account, deposits from the public and creates a demand deposit while simultaneously making loans. Lending activities can be directly performed by the bank or indirectly through capital m ...
**
Automated teller machine
An automated teller machine (ATM) is an electronic telecommunications device that enables customers of financial institutions to perform financial transactions, such as cash withdrawals, deposits, funds transfers, balance inquiries or account ...
s
**
Cheque processing
**
Credit cards
*
Commerce
Commerce is the organized Complex system, system of activities, functions, procedures and institutions that directly or indirectly contribute to the smooth, unhindered large-scale exchange (distribution through Financial transaction, transactiona ...
**
Trade
Trade involves the transfer of goods and services from one person or entity to another, often in exchange for money. Economists refer to a system or network that allows trade as a market.
Traders generally negotiate through a medium of cr ...
**
Auctions (e.g. eBay)
**
Reverse auctions (procurement)
**
Bar code scanners
*
Compiler
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
s
**
Parser
Parsing, syntax analysis, or syntactic analysis is a process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar by breaking it into parts. The term '' ...
s
**
Compiler optimization
**
Interpreters
**
Linkers
**
Loaders
*
Communication
Communication is commonly defined as the transmission of information. Its precise definition is disputed and there are disagreements about whether Intention, unintentional or failed transmissions are included and whether communication not onl ...
**
E-mail
**
Instant messengers
**
VOIP
Voice over Internet Protocol (VoIP), also known as IP telephony, is a set of technologies used primarily for voice communication sessions over Internet Protocol (IP) networks, such as the Internet. VoIP enables voice calls to be transmitted as ...
**
Calendar
A calendar is a system of organizing days. This is done by giving names to periods of time, typically days, weeks, months and years. A calendar date, date is the designation of a single and specific day within such a system. A calendar is ...
s — scheduling and coordinating
**
Contact managers
*
Computer graphics
Computer graphics deals with generating images and art with the aid of computers. Computer graphics is a core technology in digital photography, film, video games, digital art, cell phone and computer displays, and many specialized applications. ...
**
Animation
Animation is a filmmaking technique whereby still images are manipulated to create moving images. In traditional animation, images are drawn or painted by hand on transparent celluloid sheets to be photographed and exhibited on film. Animati ...
**
Special effects for video and film
**
Editing
Editing is the process of selecting and preparing written language, written, Image editing, visual, Audio engineer, audible, or Film editing, cinematic material used by a person or an entity to convey a message or information. The editing p ...
**Post-processing
*
Cryptography
Cryptography, or cryptology (from "hidden, secret"; and ''graphein'', "to write", or ''-logy, -logia'', "study", respectively), is the practice and study of techniques for secure communication in the presence of Adversary (cryptography), ...
*
Database
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
s, support almost every field
*
Embedded systems Both software engineers and traditional engineers write software control systems for embedded products.
**
Automotive software
**
Avionics software
**Heating ventilating and air conditioning (
HVAC) software
**
Medical device software
**
Telephony
Telephony ( ) is the field of technology involving the development, application, and deployment of telecommunications services for the purpose of electronic transmission of voice, fax, or data, between distant parties. The history of telephony is ...
**
Telemetry
*
Engineering
Engineering is the practice of using natural science, mathematics, and the engineering design process to Problem solving#Engineering, solve problems within technology, increase efficiency and productivity, and improve Systems engineering, s ...
All traditional engineering branches use software extensively. Engineers use spreadsheets, more than they ever used calculators. Engineers use custom software
tool
A tool is an Physical object, object that can extend an individual's ability to modify features of the surrounding environment or help them accomplish a particular task. Although many Tool use by animals, animals use simple tools, only human bei ...
s to design, analyze, and simulate their own projects, like bridges and power lines. These projects resemble software in many respects, because the work exists as
electronic document
An electronic document is a document that can be sent in non-physical means, such as telex, email, and the internet. Originally, any computer data were considered as something internal—the final data output was always on paper. However, the ...
s and goes through analysis,
design
A design is the concept or proposal for an object, process, or system. The word ''design'' refers to something that is or has been intentionally created by a thinking agent, and is sometimes used to refer to the inherent nature of something ...
,
implementation
Implementation is the realization of an application, execution of a plan, idea, scientific modelling, model, design, specification, Standardization, standard, algorithm, policy, or the Management, administration or management of a process or Goal ...
, and testing phases. Software tools for engineers use the tenets of computer science; as well as the tenets of calculus, physics, and chemistry.
**
Computer Aided Design (CAD)
**
Electronic Design Automation (EDA)
**
Numerical Analysis
Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic computation, symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). It is the study of ...
**
Simulation
A simulation is an imitative representation of a process or system that could exist in the real world. In this broad sense, simulation can often be used interchangeably with model. Sometimes a clear distinction between the two terms is made, in ...
*
File
**
FTP
The File Transfer Protocol (FTP) is a standard communication protocol used for the transfer of computer files from a server to a client on a computer network. FTP is built on a client–server model architecture using separate control and dat ...
**
File sharing
File sharing is the practice of distributing or providing access to digital media, such as computer programs, multimedia (audio, images and video), documents or electronic books. Common methods of storage, transmission and dispersion include ...
**
File synchronization
*
Finance
Finance refers to monetary resources and to the study and Academic discipline, discipline of money, currency, assets and Liability (financial accounting), liabilities. As a subject of study, is a field of Business administration, Business Admin ...
**
Bond market
**
Futures market
**
Stock market
*
Game
A game is a structured type of play usually undertaken for entertainment or fun, and sometimes used as an educational tool. Many games are also considered to be work (such as professional players of spectator sports or video games) or art ...
s
**
Poker
Poker is a family of Card game#Comparing games, comparing card games in which Card player, players betting (poker), wager over which poker hand, hand is best according to that specific game's rules. It is played worldwide, with varying rules i ...
**
Multiuser Dungeons
**
Video game
A video game or computer game is an electronic game that involves interaction with a user interface or input device (such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device) to generate visual fe ...
s
*
Information systems
An information system (IS) is a formal, sociotechnical, organizational system designed to collect, process, store, and distribute information. From a sociotechnical perspective, information systems comprise four components: task, people, structu ...
, support almost every field
**
LIS Management of laboratory data
**
MIS Management of financial and personnel data
*
Logistics
Logistics is the part of supply chain management that deals with the efficient forward and reverse flow of goods, services, and related information from the point of origin to the Consumption (economics), point of consumption according to the ...
**
Supply chain management
In commerce, supply chain management (SCM) deals with a system of procurement (purchasing raw materials/components), operations management, logistics and marketing channels, through which raw materials can be developed into finished produc ...
*
Manufacturing
Manufacturing is the creation or production of goods with the help of equipment, labor, machines, tools, and chemical or biological processing or formulation. It is the essence of the
secondary sector of the economy. The term may refer ...
**
Computer Aided Manufacturing (CAM)
**
Distributed Control Systems (DCS)
*
Music
Music is the arrangement of sound to create some combination of Musical form, form, harmony, melody, rhythm, or otherwise Musical expression, expressive content. Music is generally agreed to be a cultural universal that is present in all hum ...
**
Music sequencer
A music sequencer (or audio sequencer or simply sequencer) is a device or application software that can record, edit, or play back music, by handling Musical note, note and performance information in several forms, typically CV/Gate, MIDI, or Open ...
s
**
Sound effects
A sound effect (or audio effect) is an artificially created or enhanced sound, or sound process used to emphasize artistic or other content of films, television shows, live performance, animation, video games, music, or other media.
In m ...
**
Music synthesis
*
Network Management
**
Network management system
**
Element Management System
**
Operations Support System
**
Business Support Systems
*
Networks and
Internet
The Internet (or internet) is the Global network, global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a internetworking, network of networks ...
**
Domain Name System
**
Protocols
**
Routers
*
Office suite
Productivity software (also called personal productivity software or office productivity software) is application software used for producing information (such as documents, presentations, worksheets, databases, charts, graphs, digital paintin ...
s
**
Word processor A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features.
Early word processors were stand-alone devices dedicated to the function, but current word ...
s
**
Spreadsheet
A spreadsheet is a computer application for computation, organization, analysis and storage of data in tabular form. Spreadsheets were developed as computerized analogs of paper accounting worksheets. The program operates on data entered in c ...
s
**
Presentations
*
Operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s
**
Embedded
**
Graphical
**
Multitasking
**
Real-time
*
Robotics
Robotics is the interdisciplinary study and practice of the design, construction, operation, and use of robots.
Within mechanical engineering, robotics is the design and construction of the physical structures of robots, while in computer s ...
*
Signal processing
Signal processing is an electrical engineering subfield that focuses on analyzing, modifying and synthesizing ''signals'', such as audio signal processing, sound, image processing, images, Scalar potential, potential fields, Seismic tomograph ...
, encoding and interpreting signals
**
Image processing
An image or picture is a visual representation. An image can be two-dimensional, such as a drawing, painting, or photograph, or three-dimensional, such as a carving or sculpture. Images may be displayed through other media, including a pr ...
, encoding and interpreting visual information
**
Speech processing
**
Text recognition
**
Handwriting recognition
Handwriting recognition (HWR), also known as handwritten text recognition (HTR), is the ability of a computer to receive and interpret intelligible handwriting, handwritten input from sources such as paper documents, photographs, touch-screens ...
*
Simulation
A simulation is an imitative representation of a process or system that could exist in the real world. In this broad sense, simulation can often be used interchangeably with model. Sometimes a clear distinction between the two terms is made, in ...
, supports almost every field.
**
Engineering
Engineering is the practice of using natural science, mathematics, and the engineering design process to Problem solving#Engineering, solve problems within technology, increase efficiency and productivity, and improve Systems engineering, s ...
, A software
simulation
A simulation is an imitative representation of a process or system that could exist in the real world. In this broad sense, simulation can often be used interchangeably with model. Sometimes a clear distinction between the two terms is made, in ...
can be cheaper to build and more flexible to change than a physical
engineering model.
**
Science
Science is a systematic discipline that builds and organises knowledge in the form of testable hypotheses and predictions about the universe. Modern science is typically divided into twoor threemajor branches: the natural sciences, which stu ...
s
*
Science
Science is a systematic discipline that builds and organises knowledge in the form of testable hypotheses and predictions about the universe. Modern science is typically divided into twoor threemajor branches: the natural sciences, which stu ...
s
**
Genomics
*Traffic Control
**
Air traffic control
Air traffic control (ATC) is a service provided by ground-based air traffic controllers who direct aircraft on the ground and through a given section of controlled airspace, and can provide advisory services to aircraft in non-controlled air ...
**
Ship traffic control
**
Road traffic control
*
Training
Training is teaching, or developing in oneself or others, any skills and knowledge or fitness that relate to specific useful competencies. Training has specific goals of improving one's capability, capacity, productivity and performance. I ...
**
Drill
**
Simulation
A simulation is an imitative representation of a process or system that could exist in the real world. In this broad sense, simulation can often be used interchangeably with model. Sometimes a clear distinction between the two terms is made, in ...
**Testing
*
Visualization, supports almost every field
**
Architecture
Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and construction, constructi ...
**
Engineering
Engineering is the practice of using natural science, mathematics, and the engineering design process to Problem solving#Engineering, solve problems within technology, increase efficiency and productivity, and improve Systems engineering, s ...
**
Science
Science is a systematic discipline that builds and organises knowledge in the form of testable hypotheses and predictions about the universe. Modern science is typically divided into twoor threemajor branches: the natural sciences, which stu ...
s
*
Voting
*
World Wide Web
The World Wide Web (WWW or simply the Web) is an information system that enables Content (media), content sharing over the Internet through user-friendly ways meant to appeal to users beyond Information technology, IT specialists and hobbyis ...
**
Browsers
**
Servers
Software engineering topics
Programming paradigm, based on a programming language technology
*
Object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
*
Aspect-oriented programming
*
Functional decomposition
*
Structured programming Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making specific disciplined use of the structured control flow constructs of selection ( if/then/else) and repet ...
*
Rule-based programming
Databases
*
Hierarchical
*
Object
*
Relational
*
SQL/XML
*
SQL
*
NoSQL
NoSQL (originally meaning "Not only SQL" or "non-relational") refers to a type of database design that stores and retrieves data differently from the traditional table-based structure of relational databases. Unlike relational databases, which ...
Graphical user interfaces
*
GTK+ GIMP Toolkit
*
wxWidgets
*
Ultimate++
*
Qt toolkit
*
FLTK
Programming tools
*
Configuration management and source code management
**
CVS
**
Subversion
Subversion () refers to a process by which the values and principles of a system in place are contradicted or reversed in an attempt to sabotage the established social order and its structures of Power (philosophy), power, authority, tradition, h ...
**
Git
**
Mercurial
**
RCS
**
GNU Arch
**LibreSource Synchronizer
**
Team Foundation Server
**
Visual Studio Team Services
*
Build tools
**
Make
**
Rake
**
Cabal
**
Ant
Ants are Eusociality, eusocial insects of the Family (biology), family Formicidae and, along with the related wasps and bees, belong to the Taxonomy (biology), order Hymenoptera. Ants evolved from Vespoidea, vespoid wasp ancestors in the Cre ...
**
CADES
**
Nant
**
Maven
**Final Builder
**
Gradle
**
Team Foundation Server
**
Visual Studio Team Services
**Visual Build Pro
*
Editors
**
Integrated development environment
An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
s (IDEs)
**
Text editors
**
Word processor A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features.
Early word processors were stand-alone devices dedicated to the function, but current word ...
s
*
Parser
Parsing, syntax analysis, or syntactic analysis is a process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar by breaking it into parts. The term '' ...
creation tools
**
Yacc
Yacc (Yet Another Compiler-Compiler) is a computer program for the Unix operating system developed by Stephen C. Johnson. It is a lookahead left-to-right rightmost derivation (LALR) parser generator, generating a LALR parser (the part of a co ...
/
Bison
A bison (: bison) is a large bovine in the genus ''Bison'' (from Greek, meaning 'wild ox') within the tribe Bovini. Two extant taxon, extant and numerous extinction, extinct species are recognised.
Of the two surviving species, the American ...
*
Static code analysis tools
Libraries
*
Component-based software engineering
Component-based software engineering (CBSE), also called component-based development (CBD), is a style of software engineering that aims to construct a software system from software component, components that are loosely-Coupling (computer program ...
Design languages
*
Unified Modeling Language (UML)
Patterns, document many common programming and project management techniques
*
Anti-patterns
*
Patterns
Processes and methodologies
*Agile
**
Agile software development
Agile software development is an umbrella term for approaches to software development, developing software that reflect the values and principles agreed upon by ''The Agile Alliance'', a group of 17 software practitioners, in 2001. As documented ...
**
Extreme programming
**
Lean software development
**
Rapid application development (RAD)
**
Rational Unified Process
**
Scrum
*Heavyweight
**
Cleanroom
**
ISO/IEC 12207 — software life cycle processes
**
ISO 9000 and
ISO 9001
*Process Models
**
CMM and
CMMI
Capability Maturity Model Integration (CMMI) is a process level improvement training and appraisal program. Administered by the CMMI Institute, a subsidiary of ISACA, it was developed at Carnegie Mellon University (CMU). It is required by many U ...
/
SCAMPI
**
ISO 15504 (SPICE)
*Metamodels
**
ISO/IEC 24744
**
SPEM
Platforms
A platform combines computer hardware and an operating system. As platforms grow more powerful and less costly, applications and tools grow more widely available.
*
BREW
*
Cray supercomputer
A supercomputer is a type of computer with a high level of performance as compared to a general-purpose computer. The performance of a supercomputer is commonly measured in floating-point operations per second (FLOPS) instead of million instruc ...
s
*
DEC minicomputers
*
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
mainframes
*
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
PCs
*
Classic Mac OS
Mac OS (originally System Software; retronym: Classic Mac OS) is the series of operating systems developed for the Mac (computer), Macintosh family of personal computers by Apple Computer, Inc. from 1984 to 2001, starting with System 1 and end ...
and
macOS
macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
PCs
*
Microsoft .NET
*
Palm PDAs
*
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
Solaris
*
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
PCs (
Wintel)
*
Symbian OS
Other Practices
*
Communication
Communication is commonly defined as the transmission of information. Its precise definition is disputed and there are disagreements about whether Intention, unintentional or failed transmissions are included and whether communication not onl ...
*
Method engineering
*
Pair programming
*
Performance Engineering
*
Programming productivity
*
Refactoring
*
Software inspections/
Code reviews
*
Software reuse
*
Systems integration
*
Teamwork
Other tools
*
Decision tables
*
Feature
Feature may refer to:
Computing
* Feature recognition, could be a hole, pocket, or notch
* Feature (computer vision), could be an edge, corner or blob
* Feature (machine learning), in statistics: individual measurable properties of the phenome ...
*
User stories
*
Use cases
Computer science topics
Skilled software engineers know a lot of
computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
including what is possible and impossible, and what is easy and hard for software.
*
Algorithms
In mathematics and computer science, an algorithm () is a finite sequence of mathematically rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for per ...
, well-defined methods for solving specific problems.
**
Searching
**
Sorting
Sorting refers to ordering data in an increasing or decreasing manner according to some linear relationship among the data items.
# ordering: arranging items in a sequence ordered by some criterion;
# categorizing: grouping items with similar p ...
**
Parsing
Parsing, syntax analysis, or syntactic analysis is a process of analyzing a String (computer science), string of Symbol (formal), symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal gramm ...
**
Numerical analysis
Numerical analysis is the study of algorithms that use numerical approximation (as opposed to symbolic computation, symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics). It is the study of ...
*
Compiler theory
In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
**
Yacc
Yacc (Yet Another Compiler-Compiler) is a computer program for the Unix operating system developed by Stephen C. Johnson. It is a lookahead left-to-right rightmost derivation (LALR) parser generator, generating a LALR parser (the part of a co ...
/
Bison
A bison (: bison) is a large bovine in the genus ''Bison'' (from Greek, meaning 'wild ox') within the tribe Bovini. Two extant taxon, extant and numerous extinction, extinct species are recognised.
Of the two surviving species, the American ...
*
Data structures
In computer science, a data structure is a data organization and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, and the functi ...
, well-defined methods for storing and retrieving data.
**
List
A list is a Set (mathematics), set of discrete items of information collected and set forth in some format for utility, entertainment, or other purposes. A list may be memorialized in any number of ways, including existing only in the mind of t ...
s
**
Trees
**
Hash table
In computer science, a hash table is a data structure that implements an associative array, also called a dictionary or simply map; an associative array is an abstract data type that maps Unique key, keys to Value (computer science), values. ...
s
*
Computability, some problems cannot be solved at all
**
List of unsolved problems in computer science
**
Halting problem
In computability theory (computer science), computability theory, the halting problem is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running, or continue to run for ...
*
Complexity
Complexity characterizes the behavior of a system or model whose components interact in multiple ways and follow local rules, leading to non-linearity, randomness, collective dynamics, hierarchy, and emergence.
The term is generally used to c ...
, some problems are solvable in principle, yet unsolvable in practice
**
NP completeness
**
Computational complexity theory
In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and explores the relationships between these classifications. A computational problem ...
*
Formal methods
In computer science, formal methods are mathematics, mathematically rigorous techniques for the formal specification, specification, development, Program analysis, analysis, and formal verification, verification of software and computer hardware, ...
**
Proof of correctness
**
Program synthesis
In computer science, program synthesis is the task to construct a computer program, program that provably correct, provably satisfies a given high-level formal specification. In contrast to program verification, the program is to be constructed rat ...
*
Adaptive Systems
**
Neural Networks
A neural network is a group of interconnected units called neurons that send signals to one another. Neurons can be either Cell (biology), biological cells or signal pathways. While individual neurons are simple, many of them together in a netwo ...
**
Evolutionary Algorithms
Evolutionary algorithms (EA) reproduce essential elements of the biological evolution in a computer algorithm in order to solve "difficult" problems, at least Approximation, approximately, for which no exact or satisfactory solution methods are k ...
Mathematics topics
Discrete mathematics
Discrete mathematics is the study of mathematical structures that can be considered "discrete" (in a way analogous to discrete variables, having a bijection with the set of natural numbers) rather than "continuous" (analogously to continuous f ...
is a key foundation of
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
engineering.
*
Number
A number is a mathematical object used to count, measure, and label. The most basic examples are the natural numbers 1, 2, 3, 4, and so forth. Numbers can be represented in language with number words. More universally, individual numbers can ...
representation
*
Set (computer science)
In computer science, a set is an abstract data type that can store unique values, without any particular sequence, order. It is a computer implementation of the mathematics, mathematical concept of a finite set. Unlike most other collection (abstr ...
*
Bag
A bag, also known regionally as a sack, is a common tool in the form of a floppy container, typically made of cloth, leather, bamboo, paper, or plastic. The use of bags predates recorded history, with the earliest bags being lengths of animal s ...
s
*
Graphs
**
Sequence
In mathematics, a sequence is an enumerated collection of objects in which repetitions are allowed and order matters. Like a set, it contains members (also called ''elements'', or ''terms''). The number of elements (possibly infinite) is cal ...
s
**
Tree
In botany, a tree is a perennial plant with an elongated stem, or trunk, usually supporting branches and leaves. In some usages, the definition of a tree may be narrower, e.g., including only woody plants with secondary growth, only ...
s
**
Graph (data structure)
*
Logic
Logic is the study of correct reasoning. It includes both formal and informal logic. Formal logic is the study of deductively valid inferences or logical truths. It examines how conclusions follow from premises based on the structure o ...
**
Deduction
**
First-order logic
**
Higher-order logic
In mathematics and logic, a higher-order logic (abbreviated HOL) is a form of logic that is distinguished from first-order logic by additional quantifiers and, sometimes, stronger semantics. Higher-order logics with their standard semantics are m ...
**
Combinatory logic
*
Induction
*
Combinatorics
Combinatorics is an area of mathematics primarily concerned with counting, both as a means and as an end to obtaining results, and certain properties of finite structures. It is closely related to many other areas of mathematics and has many ...
Other
*
Domain knowledge
*
Statistics
Statistics (from German language, German: ', "description of a State (polity), state, a country") is the discipline that concerns the collection, organization, analysis, interpretation, and presentation of data. In applying statistics to a s ...
*
Decision theory
Decision theory or the theory of rational choice is a branch of probability theory, probability, economics, and analytic philosophy that uses expected utility and probabilities, probability to model how individuals would behave Rationality, ratio ...
*
Type theory
In mathematics and theoretical computer science, a type theory is the formal presentation of a specific type system. Type theory is the academic study of type systems.
Some type theories serve as alternatives to set theory as a foundation of ...
Life cycle phases
*
Development life cycle phase
**
Requirements gathering / analysis
**
Software architecture
Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements a ...
**
Computer programming
Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
**
Testing, detects
bugs
***
Black box testing
***
White box testing
**
Quality assurance, ensures compliance with process.
*
Product Life cycle phase and
Project lifecycle
**Inception
**
First development
**
Major release
**
Minor release
**
Bug fix release
**
Maintenance
**
Obsolescence
Obsolescence is the process of becoming antiquated, out of date, old-fashioned, no longer in general use, or no longer useful, or the condition of being in such a state. When used in a biological sense, it means imperfect or rudimentary when comp ...
*
Release
Release may refer to:
* Art release, the public distribution of an artistic production, such as a film, album, or song
* Legal release, a legal instrument
* News release, a communication directed at the news media
* Release (ISUP), a code to i ...
development stage, near the end of a release cycle
**
Alpha
Alpha (uppercase , lowercase ) is the first letter of the Greek alphabet. In the system of Greek numerals, it has a value of one. Alpha is derived from the Phoenician letter ''aleph'' , whose name comes from the West Semitic word for ' ...
**
Beta
Beta (, ; uppercase , lowercase , or cursive ; or ) is the second letter of the Greek alphabet. In the system of Greek numerals, it has a value of 2. In Ancient Greek, beta represented the voiced bilabial plosive . In Modern Greek, it represe ...
**
Gold master
**
1.0;
2.0
*
Software development lifecycle
**
Waterfall model —
Structured programming Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making specific disciplined use of the structured control flow constructs of selection ( if/then/else) and repet ...
and
Stepwise refinement
**
SSADM
**
Spiral model —
Iterative development
**
V-model
**
Agile software development
Agile software development is an umbrella term for approaches to software development, developing software that reflect the values and principles agreed upon by ''The Agile Alliance'', a group of 17 software practitioners, in 2001. As documented ...
**
DSDM
**
Chaos model —
Chaos strategy
Deliverables
Deliverables must be developed for many SE projects. Software engineers rarely make all of these deliverables themselves. They usually cooperate with the writers, trainers, installers, marketers, technical support people, and others who make many of these deliverables.
*Application software — the software
*
Database
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
— schemas and data.
*
Documentation
Documentation is any communicable material that is used to describe, explain or instruct regarding some attributes of an object, system or procedure, such as its parts, assembly, installation, maintenance, and use. As a form of knowledge managem ...
, online and/or print,
FAQ,
Readme,
release notes,
Help
Help may refer to:
Arts, entertainment, and media
Films
* Help (2010 film), ''Help'' (2010 film), a Bollywood horror film
* Help (2021 theatrical film), ''Help'' (2021 theatrical film), a British psychological thriller film
* Help (2021 TV ...
, for each role
**
User
**
Administrator
**
Manager
**
Buyer
*Administration and
Maintenance policy, what should be backed-up, checked, configured, ...
*
Installers
*Migration
**Upgrade from previous installations
**Upgrade from competitor's installations
*
Training
Training is teaching, or developing in oneself or others, any skills and knowledge or fitness that relate to specific useful competencies. Training has specific goals of improving one's capability, capacity, productivity and performance. I ...
materials, for each role
**
User
**Administrator
**
Manager
**
Buyer
*
Support info for computer support groups.
*
Marketing
Marketing is the act of acquiring, satisfying and retaining customers. It is one of the primary components of Business administration, business management and commerce.
Marketing is usually conducted by the seller, typically a retailer or ma ...
and
sales
Sales are activities related to selling or the number of goods sold in a given targeted time period. The delivery of a service for a cost is also considered a sale. A period during which goods are sold for a reduced price may also be referred ...
materials
**
White papers, explain the technologies used in the applications
Business roles
*Operations
**
Users
**Administrators
**
Managers
**
Buyers
*Development
**
Analysts
**
Programmer
A programmer, computer programmer or coder is an author of computer source code someone with skill in computer programming.
The professional titles Software development, ''software developer'' and Software engineering, ''software engineer' ...
s
**
Testers
**
Managers
*
Business
Business is the practice of making one's living or making money by producing or Trade, buying and selling Product (business), products (such as goods and Service (economics), services). It is also "any activity or enterprise entered into for ...
**
Consulting — customization and installation of applications
**
Sales
Sales are activities related to selling or the number of goods sold in a given targeted time period. The delivery of a service for a cost is also considered a sale. A period during which goods are sold for a reduced price may also be referred ...
**
Marketing
Marketing is the act of acquiring, satisfying and retaining customers. It is one of the primary components of Business administration, business management and commerce.
Marketing is usually conducted by the seller, typically a retailer or ma ...
**
Legal
Law is a set of rules that are created and are law enforcement, enforceable by social or governmental institutions to regulate behavior, with its precise definition a matter of longstanding debate. It has been variously described as a Socia ...
— contracts, intellectual property rights
**
Privacy
Privacy (, ) is the ability of an individual or group to seclude themselves or information about themselves, and thereby express themselves selectively.
The domain of privacy partially overlaps with security, which can include the concepts of a ...
and
Privacy engineering
**
Support — helping customers use applications
**
Personnel — hiring and training qualified personnel
**
Finance
Finance refers to monetary resources and to the study and Academic discipline, discipline of money, currency, assets and Liability (financial accounting), liabilities. As a subject of study, is a field of Business administration, Business Admin ...
— funding new development
*
Academe
**
Educator
A teacher, also called a schoolteacher or formally an educator, is a person who helps students to acquire knowledge, competence, or virtue, via the practice of teaching.
''Informally'' the role of teacher may be taken on by anyone (e.g. w ...
s
**
Researcher
Research is creative and systematic work undertaken to increase the stock of knowledge. It involves the collection, organization, and analysis of evidence to increase understanding of a topic, characterized by a particular attentiveness to ...
s
Management topics
*
Leadership
Leadership, is defined as the ability of an individual, group, or organization to "", influence, or guide other individuals, teams, or organizations.
"Leadership" is a contested term. Specialist literature debates various viewpoints on the co ...
**
Coaching
**
Communication
Communication is commonly defined as the transmission of information. Its precise definition is disputed and there are disagreements about whether Intention, unintentional or failed transmissions are included and whether communication not onl ...
**
Listening
Listening is the act of attention, paying attention to sounds. It includes listening to the sounds of Natural environment, nature, listening to music, and perhaps most importantly, Interpersonal communication, interpersonal listening, i.e. liste ...
**
Motivation
Motivation is an mental state, internal state that propels individuals to engage in goal-directed behavior. It is often understood as a force that explains why people or animals initiate, continue, or terminate a certain behavior at a particul ...
**
Vision
Vision, Visions, or The Vision may refer to:
Perception Optical perception
* Visual perception, the sense of sight
* Visual system, the physical mechanism of eyesight
* Computer vision, a field dealing with how computers can be made to gain und ...
, SEs are good at this
**
Example
Example may refer to:
* ''exempli gratia'' (e.g.), usually read out in English as "for example"
* .example, reserved as a domain name that may not be installed as a top-level domain of the Internet
** example.com, example.net, example.org, an ...
, everyone follows a good example best
*
Human resource management
**
Hiring, getting people into an organization
**
Training
Training is teaching, or developing in oneself or others, any skills and knowledge or fitness that relate to specific useful competencies. Training has specific goals of improving one's capability, capacity, productivity and performance. I ...
**
Evaluation
In common usage, evaluation is a systematic determination and assessment of a subject's merit, worth and significance, using criteria governed by a set of Standardization, standards. It can assist an organization, program, design, project or any o ...
*
Project management
Project management is the process of supervising the work of a Project team, team to achieve all project goals within the given constraints. This information is usually described in project initiation documentation, project documentation, crea ...
**
Goal setting
**
Customer interaction (Rethink)
**
Estimation
**
Risk management
Risk management is the identification, evaluation, and prioritization of risks, followed by the minimization, monitoring, and control of the impact or probability of those risks occurring. Risks can come from various sources (i.e, Threat (sec ...
**
Change management
*
Process management
**
Software development process
In software engineering, a software development process or software development life cycle (SDLC) is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or s ...
es
**
Metrics
Business topics
*Quality programs
**
Malcolm Baldrige National Quality Award
**
Six Sigma
**
Total Quality Management (TQM)
Software engineering profession
*
Software engineering demographics
*
Software engineering economics
*
CCSE
*
History of software engineering
*
Software engineering professionalism
**
Ethics
Ethics is the philosophy, philosophical study of Morality, moral phenomena. Also called moral philosophy, it investigates Normativity, normative questions about what people ought to do or which behavior is morally right. Its main branches inclu ...
**
Licensing
A license (American English) or licence ( Commonwealth English) is an official permission or permit to do, use, or own something (as well as the document of that permission or permit).
A license is granted by a party (licensor) to another par ...
*Legal
**
Intellectual property
Intellectual property (IP) is a category of property that includes intangible creations of the human intellect. There are many types of intellectual property, and some countries recognize more than others. The best-known types are patents, co ...
**
Consumer protection
Consumer protection is the practice of safeguarding buyers of goods and services, and the public, against unfair practices in the marketplace. Consumer protection measures are often established by law. Such laws are intended to prevent business ...
History of software engineering
History of software engineering
Pioneers
Many people made important contributions to SE technologies, practices, or applications.
*
John Backus:
Fortran, first optimizing compiler,
BNF
*
Victor Basili: Experience factory.
*
F.L. Bauer:
Stack principle, popularized the term ''Software Engineering''
*
Kent Beck:
Refactoring,
extreme programming,
pair programming,
test-driven development.
*
Tim Berners-Lee
Sir Timothy John Berners-Lee (born 8 June 1955), also known as TimBL, is an English computer scientist best known as the inventor of the World Wide Web, the HTML markup language, the URL system, and HTTP. He is a professorial research fellow a ...
:
World Wide Web
The World Wide Web (WWW or simply the Web) is an information system that enables Content (media), content sharing over the Internet through user-friendly ways meant to appeal to users beyond Information technology, IT specialists and hobbyis ...
*
Barry Boehm:
SE economics,
COCOMO,
Spiral model.
*
Grady Booch:
Object-oriented design
A design is the concept or proposal for an object, process, or system. The word ''design'' refers to something that is or has been intentionally created by a thinking agent, and is sometimes used to refer to the inherent nature of something ...
,
UML.
*
Fred Brooks: Managed
System 360 and
OS 360. Wrote ''
The Mythical Man-Month'' and ''
No Silver Bullet''.
*
Larry Constantine:
Structured design,
coupling,
cohesion
*
Edsger Dijkstra: Wrote ''
Notes on Structured Programming'', ''
A Discipline of Programming'' and ''
Go To Statement Considered Harmful'',
algorithms
In mathematics and computer science, an algorithm () is a finite sequence of mathematically rigorous instructions, typically used to solve a class of specific problems or to perform a computation. Algorithms are used as specifications for per ...
,
formal methods
In computer science, formal methods are mathematics, mathematically rigorous techniques for the formal specification, specification, development, Program analysis, analysis, and formal verification, verification of software and computer hardware, ...
,
pedagogy
Pedagogy (), most commonly understood as the approach to teaching, is the theory and practice of learning, and how this process influences, and is influenced by, the social, political, and psychological development of learners. Pedagogy, taken ...
.
*
Michael Fagan:
Software inspection.
*
Tom Gilb:
Software metrics,
Software inspection,
Evolutionary Delivery ("Evo").
*
Adele Goldstine: Wrote the Operators Manual for the
ENIAC
ENIAC (; Electronic Numerical Integrator and Computer) was the first Computer programming, programmable, Electronics, electronic, general-purpose digital computer, completed in 1945. Other computers had some of these features, but ENIAC was ...
, the first electronic digital computer, and trained some of the first
human computers
*
Lois Haibt:
FORTRAN, wrote the first
parser
Parsing, syntax analysis, or syntactic analysis is a process of analyzing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar by breaking it into parts. The term '' ...
*
Margaret Hamilton: Coined the term "software engineering", developed
Universal Systems Language
*
Mary Jean Harrold:
Regression testing
Regression testing (rarely, ''non-regression testing'') is re-running functional and non-functional tests to ensure that previously developed and tested software still performs as expected after a change. If not, that would be called a '' regr ...
, fault localization
*
Grace Hopper: The first compiler (Mark 1),
COBOL,
Nanoseconds.
*
Watts Humphrey:
Capability Maturity Model,
Personal Software Process, fellow of the
Software Engineering Institute.
*
Jean Ichbiah:
Ada
*
Michael A. Jackson:
Jackson Structured Programming
Jackson structured programming (JSP) is a method for structured programming developed by British software consultant Michael A. Jackson (computer scientist), Michael A. Jackson and was described in his 1975 book ''Principles of Program Design''.. ...
,
Jackson System Development
*
Bill Joy: Berkeley
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
,
vi,
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
.
*
Alan Kay:
Smalltalk
Smalltalk is a purely object oriented programming language (OOP) that was originally created in the 1970s for educational use, specifically for constructionist learning, but later found use in business. It was created at Xerox PARC by Learni ...
*
Brian Kernighan
Brian Wilson Kernighan (; born January 30, 1942) is a Canadian computer scientist.
He worked at Bell Labs and contributed to the development of Unix alongside Unix creators Ken Thompson and Dennis Ritchie. Kernighan's name became widely known ...
: C and Unix.
*
Donald Knuth: Wrote ''
The Art of Computer Programming'',
TeX
Tex, TeX, TEX, may refer to:
People and fictional characters
* Tex (nickname), a list of people and fictional characters with the nickname
* Tex Earnhardt (1930–2020), U.S. businessman
* Joe Tex (1933–1982), stage name of American soul singer ...
,
algorithm
In mathematics and computer science, an algorithm () is a finite sequence of Rigour#Mathematics, mathematically rigorous instructions, typically used to solve a class of specific Computational problem, problems or to perform a computation. Algo ...
s,
literate programming
*
Nancy Leveson: System safety
*
Bertrand Meyer
Bertrand Meyer (; ; born 21 November 1950) is a French academic, author, and consultant in the field of computer languages. He created the Eiffel programming language and the concept of design by contract.
Education and academic career
Meyer ...
:
Design by Contract,
Eiffel programming language.
*
Peter G. Neumann:
RISKS Digest, ACM Sigsoft.
*
David Parnas: Module design, social responsibility, professionalism.
*
Jef Raskin: Developed the original
Macintosh
Mac is a brand of personal computers designed and marketed by Apple Inc., Apple since 1984. The name is short for Macintosh (its official name until 1999), a reference to the McIntosh (apple), McIntosh apple. The current product lineup inclu ...
GUI, authored
The Humane Interface
*
Dennis Ritchie:
C and
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
.
*
Winston W. Royce:
Waterfall model.
*
Mary Shaw: Software
architecture
Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction. It is both the process and the product of sketching, conceiving, planning, designing, and construction, constructi ...
.
*
Richard Stallman: Founder of the
Free Software Foundation
The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed ...
*
Linus Torvalds
Linus Benedict Torvalds ( , ; born 28 December 1969) is a Finnish software engineer who is the creator and lead developer of the Linux kernel. He also created the distributed version control system Git.
He was honored, along with Shinya Yam ...
:
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
kernel,
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
/
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
development.
*
Will Tracz: Reuse, ACM Software Engineering Notes.
*
Gerald Weinberg: Wrote ''
The Psychology of Computer Programming''.
*
Elaine Weyuker: Software testing
*
Jeannette Wing:
Formal specifications.
*
Ed Yourdon:
Structured programming Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making specific disciplined use of the structured control flow constructs of selection ( if/then/else) and repet ...
, wrote ''
The Decline and Fall of the American Programmer''.
See also
*
List of programmers
*
List of computer scientists
Notable publications
*''About Face: The Essentials of User Interface Design'' by
Alan Cooper, about user interface design.
*''The Capability Maturity Model'' by
Watts Humphrey. Written for the
Software Engineering Institute, emphasizing management and process. (See ''Managing the Software Process'' )
*''
The Cathedral and the Bazaar'' by
Eric Raymond about open source development.
*''The Decline and Fall of the American Programmer'' by
Ed Yourdon predicts the end of software development in the U.S.
*''
Design Patterns'' by
Erich Gamma,
Richard Helm,
Ralph Johnson, and
John Vlissides.
*''Extreme Programming Explained'' by
Kent Beck
Go To Statement Considered Harmful by
Edsger Dijkstra.
*"Internet, Innovation and Open Source:Actors in the Network" — ''
First Monday'' article by
Ilkka Tuomi (2000
source*''
The Mythical Man-Month'' by
Fred Brooks, about project management.
*''Object-oriented Analysis and Design'' by
Grady Booch.
*''
Peopleware'' by
Tom DeMarco and Tim Lister.
*''The pragmatic engineer versus the scientific designer'' by
E. W. Dijkstrabr>
*''Principles of Software Engineering Management'' by
Tom Gilb about evolutionary processes.
*''The Psychology of Computer Programming'' by
Gerald Weinberg. Written as an independent consultant, partly about his years at IBM.
*''Refactoring: Improving the Design of Existing Code'' by
Martin Fowler (software engineer), Martin Fowler,
Kent Beck, John Brant,
William Opdyke, and Don Roberts.
*
The Pragmatic Programmer: from journeyman to master' by
Andrew Hunt, and
David Thomas.
*''
Software Engineering Body of Knowledge (SWEBOK)'' ISO/IEC TR 19759
Related fields
*
Computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
*
Information engineering
Information engineering is the engineering discipline that deals with the generation, distribution, analysis, and use of information, data, and knowledge in electrical systems. The field first became identifiable in the early 21st century.
Th ...
*
Information technology
Information technology (IT) is a set of related fields within information and communications technology (ICT), that encompass computer systems, software, programming languages, data processing, data and information processing, and storage. Inf ...
*
Traditional engineering
**
Computer engineering
Computer engineering (CE, CoE, or CpE) is a branch of engineering specialized in developing computer hardware and software.
It integrates several fields of electrical engineering, electronics engineering and computer science.
Computer engi ...
**
Electrical engineering
Electrical engineering is an engineering discipline concerned with the study, design, and application of equipment, devices, and systems that use electricity, electronics, and electromagnetism. It emerged as an identifiable occupation in the l ...
*Software engineering
**
Domain engineering
**
Information technology engineering
**
Knowledge engineering
**
User interface engineering
**
Web engineering
*
Arts
The arts or creative arts are a vast range of human practices involving creativity, creative expression, storytelling, and cultural participation. The arts encompass diverse and plural modes of thought, deeds, and existence in an extensive ...
and
Science
Science is a systematic discipline that builds and organises knowledge in the form of testable hypotheses and predictions about the universe. Modern science is typically divided into twoor threemajor branches: the natural sciences, which stu ...
s
**
Mathematics
Mathematics is a field of study that discovers and organizes methods, Mathematical theory, theories and theorems that are developed and Mathematical proof, proved for the needs of empirical sciences and mathematics itself. There are many ar ...
**
Computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
**
Information science
*Application software
**
Information systems
An information system (IS) is a formal, sociotechnical, organizational system designed to collect, process, store, and distribute information. From a sociotechnical perspective, information systems comprise four components: task, people, structu ...
*
Programming
*
Systems Engineering
Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design, integrate, and manage complex systems over their Enterprise life cycle, life cycles. At its core, systems engineering uti ...
See also
*
Index of software engineering articles
*
Search-based software engineering
*
SWEBOK Software engineering body of knowledge
*
CCSE Computing curriculum for software engineering
*
Computer terms etymology, the origins of computer terms
*
Complexity
Complexity characterizes the behavior of a system or model whose components interact in multiple ways and follow local rules, leading to non-linearity, randomness, collective dynamics, hierarchy, and emergence.
The term is generally used to c ...
or scaling
*
Second system syndrome
*
optimization
Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criteria, from some set of available alternatives. It is generally divided into two subfiel ...
*
Source code escrow
*
Feature interaction problem
*
Certification (software engineering)
*
Engineering disasters#Failure due to software
*
Outline of software development
*
List of software development philosophies
References
External links
ACM Computing Classification SystemGuide to the Software Engineering Body of Knowledge (SWEBOK)
;Professional organizations
British Computer SocietyAssociation for Computing MachineryIEEE Computer Society; Professionalism
; Education
CCSE Undergraduate curriculum; Standards:
Internet Engineering Task ForceISO; Government organizations:
European Software InstituteSoftware Engineering Institute; Agile:
Organization to promote Agile software developmentTest driven developmentExtreme programming; Other organizations:
Online community for software engineersSoftware Engineering Society; Demographics
;Surveys:
David Redmiles page from the University of California site;Other:
Full text in PDF from the NATO conference in GarmischComputer Risks Peter G. Neumann's risks column.
{{DEFAULTSORT:Software Engineering
Outlines of computing and engineering
Outlines
*
Software engineering, Outline of