Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Outline of software engineering
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==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)
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)