List of software engineering topics
264762
214992306
2008-05-26T06:18:03Z
85.56.102.97
/* Programming languages */
{{Cleanup-laundry|date=January 2008}}
This list complements the [[software engineering]] article, giving more details and examples.
For an alphabetical listing of topics, please see [[List of software engineering topics (alphabetical)]].
==Influence on society==
Software engineers affect society by creating applications. These applications produce value for users, and sometimes produce disasters.
===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.
*[[Business software]]
**[[Accounting software]]
**[[Docketing software]]
*[[Analytics]]
**[[Data mining]] closely related to [[database]]
**[[Knowledge management|Decision support systems]]
*[[Airline]] reservations
*[[Banking]]
**[[Automatic Teller Machine|Automatic teller machine]]s
**[[Cheque processing]]
**[[Credit card]]s
*[[Commerce]]
**[[Trade]]
**[[Auction]]s (eg. EBay)
**[[Reverse auction]]s (procurment)
**[[Bar code scanner]]s
*[[Compiler]]s
**[[Parser]]s
**[[Compiler optimization]]
**[[Interpreter (computing)|Interpreter]]s
**[[Linker]]s
**[[Loader (computing)|Loader]]s
*[[Communication]]
**[[E-mail]]
**[[Instant messaging|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]]
**[[HVAC|Heating Ventilation 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.
**[[CAD|Computer Aided Design (CAD)]]
**[[Electronic Design Automation|Electronic Design Automation (EDA)]]
**[[Numerical Analysis]]
**[[Simulation]]
*[[Computer file|File]]
**[[File Transfer Protocol|FTP]]
**[[File sharing]]
**[[File synchronization]]
*[[Finance]]
**[[Bond market]]
**[[Futures market]]
**[[Stock market]]
*[[game|Games]]
**[[Poker]]
**[[MUD|Multiuser Dungeons]]
**[[Video games]]
*[[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]]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]]
**[[Optical character recognition|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]]
**[[Ship traffic control]]
**[[Road transport#Traffic Control|Road traffic control]]
*[[Training]]
**[[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]]
===Disasters===
Software has played a role in many high-profile disasters.
*[[Ariane 5 Flight 501]]
*[[Mars Climate Orbiter|Mars probe]]
*[[Denver International Airport]]
*[[TAURUS (share trading)|TAURUS]] — UK share [[settlement (finance)|settlement]] system and [[dematerialised]] [[central share depository]].
*[[Therac-25]] — A radiation therapy machine responsible for six overdoses due to faulty software.
*[[Airbus A320]] — {{Fact|date=February 2007}} The [[Airbus A320]], while was controversial in software engineering circles, being the first civilian [[Fly-by-wire]] aircraft. In the Airbus flight control systems, the computer has the final say on all decisions, meaning the safety of passengers depends upon the accuracy of the software specification, and the competence of the engineering teams producing the (multiple, independent) software stacks. The Strasbourg A320 crash of Jan 21, 1992 is partially related to software in that poor user interface design was a contributing factor.
*[[Patriot missile|Failure at Dharan]] — Patriot Missile clock issue.
==Technologies and practices==
Skilled software engineers use technologies and practices from a variety of fields to improve their productivity in creating software and to improve the quality of the delivered product.
===Software engineering topics===
Many technologies and practices are (mostly) confined to software engineering,
though many of these are shared with [[computer science]].
====Programming languages====
*[[Alphabetical list of programming languages|List of programming languages]]
*[[Scripting language]]
*[[Assembly programming language]]
*[[Ada programming language|Ada]]
*[[COBOL]]
*[[Pascal (programming language)|Pascal]]
*[[C (programming language)|C]]
*[[C++]]
*[[D programming language|D]]
*[[ColdFusion]]
*[[Delphi (programming language)|Delphi]]
*[[C Sharp (programming language)|C#]]
*[[Erlang]]
*[[Fortran]]
*[[Java (programming language)|Java]]
*[[Lasso programming language|Lasso]]
*[[Perl]]
*[[PHP]]
*[[Prolog]]
*[[Haskell (programming language)|Haskell]]
*[[Python (programming language)|Python]]
*[[Smalltalk]]
*[[Tcl]]
*[[Visual Basic]]
*[[Visual Basic .NET]]
*[[Verilog]]
*[[VHDL]]
====Programming paradigm, based on a programming language technology====
*[[Aspect-oriented programming]]
*[[Functional decomposition]]
*[[Object-oriented programming]]
*[[Post-object programming]]
*[[Structured programming]]
*[[Rule-based programming]]
====Databases====
*[[Hierarchical database|Hierarchical]]
*[[Object database|Object]]
*[[Relational database|Relational]]
*[[SQL/XML]]
*[[Structured Query Language|SQL]]
====Graphical user interfaces====
*[[Qt (toolkit)|Qt toolkit]]
*[[GTK+|GTK+ GIMP Toolkit]]
====Programming tools====
*[[Configuration management]] and source code management
**[[Concurrent Versions System|CVS]]
**[[Subversion (software)|Subversion]]
**[[Revision Control System|RCS]]
**[[Arch Revision Control System|GNU Arch]]
**[[LibreSource|LibreSource Synchronizer]]
*Build tools
**[[make (software)|Make]]
**[[Apache Ant|Ant]]
**[[Apache Maven|Maven]]
**[[FinalBuilder|Final Builder]]
**Visual Build Pro
*[[Source code editor|Editors]]
**[[Integrated development environment|IDE]]s
**[[text editor]]s
**[[word processor]]s
* [[Parser]]s creation tools
** [[Yacc]]/[[GNU bison|Bison]]
====Libraries====
*[[Software componentry]]
====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]]
**[[Crystal Clear (software development)|Crystal Clear]]
**[[Extreme programming]]
**[[Lean manufacturing|Lean software development]]
**[[Scrum (in management)]]
*Heavyweight
**[[Cleanroom Software Engineering|Cleanroom]]
**[[ISO 12207]] — software life cycle processes
**[[ISO 9000]] and [[ISO 9001]]
**[[Rational Unified Process]]
*Process Models
**[[Capability Maturity Model|CMM]] and [[Capability Maturity Model Integration|CMMI]]/[[Standard CMMI Assessment Method for Process Improvement|SCAMPI]]
**[[ISO 15504]] (SPICE)
====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]]s
*[[Digital Equipment Corporation|DEC]] [[minicomputer]]s
*[[IBM]] [[Mainframe computer|mainframes]]
*[[Linux]] [[Personal computer|PCs]]
*[[Mac OS]] and [[Mac OS X]] [[Personal computer|PCs]]
*[[Microsoft .NET]] network software platform
*[[Palm OS|Palm]] [[Personal Digital Assistant|PDAs]]
*[[Sun Microsystems]] [[Solaris (operating system)|Solaris]]
*[[Microsoft Windows|Windows]] [[Personal computer|PCs]] ([[Wintel]])
*[[Symbian OS]]
====Other Practices====
*[[Communication]]
*[[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 story|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
**[[Halting problem]]
*[[Complexity]], some problems are solvable in principle, yet unsolvable in practice
**[[NP-complete|NP completeness]]
**[[Computational complexity theory]]
*[[Formal methods]]
**[[Correctness|Proof of correctness]]
**[[Program synthesis]]
*[[Adaptive system|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]]s
*[[Multiset|Bag]]s
*[[Graph (mathematics)|Graph]]s
**[[Sequence]]s
**[[Tree]]s
**[[Graphs]]
*[[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]]
***[[Clear 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
**[[development stage#Alpha|Alpha]]
**[[development stage#Beta|Beta]]
**[[Gold master]]
**[[1.0]]; [[2.0]]
*[[System lifecycle|Software development lifecycle]]
**[[Waterfall model]] — [[Structured programming]] and [[Stepwise refinement]]
**[[Structured Systems Analysis and Design Methodology|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
**[[Comparison]]s with competitor products
===Business roles===
*[[Business operations|Operations]]
**[[User (computing)|User]]s
**Administrators
**[[Manager]]s
**[[Buyer]]s
*Development
**[[Business analyst|Analyst]]s
**[[Programmer]]s
**[[Software testing|Tester]]s
**[[Manager]]s
*[[Business]]
**[[Consulting]] — customization and installation of applications
**[[Sales]]
**[[Marketing]]
**[[Legal]] — contracts, intellectual property rights
**[[Support (technical analysis)|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
**[[Exemplar|Example]], everyone follows a good example best
*[[Human resource management]]
**[[Recruitment|Hiring]], getting people into an organization
**[[Staffing]], getting people onto a project
**[[Training]]
**[[Evaluation]]
*[[Project management]]
**[[Goal setting]]
**[[Customer interaction]] (Rethink)
**[[Estimation]]
**[[Risk management]]
**[[Change management]]
*[[Process management]]
**[[Process (general)|Processes]]
***[[Software development process]]es
**[[Software metric|Metrics]]
===Business topics===
*Quality programs
**[[Malcolm Baldrige National Quality Award]]
**[[Six Sigma]]
**[[Total Quality Management]] (TQM)
==Community topics==
===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]]
*[[Vic 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]] [[design]], [[Unified Modeling Language|UML]].
*[[Fred Brooks]]: Managed [[System 360]] and [[OS 360]]. Wrote ''[[The Mythical Man-Month]]'' and ''[[No Silver Bullet]]''.
*[[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 metric]], [[Software inspection]], [[Evolutionary processes]].
*[[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]]: [[Jackson Structured Programming]], [[Jackson System Development]]
*[[Bill Joy]]: Berkeley [[Unix]], [[vi]], [[Java platform|Java]].
*[[Brian Kernighan]]: C and Unix.
*[[Donald Knuth]]: Wrote ''[[The Art of Computer Programming]]'', [[TeX]], [[algorithm]]s, [[literate programming]]
*[[Bertrand Meyer]]: [[Design by Contract]], [[Eiffel (programming language)|Eiffel programming language]].
*[[Peter G. Neumann]]: [[RISKS Digest]], ACM Sigsoft.
*[[David Parnas]]: Module design, social responsibility, professionalism.
*[[Jef Raskin]]: Developed the original [[Apple Macintosh|Macintosh]] [[GUI]]
*[[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]]''.
*[[Jeanette Wing]]: [[Formal specification]]s.
*[[Ed Yourdon]]: [[Structured programming]], wrote ''[[The Decline and Fall of the American Programmer]]''.
See also
*[[List of programmers]]
*[[List of computer scientists]]
*[[List of software moguls]]
===Notable publications===
*''[[About Face: The Essentials of User Interface Design]]'' by [[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]], and [[John Vlissides]]. ISBN 0-201-63361-2
*''[[Extreme Programming Explained]]'' by [[Kent Beck]] ISBN 0-321-27865-8
*"[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]] 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
*''[[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]], [[Kent Beck]], [[John Brant (author)|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
See also:
*[[List of important publications in computer science#Software engineering|Important publications in software engineering]] in CS.
===Professional topics===
*[[Software engineering demographics|Demographics]]
*[[Software engineering economics|Economics]]
*[[CCSE|Education]]
*[[History of software engineering|History]]
*[[Software engineering professionalism|Professionalism]]
**[[Ethics]]
**[[Licensing]]
*[[Software engineering legal|Legal]]
**[[Intellectual property]]
**[[Consumer protection]]
==Other terms==
===Related fields===
*[[Information technology]]
*[[Engineering|Traditional engineering]]
**[[Computer engineering]]
**[[Electrical engineering]]
*Software engineering
**[[Domain engineering]]
**[[Information engineering]]
**[[Knowledge engineering]]
**[[User interface engineering]]
**[[Web engineering]]
*[[Arts]] and [[Science]]s
**[[Mathematics]]
**[[Computer science]]
**[[Information science]]
*Application software
**[[Information systems]]
*[[Programming]]
===Different languages===
*In [[Arabic]] , software engineering is called هندسة البرمجيات
*In [[Chinese language|Chinese]], software engineering is called ''ruǎnjiàn gōngchéng''([[:zh:软件工程 软件工程|软件工程 软件工程]])
*In [[Danish language|Danish]], software engineering is called ''Software ingeniør''.
*In [[French language|French]], software engineering is called ''[[:fr:G%C3%A9nie_logiciel|Génie logiciel]]''.
*In [[Persian language|Persian]], software engineering is called ''[[:fa:مهندسی نرمافزار| مهندسی نرمافزار]]''.
*In [[German language|German]], software engineering is called ''Softwaretechnik''.
*In [[Hebrew language|Hebrew]], software engineering is called ''הנדסת תוכנה''.
*In [[Italian language|Italian]], software engineering is called ''[[:it:Ingegneria del software|Ingegneria del software]]'',
*In [[Korean language|Korean]], software engineering is called ''소프트웨어 공학'',
*In [[Norwegian language|Norwegian]], software engineering is called ''Programvareutvikling''.
*In [[Polish language|Polish]], software engineering is called ''Inżynieria oprogramowania''.
*In [[Portuguese language|Portuguese]], software engineering is called ''Engenharia de software'',
*In [[Spanish language|Spanish]], software engineering is called ''Ingeniería del software'',
*In [[Turkish language|Turkish]], software engineering is called ''yazılım mühendisliği''.
===Miscellaneous===
*[[Complexity]] or scaling
*[[Software brittleness problem]]
*[[Second system syndrome]]
*Software specialists share common language, terminology, certification, and so on.
*Traditional [[engineer]]s frequently resort to a balance of factors to achieve [[optimization (computer science)|optimization]].
*Biology and biological engineering have other issues.
*[[Source code escrow]]
*[[Feature interaction problem]]
*[[Certification (software engineering)]]
==See also==
*[[List of basic software engineering topics]]
*[[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
==External links==
*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:
**[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:
**[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.
[[Category:Software engineering|*Topics]]
[[Category:Computer lists|Software engineering topics]]
[[Category:Topical indexes|Software engineering topics]]
[[zh:软件工程相关条目列表]]