Content deleted Content added
link |
m Disambiguating links to Object-orientation (link changed to Object-oriented programming) using DisamAssist. |
||
(173 intermediate revisions by more than 100 users not shown) | |||
Line 1:
{{
<!--... Attention: THIS IS AN OUTLINE
part of the set of 830+ outlines listed at
[[Wikipedia:Contents/Outlines]].
Wikipedia outlines are
a special type of list article.
They make up one of Wikipedia's
content navigation systems
See [[Wikipedia: Outlines]] and
[[Wikipedia:WikiProject Outlines]] for more details.
Further improvements
to this outline are on the way
...-->
The following [[Outline (list)|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]].<ref>{{cite book |editor-first1= Pierre |editor-last1= Bourque |editor-first2=Robert |editor-last2=Dupuis | title = Guide to the Software Engineering Body of Knowledge - 2004 Version | publisher = [[IEEE Computer Society]] | year = 2004 | pages = 1 | isbn = 0-7695-2330-7 | url = http://www.swebok.org}}</ref>
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.
{{TOC limit|limit=2}}
== Software applications ==
[[Software]] engineers build [[software]] ([[Application software|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.
**[[Accounting software]]
*[[Analytics]]
**[[Data mining]] closely related to [[database]]
**[[Knowledge management|Decision support systems]]
*[[Airline]] reservations
*[[Banking]]
**[[Automated teller machine]]s
**[[Cheque]] processing
**[[Credit card]]s
*[[Commerce]]
**[[Trade]]
**[[Auction]]s (e.g. eBay)
**[[Reverse auction]]s (procurement)
**[[Bar code scanner]]s
*[[Compiler]]s
**[[Parser]]s
**[[Compiler optimization]]
**[[Interpreter (computing)|Interpreters]]
**[[Linker (computing)|Linkers]]
**[[Loader (computing)|Loaders]]
*[[Communication]]
**[[E-mail]]
**[[Instant messengers]]
**[[VOIP]]
**[[Calendar]]s — scheduling and coordinating
**[[Contact manager]]s
*[[Computer graphics]]
**[[Animation]]
**[[Special effects]] for video and film
**[[Editing]]
**Post-processing
*[[Cryptography]]
*[[Database]]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 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 [[tool]]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]]s 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|Computer Aided Design (CAD)]]
**[[Electronic Design Automation|Electronic Design Automation (EDA)]]
**[[Numerical Analysis]]
**[[Simulation]]
*[[Computer file|File]]
**[[FTP]]
**[[File sharing]]
**[[File synchronization]]
*[[Finance]]
**[[Bond market]]
**[[Futures market]]
**[[Stock market]]
*[[Game]]s
**[[Poker]]
**[[Multi-user dungeon|Multiuser Dungeons]]
**[[Video game]]s
*[[Information systems]], support almost every field
**[[Laboratory information system|LIS]] Management of laboratory data
**[[Management Information Systems|MIS]] Management of financial and personnel data
*[[Logistics]]
**[[Supply chain management]]
*[[Manufacturing]]
**[[Computer-aided manufacturing|Computer Aided Manufacturing (CAM)]]
**[[Distributed control system|Distributed Control Systems (DCS)]]
*[[Music]]
**[[Music sequencer]]s
**[[Sound effects]]
**[[Music synthesis]]
*[[Network Management]]
**[[Network management system]]
**[[Element Management System]]
**[[Operations Support System]]
**[[Business Support Systems]]
*[[Computer network|Networks]] and [[Internet]]
**[[Domain Name System]]
**[[Protocol (computing)|Protocols]]
**[[Router (computing)|Router]]s
*[[Office suite]]s
**[[Word processor]]s
**[[Spreadsheet]]s
**[[Presentation program|Presentations]]
*[[Operating system]]s
**[[Embedded system|Embedded]]
**[[Graphical user interface|Graphical]]
**[[Computer multitasking|Multitasking]]
**[[Real-time operating system|Real-time]]
*[[Robotics]]
*[[Signal processing]], encoding and interpreting signals
**[[Image processing]], encoding and interpreting visual information
**[[Speech processing]]
**[[Text recognition]]
**[[Handwriting recognition]]
*[[Computer simulation|Simulation]], supports almost every field.
**[[Engineering]], A software [[simulation]] can be cheaper to build and more flexible to change than a physical [[engineering model]].
**[[Science]]s
*[[Science]]s
**[[Genomics]]
*Traffic Control
**[[Air traffic control]]
**[[Sea lane|Ship traffic control]]
**[[Road transport#Traffic control|Road traffic control]]
*[[Training]]
**[[Military exercise|Drill]]
**[[Simulation]]
**Testing
*[[Spatial Visualization Ability|Visualization]], supports almost every field
**[[Architecture]]
**[[Engineering]]
**[[Science]]s
*[[Electronic voting|Voting]]
*[[World Wide Web]]
**[[Web browser|Browsers]]
**[[Web server|Servers]]
==Software engineering topics==
{| class="wikitable" style="text-align: center; width: 640px;"
|-
! colspan="4" | [[Programming language]]s
|-
| [[Ada (programming language)|Ada]] || [[APL (programming language)|APL]] || [[B (programming language)|B]] ||
|-
| [[COBOL]] || [[Pascal (programming language)|Pascal]] || [[C (programming language)|C]] || [[C++]]
|-
| [[C Sharp (programming language)|C#]] || [[Clojure]] || [[Common Lisp]] || [[D (programming language)|D]]
|-
| [[ColdFusion]] || [[Delphi (programming language)|Delphi]] || [[Dylan (programming language)|Dylan]] || [[Eiffel (programming language)|Eiffel]]
|-
| [[Erlang (programming language)|Erlang]] || [[Fortran]] || [[F Sharp (programming language)|F#]] || [[Groovy (programming language)|Groovy]]
|-
| [[Java (programming language)|Java]] || [[Lasso (programming language)|Lasso]] || [[ML (programming language)|ML]] || [[OCaml]]
|-
| [[Perl]] || [[PHP]] || [[PL/SQL]] || [[Prolog]]
|-
| [[Go! (programming language)|Go]] || [[Rust (programming language)|Rust]] || [[Swift (Apple programming language)|Swift]] || [[JavaScript]]
|-
| [[Haskell]] || [[Python (programming language)|Python]] || [[Ruby (programming language)|Ruby]] || [[Scala (programming language)|Scala]]
|-
| [[Scheme (programming language)|Scheme]] || [[Smalltalk]] || [[Tcl]] || [[T-SQL]]
|-
| [[Verilog]] || [[VHDL]] || [[Visual Basic (classic)|Visual Basic]] || [[Visual Basic .NET]]
|-
! colspan="4" | [[Assembly language]] • • • [[Scripting language]] • • • [[List of programming languages]]
|}
=== Programming paradigm, based on a programming language technology ===
*[[Object-oriented programming]]
*[[Aspect-oriented programming]]
*[[Functional decomposition]]
*[[Structured programming]]
*[[Rule-based programming]]
=== Databases ===
*[[Hierarchical database|Hierarchical]]
*[[Object database|Object]]
*[[Relational database|Relational]]
*[[SQL/XML]]
*[[SQL]]
*[[NoSQL]]
=== Graphical user interfaces ===
*[[GTK+]] GIMP Toolkit
*[[wxWidgets]]
*[[Ultimate++]]
*[[Qt toolkit]]
*[[FLTK]]
=== Programming tools ===
*[[Configuration management]] and source code management
**[[Concurrent Versions System|CVS]]
**[[Subversion (software)|Subversion]]
**[[Git]]
**[[Mercurial]]
**[[Revision Control System|RCS]]
**[[GNU Arch]]
**LibreSource Synchronizer
**[[Team Foundation Server]]
**[[Microsoft Visual Studio#Team Services|Visual Studio Team Services]]
*[[Build automation|Build tools]]
**[[make (software)|Make]]
**[[Rake (software)|Rake]]
**[[Cabal (software)|Cabal]]
**[[Apache Ant|Ant]]
**[[CADES]]
**[[Nant]]
**[[Apache Maven|Maven]]
**Final Builder
**[[Gradle]]
**[[Team Foundation Server]]
**[[Microsoft Visual Studio#Team Services|Visual Studio Team Services]]
**Visual Build Pro
*[[Source code editor|Editors]]
**[[Integrated development environment]]s (IDEs)
**[[Text editor]]s
**[[Word processor]]s
* [[Parser]] creation tools
** [[Yacc]]/[[GNU bison|Bison]]
* [[List of tools for static code analysis|Static code analysis tools]]
=== Libraries ===
*[[Component-based software engineering]]
=== Design languages ===
*[[Unified Modeling Language]] (UML)
=== Patterns, document many common programming and project management techniques ===
*[[Anti-patterns]]
*[[Design pattern (computer science)|Patterns]]
=== Processes and methodologies ===
*Agile
**[[Agile software development]]
**[[Extreme programming]]
**[[Lean manufacturing|Lean software development]]
**[[Rapid application development|Rapid application development (RAD)]]
**[[Rational Unified Process]]
**[[Scrum (software development)|Scrum]]
*Heavyweight
**[[Cleanroom Software Engineering|Cleanroom]]
**[[ISO/IEC 12207]] — software life cycle processes
**[[ISO 9000]] and [[ISO 9001]]
*Process Models
**[[Capability Maturity Model|CMM]] and [[CMMI]]/[[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.
*[[Qualcomm Brew|BREW]]
*[[Cray]] [[supercomputer]]s
*[[Digital Equipment Corporation|DEC]] [[minicomputer]]s
*[[IBM]] [[mainframes]]
*[[Linux]] [[Personal computer|PCs]]
*[[Classic Mac OS]] and [[macOS]] PCs
*[[Microsoft .NET]]
*[[Palm OS|Palm]] [[Personal Digital Assistant|PDAs]]
*[[Sun Microsystems]] [[Solaris (operating system)|Solaris]]
*[[Windows]] PCs ([[Wintel]])
*[[Symbian OS]]
=== Other Practices ===
*[[Communication]]
*[[Method engineering]]
*[[Pair programming]]
*[[Performance Engineering]]
*[[Programming productivity]]
*[[Refactoring]]
*[[Software inspection]]s/[[Code review]]s
*[[Software reusability|Software reuse]]
*[[Systems integration]]
*[[Teamwork]]
=== Other tools ===
*[[Decision table]]s
*[[Features (pattern recognition)|Feature]]
*[[User stories]]
*[[Use case]]s
===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.
**[[Search algorithm|Searching]]
**[[Sorting]]
**[[Parsing]]
**[[Numerical analysis]]
* [[Compiler theory]]
**[[Yacc]]/[[GNU bison|Bison]]
*[[Data structures]], well-defined methods for storing and retrieving data.
**[[List (computing)|List]]s
**[[Tree data structure|Trees]]
**[[Hash table]]s
*[[Computability theory (computer science)|Computability]], some problems cannot be solved at all
**[[List of unsolved problems in computer science]]
**[[Halting problem]]
*[[Complexity]], some problems are solvable in principle, yet unsolvable in practice
**[[NP completeness]]
**[[Computational complexity theory]]
*[[Formal methods]]
**[[Proof of correctness]]
**[[Program synthesis]]
*[[Adaptive Systems]]
**[[Artificial Neural Network|Neural Networks]]
**[[Evolutionary algorithm|Evolutionary Algorithms]]
===Mathematics topics===
[[Discrete mathematics]] is a key foundation of [[software]] engineering.
*[[Number]] representation
*[[Set (computer science)]]
*[[Multiset|Bag]]s
*[[Graph (discrete mathematics)|Graph]]s
**[[Sequence]]s
**[[Tree (graph theory)|Tree]]s
**[[Graph (data structure)]]
*[[Logic]]
**[[Natural deduction|Deduction]]
**[[First-order logic]]
**[[Higher-order logic]]
**[[Combinatory logic]]
*[[Mathematical induction|Induction]]
*[[Combinatorics]]
Other
*[[Domain knowledge]]
*[[Statistics]]
*[[Decision theory]]
*[[Type theory]]
===Life cycle phases===
*[[Software engineering|Development]] [[Software development process|life cycle phase]]
**[[Requirements engineering|Requirements gathering / analysis]]
**[[Software architecture]]
**[[Computer programming]]
**[[Software testing|Testing]], detects [[computer bug|bugs]]
***[[Black box testing]]
***[[White box testing]]
**[[Quality assurance]], ensures compliance with process.
*[[Product (project management)|Product]] Life cycle phase and [[Project lifecycle]]
**Inception
**[[First development]]
**[[Major release]]
**[[Minor release]]
**[[Bug fix release]]
**[[knowledge maintenance|Maintenance]]
**[[Obsolescence]]
*[[software release|Release]] [[development stage]], near the end of a release cycle
**[[Software release life cycle#Alpha|Alpha]]
**[[development stage#Beta|Beta]]
**[[Software release life cycle#RTM|Gold master]]
**[[1.0]]; [[Software versioning|2.0]]
*[[System lifecycle|Software development lifecycle]]
**[[Waterfall model]] — [[Structured programming]] and [[Stepwise refinement]]
**[[SSADM]]
**[[Spiral model]] — [[Iterative development]]
**[[V-Model (software development)|V-model]]
**[[Agile software development]]
**[[Dynamic Systems Development Method|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]] — schemas and data.
*[[Software documentation|Documentation]], online and/or print, [[FAQ]], [[Readme]], [[release notes]], [[Online help|Help]], for each role
**[[User (computing)|User]]
**[[System administrator|Administrator]]
**[[Manager]]
**[[Buyer]]
*Administration and [[Software maintenance|Maintenance]] policy, what should be backed-up, checked, configured, ...
*[[Installer]]s
*Migration
**Upgrade from previous installations
**Upgrade from competitor's installations
*[[Training]] materials, for each role
**[[User (computing)|User]]
**Administrator
**[[Manager]]
**[[Buyer]]
*[[Technical support|Support]] info for computer support groups.
*[[Marketing]] and [[sales]] materials
**[[White papers]], explain the technologies used in the applications
===Business roles===
*Operations
**[[User (computing)|User]]s
**Administrators
**[[Managers]]
**[[Buyer]]s
*Development
**[[Business analyst|Analyst]]s
**[[Programmer]]s
**[[Software testing|Tester]]s
**[[Managers]]
*[[Business]]
**[[IT Consulting|Consulting]] — customization and installation of applications
**[[Sales]]
**[[Marketing]]
**[[Legal]] — contracts, intellectual property rights
**[[Privacy]] and [[Privacy engineering]]
**[[Technical support|Support]] — helping customers use applications
**[[Personnel]] — hiring and training qualified personnel
**[[Finance]] — funding new development
*[[Academe]]
**[[Educator]]s
**[[Researcher]]s
===Management topics===
*[[Leadership]]
**[[Coaching]]
**[[Communication]]
**[[Listening]]
**[[Motivation]]
**[[Vision statement|Vision]], SEs are good at this
**[[wikt:exemplar|Example]], everyone follows a good example best
*[[Human resource management]]
**[[Recruitment|Hiring]], getting people into an organization
**[[Training]]
**[[Evaluation]]
*[[Project management]]
**[[Goal setting]]
**[[Customer interaction]] (Rethink)
**[[Estimation]]
**[[Risk management]]
**[[Change management]]
*[[Process management (Project Management)|Process management]]
**[[Software development process]]es
**[[Software metric|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]]
**[[Licensing]]
*Legal
**[[Intellectual property]]
**[[Consumer protection]]
== History of software engineering ==
[[History of software engineering]]
===Pioneers===<!-- This section is linked from [[Software engineering]] -->
Many people made important contributions to SE technologies, practices, or applications.
*[[John Backus]]: [[Fortran]], first optimizing compiler, [[Backus-Naur form|BNF]]
*[[Victor Basili]]: Experience factory.
*[[F.L. Bauer]]: [[Stack (data structure)|Stack]] principle, popularized the term ''Software Engineering''
*[[Kent Beck]]: [[Refactoring]], [[extreme programming]], [[pair programming]], [[test-driven development]].
*[[Tim Berners-Lee]]: [[World Wide Web]]
*[[Barry Boehm]]: [[Software engineering economics|SE economics]], [[COCOMO]], [[Spiral model]].
*[[Grady Booch]]: [[Object-oriented programming|Object-oriented]] [[design]], [[UML]].
*[[Fred Brooks]]: Managed [[System 360]] and [[OS 360]]. Wrote ''[[The Mythical Man-Month]]'' and ''[[No Silver Bullet]]''.
*[[Larry Constantine]]: [[Structured Systems Analysis and Design Method|Structured design]], [[Coupling (computer science)|coupling]], [[Cohesion (computer science)|cohesion]]
*[[Edsger Dijkstra]]: Wrote ''[[Notes on Structured Programming]]'', ''[[A Discipline of Programming]]'' and ''[[Go To Statement Considered Harmful]]'', [[algorithms]], [[formal methods]], [[pedagogy]].
*[[Fagan inspection|Michael Fagan]]: [[Software inspection]].
*[[Tom Gilb]]: [[Software metrics]], [[Software inspection]], [[Software evolution|Evolutionary Delivery ("Evo")]].
*[[Adele Goldstine]]: Wrote the Operators Manual for the [[ENIAC]], the first electronic digital computer, and trained some of the first [[human computer]]s
*[[Lois Haibt]]: [[FORTRAN]], wrote the first [[parsing|parser]]
*[[Margaret Hamilton (scientist)|Margaret Hamilton]]: Coined the term "software engineering", developed [[Universal Systems Language]]
*[[Mary Jean Harrold]]: [[Regression testing]], fault localization
*[[Grace Hopper]]: The first compiler (Mark 1), [[COBOL]], [[Nanosecond]]s.
*[[Watts Humphrey]]: [[Capability Maturity Model]], [[Personal Software Process]], fellow of the [[Software Engineering Institute]].
*[[Jean Ichbiah]]: [[Ada programming language|Ada]]
*[[Michael A. Jackson (computer scientist)|Michael A. Jackson]]: [[Jackson Structured Programming]], [[Jackson System Development]]
*[[Bill Joy]]: Berkeley [[Unix]], [[Vi (text editor)|vi]], [[Java platform|Java]].
*[[Alan Kay]]: [[Smalltalk]]
*[[Brian Kernighan]]: C and Unix.
*[[Donald Knuth]]: Wrote ''[[The Art of Computer Programming]]'', [[TeX]], [[algorithm]]s, [[literate programming]]
*[[Nancy Leveson]]: System safety
*[[Bertrand 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]] [[GUI]], authored [[The Humane Interface]]
*[[Dennis Ritchie]]: [[C (programming language)|C]] and [[Unix]].
*[[Winston W. Royce]]: [[Waterfall model]].
*[[Mary Shaw (computer scientist)|Mary Shaw]]: Software [[architecture]].
*[[Richard Stallman]]: Founder of the [[Free Software Foundation]]
*[[Linus Torvalds]]: [[Linux]] kernel, [[free software]] / [[open-source software|open source]] development.
*[[Will Tracz]]: Reuse, ACM Software Engineering Notes.
*[[Gerald Weinberg]]: Wrote ''[[The Psychology of Computer Programming]]''.
*[[Elaine Weyuker]]: Software testing
*[[Jeannette Wing]]: [[Formal specification]]s.
*[[Ed Yourdon]]: [[Structured programming]], wrote ''[[Decline and Fall of the American Programmer|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 (software designer)|Alan Cooper]], about user interface design. {{ISBN|0-7645-2641-3}}
*''The Capability Maturity Model'' by [[Watts Humphrey]]. Written for the [[Software Engineering Institute]], emphasizing management and process. (See ''Managing the Software Process'' {{ISBN|0-201-18095-2}})
*''[[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. {{ISBN|0-13-191958-X}}
*''[[Design Patterns]]'' by [[Erich Gamma]], [[Richard Helm]], [[Ralph Johnson (computer scientist)|Ralph Johnson]], and [[John Vlissides]]. {{ISBN|0-201-63361-2}}
*''Extreme Programming Explained'' by [[Kent Beck]] {{ISBN|0-321-27865-8}}
*"[https://web.archive.org/web/20070703050443/http://www.acm.org/classics/oct95/ Go To Statement Considered Harmful]" by [[Edsger Dijkstra]].
*"Internet, Innovation and Open Source:Actors in the Network" — ''[[First Monday (journal)|First Monday]]'' article by [[Ilkka Tuomi]] (2000) [http://www.firstmonday.org/issues/issue6_1/tuomi/#t9 source]
*''[[The Mythical Man-Month]]'' by [[Fred Brooks]], about project management. {{ISBN|0-201-83595-9}}
*''Object-oriented Analysis and Design'' by [[Grady Booch]]. {{ISBN|0-8053-5340-2}}
*''[[Peopleware]]'' by [[Tom DeMarco]] and Tim Lister. {{ISBN|0-932633-43-9}}
*''The pragmatic engineer versus the scientific designer'' by [[E. W. Dijkstra]] [https://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD690.html]
*''Principles of Software Engineering Management'' by [[Tom Gilb]] about evolutionary processes. {{ISBN|0-201-19246-2}}
*''The Psychology of Computer Programming'' by [[Gerald Weinberg]]. Written as an independent consultant, partly about his years at IBM. {{ISBN|0-932633-42-0}}
*''Refactoring: Improving the Design of Existing Code'' by [[Martin Fowler (software engineer)|Martin Fowler]], [[Kent Beck]], John Brant, [[William Opdyke]], and Don Roberts. {{ISBN|0-201-48567-2}}
*''[http://www.pragmaticprogrammer.com The Pragmatic Programmer: from journeyman to master]'' by [[Andy Hunt (author)|Andrew Hunt]], and [[Dave Thomas (programmer)|David Thomas]]. {{ISBN|0-201-61622-X}}
*''[[Software Engineering Body of Knowledge]] (SWEBOK)'' ISO/IEC TR 19759
==Related fields==
* [[Computer science]]
* [[Information engineering]]
*[[Information technology]]
*[[Engineering|Traditional engineering]]
**[[Computer engineering]]
**[[Electrical engineering]]
*Software engineering
**[[Domain engineering]]
**[[Information technology engineering]]
**[[Knowledge engineering]]
**[[User interface engineering]]
**[[Web engineering]]
*[[Arts]] and [[Science]]s
**[[Mathematics]]
**[[Computer science]]
**[[Information science]]
*Application software
**[[Information systems]]
*[[Computer programming|Programming]]
* [[Systems Engineering]]
==See also==
* [[Index of software engineering articles]]
* [[Search-based software engineering]]
* [[SWEBOK]] Software engineering body of knowledge
* [[CCSE]] Computing curriculum for software engineering
* [[List of computer term etymologies|Computer terms etymology]], the origins of computer terms
* [[Complexity]] or scaling
* [[Second system syndrome]]
* [[optimization (computer science)|optimization]]
* [[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==
{{reflist}}
== External links ==
{{
*[https://dl.acm.org/ccs ACM Computing Classification System]
*[http://www.swebok.org Guide to the Software Engineering Body of Knowledge (SWEBOK)]
;Professional organizations
* [http://www.bcs.org/ British Computer Society]
* [http://www.acm.org/ Association for Computing Machinery]
* [http://www.computer.org/ IEEE Computer Society]
; Professionalism
* [http://www.computer.org/tab/seprof/code.htm SE Code of Ethics]
* [http://www.tbpe.state.tx.us/nm/sofupdt.htm Professional licensing in Texas]
; Education
* [http://sites.computer.org/ccse/ CCSE Undergraduate curriculum]
; Standards:
* [https://web.archive.org/web/20010216075021/http://standards.ieee.org/software/index.html IEEE Software Engineering Standards]
* [http://www.ietf.org/ Internet Engineering Task Force]
* [http://www.iso.org/ ISO]
; Government organizations:
* [http://www.esi.es European Software Institute]
* [http://www.sei.cmu.edu/ Software Engineering Institute]
; Agile:
* [http://www.agilealliance.org/ Organization to promote Agile software development]
* [http://www.testdriven.com Test driven development]
* [http://www.extremeprogramming.org Extreme programming]
; Other organizations:
* [https://web.archive.org/web/20070202125936/http://www.software-engineer.org/ Online community for software engineers]
* [http://www.ses.org/ Software Engineering Society]
; Demographics
* [http://www.bls.gov/oco/ocos267.htm U.S. Bureau of Labor Statistics on SE]
;Surveys:
* [http://www.ics.uci.edu/~redmiles/ David Redmiles page from the University of California site]
;Other:
* [http://homepages.cs.ncl.ac.uk/brian.randell/NATO/ Full text in PDF from the NATO conference in Garmisch]
* [http://catless.ncl.ac.uk/Risks Computer Risks] [[Peter G. Neumann]]'s risks column.
{{clear}}
{{Outline footer}}
[[Category:
[[Category:
[[Category:Software engineering|*]]
[[Category:Computing-related lists|Software engineering, Outline of]]
|