edgepedia

Technology and the built world

61,984 articles

Software

Software is the computer code, with its supporting data structures and documentation, that makes electronic systems work; unlike hardware, it is engineered rather than manufactured and does not wear out.

Software architecture

Software architecture, also called program architecture, is the set of design decisions governing a software system's overall structure and behavior, shaping qualities such as modifiability, availability, and security.

Software as a service

Software as a service, also called on-demand software, is a model in which a provider hosts an application and customers use it over a network, typically through a web browser.

Software Bill of Materials

A Software Bill of Materials (SBOM) is a formal record of the components and supply chain relationships used in building software, like an ingredients list.

Software bloat

Software bloat is the growth of a program's size, resource use, or features beyond what its function requires, at the cost of performance and simplicity.

Software bug

A software bug, also called a software defect or fault, is a flaw in a program or its specification that causes incorrect or unpredictable behavior.

Software categories

Software categories, also called software genres, are the groupings used to classify computer software, most commonly by function into system, programming, application, and embedded software.

Software composition analysis

Software composition analysis (SCA) is a software engineering method that scans an application's dependencies to identify open-source components, their licenses, and known security vulnerabilities, producing an SBOM.

Software configuration management

Software configuration management, also known as software change management, is the discipline of identifying software configuration items, controlling changes to them, and recording their status throughout development.

Software cracking

Software cracking, which produces cracked software, is the defeat or removal of copy protection so unauthorized users gain a program's full functionality, typically through patches, keygens, or stolen product keys.

Software deployment

Software deployment, also called application deployment, is the activity of installing a new version of software for real users, using strategies like blue-green, rolling, and canary deployments.

Software design

Software design is the process of defining a software system's architecture, components, interfaces, and data structures to satisfy specified functional and quality requirements, guided by principles such as modularity.

Software design pattern

A software design pattern, also called a programming design pattern, is a named, reusable solution to a recurring design problem, cataloged by the Gang of Four in 1994.

Software development

Software development is the full set of activities carrying a software product or service from conception through development, operation, support, and retirement, whether performed inside an organization or externally.

Software development kit

A software development kit, also called a devkit or SDK, is a collection of tools, libraries, documentation, and sample code for building software for a specific platform.

Software development process

The software development process, also called the software development methodology or SDLC, is the organized set of activities used to design, create, test, deploy, and maintain software.

Software documentation

Software documentation is written, onscreen, or printed information explaining what a software product is, how to use it, and how it works, covering tutorials, how-to guides, reference, and explanation.

Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to developing, operating, and maintaining software, a discipline named at NATO's 1968 Garmisch conference.

Software Engineering Body of Knowledge

The Software Engineering Body of Knowledge (SWEBOK) is an IEEE Computer Society guide to generally accepted software engineering knowledge; its 2024 edition covers 18 knowledge areas.

Software Engineering Institute

The Software Engineering Institute (SEI) is a federally funded research and development center at Carnegie Mellon University in Pittsburgh, established by the Department of Defense in 1984.

Software escrow

Software escrow, also called source code escrow, is a legal arrangement in which a vendor deposits source code with a third-party agent, released to licensees on defined events.

Software framework

A software framework is a reusable body of software providing generic structure and functionality for applications, defined by inversion of control: the framework calls the developer's code.

Software Freedom Conservancy

The Software Freedom Conservancy (SFC) is an American nonprofit, founded in 2006, that provides fiscal sponsorship to free and open source software projects like Wine and OpenWrt.

Software Garden

Software Garden is a small software company founded in 1985 by Dan Bricklin, best known as the inventor of VisiCalc, to develop his software tools and provide consulting.

Software Guard Extensions

Software Guard Extensions (SGX) is an Intel x86 technology introduced in 2015 that keeps selected code and data confidential inside hardware-protected memory regions called enclaves.

Software Heritage

Software Heritage is a non-profit initiative launched by Inria with UNESCO in 2016 to archive all publicly available source code, led by Roberto Di Cosmo and Stefano Zacchiroli.

Software inspection

Software inspection is a static testing method in which a team of developers systematically examines code, design, or requirements to find defects before testing, credited to Michael Fagan in 1986.

Software license

A software license is a legal instrument through which a copyright holder grants permission to use, modify, or distribute software that copyright law would otherwise restrict.

Software maintenance

Software maintenance, also known as program or code maintenance, is the modification of software after delivery to correct faults, adapt to changed environments, or improve performance.

Software metric

A software metric is a quantitative measure of a software attribute, such as size, complexity, or maintainability; well-known examples include lines of code and cyclomatic complexity.