480 relations: Academy, Accounting software, Ada (programming language), Adaptive system, Adele Goldstine, Adobe ColdFusion, Agile software development, Air traffic control, Airline, Alan Cooper, Alan Kay, Algorithm, Analytics, Andy Hunt (author), Animation, Anti-pattern, Apache Ant, Apache Groovy, Apache Maven, Apache Subversion, APL (programming language), Application software, Architecture, Artificial neural network, Aspect-oriented programming, Assembly language, Auction, Automated teller machine, Automotive software, Avionics software, B (programming language), Backus–Naur form, Bank, Barcode reader, Barry Boehm, Bertrand Meyer, Bill Joy, Binary Runtime Environment for Wireless, Black-box testing, Bond market, Brian Kernighan, Business, Business analyst, Business operations, Business process management, Business software, Business support system, Buyer, C (programming language), C Sharp (programming language), ..., C++, Cabal (software), CADES, Calendar, Capability Maturity Model, Capability Maturity Model Integration, Change management, Chaos model, Cheque, Classic Mac OS, Cleanroom software engineering, Clojure, Coaching, COBOL, COCOMO, Code refactoring, Code review, Cohesion (computer science), Combinatorics, Combinatory logic, Commerce, Common Lisp, Communication, Communication protocol, Compiler, Complexity, Component-based software engineering, Computability theory, Computational complexity theory, Computer engineering, Computer file, Computer graphics, Computer multitasking, Computer network, Computer programming, Computer science, Computer simulation, Computer-aided design, Computer-aided manufacturing, Concurrent Versions System, Configuration management, Consumer protection, Contact manager, Correctness (computer science), Coupling (computer programming), Cray, Credit card, Cryptography, D (programming language), Data mining, Data structure, Database, Dave Thomas (programmer), David Parnas, David Pearson (computer scientist), Decision table, Decision theory, Decline and Fall of the American Programmer, Dennis Ritchie, Design, Design by contract, Design Patterns, Digital Equipment Corporation, Digital image processing, Discrete mathematics, Distributed control system, Domain engineering, Domain knowledge, Domain Name System, Donald Knuth, Drill, Dylan (programming language), Dynamic systems development method, Editing, Edsger W. Dijkstra, Edward Yourdon, Eiffel (programming language), Elaine Weyuker, Electrical engineering, Electronic design automation, Electronic document, Electronic voting, Element management system, Email, Embedded system, Employment, Engineering, ENIAC, Eric S. Raymond, Erich Gamma, Erlang (programming language), Estimation, Ethics, Evaluation, Evolutionary algorithm, Extreme programming, F Sharp (programming language), Fagan inspection, FAQ, Feature (machine learning), Feature interaction problem, File sharing, File synchronization, File Transfer Protocol, FinalBuilder, Finance, First Monday, First-order logic, FLTK, Formal methods, Formal specification, Fortran, Fred Brooks, Free software, Free Software Foundation, Friedrich L. Bauer, Functional decomposition, Futures exchange, Game, Genomics, Gerald Weinberg, Git, GNU arch, GNU bison, Goal setting, Goto, Grace Hopper, Gradle, Grady Booch, Graph (abstract data type), Graph (discrete mathematics), Graphical user interface, GTK+, Halting problem, Handwriting recognition, Hash table, Haskell (programming language), Hierarchical database model, Higher-order logic, History of software engineering, Human computer, Human resource management, HVAC, IBM, IBM System/360, IEEE Computer Society, Ilkka Tuomi, Implementation, Information engineering, Information science, Information system, Information technology, Information technology consulting, Installation (computer programs), Instant messaging, Integrated development environment, Intellectual property, Internet, Interpreter (computing), ISO 9000, ISO/IEC 12207, ISO/IEC 15504, ISO/IEC 24744, Iterative and incremental development, Jackson structured programming, Jackson system development, Java (programming language), Java (software platform), Jean Ichbiah, Jeannette Wing, Jef Raskin, John Backus, John Vlissides, Kent Beck, Knowledge engineering, Knowledge management, Laboratory information management system, Larry Constantine, Lasso (programming language), Law, Leadership, Lean manufacturing, License, Linker (computing), Linus Torvalds, Linux, List (abstract data type), List of computer scientists, List of computer term etymologies, List of programmers, List of programming languages, List of tools for static code analysis, List of unsolved problems in computer science, Listening, Literate programming, Loader (computing), Logic, Logic programming, Logistics, Lois Haibt, Macintosh, MacOS, Mainframe computer, Maintenance release, Make (software), Malcolm Baldrige National Quality Award, Management, Management information system, Manufacturing, Margaret Hamilton (scientist), Marketing, Martin Fowler, Mary Jean Harrold, Mary Shaw (computer scientist), Mathematical induction, Mathematics, Medical software, Mercurial, Meta-process modeling, Method engineering, Michael A. Jackson, Microsoft Windows, Minicomputer, ML (programming language), Motivation, MUD, Multiset, Music, Music sequencer, MySQL, Nancy Leveson, Nanosecond, NAnt, Natural deduction, Network management, Network monitoring, No Silver Bullet, NoSQL, NP-completeness, Number, Numerical analysis, Object database, Object Pascal, Object-oriented programming, Obsolescence, OCaml, Online help, Open-source software, Operating system, Operations support system, Optical character recognition, Optimizing compiler, OS/360 and successors, Outline (list), Pair programming, Palm OS, Parsing, Pascal (programming language), Pedagogy, Peopleware, Performance engineering, Perl, Personal computer, Personal digital assistant, Personal software process, Peter G. Neumann, PHP, PL/SQL, Poker, Presentation program, Privacy, Privacy engineering, Product breakdown structure, Productivity software, Professional certification, Program optimization, Program synthesis, Programmer, Programming language, Programming productivity, Project management, Prolog, Python (programming language), Qt (software), Quality assurance, Rake (software), Ralph Johnson (computer scientist), Rapid application development, Rational Unified Process, README, Real-time operating system, Recruitment, Regression testing, Relational database, Release notes, Requirements engineering, Research, Reusability, Reverse auction, Revision Control System, Richard Stallman, Risk management, RISKS Digest, Robotics, Router (computing), Ruby (programming language), Sales, Scala (programming language), Scheme (programming language), Science, Scripting language, Scrum (software development), Sea lane, Search algorithm, Search-based software engineering, Sequence, Set (abstract data type), Signal processing, Simulation, Six Sigma, Smalltalk, Software, Software architecture, Software bug, Software design pattern, Software development process, Software documentation, Software engineering, Software Engineering 2004, Software Engineering Body of Knowledge, Software engineering demographics, Software Engineering Institute, Software engineering professionalism, Software evolution, Software inspection, Software maintenance, Software metric, Software release life cycle, Software testing, Software versioning, Solaris (operating system), Sorting, Sound effect, Source code editor, Source code escrow, Spatial visualization ability, Special effect, Speech processing, Spiral model, Spreadsheet, SQL, SQL/XML, Stack (abstract data type), Standard CMMI Appraisal Method for Process Improvement, Statistics, Stock market, Structured programming, Structured systems analysis and design method, Sun Microsystems, Supercomputer, Supply chain management, Support and resistance, Symbian, Synthesizer, System administrator, System integration, System lifecycle, System software, Systems development life cycle, Systems engineering, Tcl, Teacher, Team Foundation Server, Teamwork, Technical support, Telemetry, Telephony, Test-driven development, TeX, Text editor, The Art of Computer Programming, The arts, The Cathedral and the Bazaar, The Humane Interface, The Mythical Man-Month, Tim Berners-Lee, Tom DeMarco, Tom Gilb, Tool, Top-down and bottom-up design, Total quality management, Trade, Training, Transact-SQL, Tree, Tree (data structure), Type theory, Ultimate++, Unified Modeling Language, Universal Systems Language, Unix, Use case, User (computing), User interface design, User story, V-Model (software development), Verilog, VHDL, Vi, Video game, Vision statement, Visual Basic, Visual Basic .NET, Voice over IP, Waterfall model, Watts Humphrey, Web browser, Web engineering, Web server, White paper, White-box testing, William Opdyke, Winston W. Royce, Wintel, Word processor, World Wide Web, WxWidgets, Yacc, .NET strategy, 1. Expand index (430 more) » « Shrink index
An academy (Attic Greek: Ἀκαδήμεια; Koine Greek Ἀκαδημία) is an institution of secondary education, higher learning, research, or honorary membership.
Accounting software describes a type of application software that records and processes accounting transactions within functional modules such as accounts payable, accounts receivable,journal, general ledger, payroll, and trial balance.
Ada is a structured, statically typed, imperative, and object-oriented high-level computer programming language, extended from Pascal and other languages.
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 continuous physiological homeostasis or evolutionary adaptation in biology.
Adele Goldstine (née Katz; December 21, 1920 – November, 1964) was an American mathematician and computer programmer.
Adobe ColdFusion is a commercial rapid web application development platform created by J. J. Allaire in 1995.
Agile software development describes an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customer(s)/end user(s).
Air traffic control (ATC) is a service provided by ground-based air traffic controllers who direct aircraft on the ground and through controlled airspace, and can provide advisory services to aircraft in non-controlled airspace.
An airline is a company that provides air transport services for traveling passengers and freight.
Alan Cooper (born June 3, 1952) is an American software designer and programmer.
Alan Curtis Kay (born May 17, 1940 published by the Association for Computing Machinery 2012) is an American computer scientist.
In mathematics and computer science, an algorithm is an unambiguous specification of how to solve a class of problems.
Analytics is the discovery, interpretation, and communication of meaningful patterns in data.
Andy Hunt (sometimes credited as Andrew Hunt) is a writer of books on software development.
Animation is a dynamic medium in which images or objects are manipulated to appear as moving images.
An anti-pattern is a common response to a recurring problem that is usually ineffective and risks being highly counterproductive.
Apache Ant is a software tool for automating software build processes, which originated from the Apache Tomcat project in early 2000.
Apache Groovy is a Java-syntax-compatible object-oriented programming language for the Java platform.
Maven is a build automation tool used primarily for Java projects.
Apache Subversion (often abbreviated SVN, after its command name svn) is a software versioning and revision control system distributed as open source under the Apache License.
APL (named after the book A Programming Language) is a programming language developed in the 1960s by Kenneth E. Iverson.
An application software (app or application for short) is a computer software designed to perform a group of coordinated functions, tasks, or activities for the benefit of the user.
Architecture is both the process and the product of planning, designing, and constructing buildings or any other structures.
Artificial neural networks (ANNs) or connectionist systems are computing systems vaguely inspired by the biological neural networks that constitute animal brains.
In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns.
An assembly (or assembler) language, often abbreviated asm, is a low-level programming language, in which there is a very strong (but often not one-to-one) correspondence between the assembly program statements and the architecture's machine code instructions.
An auction is a process of buying and selling goods or services by offering them up for bid, taking bids, and then selling the item to the highest bidder.
An automated teller machine (ATM) is an electronic telecommunications device that enables customers of financial institutions to perform financial transactions, such as cash withdrawals, deposits, transfer funds, or obtaining account information, at any time and without the need for direct interaction with bank staff.
Automotive software refers to any software, (or firmware or embedded software), related to automotive industry specific products or services.
Avionics software is embedded software with legally mandated safety and reliability concerns used in avionics.
B is a programming language developed at Bell Labs circa 1969.
In computer science, Backus–Naur form or Backus normal form (BNF) is a notation technique for context-free grammars, often used to describe the syntax of languages used in computing, such as computer programming languages, document formats, instruction sets and communication protocols.
A bank is a financial institution that accepts deposits from the public and creates credit.
A bar code reader (or bar code scanner) is an electronic device that can read and output printed barcodes to a computer.
Barry W. Boehm (born 1935) is an American software engineer, distinguished professor of computer science, industrial and systems engineering; the TRW Professor of Software Engineering; and founding director of the Center for Systems and Software Engineering at the University of Southern California.
Bertrand Meyer (born 21 November 1950) is a French academic, author, and consultant in the field of computer languages.
William Nelson Joy (born November 8, 1954) is an American computer scientist.
Binary Runtime Environment for Wireless (Brew MP, Brew, or BREW) is an application development platform created by Qualcomm, originally for code division multiple access (CDMA) mobile phones, featuring third-party applications such as mobile games.
Black-box testing is a method of software testing that examines the functionality of an application without peering into its internal structures or workings.
The bond market (also debt market or credit market) is a financial market where participants can issue new debt, known as the primary market, or buy and sell debt securities, known as the secondary market.
Brian Wilson Kernighan (born January 1, 1942) is a Canadian computer scientist who worked at Bell Labs alongside Unix creators Ken Thompson and Dennis Ritchie and contributed to the development of Unix.
Business is the activity of making one's living or making money by producing or buying and selling products (goods and services).
A business analyst (BA) is someone who analyzes an organization or business domain (real or hypothetical) and documents its business or processes or systems, assessing the business model or its integration with technology.
The outcome of business operations is the harvesting of value from assets owned by a business.
Business process management (BPM) is a discipline in operations management in which people use various methods to discover, model, analyze, measure, improve, optimize, and automate business processes.
Business software or a business application is any software or set of computer programs used by business users to perform various business functions.
Business support systems (BSS) are the components that a telecommunications service provider (or telco) uses to run its business operations towards customers.
A buyer is any person who contracts to acquire an asset in return for some form of consideration.
C (as in the letter ''c'') is a general-purpose, imperative computer programming language, supporting structured programming, lexical variable scope and recursion, while a static type system prevents many unintended operations.
C# (/si: ʃɑːrp/) is a multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.
C++ ("see plus plus") is a general-purpose programming language.
The Haskell Cabal is the Common Architecture for Building '''A'''pplications and '''L'''ibraries; it aids in the packaging and distribution of software packages.
CADES (Computer Aided Design and Evaluation System) was a software engineering repository system produced to support the development of the VME/B Operating System for the ICL New Range - subsequently 2900 - computers.
A calendar is a system of organizing days for social, religious, commercial or administrative purposes.
The Capability Maturity Model (CMM) is a development model created after a study of data collected from organizations that contracted with the U.S. Department of Defense, who funded the research.
Capability Maturity Model Integration (CMMI) is a process level improvement training and appraisal program.
Change management (sometimes abbreviated as CM) is a collective term for all approaches to prepare and support individuals, teams, and organizations in making organizational change.
In computing, the chaos model is a structure of software development.
A cheque, or check (American English; see spelling differences), is a document that orders a bank to pay a specific amount of money from a person's account to the person in whose name the cheque has been issued.
Classic Mac OS is a colloquial term used to describe a series of operating systems developed for the Macintosh family of personal computers by Apple Inc. from 1984 until 2001.
The cleanroom software engineering process is a software development process intended to produce software with a certifiable level of reliability.
Clojure (like "closure") is a dialect of the Lisp programming language.
Coaching is a form of development in which a person called a coach supports a learner or client in achieving a specific personal or professional goal by providing training and guidance.
COBOL (an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use.
The Constructive Cost Model (COCOMO) is a procedural software cost estimation model developed by Barry W. Boehm.
Code refactoring is the process of restructuring existing computer code—changing the factoring—without changing its external behavior.
Code review is systematic examination (sometimes referred to as peer review) of computer source code.
In computer programming, cohesion refers to the degree to which the elements inside a module belong together.
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.
Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic.
Commerce relates to "the exchange of goods and services, especially on a large scale.” Commerce includes legal, economic, political, social, cultural and technological systems that operate in any country or internationally.
Common Lisp (CL) is a dialect of the Lisp programming language, published in ANSI standard document ANSI INCITS 226-1994 (R2004) (formerly X3.226-1994 (R1999)).
Communication (from Latin commūnicāre, meaning "to share") is the act of conveying intended meanings from one entity or group to another through the use of mutually understood signs and semiotic rules.
In telecommunication, a communication protocol is a system of rules that allow two or more entities of a communications system to transmit information via any kind of variation of a physical quantity.
A compiler is computer software that transforms computer code written in one programming language (the source language) into another programming language (the target language).
Complexity characterises the behaviour of a system or model whose components interact in multiple ways and follow local rules, meaning there is no reasonable higher instruction to define the various possible interactions.
Component-based software engineering (CBSE), also called as 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 given software system.
Computability theory, also known as recursion theory, is a branch of mathematical logic, of computer science, and of the theory of computation that originated in the 1930s with the study of computable functions and Turing degrees.
Computational complexity theory is a branch of the theory of computation in theoretical computer science that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other.
Computer engineering is a discipline that integrates several fields of computer science and electronics engineering required to develop computer hardware and software.
A computer file is a computer resource for recording data discretely in a computer storage device.
Computer graphics are pictures and films created using computers.
In computing, multitasking is the concurrent execution of multiple tasks (also known as processes) over a certain period of time.
A computer network, or data network, is a digital telecommunications network which allows nodes to share resources.
Computer programming is the process of building and designing an executable computer program for accomplishing a specific computing task.
Computer science deals with the theoretical foundations of information and computation, together with practical techniques for the implementation and application of these foundations.
Computer simulation is the reproduction of the behavior of a system using a computer to simulate the outcomes of a mathematical model associated with said system.
Computer-aided design (CAD) is the use of computer systems to aid in the creation, modification, analysis, or optimization of a design.
Computer-aided manufacturing (CAM) is the use of software to control machine tools and related ones in the manufacturing of workpieces.
The Concurrent Versions System (CVS), also known as the Concurrent Versioning System, is a free client-server revision control system in the field of software development.
Configuration management (CM) is a systems engineering 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.
In regulatory jurisdictions that provide for this (a list including most or all developed countries with free market economies) consumer protection is a group of laws and organizations designed to ensure the rights of consumers, as well as fair trade, competition, and accurate information in the marketplace.
A contact manager is a software program that enables users to easily store and find contact information, such as names, addresses and telephone numbers.
In theoretical computer science, correctness of an algorithm is asserted when it is said that the algorithm is correct with respect to a specification.
In software engineering, coupling is the degree of interdependence between software modules; a measure of how closely connected two routines or modules are;ISO/IEC/IEEE 24765:2010 Systems and software engineering — Vocabulary the strength of the relationships between modules.
Cray Inc. is an American supercomputer manufacturer headquartered in Seattle, Washington.
A credit card is a payment card issued to users (cardholders) to enable the cardholder to pay a merchant for goods and services based on the cardholder's promise to the card issuer to pay them for the amounts so paid plus the other agreed charges.
Cryptography or cryptology (from κρυπτός|translit.
D is an object-oriented, imperative, multi-paradigm system programming language created by Walter Bright of Digital Mars and released in 2001.
Data mining is the process of discovering patterns in large data sets involving methods at the intersection of machine learning, statistics, and database systems.
In computer science, a data structure is a data organization and storage format that enables efficient access and modification.
A database is an organized collection of data, stored and accessed electronically.
Dave Thomas (born 1956) is a computer programmer, author and editor.
David Lorge Parnas (born February 10, 1941) is a Canadian early pioneer of software engineering, who developed the concept of information hiding in modular programming, which is an important element of object-oriented programming today.
David Pearson is a British physicist and computer scientist.
Decision tables are a concise visual representation for specifying which actions to perform depending on given conditions.
Decision theory (or the theory of choice) is the study of the reasoning underlying an agent's choices.
Decline and Fall of the American Programmer is a book written by Edward Yourdon in 1992.
Dennis MacAlistair Ritchie (September 9, 1941 – October 12, 2011) was an American computer scientist.
Design is the creation of a plan or convention for the construction of an object, system or measurable human interaction (as in architectural blueprints, engineering drawings, business processes, circuit diagrams, and sewing patterns).
Design by contract (DbC), also known as contract programming, programming by contract and design-by-contract programming, is an approach for designing software.
Design Patterns: Elements of Reusable Object-Oriented Software is a software engineering book describing software design patterns.
Digital Equipment Corporation, also known as DEC and using the trademark Digital, was a major American company in the computer industry from the 1950s to the 1990s.
In computer science, Digital image processing is the use of computer algorithms to perform image processing on digital images.
Discrete mathematics is the study of mathematical structures that are fundamentally discrete rather than continuous.
A distributed control system (DCS) is a computerised control system for a process or plant usually with a large number of control loops, in which autonomous controllers are distributed throughout the system, but there is central operator supervisory control.
Domain engineering, also called product line engineering, is the entire process of reusing domain knowledge in the production of new software systems.
Domain knowledge is knowledge of a specific, specialized discipline or field, in contrast to general knowledge, or domain-independent knowledge.
The Domain Name System (DNS) is a hierarchical decentralized naming system for computers, services, or other resources connected to the Internet or a private network.
Donald Ervin Knuth (born January 10, 1938) is an American computer scientist, mathematician, and professor emeritus at Stanford University.
A drill is a tool fitted with a cutting tool attachment or driving tool attachment, usually a drill bit or driver bit, used for boring holes in various materials or fastening various materials together.
Dylan is a multi-paradigm programming language that includes support for functional and object-oriented programming, and is dynamic and reflective while providing a programming model designed to support efficient machine code generation, including fine-grained control over dynamic and static behaviors.
Dynamic systems development method (DSDM) is an agile project delivery framework, initially used as a software development method.
Editing is the process of selecting and preparing written, visual, audible, and film media used to convey information.
Edsger Wybe Dijkstra (11 May 1930 – 6 August 2002) was a Dutch systems scientist, programmer, software engineer, science essayist, and early pioneer in computing science.
Edward Nash Yourdon (April 30, 1944 – January 20, 2016) was an American software engineer, computer consultant, author and lecturer, and software engineering methodology pioneer.
Eiffel is an object-oriented programming language designed by Bertrand Meyer (an object-orientation proponent and author of Object-Oriented Software Construction) and Eiffel Software.
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.
Electrical engineering is a professional engineering discipline that generally deals with the study and application of electricity, electronics, and electromagnetism.
Electronic design automation (EDA), also referred to as electronic computer-aided design (ECAD), is a category of software tools for designing electronic systems such as integrated circuits and printed circuit boards.
An electronic document is any electronic media content (other than computer programs or system files) that are intended to be used in either an electronic form or as printed output.
Electronic voting (also known as e-voting) refers to voting using electronic means to either aid or take care of the chores of casting and counting votes.
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.
Electronic mail (email or e-mail) is a method of exchanging messages ("mail") between people using electronic devices.
An embedded system is a computer system with a dedicated function within a larger mechanical or electrical system, often with real-time computing constraints.
Employment is a relationship between two parties, usually based on a contract where work is paid for, where one party, which may be a corporation, for profit, not-for-profit organization, co-operative or other entity is the employer and the other is the employee.
Engineering is the creative application of science, mathematical methods, and empirical evidence to the innovation, design, construction, operation and maintenance of structures, machines, materials, devices, systems, processes, and organizations.
ENIAC (Electronic Numerical Integrator and Computer) was amongst the earliest electronic general-purpose computers made.
Eric Steven Raymond (born December 4, 1957), often referred to as ESR, is an American software developer, author of the widely cited 1997 essay and 1999 book The Cathedral and the Bazaar and other works, and open-source software advocate.
Erich Gamma (born 1961 in Zürich) is a Swiss computer scientist and co-author of the influential software engineering textbook, Design Patterns: Elements of Reusable Object-Oriented Software.
Erlang is a general-purpose, concurrent, functional programming language, as well as a garbage-collected runtime system.
Estimation (or estimating) is the process of finding an estimate, or approximation, which is a value that is usable for some purpose even if input data may be incomplete, uncertain, or unstable.
Ethics or moral philosophy is a branch of philosophy that involves systematizing, defending, and recommending concepts of right and wrong conduct.
Evaluation is a systematic determination of a subject's merit, worth and significance, using criteria governed by a set of standards.
In artificial intelligence, an evolutionary algorithm (EA) is a subset of evolutionary computation, a generic population-based metaheuristic optimization algorithm.
Extreme programming (XP) is a software development methodology which is intended to improve software quality and responsiveness to changing customer requirements.
F# (pronounced F sharp) is a strongly typed, multi-paradigm programming language that encompasses functional, imperative, and object-oriented programming methods.
A Fagan inspection is a structured process of trying to find defects in development documents such as programming code, specifications, designs and others during various phases of the software development process.
Frequently asked questions (FAQ) or Questions and Answers (Q&A), are listed questions and answers, all supposed to be commonly asked in some context, and pertaining to a particular topic.
In machine learning and pattern recognition, a feature is an individual measurable property or characteristic of a phenomenon being observed.
Feature interaction is a software engineering concept.
File sharing is the practice of distributing or providing access to digital media, such as computer programs, multimedia (audio, images and video), documents or electronic books.
File synchronization (or syncing) in computing is the process of ensuring that computer files in two or more locations are updated via certain rules.
The File Transfer Protocol (FTP) is a standard network protocol used for the transfer of computer files between a client and server on a computer network.
FinalBuilder is a commercial Windows build automation tool that provides a unified graphical interface to author and execute build projects.
Finance is a field that is concerned with the allocation (investment) of assets and liabilities (known as elements of the balance statement) over space and time, often under conditions of risk or uncertainty.
First Monday is an American television midseason replacement drama centered on the U.S. Supreme Court.
First-order logic—also known as first-order predicate calculus and predicate logic—is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science.
Fast Light Toolkit (FLTK, pronounced fulltick) is a cross-platform widget (graphical control element) library for graphical user interfaces (GUIs), developed by Bill Spitzak and others.
In computer science, specifically software engineering and hardware engineering, formal methods are a particular kind of mathematically based techniques for the specification, development and verification of software and hardware systems.
In computer science, formal specifications are mathematically based techniques whose purpose are to help with the implementation of systems and software.
Fortran (formerly FORTRAN, derived from Formula Translation) is a general-purpose, compiled imperative programming language that is especially suited to numeric computation and scientific computing.
Frederick Phillips "Fred" Brooks Jr. (born April 19, 1931) is an American computer architect, software engineer, and computer scientist, best known for managing the development of IBM's System/360 family of computers and the OS/360 software support package, then later writing candidly about the process in his seminal book The Mythical Man-Month.
Free software or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions.
The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on 4 October 1985 to support the free software movement, which promotes the universal freedom to study, distribute, create, and modify computer software, with the organization's preference for software being distributed under copyleft ("share alike") terms, such as with its own GNU General Public License.
Friedrich Ludwig "Fritz" Bauer (10 June 1924 – 26 March 2015) was a German computer scientist and professor at the Technical University of Munich.
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.
A futures exchange or futures market is a central financial exchange where people can trade standardized futures contracts; that is, a contract to buy specific quantities of a commodity or financial instrument at a specified price with delivery set at a specified time in the future.
A game is a structured form of play, usually undertaken for enjoyment and sometimes used as an educational tool.
Genomics is an interdisciplinary field of science focusing on the structure, function, evolution, mapping, and editing of genomes.
Gerald Marvin (Jerry) Weinberg (born October 27, 1933) is an American computer scientist, author and teacher of the psychology and anthropology of computer software development.
Git is a version control system for tracking changes in computer files and coordinating work on those files among multiple people.
GNU arch software is a distributed revision control system that is part of the GNU Project and licensed under the GNU General Public License.
GNU bison, commonly known as Bison, is a parser generator that is part of the GNU Project.
Goal setting involves the development of an action plan designed to motivate and guide a person or group toward a goal.
GoTo (goto, GOTO, GO TO or other case combinations, depending on the programming language) is a statement found in many computer programming languages.
Grace Brewster Murray Hopper (December 9, 1906 – January 1, 1992) was an American computer scientist and United States Navy rear admiral.
Gradle is an open-source build automation system that builds upon the concepts of Apache Ant and Apache Maven and introduces a Groovy-based domain-specific language (DSL) instead of the XML form used by Apache Maven for declaring the project configuration.
Grady Booch (born February 27, 1955) is an American software engineer, best known for developing the Unified Modeling Language (UML) with Ivar Jacobson and James Rumbaugh.
In computer science, a graph is an abstract data type that is meant to implement the undirected graph and directed graph concepts from mathematics, specifically the field of graph theory.
In mathematics, and more specifically in graph theory, a graph is a structure amounting to a set of objects in which some pairs of the objects are in some sense "related".
The graphical user interface (GUI), is a type of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation, instead of text-based user interfaces, typed command labels or text navigation.
GTK+ (formerly GIMP Toolkit) is a cross-platform widget toolkit for creating graphical user interfaces.
In computability theory, the halting problem is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running (i.e., halt) or continue to run forever.
Handwriting recognition (HWR) is the ability of a computer to receive and interpret intelligible handwritten input from sources such as paper documents, photographs, touch-screens and other devices.
In computing, a hash table (hash map) is a data structure that implements an associative array abstract data type, a structure that can map keys to values.
Haskell is a standardized, general-purpose compiled purely functional programming language, with non-strict semantics and strong static typing.
A hierarchical database model is a data model in which the data is organized into a tree-like structure.
In mathematics and logic, a higher-order logic is a form of predicate logic that is distinguished from first-order logic by additional quantifiers and, sometimes, stronger semantics.
From its beginnings 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.
The term "computer", in use from the early 17th century (the first known written reference dates from 1613), meant "one who computes": a person performing mathematical calculations, before electronic computers became commercially available.
Human resource management (HRM or HR) is the strategic approach to the effective management of organization workers so that they help the business gain a competitive advantage, Commonly referred to as the HR Department, it is designed to maximize employee performance in service of an employer's strategic objectives.
Heating, ventilation and air conditioning (HVAC) is the technology of indoor and vehicular environmental comfort.
The International Business Machines Corporation (IBM) is an American multinational technology company headquartered in Armonk, New York, United States, with operations in over 170 countries.
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.
IEEE Computer Society (sometimes abbreviated Computer Society or CS) is a professional society of IEEE.
Ilkka Tuomi (born 26 September 1958), a native of Finland, is noted for writings on the subject of the Internet.
Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy.
Information engineering (IE) or information engineering methodology (IEM) is a software engineering approach to designing and developing information systems.
Information science is a field primarily concerned with the analysis, collection, classification, manipulation, storage, retrieval, movement, dissemination, and protection of information.
An information system (IS) is an organized system for the collection, organization, storage and communication of information.
Information technology (IT) is the use of computers to store, retrieve, transmit, and manipulate data, or information, often in the context of a business or other enterprise.
In management, information technology consulting (also called IT consulting, computer consultancy, business and technology services, computing consultancy, technology consulting, and IT advisory) as a field of activity focuses on advising organizations on how best to use information technology (IT) in achieving their business objectives.
Installation (or setup) of a computer program (including device drivers and plugins), is the act of making the program ready for execution.
Instant messaging (IM) technology is a type of online chat that offers real-time text transmission over the Internet.
An integrated development environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development.
Intellectual property (IP) is a category of property that includes intangible creations of the human intellect, and primarily encompasses copyrights, patents, and trademarks.
The Internet is the global system of interconnected computer networks that use the Internet protocol suite (TCP/IP) to link devices worldwide.
In computer science, an interpreter is a computer program that directly executes, i.e. performs, instructions written in a programming or scripting language, without requiring them previously to have been compiled into a machine language program.
The ISO 9000 family of quality management systems standards is designed to help organizations ensure that they meet the needs of customers and other stakeholders while meeting statutory and regulatory requirements related to a product or service.
ISO/IEC/IEEE 12207 Systems and software engineering – Software life cycle processes is an international standard for software lifecycle processes.
ISO/IEC 15504 Information technology – Process assessment, also termed Software Process Improvement and Capability Determination (SPICE), is a set of technical standards documents for the computer software development process and related business management functions.
ISO/IEC 24744 Software Engineering — Metamodel for Development Methodologies is an ISO standard for software engineering metamodelling for development methodologies.
Iterative and Incremental development is any combination of both iterative design or iterative method and incremental build model for software development.
Jackson structured programming (JSP) is a method for structured programming based on correspondences between data stream structure and program structure.
Jackson system development (JSD) is a linear software development methodology developed by Michael A. Jackson and John Cameron in the 1980s.
Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible.
Java is a set of computer software and specifications developed by James Gosling at Sun Microsystems, which was later acquired by the Oracle Corporation, that provides a system for developing application software and deploying it in a cross-platform computing environment.
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.
Jeannette Marie Wing is Avanessians Director of the Data Sciences Institute at Columbia University, where she is also a professor of computer science.
Jef 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.
John Warner Backus (December 3, 1924 – March 17, 2007) was an American computer scientist.
John Matthew Vlissides (August 2, 1961 - November 24, 2005) was a software scientist known mainly as one of the four authors (referred to as the Gang of Four) of the book Design Patterns: Elements of Reusable Object-Oriented Software.
Kent Beck (born 1961) is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process.
Knowledge engineering (KE) refers to all technical, scientific and social aspects involved in building, maintaining and using knowledge-based systems.
Knowledge management (KM) is the process of creating, sharing, using and managing the knowledge and information of an organisation.
A laboratory information management system (LIMS), sometimes referred to as a laboratory information system (LIS) or laboratory management system (LMS), is a software-based solution with features that support a modern laboratory's operations.
Larry LeRoy Constantine (pronounced Constanteen; born 1943) is an American software engineer, professor in the Center for Exact Sciences and Engineering at the University of Madeira Portugal, and considered one of the pioneers of computing.
Lasso is an application server and server management interface used to develop internet applications and is a general-purpose, high-level programming language.
Law is a system of rules that are created and enforced through social or governmental institutions to regulate behavior.
Leadership is both a research area and a practical skill encompassing the ability of an individual or organization to "lead" or guide other individuals, teams, or entire organizations.
Lean manufacturing or lean production, often simply "lean", is a systematic method for waste minimization ("Muda") within a manufacturing system without sacrificing productivity.
A license (American English) or licence (British English) is an official permission or permit to do, use, or own something (as well as the document of that permission or permit).
In computing, a linker or link editor is a computer utility program that takes one or more object files generated by a compiler and combines them into a single executable file, library file, or another 'object' file.
Linus Benedict Torvalds (born December 28, 1969) is a Finnish-American software engineer who is the creator, and historically, the principal developer of the Linux kernel, which became the kernel for operating systems such as the Linux operating systems, Android, and Chrome OS.
Linux is a family of free and open-source software operating systems built around the Linux kernel.
In computer science, a list or sequence is an abstract data type that represents a countable number of ordered values, where the same value may occur more than once.
This is a list of computer scientists, people who do work in computer science, in particular researchers and authors.
This is a list of the origins of computer-related terms or terms used in the computing world (i.e., a list of computer term etymologies).
This is a list of programmers notable for their contributions to software, either as original author or architect, or for later additions.
The aim of this list of programming languages is to include all notable programming languages in existence, both those in current use and historical ones, in alphabetical order, except for dialects of BASIC, esoteric programming languages, and markup languages.
This is a list of tools for static code analysis.
This article is a list of unsolved problems in computer science.
Listening is to give one's attention to sound or action.
Literate programming is a programming paradigm introduced by Donald Knuth in which a program is given as an explanation of the program logic in a natural language, such as English, interspersed with snippets of macros and traditional source code, from which a compilable source code can be generated.
In computer systems a loader is the part of an operating system that is responsible for loading programs and libraries.
Logic (from the logikḗ), originally meaning "the word" or "what is spoken", but coming to mean "thought" or "reason", is a subject concerned with the most general laws of truth, and is now generally held to consist of the systematic study of the form of valid inference.
Logic programming is a type of programming paradigm which is largely based on formal logic.
Logistics is generally the detailed organization and implementation of a complex operation.
Lois 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.
The Macintosh (pronounced as; branded as Mac since 1998) is a family of personal computers designed, manufactured, and sold by Apple Inc. since January 1984.
macOS (previously and later) is a series of graphical operating systems developed and marketed by Apple Inc. since 2001.
Mainframe computers (colloquially referred to as "big iron") are computers used primarily by large organizations for critical applications; bulk data processing, such as census, industry and consumer statistics, enterprise resource planning; and transaction processing.
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.
In software development, Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called Makefiles which specify how to derive the target program.
The Malcolm Baldrige National Quality Award recognizes U.S. organizations in the business, health care, education, and nonprofit sectors for performance excellence.
Management (or managing) is the administration of an organization, whether it is a business, a not-for-profit organization, or government body.
Management information system or management information systems (MIS) refers to the complementary networks of hardware and software cooperating to collect, process, store, and disseminate information in order to support the managerial role of leveraging information technology to increase business value and profits.
Manufacturing is the production of merchandise for use or sale using labour and machines, tools, chemical and biological processing, or formulation.
Margaret Heafield Hamilton (born Heafield on August 17, 1936) is an American computer scientist, systems engineer, and business owner.
Marketing is the study and management of exchange relationships.
Martin Fowler (born 1963) is a British software developer, author and international public speaker on software development, specializing in object-oriented analysis and design, UML, patterns, and agile software development methodologies, including extreme programming.
Mary Jean Harrold (March 12, 1947 – September 19, 2013) was an American computer scientist noted for her research on software engineering.
Mary Shaw (born 1943) is an American software engineer, and the Alan J. Perlis Professor of Computer Science in the School of Computer Science at Carnegie Mellon University, known for her work in the field of software architecture.
Mathematical induction is a mathematical proof technique.
Mathematics (from Greek μάθημα máthēma, "knowledge, study, learning") is the study of such topics as quantity, structure, space, and change.
Medical software is any software item or system used within a medical context, such as.
Mercurial is a distributed revision-control tool for software developers.
Meta-process modeling is a type of metamodeling used in software engineering and systems engineering for the analysis and construction of models applicable and useful to some predefined problems.
Method engineering in the "field of information systems is the discipline to construct new methods from existing methods".
Michael Anthony Jackson (born 16 February 1936) is a British computer scientist, and independent computing consultant in London, England.
Microsoft Windows is a group of several graphical operating system families, all of which are developed, marketed, and sold by Microsoft.
A minicomputer, or colloquially mini, is a class of smaller computers that was developed in the mid-1960s and sold for much less than mainframe and mid-size computers from IBM and its direct competitors.
ML (Meta Language) is a general-purpose functional programming language.
Motivation is the reason for people's actions, desires, and needs.
A MUD (originally Multi-User Dungeon, with later variants Multi-User Dimension and Multi-User Domain) is a multiplayer real-time virtual world, usually text-based.
In mathematics, a multiset (aka bag or mset) is a modification of the concept of a set that, unlike a set, allows for multiple instances for each of its elements.
Music is an art form and cultural activity whose medium is sound organized in time.
A music 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 Control (OSC), and possibly audio and automation data for DAWs and plug-ins.
MySQL ("My S-Q-L") is an open-source relational database management system (RDBMS).
Nancy G. Leveson is a leading American expert in system and software safety.
A nanosecond (ns) is an SI unit of time equal to one thousand-millionth of a second (or one billionth of a second), that is, 1/1,000,000,000 of a second, or 10 seconds.
NAnt is a free and open source software tool for automating software build processes.
In logic and proof theory, natural deduction is a kind of proof calculus in which logical reasoning is expressed by inference rules closely related to the "natural" way of reasoning.
Network management is the process of administering and managing computer networks.
Network monitoring is the use of a system that constantly monitors a computer network for slow or failing components and that notifies the network administrator (via email, SMS or other alarms) in case of outages or other trouble.
"No Silver Bullet – Essence and Accident in Software Engineering" is a widely discussed paper on software engineering written by Turing Award winner Fred Brooks in 1986.
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.
In computational complexity theory, an NP-complete decision problem is one belonging to both the NP and the NP-hard complexity classes.
A number is a mathematical object used to count, measure and also label.
Numerical analysis is the study of algorithms that use numerical approximation (as opposed to general symbolic manipulations) for the problems of mathematical analysis (as distinguished from discrete mathematics).
An object database is a database management system in which information is represented in the form of objects as used in object-oriented programming.
Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Delphi.
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods. A feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated (objects have a notion of "this" or "self").
Obsolescence is the state of being which occurs when an object, service, or practice is no longer wanted even though it may still be in good working order.
OCaml, originally named Objective Caml, is the main implementation of the programming language Caml, created by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy, Ascánder Suárez and others in 1996.
Online help is topic-oriented, procedural or reference information delivered through computer software.
Open-source software (OSS) is a type of computer software whose source code is released under a license in which the copyright holder grants users the rights to study, change, and distribute the software to anyone and for any purpose.
An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs.
Operations support systems (OSS), or operational support systems in British usage, are computer systems used by telecommunications service providers to manage their networks (e.g., telephone networks).
Optical character recognition (also optical character reader, OCR) is the mechanical or electronic conversion of images of typed, handwritten or printed text into machine-encoded text, whether from a scanned document, a photo of a document, a scene-photo (for example the text on signs and billboards in a landscape photo) or from subtitle text superimposed on an image (for example from a television broadcast).
In computing, an optimizing compiler is a compiler that tries to minimize or maximize some attributes of an executable computer program.
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 heavily influenced by the earlier IBSYS/IBJOB and Input/Output Control System (IOCS) packages.
An outline, also called a hierarchical outline, is a list arranged to show hierarchical relationships and is a type of tree structure.
Pair programming is an agile software development technique in which two programmers work together at one workstation.
Palm OS (also known as Garnet OS) is a discontinued mobile operating system initially developed by Palm, Inc., for personal digital assistants (PDAs) in 1996.
Parsing, syntax analysis or syntactic analysis is the process of analysing a string of symbols, either in natural language, computer languages or data structures, conforming to the rules of a formal grammar.
Pascal is an imperative and procedural programming language, which Niklaus Wirth designed in 1968–69 and published in 1970, as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It is named in honor of the French mathematician, philosopher and physicist Blaise Pascal. Pascal was developed on the pattern of the ALGOL 60 language. Wirth had already developed several improvements to this language as part of the ALGOL X proposals, but these were not accepted and Pascal was developed separately and released in 1970. A derivative known as Object Pascal designed for object-oriented programming was developed in 1985; this was used by Apple Computer and Borland in the late 1980s and later developed into Delphi on the Microsoft Windows platform. Extensions to the Pascal concepts led to the Pascal-like languages Modula-2 and Oberon.
Pedagogy is the discipline that deals with the theory and practice of teaching and how these influence student learning.
Peopleware is a term used to refer to one of the three core aspects of computer technology, the other two being hardware and software.
Performance engineering encompasses the techniques applied during a systems development life cycle to ensure the non-functional requirements for performance (such as throughput, latency, or memory usage) will be met.
Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages, Perl 5 and Perl 6.
A personal computer (PC) is a multi-purpose computer whose size, capabilities, and price make it feasible for individual use.
A personal digital assistant (PDA), also known as a handheld PC, is a variety mobile device which functions as a personal information manager.
The Personal Software Process (PSP) is a structured software development process that is intended (planned) to help software engineers better understand and improve their performance by tracking their predicted and actual development of code.
Peter Gabriel Neumann (born 1932) is a computer-science researcher who worked on the Multics operating system in the 1960s.
PHP: Hypertext Preprocessor (or simply PHP) is a server-side scripting language designed for Web development, but also used as a general-purpose programming language.
PL/SQL (Procedural Language/Structured Query Language) is Oracle Corporation's procedural extension for SQL and the Oracle relational database.
Poker is a family of card games that combines gambling, strategy, and skill.
A presentation program is a software package used to display information in the form of a slide show.
Privacy is the ability of an individual or group to seclude themselves, or information about themselves, and thereby express themselves selectively.
Privacy engineering is an emerging discipline within, at least, the software or information systems domain which aims to provide methodologies, tools and techniques such that the engineered systems provide acceptable levels of privacy.
In project management, a product breakdown structure (PBS) is a tool for analysing, documenting and communicating the outcomes of a project, and forms part of the product based planning technique.
Productivity software (sometimes called personal productivity software or office productivity software) is application software dedicated to producing information, such as documents, presentations, worksheets, databases, charts, graphs, digital paintings, electronic music and digital video.
Professional certification, trade certification, or professional designation, often called simply certification or qualification, is a designation earned by a person to assure qualification to perform a job or task.
In computer science, program optimization or software optimization is the process of modifying a software system to make some aspect of it work more efficiently or use fewer resources.
In computer science, program synthesis is the task to automatically construct a program that satisfies a given high-level specification.
A programmer, developer, dev, coder, or software engineer is a person who creates computer software.
A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output.
Programming productivity (also called software productivity or development productivity) describes the degree of the ability of individual programmers or development teams to build and evolve software systems.
Project management is the practice of initiating, planning, executing, controlling, and closing the work of a team to achieve specific goals and meet specific success criteria at the specified time.
Prolog is a general-purpose logic programming language associated with artificial intelligence and computational linguistics.
Python is an interpreted high-level programming language for general-purpose programming.
Qt ("cute") is a cross-platform application framework and widget toolkit for creating classic and embedded graphical user interfaces, and applications that run on various software and hardware platforms with little or no change in the underlying codebase, while still being a native application with native capabilities and speed.
Quality assurance (QA) is a way of preventing mistakes and defects in manufactured products and avoiding problems when delivering solutions or services to customers; which ISO 9000 defines as "part of quality management focused on providing confidence that quality requirements will be fulfilled".
Rake is a software task management and build automation tool.
Ralph E. Johnson is a Research Associate Professor in the Department of Computer Science at the University of Illinois at Urbana-Champaign.
Rapid-application development (RAD) is both a general term, used to refer to adaptive software development approaches, as well as the name for James Martin's approach to rapid development.
The Rational Unified Process (RUP) is an iterative software development process framework created by the Rational Software Corporation, a division of IBM since 2003.
A README file contains information about other files in a directory or archive of computer software.
A real-time operating system (RTOS) is an operating system (OS) intended to serve real-time applications that process data as it comes in, typically without buffer delays.
Recruitment (hiring) refers to the overall process of attracting, shortlisting, selecting and appointing suitable candidates for jobs (either permanent or temporary) within an organization.
Regression testing is a type of software testing that ensures that previously developed and tested software still performs the same way after it is changed or interfaced with other software.
A relational database is a digital database based on the relational model of data, as proposed by E. F. Codd in 1970.
Release notes are documents that are distributed with software products, sometimes when the product is still in the development or test state (e.g., a beta release).
Requirements engineering (RE) refers to the process of defining, documenting and maintaining requirements in the engineering design process.
Research comprises "creative and systematic work undertaken to increase the stock of knowledge, including knowledge of humans, culture and society, and the use of this stock of knowledge to devise new applications." It is used to establish or confirm facts, reaffirm the results of previous work, solve new or existing problems, support theorems, or develop new theories.
In computer science and software engineering, reusability is the use of existing assets in some form within the software product development process; these assets are products and by-products of the software development life cycle and include code, software components, test suites, designs and documentation.
A reverse auction is a type of auction in which the roles of buyer and seller are reversed.
Revision Control System (RCS) is an early version control system (VCS).
Richard Matthew Stallman (born March 16, 1953), often known by his initials, rms—is an American free software movement activist and programmer.
Risk management is the identification, evaluation, and prioritization of risks (defined in ISO 31000 as the effect of uncertainty on objectives) followed by coordinator and economical application of resources to minimize, monitor, and control the probability or impact of unfortunate events or to maximize the realization of opportunities.
The RISKS Digest or Forum On Risks to the Public in Computers and Related Systems is an online periodical published since 1985 by the Committee on Computers and Public Policy of the Association for Computing Machinery.
Robotics is an interdisciplinary branch of engineering and science that includes mechanical engineering, electronics engineering, computer science, and others.
A router is a networking device that forwards data packets between computer networks.
Ruby is a dynamic, interpreted, reflective, object-oriented, general-purpose programming language.
Sales is activity related to selling or the amount of goods or services sold in a given time period.
Scala is a general-purpose programming language providing support for functional programming and a strong static type system.
Scheme is a programming language that supports multiple paradigms, including functional programming and imperative programming, and is one of the two main dialects of Lisp.
R. P. Feynman, The Feynman Lectures on Physics, Vol.1, Chaps.1,2,&3.
A scripting or script language is a programming language that supports scripts: programs written for a special run-time environment that automate the execution of tasks that could alternatively be executed one-by-one by a human operator.
Scrum is an agile framework for managing work with an emphasis on software development.
A sea lane, sea road or shipping lane is a regularly used route for vessels on oceans and large lakes.
In computer science, a search algorithm is any algorithm which solves the search problem, namely, to retrieve information stored within some data structure, or calculated in the search space of a problem domain.
Search-based software engineering (SBSE) applies metaheuristic search techniques such as genetic algorithms, simulated annealing and tabu search to software engineering problems.
In mathematics, a sequence is an enumerated collection of objects in which repetitions are allowed.
In computer science, a set is an abstract data type that can store unique values, without any particular order.
Signal processing concerns the analysis, synthesis, and modification of signals, which are broadly defined as functions conveying "information about the behavior or attributes of some phenomenon", such as sound, images, and biological measurements.
Simulation is the imitation of the operation of a real-world process or system.
Six Sigma (6σ) is a set of techniques and tools for process improvement.
Smalltalk is an object-oriented, dynamically typed, reflective programming language.
Computer software, or simply software, is a generic term that refers to a collection of data or computer instructions that tell the computer how to work, in contrast to the physical hardware from which the system is built, that actually performs the work.
Software architecture refers to the high level structures of a software system, the discipline of creating such structures, and the documentation of these structures.
A software bug is an error, flaw, failure or fault in a computer program or system that causes it to produce an incorrect or unexpected result, or to behave in unintended ways.
In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design.
In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management.
Software documentation is written text or illustration that accompanies computer software or is embedded in the source code.
Software engineering is the application of engineering to the development of software in a systematic method.
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.
The Software Engineering Body of Knowledge (SWEBOK) is an international standard ISO/IEC TR 19759:2005 specifying a guide to the generally accepted Software Engineering Body of Knowledge.
Software engineers form part of the workforce around the world.
The Software Engineering Institute (SEI) is an American research and development center headquartered in Pittsburgh, Pennsylvania.
Software engineering professionalism is a movement to make software engineering a profession, with aspects such as degree and certification programs, professional associations, professional ethics, and government licensing.
Software evolution is the term used in software engineering (specifically software maintenance) to refer to the process of developing software initially, then repeatedly updating it for various reasons.
Inspection in software engineering, refers to peer review of any work product by trained individuals who look for defects using a well defined process.
Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes.
A software metric is a standard of measure of a degree to which a software system or process possesses some property.
A software release life cycle is the sum of the stages of development and maturity for a piece of computer software: ranging from its initial development to its eventual release, and including updated versions of the released version to help improve software or fix software bugs still present in the software.
Software testing is an investigation conducted to provide stakeholders with information about the quality of the software product or service under test.
Software versioning is the process of assigning either unique version names or unique version numbers to unique states of computer software.
Solaris is a Unix operating system originally developed by Sun Microsystems.
Sorting is any process of arranging items systematically, and has two common, yet distinct meanings.
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.
A source code editor is a text editor program designed specifically for editing source code of computer programs by programmers.
Source code escrow is the deposit of the source code of software with a third party escrow agent.
Spatial visualization ability or visual-spatial ability is the ability to mentally manipulate 2-dimensional and 3-dimensional figures.
Special effects (often abbreviated as SFX, SPFX, or simply FX) are illusions or visual tricks used in the film, television, theatre, video game and simulator industries to simulate the imagined events in a story or virtual world.
Speech processing is the study of speech signals and the processing methods of these signals.
The spiral model is a risk-driven process model generator for software projects.
A spreadsheet is an interactive computer application for organization, analysis and storage of data in tabular form.
SQL (S-Q-L, "sequel"; Structured Query Language) is a domain-specific language used in programming and designed for managing data held in a relational database management system (RDBMS), or for stream processing in a relational data stream management system (RDSMS).
SQL/XML or XML-Related Specifications is part 14 of the Structured Query Language (SQL) specification.
In computer science, a stack is an abstract data type that serves as a collection of elements, with two principal operations.
The Standard CMMI Appraisal Method for Process Improvement (SCAMPI) is the official Software Engineering Institute (SEI) method to provide benchmark-quality ratings relative to Capability Maturity Model Integration (CMMI) models.
Statistics is a branch of mathematics dealing with the collection, analysis, interpretation, presentation, and organization of data.
A stock market, equity market or share market is the aggregation of buyers and sellers (a loose network of economic transactions, not a physical facility or discrete entity) of stocks (also called shares), which represent ownership claims on businesses; these may include securities listed on a public stock exchange as well as those only traded privately.
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 (while and for), block structures, and subroutines in contrast to using simple tests and jumps such as the go to statement, which can lead to "spaghetti code" that is potentially difficult to follow and maintain.
Structured systems analysis and design method (SSADM), originally released as methodology, is a systems approach to the analysis and design of information systems.
Sun Microsystems, Inc. was an American company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the Network File System (NFS), and SPARC.
A supercomputer is a computer with a high level of performance compared to a general-purpose computer.
In commerce, supply chain management (SCM), the management of the flow of goods and services, involves the movement and storage of raw materials, of work-in-process inventory, and of finished goods from point of origin to point of consumption.
In stock market technical analysis, support and resistance is a concept that the movement of the price of a security will tend to stop and reverse at certain predetermined price levels.
Symbian is a discontinued mobile operating system (OS) and computing platform designed for smartphones.
A synthesizer (often abbreviated as synth, also spelled synthesiser) is an electronic musical instrument that generates electric signals that are converted to sound through instrument amplifiers and loudspeakers or headphones.
A system administrator, or sysadmin, is a person who is responsible for the upkeep, configuration, and reliable operation of computer systems; especially multi-user computers, such as servers.
System integration is defined in engineering as the process of bringing together the component sub-systems into one system (an aggregation of subsystems cooperating so that the system is able to deliver the overarching functionality) and ensuring that the subsystems function together as a system, and in information technology as the process of linking together different computing systems and software applications physically or functionally, to act as a coordinated whole.
The system lifecycle in systems engineering is a view of a system or proposed system that addresses all phases of its existence to include system conception, design and development, production and/or construction, distribution, operation, maintenance and support, retirement, phase-out and disposal.
System software is computer software designed to provide a platform to other software.
Model of the systems development life cycle, highlighting the maintenance phase The systems development life cycle (SDLC), also referred to as the application development life-cycle, is a term used in systems engineering, information systems and software engineering to describe a process for planning, creating, testing, and deploying an information system.
Systems engineering is an interdisciplinary field of engineering and engineering management that focuses on how to design and manage complex systems over their life cycles.
Tcl (pronounced "tickle" or tee cee ell) is a high-level, general-purpose, interpreted, dynamic programming language.
A teacher (also called a school teacher or, in some contexts, an educator) is a person who helps others to acquire knowledge, competences or values.
Team Foundation Server (commonly abbreviated to TFS) is a Microsoft product that provides source code management (either with Team Foundation Version Control or Git), reporting, requirements management, project management (for both agile software development and waterfall teams), automated builds, lab management, testing and release management capabilities.
Teamwork is the collaborative effort of a team to achieve a common goal or to complete a task in the most effective and efficient way.
Technical support (often shortened to tech support) refers to a plethora of services by which enterprises provide assistance to users of technology products such as mobile phones, televisions, computers, software products or other informatic, electronic or mechanical goods.
Telemetry is an automated communications process by which measurements and other data are collected at remote or inaccessible points and transmitted to receiving equipment for monitoring.
Telephony is the field of technology involving the development, application, and deployment of telecommunication services for the purpose of electronic transmission of voice, fax, or data, between distant parties.
Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the software is improved to pass the new tests, only.
TeX (see below), stylized within the system as TeX, is a typesetting system (or "formatting system") designed and mostly written by Donald Knuth and released in 1978.
A text editor is a type of computer program that edits plain text.
The Art of Computer Programming (sometimes known by its initials TAOCP) is a comprehensive monograph written by Donald Knuth that covers many kinds of programming algorithms and their analysis.
The arts refers to the theory and physical expression of creativity found in human societies and cultures.
The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary (abbreviated CatB) is an essay, and later a book, by Eric S. Raymond on software engineering methods, based on his observations of the Linux kernel development process and his experiences managing an open source project, fetchmail.
The Humane Interface: New Directions for Designing Interactive Systems is a book about user interface design written by Jef Raskin and published in 2000.
The Mythical Man-Month: Essays on Software Engineering is a book on software engineering and project management by Fred Brooks first published in 1975, with subsequent editions in 1982 and 1995.
Sir Timothy John Berners-Lee (born 8 June 1955), also known as TimBL, is an English engineer and computer scientist, best known as the inventor of the World Wide Web.
Tom DeMarco (born August 20, 1940) is an American software engineer, author, and consultant on software engineering topics.
Tom Gilb (born 1940) is an American systems engineer, consultant, and author, known for the development of software metrics, software inspection, and evolutionary processes.
A tool is any physical item that can be used to achieve a goal, especially if the item is not consumed in the process.
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.
Total quality management (TQM) consists of organization-wide efforts to install and make a permanent climate in which an organization continuously improves its ability to deliver high-quality products and services to customers.
Trade involves the transfer of goods or services from one person or entity to another, often in exchange for money.
Training is teaching, or developing in oneself or others, any skills and knowledge that relate to specific useful competencies.
Transact-SQL (T-SQL) is Microsoft's and Sybase's proprietary extension to the SQL (Structured Query Language) used to interact with relational databases.
In botany, a tree is a perennial plant with an elongated stem, or trunk, supporting branches and leaves in most species.
In computer science, a tree is a widely used abstract data type (ADT)—or data structure implementing this ADT—that simulates a hierarchical tree structure, with a root value and subtrees of children with a parent node, represented as a set of linked nodes.
In mathematics, logic, and computer science, a type theory is any of a class of formal systems, some of which can serve as alternatives to set theory as a foundation for all mathematics.
Ultimate++ is a C++ rapid application development cross-platform development framework which aims to reduce the code complexity of typical desktop applications by extensively exploiting C++ features.
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.
Universal Systems Language (USL) is a modeling language and formal method for the specification and design of software and other complex systems.
Unix (trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, development starting in the 1970s at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and others.
In software and systems engineering, a use case is a list of actions or event steps typically defining the interactions between a role (known in the Unified Modeling Language as an actor) and a system to achieve a goal.
A user is a person who utilizes a computer or network service.
User interface design (UI) 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 user experience.
In software development and product management, a user story is an informal, natural language description of one or more features of a software system.
In software development, the V-model represents a development process that may be considered an extension of the waterfall model, and is an example of the more general V-model.
Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems.
VHDL (VHSIC Hardware Description Language) is a hardware description language used in electronic design automation to describe digital and mixed-signal systems such as field-programmable gate arrays and integrated circuits.
vi is a screen-oriented text editor originally created for the Unix operating system.
A video game is an electronic game that involves interaction with a user interface to generate visual feedback on a video device such as a TV screen or computer monitor.
A vision statement is a declaration of an organization's objectives, intended to guide its internal decision-making.
Visual Basic is a third-generation event-driven programming language and integrated development environment (IDE) from Microsoft for its Component Object Model (COM) programming model first released in 1991 and declared legacy during 2008.
Visual Basic.NET (VB.NET) is a multi-paradigm, object-oriented programming language, implemented on the.NET Framework.
Voice over Internet Protocol (also voice over IP, VoIP or IP telephony) is a methodology and group of technologies for the delivery of voice communications and multimedia sessions over Internet Protocol (IP) networks, such as the Internet.
The waterfall model is a relatively linear sequential design approach for certain areas of engineering design.
Watts S. Humphrey (July 4, 1927 – October 28, 2010) was an American pioneer in software engineering, who was called the "father of software quality.".
A web browser (commonly referred to as a browser) is a software application for accessing information on the World Wide Web.
The World Wide Web has become a major delivery platform for a variety of complex and sophisticated enterprise applications in several domains.
Web server refers to server software, or hardware dedicated to running said software, that can serve contents to the World Wide Web.
A white paper is an authoritative report or guide that informs readers concisely about a complex issue and presents the issuing body's philosophy on the matter.
White-box testing (also known as clear box testing, glass box testing, transparent box testing, and structural testing) is a method of testing software that tests internal structures or workings of an application, as opposed to its functionality (i.e. black-box testing).
William F. (Bill) Opdyke (born c. 1958) is an American computer scientist, and enterprise architect at JPMorgan Chase, known for his early work on code refactoring.
Winston Walker Royce (August 15, 1929 – June 7, 1995) was an American computer scientist, director at Lockheed Software Technology Center in Austin, Texas.
Wintel is a portmanteau of Windows and Intel, referring to personal computers using Intel x86-compatible processors running Microsoft Windows.
A word processor is a computer program or device that provides for input, editing, formatting and output of text, often plus other features.
The World Wide Web (abbreviated WWW or the Web) is an information space where documents and other web resources are identified by Uniform Resource Locators (URLs), interlinked by hypertext links, and accessible via the Internet.
wxWidgets ("wix-widgets", formerly wxWindows) is a widget toolkit and tools library for creating graphical user interfaces (GUIs) for cross-platform applications.
Yacc (Yet Another Compiler-Compiler) is a computer program for the Unix operating system developed by Stephen C. Johnson.
The.NET strategy was a long-term Microsoft software development and marketing plan, envisioned in late 1990s.
1 (one, also called unit, unity, and (multiplicative) identity) is a number, numeral, and glyph.