HOME

TheInfoList



OR:

The following outline is provided as an overview of and topical guide to software engineering: Software engineering – application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is the application of engineering to software. 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 defacto standard classification system for the field. The major section "Software and its Engineering" provides an outline and ontology for software engineering.


Software applications

Software engineers build software ( applications,
operating systems An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also inc ...
, 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 ** 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. It also entails applying data patterns toward effective decision-making. It ...
** Data mining closely related to database ** Decision support systems * Airline reservations * Banking ** Automated teller machines ** Cheque processing ** Credit cards * Commerce ** Trade ** Auctions (e.g. eBay) ** Reverse auctions (procurement) ** Bar code scanners * Compilers ** Parsers **
Compiler optimization In computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program. Common requirements are to minimize a program's execution time, memory footprint, storage size, and power con ...
** Interpreters ** Linkers ** Loaders * Communication ** E-mail **
Instant messengers Instant messaging (IM) technology is a type of online chat allowing real-time text transmission over the Internet or another computer network. Messages are typically transmitted between two or more parties, when each user inputs text and trigge ...
** VOIP **
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 date is the designation of a single and specific day within such a system. A calendar is also a physi ...
s — scheduling and coordinating ** Contact managers * Computer graphics **
Animation Animation is a method by which image, still figures are manipulated to appear as Motion picture, moving images. In traditional animation, images are drawn or painted by hand on transparent cel, celluloid sheets to be photographed and exhibited ...
** Special effects for video and film ** Editing **Post-processing * Cryptography * Databases, 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 Heating, ventilation, and air conditioning (HVAC) is the use of various technologies to control the temperature, humidity, and purity of the air in an enclosed space. Its goal is to provide thermal comfort and acceptable indoor air quality. HV ...
) software ** Medical device software ** Telephony ** Telemetry * Engineering All traditional engineering branches use software extensively. Engineers use spreadsheets, more than they ever used calculators. Engineers use custom software tools 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 documents and goes through analysis, design, implementation, 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 ** Simulation * File ** FTP ** File sharing ** File synchronization *
Finance Finance is the study and discipline of money, currency and capital assets. It is related to, but not synonymous with economics, the study of production, distribution, and consumption of money, assets, goods and services (the discipline of fina ...
** Bond market ** Futures market **
Stock market A stock market, equity market, or share market is the aggregation of buyers and sellers of stocks (also called shares), which represent ownership claims on businesses; these may include ''securities'' listed on a public stock exchange, as ...
*
Game A game is a structured form of play (activity), play, usually undertaken for enjoyment, entertainment or fun, and sometimes used as an educational tool. Many games are also considered to be work (such as professional players of spectator s ...
s **
Poker Poker is a family of comparing card games in which players wager over which hand is best according to that specific game's rules. It is played worldwide, however in some places the rules may vary. While the earliest known form of the game w ...
** Multiuser Dungeons ** Video games * Information systems, support almost every field ** LIS Management of laboratory data ** MIS Management of financial and personnel data * Logistics **
Supply chain management In commerce, supply chain management (SCM) is the management of the flow of goods and services including all processes that transform raw materials into final products between businesses and locations. This can include the movement and stor ...
* Manufacturing ** Computer Aided Manufacturing (CAM) ** Distributed Control Systems (DCS) * Music **
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 note and performance information in several forms, typically CV/Gate, MIDI, or Open Sound Cont ...
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. Traditi ...
** Music synthesis * Network Management ** Network management system **
Element Management System An element management system (EMS) consists of systems and applications for managing network elements (NE) on the network element-management layer (NEL) of the Telecommunications Management Network (TMN) model. As recommended by ITU-T, the element ...
** Operations Support System **
Business Support Systems Business support systems (BSS) are the components that a telecommunications service provider (or telco) uses to run its business operations towards customers. Together with operations support systems (OSS), they are used to support various end-to- ...
* Networks and Internet ** Domain Name System ** Protocols ** Routers * Office suites ** Word processors ** Spreadsheets ** Presentations * Operating systems ** Embedded ** Graphical ** Multitasking ** Real-time * Robotics * Signal processing, encoding and interpreting signals **
Image processing An image is a visual representation of something. It can be two-dimensional, three-dimensional, or somehow otherwise feed into the visual system to convey information. An image can be an artifact, such as a photograph or other two-dimensiona ...
, encoding and interpreting visual information ** Speech processing **
Text recognition Optical character recognition or optical character reader (OCR) is the electronic or mechanical conversion of images of typed, handwritten or printed text into machine-encoded text, whether from a scanned document, a photo of a document, a scen ...
** Handwriting recognition * Simulation, supports almost every field. ** Engineering, A software simulation can be cheaper to build and more flexible to change than a physical
engineering model Engineering is the use of scientific method, scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, vehicles, and buildings. The discipline of engineering encompasses a broad rang ...
. ** Sciences * Sciences **
Genomics Genomics is an interdisciplinary field of biology focusing on the structure, function, evolution, mapping, and editing of genomes. A genome is an organism's complete set of DNA, including all of its genes as well as its hierarchical, three-dim ...
*Traffic Control ** Air traffic control ** Ship traffic control ** Road traffic control * Training **
Drill A drill is a tool used for making round holes or driving fasteners. It is fitted with a bit, either a drill or driverchuck. Hand-operated types are dramatically decreasing in popularity and cordless battery-powered ones proliferating due to ...
** Simulation **Testing * Visualization, supports almost every field ** Architecture ** Engineering ** Sciences * Voting * World Wide Web ** Browsers ** Servers


Software engineering topics


Programming paradigm, based on a programming language technology

* Object-oriented programming * Aspect-oriented programming *
Functional decomposition In mathematics, functional decomposition is the process of resolving a functional relationship into its constituent parts in such a way that the original function can be reconstructed (i.e., recomposed) from those parts by function composition. ...
*
Structured programming Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making extensive use of the structured control flow constructs of selection ( if/then/else) and repetition ( ...
* Rule-based programming


Databases

*
Hierarchical A hierarchy (from Greek: , from , 'president of sacred rites') is an arrangement of items (objects, names, values, categories, etc.) that are represented as being "above", "below", or "at the same level as" one another. Hierarchy is an important ...
* Object * Relational * SQL/XML * SQL * MYSQL *
NoSQL A NoSQL (originally referring to "non- SQL" or "non-relational") database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases. Such databases have existed ...


Graphical user interfaces

*
GTK+ GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprie ...
GIMP Toolkit * wxWidgets * Ultimate++ * Qt toolkit * FLTK


Programming tools

*
Configuration management Configuration management (CM) is a process for establishing and maintaining consistency of a product's performance, functional, and physical attributes with its requirements, design, and operational information throughout its life. The CM proc ...
and source code management **
CVS CVS may refer to: Organizations * CVS Health, a US pharmacy chain ** CVS Pharmacy ** CVS Caremark, a prescription benefit management subsidiary * Council for Voluntary Service, England * Cable Video Store, former US pay-per-view service * CVS F ...
**
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 transform the established social order and its structures of power, authority, hierarchy, and social norms. Sub ...
** Git ** Mercurial **
RCS RCS may refer to: Organisations *Racing Club de Strasbourg Alsace * Radio Corporation of Singapore *Radcliffe Choral Society * Rawmarsh Community School *Red Crescent Society *Red Cross Society * Representation of Czechs and Slovaks, a football t ...
** GNU Arch **LibreSource Synchronizer ** Team Foundation Server ** Visual Studio Team Services * Build tools ** Make **
Rake Rake may refer to: * Rake (stock character), a man habituated to immoral conduct * Rake (theatre), the artificial slope of a theatre stage Science and technology * Rake receiver, a radio receiver * Rake (geology), the angle between a feature on a ...
** Cabal ** Ant ** CADES ** Nant ** Maven ** Final Builder ** Gradle ** Team Foundation Server ** Visual Studio Team Services **Visual Build Pro * Editors ** Integrated development environments (IDEs) ** Text editors ** Word processors * Parser creation tools ** Yacc/
Bison Bison are large bovines in the genus ''Bison'' (Greek: "wild ox" (bison)) within the tribe Bovini. Two extant and numerous extinct species are recognised. Of the two surviving species, the American bison, ''B. bison'', found only in North Ame ...
* Static code analysis tools


Libraries

*
Component-based software engineering Component-based software engineering (CBSE), also called component-based development (CBD), is a branch of software engineering that emphasizes the separation of concerns with respect to the wide-ranging functionality available throughout a give ...


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 In software development, agile (sometimes written Agile) practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/ end user(s), ad ...
** Extreme programming ** Lean software development ** Rapid application development (RAD) ** Rational Unified Process **
Scrum (in management) Scrum is a framework for project management with an initial emphasis on software development, although it has been used in other fields including research, sales, marketing and advanced technologies. It is designed for teams of ten or fewer me ...
*Heavyweight ** Cleanroom **
ISO/IEC 12207 ISO/IEC/IEEE 12207 ''Systems and software engineering – Software life cycle processes'' is an international standard for software lifecycle processes. First introduced in 1995, it aims to be a primary standard that defines all the processes requi ...
— software life cycle processes ** ISO 9000 and ISO 9001 *Process Models ** CMM and CMMI/
SCAMPI Scampi, also called Dublin Bay Prawn or Norway Lobster (''Nephrops norvegicus''), is an edible lobster of the order '' Decapoda''. It is widespread in the Mediterranean and northeastern Atlantic, from North Africa to Norway and Iceland, and i ...
** 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 Cray Inc., a subsidiary of Hewlett Packard Enterprise, is an American supercomputer manufacturer headquartered in Seattle, Washington. It also manufactures systems for data storage and analytics. Several Cray supercomputer systems are listed ...
supercomputer A supercomputer is a 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 instructions ...
s * DEC
minicomputer A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
s * IBM mainframes * Linux
PCs A personal computer (PC) is a multi-purpose microcomputer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be operated directly by an end user, rather than by a computer expert or techn ...
*
Classic Mac OS Mac OS (originally System Software; retronym: Classic Mac OS) is the series of operating systems developed for the Macintosh family of personal computers by Apple Computer from 1984 to 2001, starting with System 1 and ending with Mac OS 9. The ...
and macOS
PCs A personal computer (PC) is a multi-purpose microcomputer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be operated directly by an end user, rather than by a computer expert or techn ...
* Microsoft .NET * Palm PDAs *
Sun Microsystems Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
Solaris Solaris may refer to: Arts and entertainment Literature, television and film * ''Solaris'' (novel), a 1961 science fiction novel by Stanisław Lem ** ''Solaris'' (1968 film), directed by Boris Nirenburg ** ''Solaris'' (1972 film), directed by ...
* Windows
PCs A personal computer (PC) is a multi-purpose microcomputer whose size, capabilities, and price make it feasible for individual use. Personal computers are intended to be operated directly by an end user, rather than by a computer expert or techn ...
(
Wintel Wintel (portmanteau of Windows and Intel) is the partnership of Microsoft Windows and Intel producing personal computers using Intel x86-compatible processors running Microsoft Windows. Background By the early 1980s, the chaos and incompatibil ...
) * Symbian OS


Other Practices

* Communication * Method engineering * Pair programming * Performance Engineering * Programming productivity * Refactoring * Software inspections/ Code reviews * Software reuse * Systems integration * Teamwork


Other tools

*
Decision table Decision tables are a concise visual representation for specifying which actions to perform depending on given conditions. They are algorithms whose output is a set of actions. The information expressed in decision tables could also be represente ...
s * Feature * User stories * Use cases


Computer science topics

Skilled software engineers know a lot of computer science including what is possible and impossible, and what is easy and hard for software. * Algorithms, 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 pro ...
** Parsing ** Numerical analysis * Compiler theory ** Yacc/
Bison Bison are large bovines in the genus ''Bison'' (Greek: "wild ox" (bison)) within the tribe Bovini. Two extant and numerous extinct species are recognised. Of the two surviving species, the American bison, ''B. bison'', found only in North Ame ...
* Data structures, well-defined methods for storing and retrieving data. ** Lists ** Trees ** Hash tables * Computability, some problems cannot be solved at all ** List of unsolved problems in computer science ** Halting problem *
Complexity Complexity characterises the behaviour of a system or model whose components interaction, interact in multiple ways and follow local rules, leading to nonlinearity, randomness, collective dynamics, hierarchy, and emergence. The term is generall ...
, some problems are solvable in principle, yet unsolvable in practice ** NP completeness ** Computational complexity theory * Formal methods **
Proof of correctness In theoretical computer science, an algorithm is correct with respect to a specification if it behaves as specified. Best explored is ''functional'' correctness, which refers to the input-output behavior of the algorithm (i.e., for each input it p ...
** Program synthesis *
Adaptive Systems An adaptive system is a set of interacting or interdependent entities, real or abstract, forming an integrated whole that together are able to respond to environmental changes or changes in the interacting parts, in a way analogous to either conti ...
**
Neural Networks A neural network is a network or circuit of biological neurons, or, in a modern sense, an artificial neural network, composed of artificial neurons or nodes. Thus, a neural network is either a biological neural network, made up of biological ...
** Evolutionary Algorithms


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 engineering. * Number representation * Set (computer science) * Bags * Graphs ** Sequences ** Trees ** Graph (data structure) * Logic ** Deduction ** First-order logic ** Higher-order logic **
Combinatory logic Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic. It was introduced by Moses Schönfinkel and Haskell Curry, and has more recently been used in computer science as a theoretical model of comput ...
* Induction *
Combinatorics Combinatorics is an area of mathematics primarily concerned with counting, both as a means and an end in obtaining results, and certain properties of finite structures. It is closely related to many other areas of mathematics and has many appl ...
Other * Domain knowledge *
Statistics Statistics (from German language, German: ''wikt:Statistik#German, Statistik'', "description of a State (polity), state, a country") is the discipline that concerns the collection, organization, analysis, interpretation, and presentation of ...
* Decision theory * Type theory


Life cycle phases

* Development life cycle phase ** Requirements gathering / analysis ** Software architecture ** Computer programming **
Testing An examination (exam or evaluation) or test is an educational assessment intended to measure a test-taker's knowledge, skill, aptitude, physical fitness, or classification in many other topics (e.g., beliefs). A test may be administered verba ...
, detects
bugs Bugs may refer to: * Plural of bug Arts, entertainment and media Fictional characters * Bugs Bunny, a character * Bugs Meany, a character in the ''Encyclopedia Brown'' books Films * ''Bugs'' (2003 film), a science-fiction-horror film * ''Bugs ...
*** Black box testing *** White box testing **
Quality assurance Quality assurance (QA) is the term used in both manufacturing and service industries to describe the systematic efforts taken to ensure that the product(s) delivered to customer(s) meet with the contractual and other agreed upon performance, design ...
, ensures compliance with process. * Product Life cycle phase and
Project lifecycle In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an informa ...
**Inception **
First development First or 1st is the ordinal form of the number one (#1). First or 1st may also refer to: *World record, specifically the first instance of a particular achievement Arts and media Music * 1$T, American rapper, singer-songwriter, DJ, and reco ...
**
Major release Major (commandant in certain jurisdictions) is a military rank of commissioned officer status, with corresponding ranks existing in many military forces throughout the world. When used unhyphenated and in conjunction with no other indicators ...
**
Minor release A maintenance release (also minor release or Maintenance Pack or MP) is a release of a product that does not add new features or content. For instance, in computer software, maintenance releases are typically intended to solve minor problems, typi ...
** Bug fix release ** Maintenance ** Obsolescence * Release development stage, near the end of a release cycle **
Alpha Alpha (uppercase , lowercase ; grc, ἄλφα, ''álpha'', or ell, άλφα, álfa) 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 , whic ...
**
Beta Beta (, ; uppercase , lowercase , or cursive ; grc, βῆτα, bē̂ta or ell, βήτα, víta) is the second letter of the Greek alphabet. In the system of Greek numerals, it has a value of 2. In Modern Greek, it represents the voiced labiod ...
**
Gold master Mastering, a form of audio post production, is the process of preparing and transferring recorded audio from a source containing the final mix to a data storage device (the master), the source from which all copies will be produced (via meth ...
**
1.0 1 (one, unit, unity) is a number representing a single or the only entity. 1 is also a numerical digit and represents a single unit of counting or measurement. For example, a line segment of ''unit length'' is a line segment of length 1. I ...
; 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 extensive use of the structured control flow constructs of selection ( if/then/else) and repetition ( ...
and
Stepwise refinement Top-down and bottom-up are both strategies of information processing and knowledge ordering, used in a variety of fields including software, humanistic and scientific theories (see systemics), and management and organization. In practice, they ...
** SSADM ** Spiral model
Iterative development Iterative and incremental development is any combination of both iterative design or iterative method and incremental build model for development. Usage of the term began in software development, with a long-standing combination of the two terms ' ...
** V-model **
Agile software development In software development, agile (sometimes written Agile) practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/ end user(s), ad ...
** DSDM **
Chaos model In computing, the chaos model is a structure of software development. Its creator, who used the pseudonym L.B.S. Raccoon, noted that project management models such as the spiral model and waterfall model, while good at managing schedules and staff, ...
Chaos strategy In computing, the chaos model is a structure of software development. Its creator, who used the pseudonym L.B.S. Raccoon, noted that project management models such as the spiral model and waterfall model, while good at managing schedules and staff, ...


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 — 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 manageme ...
, online and/or print, FAQ,
Readme "\n\n\n\n\n\n''README.txt: A Memoir'' is a 2022 memoir by Chelsea Manning. It covers her early life, experience as a soldier in the U.S. Army, and life and imprisonment after she leaked classified information to WikiLeaks WikiLeaks () is an ...
, release notes, Help, for each role **
User Ancient Egyptian roles * User (ancient Egyptian official), an ancient Egyptian nomarch (governor) of the Eighth Dynasty * Useramen, an ancient Egyptian vizier also called "User" Other uses * User (computing), a person (or software) using an ...
**
Administrator Administrator or admin may refer to: Job roles Computing and internet * Database administrator, a person who is responsible for the environmental aspects of a database * Forum administrator, one who oversees discussions on an Internet forum * N ...
** 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 materials, for each role **
User Ancient Egyptian roles * User (ancient Egyptian official), an ancient Egyptian nomarch (governor) of the Eighth Dynasty * Useramen, an ancient Egyptian vizier also called "User" Other uses * User (computing), a person (or software) using an ...
**Administrator ** Manager ** Buyer *
Support Support may refer to: Arts, entertainment, and media * Supporting character Business and finance * Support (technical analysis) * Child support * Customer support * Income Support Construction * Support (structure), or lateral support, a ...
info for computer support groups. * Marketing and sales materials ** White papers, explain the technologies used in the applications


Business roles

*
Operations Operation or Operations may refer to: Arts, entertainment and media * ''Operation'' (game), a battery-operated board game that challenges dexterity * Operation (music), a term used in musical set theory * ''Operations'' (magazine), Multi-Man ...
**
User Ancient Egyptian roles * User (ancient Egyptian official), an ancient Egyptian nomarch (governor) of the Eighth Dynasty * Useramen, an ancient Egyptian vizier also called "User" Other uses * User (computing), a person (or software) using an ...
s **Administrators ** Managers ** Buyers *Development ** Analysts **
Programmer A computer programmer, sometimes referred to as a software developer, a software engineer, a programmer or a coder, is a person who creates computer programs — often for larger computer software. A programmer is someone who writes/creates ...
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 pr ...
** Consulting — customization and installation of applications ** Sales ** Marketing ** Legal — 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 Privacy engineering is an emerging field of engineering which aims to provide methodologies, tools, and techniques to ensure systems provide acceptable levels of privacy. In the US, an acceptable level of privacy is defined in terms of compliance ...
**
Support Support may refer to: Arts, entertainment, and media * Supporting character Business and finance * Support (technical analysis) * Child support * Customer support * Income Support Construction * Support (structure), or lateral support, a ...
— helping customers use applications **
Personnel Employment is a relationship between two parties regulating the provision of paid labour services. Usually based on a contract, one party, the employer, which might be a corporation, a not-for-profit organization, a co-operative, or any othe ...
— hiring and training qualified personnel **
Finance Finance is the study and discipline of money, currency and capital assets. It is related to, but not synonymous with economics, the study of production, distribution, and consumption of money, assets, goods and services (the discipline of fina ...
— funding new development *
Academe An academy ( Attic Greek: Ἀκαδήμεια; Koine Greek Ἀκαδημία) is an institution of secondary or tertiary higher learning (and generally also research or honorary membership). The name traces back to Plato's school of philosophy ...
**
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. whe ...
s ** Researchers


Management topics

* Leadership ** Coaching ** Communication ** Listening **
Motivation Motivation is the reason for which humans and other animals initiate, continue, or terminate a behavior at a given time. Motivational states are commonly understood as forces acting within the agent that create a disposition to engage in goal-dire ...
** Vision, 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, ex ...
, everyone follows a good example best *
Human resource management Humans (''Homo sapiens'') are the most abundant and widespread species of primate, characterized by bipedalism and exceptional cognitive skills due to a large and complex brain. This has enabled the development of advanced tools, culture, ...
** Hiring, getting people into an organization ** Training ** Evaluation * Project management ** Goal setting ** Customer interaction (Rethink) ** Estimation ** Risk management ** Change management *
Process management Process management may refer to: * Business process management ** Business Process Management Journal ** Dynamic business process management ** International Conference on Business Process Management ** Social business process management * Manag ...
**
Software development process In software engineering, a software development process is a process of dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design, product management. It is also known as a software devel ...
es ** Metrics


Business topics

*Quality programs ** Malcolm Baldrige National Quality Award ** Six Sigma ** Total Quality Management (TQM)


Software engineering profession

*
Software engineering demographics Software engineers form a noticeable part of the workforce around the world. There are an estimated 26.9 million professional software engineers in the world as of 2022, up from 21 million in 2016. By country United States In 2022, there were ...
* Software engineering economics *
CCSE The Software Engineering 2004 (SE2004) —formerly known as Computing Curriculum Software Engineering (CCSE)— is a document that provides recommendations for undergraduate education in software engineering. SE2004 was initially developed ...
*
History of software engineering The history of software engineering begins in the 1960s. Writing software has evolved into a profession concerned with how best to maximize the quality of software and of how to create it. Quality can refer to how maintainable software is, to i ...
* Software engineering professionalism ** Ethics ** Licensing *Legal ** Intellectual property **
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 The history of software engineering begins in the 1960s. Writing software has evolved into a profession concerned with how best to maximize the quality of software and of how to create it. Quality can refer to how maintainable software is, to i ...


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 Friedrich Ludwig "Fritz" Bauer (10 June 1924 – 26 March 2015) was a German pioneer of computer science and professor at the Technical University of Munich. Life Bauer earned his Abitur in 1942 and served in the Wehrmacht during World War ...
:
Stack Stack may refer to: Places * Stack Island, an island game reserve in Bass Strait, south-eastern Australia, in Tasmania’s Hunter Island Group * Blue Stack Mountains, in Co. Donegal, Ireland People * Stack (surname) (including a list of people ...
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. He is a Professorial Fellow of Computer Science at the University of Oxford and a profess ...
: World Wide Web * Barry Boehm: SE economics, COCOMO, Spiral model. * Grady Booch: Object-oriented design,
UML The Unified Modeling Language (UML) is a general-purpose, developmental modeling language in the field of software engineering that is intended to provide a standard way to visualize the design of a system. The creation of UML was originally ...
. * Fred Brooks: Managed
System 360 The IBM System/360 (S/360) is a family of mainframe computer systems that was announced by IBM on April 7, 1964, and delivered between 1965 and 1978. It was the first family of computers designed to cover both commercial and scientific applic ...
and
OS 360 OS/360, officially known as IBM System/360 Operating System, is a discontinued batch processing operating system developed by IBM for their then-new System/360 mainframe computer, announced in 1964; it was influenced by the earlier IBM 7090/94 I ...
. Wrote '' The Mythical Man-Month'' and '' No Silver Bullet''. * Larry Constantine: Structured design, coupling, cohesion * Edsger Dijkstra: Wrote ''
Notes on Structured Programming Note, notes, or NOTE may refer to: Music and entertainment * Musical note, a pitched sound (or a symbol for a sound) in music * Notes (album), ''Notes'' (album), a 1987 album by Paul Bley and Paul Motian * ''Notes'', a common (yet unofficial) sho ...
'', '' A Discipline of Programming'' and '' Go To Statement Considered Harmful'', algorithms, formal methods, pedagogy. *
Michael Fagan Michael Fagan (born 8 August 1948) is a British citizen who intruded into Queen Elizabeth II's bedroom in Buckingham Palace in 1982. Early life Michael Fagan was born in Clerkenwell, London, on 8 August 1948, the son of Ivy and Michael Fagan ...
: Software inspection. * Tom Gilb: Software metrics, Software inspection, Evolutionary Delivery ("Evo"). *
Adele Goldstine Adele Goldstine (; December 21, 1920 – November 1964) was an American mathematician and computer programmer. She wrote the manual for the first electronic digital computer, ENIAC. Through her work programming the computer, she was also an inst ...
: Wrote the Operators Manual for the ENIAC, the first electronic digital computer, and trained some of the first human computers *
Lois Haibt Lois B. Mitchell Haibt (born 1934) is an American computer scientist best known for being a member of the ten-person team at IBM that developed FORTRAN, the first successful high-level programming language. She is known as an early pioneer in ...
: FORTRAN, wrote the first parser *
Margaret Hamilton Margaret Hamilton may refer to: * Margaret Hamilton (nurse) (1840–1922), American nurse in the Civil War * Maggie Hamilton (1867–1952), Scottish artist * Margaret Hamilton (educator) (1871–1969), American educator * Margaret Hamilton (actre ...
: Coined the term "software engineering", developed Universal Systems Language *
Mary Jean Harrold Mary Jean Harrold (March 12, 1947 – September 19, 2013) was an American computer scientist noted for her research on software engineering. She was also noted for her leadership in broadening participation in computing. She was on the boards of ...
: Regression testing, fault localization * Grace Hopper: The first compiler (Mark 1),
COBOL COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily us ...
, Nanoseconds. * Watts Humphrey:
Capability Maturity Model The Capability Maturity Model (CMM) is a development model created in 1986 after a study of data collected from organizations that contracted with the U.S. Department of Defense, who funded the research. The term "maturity" relates to the degree of ...
, Personal Software Process, fellow of the Software Engineering Institute. *
Jean Ichbiah Jean David Ichbiah (25 March 1940 – 26 January 2007) was a French computer scientist and the initial chief designer (1977–1983) of Ada, a general-purpose, strongly typed programming language with certified validated compilers. Ea ...
: Ada * Michael A. Jackson: Jackson Structured Programming, Jackson System Development * Bill Joy: Berkeley Unix, vi, Java. * Alan Kay:
Smalltalk Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by Alan Ka ...
* Brian Kernighan: C and Unix. * Donald Knuth: Wrote '' The Art of Computer Programming'', TeX, algorithms, literate programming * Nancy Leveson: System safety * Bertrand Meyer: Design by Contract, Eiffel programming language. *
Peter G. Neumann Peter Gabriel Neumann (born 1932) is a computer-science researcher who worked on the Multics operating system in the 1960s. He edits the RISKS Digest columns for ACM ''Software Engineering Notes'' and ''Communications of the ACM''. He founded ...
: RISKS Digest, ACM Sigsoft. * David Parnas: Module design, social responsibility, professionalism. *
Jef Raskin Jef Raskin (born Jeff Raskin; March 9, 1943 – February 26, 2005) was an American human–computer interface expert best known for conceiving and starting the Macintosh project at Apple in the late 1970s. Early life and education Jef Raskin ...
: Developed the original Macintosh GUI, authored The Humane Interface *
Dennis Ritchie Dennis MacAlistair Ritchie (September 9, 1941 – October 12, 2011) was an American computer scientist. He is most well-known for creating the C programming language and, with long-time colleague Ken Thompson, the Unix operating system and B p ...
: C and Unix. * Winston W. Royce: Waterfall model. * Mary Shaw: Software architecture. * Richard Stallman: Founder of the Free Software Foundation * Linus Torvalds: Linux kernel, free software /
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
development. * Will Tracz: Reuse, ACM Software Engineering Notes. *
Gerald Weinberg Gerald Marvin Weinberg (October 27, 1933 – August 7, 2018) was an American computer scientist, author and teacher of the psychology and anthropology of computer software development. His most well-known books are ''The Psychology of Computer ...
: Wrote '' The Psychology of Computer Programming''. *
Elaine Weyuker Elaine Jessica Weyuker is an ACM Fellow, an IEEE Fellow (since 2003), and an AT&T Fellow at Bell Labs for research in software metrics and testing as well as elected to the National Academy of Engineering. She is the author of over 130 papers in ...
: 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 extensive use of the structured control flow constructs of selection ( if/then/else) and repetition ( ...
, 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 Alan Cooper (born June 3, 1952) is an American software designer and programmer. Widely recognized as the "Father of Visual Basic", Cooper is also known for his books ''About Face: The Essentials of Interaction Design'' and ''The Inmates Are R ...
, 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 ''Design Patterns: Elements of Reusable Object-Oriented Software'' (1994) is a software engineering book describing software design patterns. The book was written by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, with a foreword ...
'' 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 Gerald Marvin Weinberg (October 27, 1933 – August 7, 2018) was an American computer scientist, author and teacher of the psychology and anthropology of computer software development. His most well-known books are ''The Psychology of Computer ...
. 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 See also: * Important publications in software engineering in CS.


Related fields

* Computer Science * Information engineering * Information technology *
Traditional engineering Traditional engineering, also known as sequential engineering, is the process of marketing, engineering design, manufacturing, testing and Production, costs, and pricing, production where each stage of the development process is carried out separate ...
**
Computer engineering Computer engineering (CoE or CpE) is a branch of electrical engineering and computer science that integrates several fields of computer science and electronic engineering required to develop computer hardware and software. Computer engineers ...
**
Electrical engineering Electrical engineering is an engineering discipline concerned with the study, design, and application of equipment, devices, and systems which use electricity, electronics, and electromagnetism. It emerged as an identifiable occupation in the l ...
*Software engineering **
Domain engineering Domain engineering, is the entire process of reusing domain knowledge in the production of new software systems. It is a key concept in systematic software reuse and product line engineering. A key idea in systematic software reuse is the domain. M ...
** Information technology engineering ** Knowledge engineering **
User interface engineering User interface (UI) design or user interface engineering is the design of user interfaces for machines and software, such as computers, home appliances, mobile devices, and other electronic devices, with the focus on maximizing usability and the ...
** Web engineering * Arts and Sciences **
Mathematics Mathematics is an area of knowledge that includes the topics of numbers, formulas and related structures, shapes and the spaces in which they are contained, and quantities and their changes. These topics are represented in modern mathematics ...
** Computer science ** Information science *Application software ** Information systems * 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 util ...


See also

* Index of software engineering articles * Search-based software engineering * SWEBOK Software engineering body of knowledge *
CCSE The Software Engineering 2004 (SE2004) —formerly known as Computing Curriculum Software Engineering (CCSE)— is a document that provides recommendations for undergraduate education in software engineering. SE2004 was initially developed ...
Computing curriculum for software engineering * Computer terms etymology, the origins of computer terms *
Complexity Complexity characterises the behaviour of a system or model whose components interaction, interact in multiple ways and follow local rules, leading to nonlinearity, randomness, collective dynamics, hierarchy, and emergence. The term is generall ...
or scaling * Second system syndrome * optimization * Source code escrow *
Feature interaction problem Feature interaction is a software engineering concept. It occurs when the integration of two features would modify the behavior of one or both features. The term ''feature'' is used to denote a unit of functionality of a software application. Si ...
* 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 Society

Association for Computing Machinery

IEEE Computer Society
; Professionalism



; Education
CCSE Undergraduate curriculum
; Standards:


Internet Engineering Task Force

ISO
; Government organizations:
European Software Institute

Software Engineering Institute
; Agile:
Organization to promote Agile software development

Test driven development

Extreme programming
; Other organizations:
Online community for software engineers

Software Engineering Society
; Demographics

;Surveys:
David Redmiles page from the University of California site
;Other:
Full text in PDF from the NATO conference in Garmisch

Computer Risks
Peter G. Neumann Peter Gabriel Neumann (born 1932) is a computer-science researcher who worked on the Multics operating system in the 1960s. He edits the RISKS Digest columns for ACM ''Software Engineering Notes'' and ''Communications of the ACM''. He founded ...
's risks column. {{DEFAULTSORT:Software Engineering Outlines of applied sciences Wikipedia outlines * Software engineering, Outline of