PANACHES Knowledge

Software Development Glossary

This glossary explores the essential concepts of software development, from programming languages and algorithms to application design, including user interfaces, databases, software architecture, and development tools. It also covers testing, code quality, security, collaboration, and deployment. It is intended for students, developers, creators, and professionals seeking to understand the terminology and practices of programming and software engineering.

790 terms to explore

Loading the graph…

View the list ({count})

    790 terms

    Fundamentals of Development

    30 terms

    Script

    Program often used to automate a task or orchestrate tools; its size and execution mode vary.

    #

    Markup language

    Language that structures content using markers; HTML describes documents and is not, on its own, a general-purpose programming language.

    #

    Query language

    Language designed to query or manipulate data, such as SQL; some also offer procedural features.

    #

    Compound statement

    Statement grouping several statements under a common structure, such as a conditional block.

    #

    Code block

    Group of statements delimited by the language's syntax or by indentation.

    #

    Executable binary

    File containing code and information that allow it to be loaded and launched by a compatible system.

    #

    Backward compatibility

    Ability of a new version to accept the usages or data of an earlier version; exact guarantees depend on the contract.

    #

    Obsolescence

    State of a technology or feature that is no longer suitable, supported or maintained in a given context.

    #

    Data, Types and Memory

    40 terms

    Assignment

    Operation that gives a value to a variable, field or location.

    #

    Initialization

    Assigning the state or the first usable value of a variable or object.

    #

    Data type

    Set of possible values together with the operations and constraints associated with them.

    #

    Boolean

    Logical type representing two values, generally true and false.

    #

    Floating-point number

    Approximate numeric representation of a range of real values; it can introduce rounding errors.

    #

    Exact decimal

    Representation suited to certain decimal calculations, notably financial, subject to defined precision and rules.

    #

    Unicode

    Standard that identifies characters and defines their processing independently of any particular encoding.

    #

    UTF-8

    Variable-length Unicode encoding compatible with ASCII for basic characters.

    #

    Undefined value / undefined

    State distinct from null in some languages, notably JavaScript, signalling a value that has not been provided.

    #

    Tuple

    Generally fixed-size collection of positions, often used to group several values.

    #

    Value

    Data represented, transmitted or stored by an expression, variable or structure.

    #

    Reference

    Means of designating or accessing a value or object without necessarily copying its content.

    #

    Pointer

    Value designating a memory address or accessible region, with rules specific to the language.

    #

    Memory address

    Identified location within a physical or virtual address space.

    #

    Heap

    Memory region used notably for allocations whose lifetime does not simply follow call boundaries.

    #

    Memory release

    Returning a region that is no longer needed, either manually or automatically.

    #

    Shallow copy

    Copy of a structure that retains references to some internal elements.

    #

    Deep copy

    Recursive copy of sub-objects according to defined rules, aiming to limit unintended sharing.

    #

    Immutability

    Property preventing modification of a value or object after its creation.

    #

    Mutability

    Possibility of changing the state of an existing object.

    #

    Deserialization

    Reconstruction of a structure from a serialized representation; this operation must be secured for dangerous formats.

    #

    Operators and Control Flow

    34 terms

    Operand

    Value or expression on which an operator acts.

    #

    Comparison operator

    Operator that evaluates a relation, such as equality, order or identity depending on the language.

    #

    Logical operator

    Operator that combines or inverts conditions, such as AND, OR or NOT.

    #

    Ternary operator

    Three-operand construct, frequently used to select a value based on a condition.

    #

    Increment

    Increasing a value, usually by one unit.

    #

    Decrement

    Decreasing a value, usually by one unit.

    #

    Modulo

    Operation that produces a remainder; rules regarding negative numbers differ between languages.

    #

    Coercion

    Implicit conversion imposed by a language's rules during an operation.

    #

    Branch

    Change in execution path based on a condition or destination.

    #

    If / else statement

    Construct that executes one block if a condition is satisfied and optionally another block otherwise.

    #

    Switch / match

    Construct that selects one case among several; match can also analyze the structure of a value.

    #

    For loop

    Form of repetition generally based on a counter or on iterating over a collection.

    #

    While loop

    Repetition that tests a condition before each iteration.

    #

    Do-while loop

    Repetition that executes its body before the continuation check, when the language provides it.

    #

    Iterable

    Object that can provide a sequence of elements to be traversed according to a given protocol.

    #

    Break

    Statement that exits a loop or other selectable construct according to the language's rules.

    #

    Return

    Statement that ends the call of a function and optionally transmits a result.

    #

    Recursion

    Technique in which a function solves a problem by calling itself, directly or indirectly.

    #

    Base case

    Situation that stops recursive calls and prevents infinite recursion.

    #

    Finally block

    Block executed when exiting an exception-handling structure according to the language's rules, often used to clean up resources.

    #

    Unreachable code

    Portion of a program that cannot be reached under the execution conditions considered.

    #

    Functions, Modules and Functional Programming

    34 terms

    Function signature

    Description of the calling interface, including, depending on the language, the name, parameters, types and result.

    #

    Return value

    Result transmitted to the caller when a function terminates normally.

    #

    Function call

    Statement or expression that triggers the execution of a function with given arguments.

    #

    Lexical scope

    Name resolution based on the structure of the source code rather than the dynamic call chain.

    #

    Local variable

    Variable accessible within a limited scope, typically a function or block.

    #

    Global variable

    Variable defined in a general scope; its use can increase coupling.

    #

    Variable shadowing

    Declaration of a name that hides a same-named declaration from an enclosing scope.

    #

    Export

    Element explicitly exposed by a module to its consumers.

    #

    Pure function

    Function whose result depends only on its arguments and that produces no observable side effects.

    #

    Referential transparency

    Property that allows replacing an expression with its value without changing the program's behaviour.

    #

    Map function

    Operation that applies a transformation to each element of a collection.

    #

    Filter function

    Operation that keeps the elements of a collection that satisfy a predicate.

    #

    Reduce / fold function

    Operation that progressively aggregates the elements of a collection using an accumulator.

    #

    Predicate

    Function or expression that evaluates a condition and returns a logical result.

    #

    Currying

    Conceptual transformation of a function with several arguments into a succession of single-argument functions.

    #

    Partial application

    Fixing some arguments of a function in order to create a more specialized one.

    #

    Memoization

    Caching results of calls to avoid recomputation with the same inputs.

    #

    Yield

    Mechanism by which a generator produces a value while temporarily suspending its execution.

    #

    Context manager

    Object or construct that frames the acquisition and release of resources, such as an open file.

    #

    Paradigms and Object-Oriented Programming

    32 terms

    Programming paradigm

    Family of principles organizing how a program is described, such as the imperative or functional approach.

    #

    Declarative programming

    Approach that expresses the desired result or constraints rather than an explicit sequence of operations.

    #

    Object

    Software entity with an identity or value, possible state, and operations associated with it according to the model.

    #

    Object composition

    Building an object from other objects, favouring a "contains" relationship.

    #

    Overloading

    Definition of several variants of an operation distinguished notably by their parameters according to the language.

    #

    Overriding

    Providing, in a subtype, a new implementation of an inherited method.

    #

    Abstract class

    Class designed to serve as a base and may include operations without a complete implementation.

    #

    Mixin

    Reusable set of behaviours added to a class or object, according to the language's mechanisms.

    #

    Trait

    Unit of reusable behaviours or contracts; its rules differ between Rust, PHP and other languages.

    #

    Duck typing

    Practice of using an object based on the operations it provides rather than its declared class.

    #

    Nominal typing

    Compatibility determined mainly by identity or declared relations between types.

    #

    SOLID

    Set of five object-oriented design principles aimed notably at managing responsibilities and dependencies.

    #

    Algorithms and Data Structures

    37 terms

    Pseudocode

    Informal description of an algorithm that favours logic over the syntax of any concrete language.

    #

    Flowchart

    Graphical representation of processes and decisions through connected shapes.

    #

    Time complexity

    Estimate of the growth of computation time as a function of input size.

    #

    Space complexity

    Estimate of the growth of memory resources according to problem size.

    #

    Big O notation

    Asymptotic upper bound on growth, often used to express algorithmic cost.

    #

    Worst case

    Input or situation producing the maximum considered cost for a given size.

    #

    Amortized cost

    Average cost per operation over a sequence of operations, without necessarily assuming a random distribution.

    #

    Sort

    Arranging elements according to a defined order relation.

    #

    Quicksort

    Sort algorithm that partitions elements around a pivot, with performance sensitive to partitions.

    #

    Merge sort

    Sort algorithm that divides the data then merges sorted subsets, generally in O(n log n) time.

    #

    Insertion sort

    Sort that progressively builds an ordered portion, efficient notably on small or nearly sorted data.

    #

    Stable sort

    Sort that preserves the relative order of elements compared as equal.

    #

    Hash table

    Structure that transforms keys into locations to speed up average-case lookups.

    #

    Hash collision

    Situation where different keys lead to the same location or fingerprint.

    #

    Linked list

    Structure of elements connected by references, facilitating certain insertions at the cost of sequential access.

    #

    LIFO stack

    Structure where the last element added is the first removed.

    #

    FIFO queue

    Structure where the first element added is the first removed.

    #

    Priority queue

    Collection whose removal favours elements based on a priority rather than just arrival order.

    #

    Binary tree

    Tree in which each node has at most two children.

    #

    Binary search tree

    Tree whose nodes respect an order relation that facilitates searches and updates.

    #

    Binary heap

    Near-complete tree generally stored in an array and locally ordered by priority.

    #

    Graph

    Set of vertices and links modelling relations, which may be directed or undirected.

    #

    Dynamic programming

    Method that reuses results of overlapping sub-problems to avoid recomputing them.

    #

    Greedy algorithm

    Method that makes successive local choices, whose global optimality must be justified for the problem.

    #

    Divide and conquer

    Solving by decomposing a problem into sub-problems then combining their results.

    #

    Backtracking

    Exploration of candidate solutions by abandoning a branch when it no longer fits.

    #

    Heuristic

    Practical rule that seeks an acceptable solution without always guaranteeing optimality.

    #

    Loop invariant

    Property that remains true before and after each iteration and helps prove correctness.

    #

    Languages, Compilation and Environments

    43 terms

    Interpreter

    Program that evaluates or executes instructions through an interpretation environment; some implementations combine compilation and interpretation.

    #

    Assembly language

    Low-level language representing machine instructions through mnemonics and symbols.

    #

    Bytecode

    Intermediate representation of instructions intended for a virtual machine or execution engine.

    #

    Transpilation

    Translation from one high-level language to another of comparable level, for example TypeScript to JavaScript.

    #

    Linker

    Tool that combines compiled objects and resolves their symbols to produce a linked artefact.

    #

    Statically typed language

    Language in which many type checks happen before execution; dynamic behaviour may still be possible.

    #

    Type safety

    Set of guarantees limiting certain operations that are incompatible with the types, under varying definitions.

    #

    Cross-compilation

    Producing a program for a platform different from the one performing the compilation.

    #

    REPL

    Interactive loop that reads an expression, evaluates it, prints the result and repeats.

    #

    C

    General-purpose language close to machine representations, used among other things for systems and libraries.

    #

    C++

    General-purpose language derived from C, combining low-level programming, objects, generics and abstractions.

    #

    C#

    Multiparadigm language in the .NET ecosystem used notably for applications, services and games.

    #

    Go

    Compiled language designed around tool simplicity, concurrency and network services.

    #

    Ruby

    Dynamic object-oriented language, notably known for the Ruby on Rails framework.

    #

    Bash

    Shell and scripting language used to launch commands and automate tasks on compatible systems.

    #

    Software Architecture and Design

    39 terms

    Software library

    Set of reusable functions, types or resources that a program calls upon to accomplish certain tasks.

    #

    DTO / data transfer object

    Structure intended to carry data between layers or services without necessarily carrying business logic.

    #

    Software architecture

    Organization of components, their responsibilities and their interactions, along with the system's structural decisions.

    #

    Coupling

    Degree of dependency between software elements; high coupling often makes changes more difficult.

    #

    Cohesion

    Degree of closeness of the responsibilities gathered within a module.

    #

    Monolith

    Application deployed or executed as a main unit, even if its code remains well modularized.

    #

    Modular monolith

    Application deployed as a whole but divided into modules with explicit boundaries and dependencies.

    #

    Microservices

    Architecture that splits a system into autonomous services communicating through interfaces, with increased operational cost.

    #

    Layered architecture

    Organization that separates functions by levels, such as presentation, business logic and data access.

    #

    Clean architecture

    Family of principles that give the domain and use cases inward-pointing dependencies.

    #

    Design pattern

    Reusable general solution to a recurring design problem, to be adapted rather than copied mechanically.

    #

    Singleton

    Pattern aimed at a shared, controlled instance; it can introduce hard-to-test global state.

    #

    Factory

    Construction that centralizes or abstracts the creation of objects.

    #

    Adapter

    Pattern that translates one interface into another expected by the consuming code.

    #

    Domain service

    Component carrying out a domain operation that does not naturally fit into an entity.

    #

    Domain entity

    Domain object identified by a persistent identity rather than by its values alone.

    #

    Value object

    Domain element defined by its properties rather than by an identity of its own, often immutable.

    #

    Aggregate

    Coherent group of domain objects treated as a unit of consistency around a root.

    #

    Bounded context

    Boundary within which a model and business vocabulary retain a coherent meaning.

    #

    Technical debt

    Future cost of design or maintenance trade-offs; not all debt is necessarily accidental.

    #

    Legacy code

    Existing code whose evolution can be difficult due to its age, dependencies or lack of tests.

    #

    Anti-pattern

    Recurring solution likely to create more problems than it solves in a given context.

    #

    Web Development and Interfaces

    42 terms

    HTML attribute

    Information associated with an element, for example alt, href or lang.

    #

    CSS selector

    Expression identifying the elements to which a style rule applies.

    #

    CSS specificity

    Priority rule used to break ties between competing CSS declarations.

    #

    CSS cascade

    Mechanism combining origins, layers, importance, specificity and order to choose the applied styles.

    #

    CSS Grid

    CSS layout model based on coordinated rows and columns.

    #

    Responsive design

    Design that adapts presentation and interactions to device dimensions and capabilities.

    #

    Mobile first

    Approach that first builds the experience for small screens before enriching it for larger ones.

    #

    Media query

    CSS condition applying styles based on characteristics of the medium or environment.

    #

    Web accessibility

    Design that allows as many people as possible to use a service, notably with assistive technologies or without a mouse.

    #

    WCAG

    International recommendations providing conformance criteria for web content accessibility.

    #

    ARIA

    Set of attributes describing accessible roles and states when native HTML mechanisms are not enough.

    #

    UI component

    Reusable interface unit combining rendering, properties and optionally behaviour.

    #

    Interface state

    Set of values that determine what an interface displays and how it reacts.

    #

    Hydration

    Attaching, on the client side, interactive behaviour to already produced HTML, according to a framework.

    #

    Service worker

    Script that runs separately from the page, capable notably of intercepting certain requests and managing off-page tasks.

    #

    Web component

    Web component based on standards such as custom elements and optionally Shadow DOM.

    #

    Shadow DOM

    Encapsulated DOM tree that partly isolates the structure and styles of a component.

    #

    Virtual DOM

    Abstract representation of the interface used by some frameworks to compute updates.

    #

    Vue

    JavaScript interface framework using components, reactivity and declarative templates.

    #

    Web transpilation

    Transformation of web source code to a syntax or target compatible with the intended environments.

    #

    Minification

    Reducing the size of distributed code by removing information not required for its operation.

    #

    Tree shaking

    Eliminating exported but unused code during a build, when analysis permits it.

    #

    Code splitting

    Splitting code into separately loadable chunks to reduce certain loading costs.

    #

    Technical SEO

    Optimizations that facilitate crawling, indexing and interpretation of a site by search engines.

    #

    Web Protocols and API Design

    55 terms

    HTTP response

    Message from the server containing a status code, headers and optionally a body.

    #

    GET method

    HTTP method intended to retrieve a representation without requesting state modification on the server.

    #

    POST method

    HTTP method that submits data to be processed; its effect depends on the service and it is not intrinsically idempotent.

    #

    PUT method

    HTTP method requesting the creation or replacement of the targeted resource's state with the provided representation.

    #

    PATCH method

    HTTP method applying a partial modification to a resource according to the API's format and rules.

    #

    DELETE method

    HTTP method requesting the deletion of the targeted resource, with an expected idempotent semantics.

    #

    HTTP status code

    Three-digit number describing the outcome of a request, according to five main classes.

    #

    HTTP 200 OK

    Status indicating the request succeeded; the content of the response depends on the method.

    #

    HTTP 201 Created

    Status indicating that one or more resources were created as a result of the request.

    #

    HTTP 301 / 308

    Permanent redirection statuses; 308 preserves the HTTP method during the redirection.

    #

    HTTP 400 Bad Request

    Status indicating the server cannot or will not process a request it considers incorrect.

    #

    HTTP 401 Unauthorized

    Status indicating that valid authentication is required or missing, despite its misleading name.

    #

    HTTP 403 Forbidden

    Status indicating that the server understood the request but refuses to authorize it.

    #

    HTTP 404 Not Found

    Status indicating that the requested resource cannot be found or that the server does not wish to reveal its existence.

    #

    HTTP 409 Conflict

    Status indicating a conflict with the current state of the resource, for example during a concurrent update.

    #

    HTTP 502 Bad Gateway

    Status indicating that a gateway or proxy received an invalid response from an upstream server.

    #

    HTTP header

    Metadata field of a request or response, such as Content-Type or Authorization.

    #

    HTTP body

    Optional part of an HTTP message carrying a representation or data.

    #

    Content-Type

    Header indicating the media type of a content and optionally its character set.

    #

    URI

    Standardized identifier for a resource; a URL is a form of URI that gives access indications.

    #

    Query parameter

    Data placed in the query portion of a URL, often used to filter or paginate.

    #

    Path parameter

    Value embedded in a URL path to identify a resource or part of a route.

    #

    REST

    Architectural style based on constraints such as identified resources, uniform interface and stateless server exchanges per request.

    #

    RESTful API

    API designed to respect, more or less strictly, the principles of REST; simply using JSON and HTTP is not enough.

    #

    GraphQL

    Query language and API runtime environment that allows clients to select fields precisely.

    #

    gRPC

    Remote procedure call framework relying notably on HTTP/2 and Protocol Buffers in its usual operation.

    #

    OpenAPI

    Specification that contractually describes HTTP APIs and enables documentation and tool generation.

    #

    XML

    Extensible markup language representing structured data in a textual document.

    #

    Server-Sent Events / SSE

    HTTP mechanism sending a stream of events from the server to the browser, mainly in one direction.

    #

    CORS

    Browser mechanism governing JavaScript access to responses from other origins; it is not an authentication mechanism.

    #

    Same-origin policy

    Browser security rule restricting certain accesses between documents or scripts of different origins.

    #

    Web session

    Logical state linking several requests from a user, usually via an identifier or token.

    #

    JWT / JSON Web Token

    Compact format for transmitting signed or optionally encrypted claims; its content is not secret by default.

    #

    Pagination

    Dividing a set of results into consumable portions fetched successively.

    #

    Cursor pagination

    Pagination using an opaque or explicit marker rather than a simple page number, suited to certain evolving streams.

    #

    Idempotence

    Property whereby repeating the same operation produces the same intended final effect as a single execution, aside from possible side effects.

    #

    Rate limiting

    Restriction of the number of operations allowed over a period or according to another quota rule.

    #

    Timeout

    Maximum time allowed for an operation before waiting is stopped or it is reported as expired.

    #

    Retry

    Re-executing an operation after a presumed failure, to be designed with idempotence and duplicate risks in mind.

    #

    Exponential backoff

    Policy that progressively increases the delay between retries, often with a random component.

    #

    Databases and Persistence

    47 terms

    DBMS

    Software that manages the storage, queries, security and integrity of one or more databases.

    #

    Relational database

    Database that organizes data into relations, generally represented by tables and queried with SQL.

    #

    NoSQL database

    Category of systems not primarily based on the classic relational model; it gathers varied models.

    #

    Table

    Relational structure representing rows under a defined set of columns.

    #

    Row / record

    Set of values constituting an occurrence in a table or collection.

    #

    Database schema

    Definition of the structure, relations, types and constraints of the data.

    #

    Primary key

    Column or group of columns that uniquely identifies a row in a table.

    #

    Foreign key

    Column or set of columns that links a table to a key of another table or the same table.

    #

    Database index

    Auxiliary structure that accelerates certain searches and sorts at the cost of space and update overhead.

    #

    Composite index

    Index built on multiple columns, whose order can influence how queries use it.

    #

    SELECT

    SQL statement retrieving rows or computed results from the available data.

    #

    INSERT

    SQL statement that adds new rows to a table.

    #

    UPDATE

    SQL statement that modifies existing rows selected by the indicated conditions.

    #

    DELETE (SQL)

    SQL statement that removes rows; without an appropriate filter it can target all rows.

    #

    JOIN

    Operation combining rows from different sources according to a relation or condition.

    #

    SQL aggregation

    Calculation summarizing several rows, for example using COUNT, SUM or AVG.

    #

    GROUP BY

    SQL clause grouping rows to compute aggregates per group.

    #

    HAVING

    SQL clause filtering groups after grouping, to be distinguished from WHERE applied to rows.

    #

    Subquery

    Query embedded in another query to provide a value, list or relation.

    #

    SQL view

    Logical representation defined by a query and queryable like a table; any eventual materialization is separate.

    #

    Materialized view

    Stored physical result of a query, refreshed according to a defined strategy.

    #

    ACID

    Set of transactional properties: atomicity, consistency, isolation and durability.

    #

    COMMIT (SQL)

    Statement that validates the changes of a transaction.

    #

    ROLLBACK

    Statement that cancels the uncommitted changes of a transaction within the DBMS's limits.

    #

    Optimistic locking

    Conflict management that checks that no incompatible modification has occurred before validation.

    #

    Pessimistic locking

    Reserving or preemptively blocking resources to limit certain concurrent conflicts.

    #

    Database migration

    Versioned change to the schema or data accompanying the evolution of an application.

    #

    Denormalization

    Deliberate introduction of redundancies to improve certain uses, notably reads, with synchronization costs.

    #

    Sharding

    Horizontal distribution of a dataset across multiple distinct partitions or servers.

    #

    Database backup

    Recoverable copy of data and optionally of logs allowing restoration after an incident.

    #

    SQLite

    Embedded relational DBMS that generally stores a database in a file and does not require a separate server.

    #

    Redis

    In-memory data system often used for caching, queues or fast structures, with various persistence options.

    #

    Concurrency, Asynchrony and Distributed Systems

    38 terms

    Multiprocessing

    Use of multiple processes to carry out separate or parallel tasks.

    #

    Async / await

    Syntactic constructs marking asynchronous functions and wait points in several languages.

    #

    Promise

    Object representing the future result of an asynchronous operation and its potential failure in some languages.

    #

    Scheduler

    Component that decides which tasks or execution units progress at what moment.

    #

    Race condition

    Defect or situation in which the result depends on an uncontrolled concurrent execution order.

    #

    Data race

    Unsynchronized concurrent accesses to the same memory, with at least one write, according to a precise memory model.

    #

    Critical section

    Portion of code that manipulates shared state requiring a coordinated access protocol.

    #

    Mutex

    Mechanism that allows only one participant at a time to hold a mutual-exclusion lock.

    #

    Semaphore

    Synchronization counter limiting the number of accesses or signalling available resources.

    #

    Livelock

    Situation in which tasks remain active and react without making useful progress.

    #

    Starvation

    Situation in which a task is durably deprived of the resources needed to progress.

    #

    Concurrent atomicity

    Property of an operation perceived as indivisible by other participants according to a given model.

    #

    Lock-free operation

    Operation from an algorithm guaranteeing that at least one participant makes progress despite contention, without individual guarantees.

    #

    Message queue

    Mechanism for transmitting work or events between components through temporarily stored messages.

    #

    Message broker

    Intermediary service that receives, routes and redistributes messages between producers and consumers.

    #

    Domain event

    Significant fact that has already occurred in the domain and is communicated to other parts of the system.

    #

    Strong consistency

    Guarantee giving certain reads a recent and coordinated view of writes according to a defined model.

    #

    Eventual consistency

    Guarantee that copies converge after writes stop, without identical reads everywhere immediately.

    #

    CAP

    Theoretical result on the trade-offs of a distributed system facing a network partition between linearizable consistency and availability of responses.

    #

    Leader election

    Procedure that selects a node to coordinate actions within a distributed group.

    #

    Circuit breaker

    Mechanism that temporarily interrupts calls to a failing service to limit cascading failures.

    #

    Saga

    Sequence of local transactions coordinated with, often, compensating actions in case of failure.

    #

    Transactional outbox

    Pattern storing in the same transaction the business change and an event to be published later.

    #

    Exactly-once

    Guarantee of a logically unique processing within a defined scope, hard to achieve end-to-end without deduplication or transactions.

    #

    Desktop, Mobile and Systems Applications

    35 terms

    Child process

    Process created or launched by another process, with management links dependent on the system.

    #

    Socket

    Software communication endpoint used to exchange data locally or over a network.

    #

    Application sandbox

    Environment that restricts a program's access to system resources and capabilities.

    #

    Code signing

    Cryptographic signature linking an artefact to a publishing identity and allowing verification of its integrity.

    #

    Application notarization

    Distribution control and validation procedure imposed or offered by certain platforms, notably Apple.

    #

    Local data migration

    Transformation of data stored on the device to make it compatible with a new version.

    #

    IPC via WebView

    Exchange of messages between an embedded web interface and the host application's native code.

    #

    Electron

    Desktop application framework combining notably Chromium and Node.js to distribute web interfaces.

    #

    Tauri

    Desktop framework pairing a native core, generally Rust, with an interface rendered by the system's WebView.

    #

    Qt

    Cross-platform framework for developing interfaces and applications, mainly used with C++ or Python.

    #

    Flutter

    Framework for building interfaces compiled for multiple platforms using Dart.

    #

    Android SDK

    Tools and APIs that allow creating, compiling, testing and distributing Android applications.

    #

    iOS SDK

    Tools and APIs required for developing applications for the relevant Apple devices.

    #

    AppImage

    Format distributing a Linux application in a self-contained executable file, subject to its dependencies and constraints.

    #

    Git and Version Control

    41 terms

    Version control / VCS

    System that maintains the history of file changes and facilitates comparison, rollback and collaboration.

    #

    Git

    Distributed version control system that organizes history around commits and local or remote references.

    #

    Commit hash

    Fingerprint identifying a commit object in the repository; its length and algorithm can depend on the Git format.

    #

    Git branch

    Movable reference to a commit allowing several lines of work to evolve.

    #

    HEAD (Git)

    Reference designating the current commit, generally via the active branch.

    #

    Git add

    Command placing selected file versions or changes into the index.

    #

    Git status

    Command showing the state of the working tree and index relative to the repository's references.

    #

    Git diff

    Command showing differences between files, the index or commits according to options.

    #

    Git log

    Command displaying the history of commits and associated information.

    #

    Git clone

    Command creating a local copy of an existing repository and generally configuring a remote.

    #

    Git fetch

    Command retrieving remote objects and references without automatically merging these changes into the working branch.

    #

    Git pull

    Command performing a fetch then an integration, by merge or rebase depending on configuration.

    #

    Git push

    Command transmitting local references and objects to an authorized remote repository.

    #

    Cherry-pick

    Applying the changes of a selected commit onto the current branch, generally creating a new commit.

    #

    Git revert

    Command creating a new commit that reverses the changes of an earlier commit, subject to possible resolution.

    #

    Git reset

    Command moving a reference or resetting the index and files according to its mode; some uses destroy local changes.

    #

    Git stash

    Mechanism temporarily recording modifications of the working tree or index to reapply them later.

    #

    Git tag

    Named reference, often used to mark a published version; an annotated tag carries its own metadata.

    #

    Git ignore / .gitignore

    Rules excluding certain untracked files from the usual listing and automatic adding; they do not remove files already tracked.

    #

    Fork

    Copy of a repository on a platform allowing independent development and possible contributions.

    #

    Git submodule

    Repository referenced from another repository at a given revision, with its own synchronization cycle.

    #

    Semantic versioning / SemVer

    MAJOR.MINOR.PATCH convention: API-breaking change, compatible addition then compatible fix, once the API is defined.

    #

    Prerelease

    Version identified as preceding a stable release, for example alpha, beta or release candidate.

    #

    Testing and Quality Assurance

    38 terms

    Software testing

    Activity that aims to verify behaviours and reveal defects through defined checks.

    #

    Integration test

    Test verifying the real interaction of several components or systems.

    #

    End-to-end test / E2E

    Test running a complete user or technical scenario through the product's main layers.

    #

    Smoke test

    Quick set of checks ensuring that the main functions are usable after a change or delivery.

    #

    Acceptance test

    Conformance check against criteria allowing a stakeholder to accept a feature.

    #

    Test case

    Description of the preconditions, actions and expected results of a verification.

    #

    Fixture

    Data, objects or environment prepared to provide a reproducible context for tests.

    #

    Mock

    Test object that reproduces an interface while allowing verification of expected interactions.

    #

    Stub

    Minimal replacement providing predetermined results to isolate a tested component.

    #

    Fake

    Simplified but functional implementation of a dependency, for example an in-memory store.

    #

    Test double

    Generic term for a component substitute used in a test.

    #

    Spy

    Substitute or instrument that records the calls made to enable their verification.

    #

    Test assertion

    Explicit check of an expected property or result; its failure makes the test fail.

    #

    Code coverage

    Measure of the portions of code exercised by tests, which does not guarantee their ability to detect bugs.

    #

    Branch coverage

    Proportion of decision outcomes executed by tests according to the measuring tool.

    #

    Mutation testing

    Technique introducing small changes into the code to assess whether tests detect these alterations.

    #

    Fuzzing

    Automatically submitting many often-unexpected inputs to identify crashes and abnormal behaviour.

    #

    Given-When-Then

    Scenario structure expressing context, action and expected outcome.

    #

    Test pyramid

    Model suggesting a distribution between fast targeted checks and more integrated scenarios.

    #

    Deterministic test

    Test designed to yield the same results under identical initial conditions.

    #

    Performance test

    Verification of response times, throughput and resources under defined conditions.

    #

    Load test

    Trial measuring a system's behaviour under a representative or expected level of load.

    #

    Stress test

    Trial pushing the system beyond its normal operation to observe its limits and recovery.

    #

    Security test

    Assessment aimed at identifying defects of confidentiality, integrity, access or other security properties.

    #

    Code formatter

    Tool that automatically applies a standardized presentation to source code.

    #

    Type checker

    Tool that analyzes type compatibility and the consistency of annotations according to its supported rules.

    #

    Debugging, Errors and Observability

    30 terms

    Syntax error

    Code that does not respect the language's grammar and is often rejected before execution.

    #

    Runtime error

    Problem occurring during program execution, such as an invalid access.

    #

    Logic error

    Defect of reasoning or logic producing an incorrect result despite possible execution.

    #

    Stack trace

    List of the calls that led to a failure point, useful for locating its origin.

    #

    Debugger

    Tool allowing inspection of a program's state, setting breakpoints and controlling its execution.

    #

    Watch

    Debugger feature displaying the evolution of a selected variable or expression.

    #

    Logging

    Structured or textual production of event traces during execution.

    #

    Log level

    Category of severity or detail, such as debug, info, warning or error.

    #

    Structured log

    Recording of traces as exploitable fields, often serialized in JSON.

    #

    Correlation ID

    Value linking several traces or operations belonging to the same request path.

    #

    Observability

    Ability to understand a system's internal state from its signals, notably logs, metrics and traces.

    #

    Distributed trace

    Representation of an operation across multiple services through connected time segments.

    #

    Span

    Unit of a trace describing an operation, its duration and its relations with other operations.

    #

    Alerting

    Triggering a notification when an important operational condition is detected.

    #

    Crash

    Unexpected stop of a program, process or component.

    #

    Core dump

    Capture of part of a process's memory and processor state after an incident, potentially sensitive.

    #

    Bug reproducibility

    Ability to trigger a defect in a controlled way with known steps and conditions.

    #

    Root cause analysis

    Search for the initial mechanisms that enabled an incident, beyond its immediate symptoms.

    #

    Incident postmortem

    Documented review of the course, causes, impacts and improvements after an outage.

    #

    Compilation, Dependencies and Project Tooling

    31 terms

    Build artefact

    File produced by a build, such as an executable, library, archive or container image.

    #

    Reproducible build

    Build aiming for identical artefacts from identified sources and inputs under controlled conditions.

    #

    CMake

    System that generates build files for various tools and environments, notably for C and C++.

    #

    Maven

    Build and dependency management tool based notably on an XML project model for the JVM.

    #

    Package registry

    Service hosting and distributing versions of published libraries and components.

    #

    npm

    Package manager and distribution ecosystem associated with JavaScript and Node.js.

    #

    pip

    Python package installation tool from indexes or other compatible sources.

    #

    Manifest

    File describing a project's identity, configuration, scripts and dependencies.

    #

    Runtime version manager

    Tool that allows installing and selecting multiple versions of a language or its environment.

    #

    .env file

    Conventional file containing configuration variables; it can hold secrets and must not be shared without precautions.

    #

    Feature flag

    Configuration switch that enables a feature for certain environments or users.

    #

    Hot reload

    Update of certain modules or of the interface during development without a full restart, depending on the tool.

    #

    Hotfix

    Patch published quickly to resolve an important defect in a version in service.

    #

    Code documentation

    Explanations describing the use, contracts or implementation decisions of a component.

    #

    README

    Welcome document generally presenting a project's purpose, installation and first uses.

    #

    API documentation

    Description of the exposed operations, parameters, responses, errors and conditions of use of an interface.

    #

    DevOps, Infrastructure and Delivery

    39 terms

    DevOps

    Set of practices bringing development and operations closer together to improve delivery, reliability and operational feedback.

    #

    Continuous deployment

    Automated rollout to production of each change satisfying the defined checks, without systematic manual validation.

    #

    CI/CD pipeline

    Automated sequence of steps such as testing, building, verification and delivery.

    #

    Deployment rollback

    Return to an earlier version or a known working state, sometimes complex if data has changed.

    #

    Blue-green deployment

    Strategy alternating two complete environments to switch traffic and facilitate rollback.

    #

    Canary deployment

    Progressive rollout of a version to a fraction of traffic or users before generalizing it.

    #

    Terraform

    Declarative infrastructure management tool that describes and applies a desired state via providers.

    #

    Ansible

    Configuration and deployment automation tool, often based on inventories and playbooks.

    #

    Software container

    Isolated execution environment at the operating system level, generally sharing its kernel.

    #

    Container image

    Set of layers and metadata serving as an immutable reference template for creating containers.

    #

    Dockerfile

    File of instructions describing the steps to create a container image.

    #

    Container volume

    Mechanism that retains or shares data beyond the lifecycle of a given container.

    #

    Kubernetes

    Platform that orchestrates containerized workloads using declarative resources and controllers.

    #

    Kubernetes pod

    Smallest deployable Kubernetes unit, containing one or more containers sharing certain resources.

    #

    Kubernetes Ingress

    Resource historically describing external HTTP/HTTPS access to services; its controller and evolution depend on the platform.

    #

    Helm

    Kubernetes package manager that uses charts to describe and install resources.

    #

    Reverse proxy

    Service that receives client requests and forwards them to upstream application servers.

    #

    Autoscaling

    Automatic adjustment of resources or instance count according to metrics or rules.

    #

    Health check

    Automated check that determines whether an instance is running and can receive traffic.

    #

    Liveness probe

    Check designed to detect that a process must be restarted when it no longer makes progress.

    #

    Readiness probe

    Check designed to determine whether an instance is ready to serve requests.

    #

    Secret manager

    Service that centralizes the storage and controlled access to credentials and other application secrets.

    #

    Secret rotation

    Renewing a secret and updating its consumers to reduce the risks linked to its lifetime.

    #

    Backup and restore

    Procedures for preserving and recovering data and configuration after an incident.

    #

    Disaster recovery

    Set of measures allowing services to be restored after a major failure.

    #

    Application Security and Secure Development

    39 terms

    Application security

    Set of measures that aim to protect a software and its data against unauthorized uses or accesses.

    #

    Attack surface

    Set of accessible points through which a system can be probed or compromised.

    #

    Threat modelling

    Analysis of assets, actors, scenarios and protective measures from the design of a system.

    #

    RBAC

    Access control model founded on roles to which rights are associated.

    #

    ABAC

    Access control model founded on attributes of the requester, the resource and the context.

    #

    OAuth 2.0

    Authorization delegation framework allowing an application to obtain limited access to protected resources.

    #

    Access token

    Element presented to an API to exercise granted permissions, with a defined scope and lifetime.

    #

    Refresh token

    Element used to request new access tokens according to the authorization server's rules.

    #

    Passkey

    Authentication credential that generally uses public-key cryptography and FIDO mechanisms.

    #

    Password hashing

    One-way transformation with a salt and a suitable algorithm, such as Argon2id, to verify without storing the password in cleartext.

    #

    Cryptographic salt

    Unique random value added before hashing a password in order to counter precomputed tables in particular.

    #

    Cryptographic hash

    Function producing a fixed-length fingerprint designed to resist certain searches and collisions.

    #

    Digital signature

    Cryptographic proof of integrity and origin linked to a private key, verifiable with the corresponding public key.

    #

    TLS

    Protocol that protects network communications through encryption, integrity and authentication depending on its use.

    #

    Secrets management

    Set of practices for creating, storing, distributing, rotating and revoking sensitive credentials.

    #

    Input validation

    Verification that received data respects types, formats and business rules before use.

    #

    Output escaping

    Transformation of special characters according to the destination context to prevent them from being interpreted as code.

    #

    SSRF

    Vulnerability allowing an attacker to drive a server to make requests to unintended destinations.

    #

    Path traversal

    Exploitation of uncontrolled paths to access files outside the authorized scope.

    #

    Unsafe deserialization

    Reconstruction of objects from untrusted data that can trigger code execution or other dangerous effects.

    #

    Software supply chain

    Set of providers, dependencies, tools and steps contributing to the production and distribution of software.

    #

    SBOM

    Structured inventory of software components present in a product to facilitate analysis and dependency tracking.

    #

    SAST

    Security-oriented static analysis of source code or its representations without running the application normally.

    #

    DAST

    Dynamic analysis of a running application by exercising it to detect certain vulnerabilities.

    #

    CVSS

    Framework for measuring the technical severity of a vulnerability; the score does not replace context analysis.

    #

    Performance and Optimization

    31 terms

    Profiling

    Measuring a program's behaviour to identify the parts consuming time or resources.

    #

    Benchmark

    Comparative performance measurement under reproducible and documented conditions.

    #

    Latency

    Duration between a request and the observed response or effect.

    #

    Response time

    Time elapsed between receiving a request and producing a response according to a defined scope.

    #

    Bottleneck

    Resource or step that limits the overall performance of a process.

    #

    Cache invalidation

    Removing or replacing cached data when its validity ends or the source changes.

    #

    Cache hit

    Access for which the requested data is found in the cache.

    #

    Cache miss

    Access for which the data is absent from the cache and must be retrieved or recomputed.

    #

    Prefetching

    Anticipating the loading of data deemed likely to be used soon.

    #

    Debounce

    Technique that waits for a period without a new event before triggering processing.

    #

    Throttle

    Technique that caps the number of executions of a process over a period.

    #

    Connection pool

    Set of reusable connections that avoid repeating costly creations.

    #

    N+1 queries

    Anti-pattern in which an initial query triggers an additional query per retrieved item.

    #

    Lazy evaluation

    Deferred evaluation of an expression or computation until its result is needed.

    #

    Premature optimization

    Performance refinement done before knowing the real needs or bottlenecks, at the risk of increasing complexity.

    #

    Data streaming

    Processing elements as they arrive rather than after a full load.

    #

    Backpressure

    Mechanism that makes a producer slow down when the consumer can no longer keep up.

    #

    CPU load

    Measure of processor usage or demand, to be contextualized with respect to the number of cores.

    #

    Query optimization

    Improving data access strategy using filters, indexes and execution plans.

    #

    SQL execution plan

    Description of the operations chosen by a DBMS to process a query, sometimes consultable with EXPLAIN.

    #

    Work Methods and Product

    35 terms

    User story

    Concise formulation of a user need that serves as a support for discussion and validation.

    #

    Use case

    Description of the interactions between an actor and a system to achieve a goal.

    #

    Backlog

    Ordered and evolving list of work considered or selected for a product or team.

    #

    Sprint

    Fixed-duration work period used notably in Scrum to reach a defined goal.

    #

    Scrum

    Agile framework based on roles, events and artefacts to manage a complex product.

    #

    Kanban

    Visual flow management method favouring work-in-progress limits and fluidity.

    #

    Agility

    Approach favouring adaptation, collaboration and iterative deliveries, without imposing a single method.

    #

    Increment (agile)

    Integrated and potentially usable addition of a capability to the existing product.

    #

    Roadmap

    Evolving presentation of the priorities, objectives and steps envisaged for a product.

    #

    Definition of Done

    Shared criteria determining that work is considered finished at the agreed quality level.

    #

    Pair programming

    Practice in which two people work together on the same development, sharing analysis and review.

    #

    Mob programming

    Collective programming practice in which several people contribute simultaneously to the same problem.

    #

    Documentation debt

    Lack or obsolescence of documentation that increases the cost of understanding and maintenance.

    #

    Software license

    Text defining the rights and obligations linked to the use, modification and redistribution of software.

    #

    Free software

    Software whose license notably guarantees the freedoms to use, study, modify and redistribute.

    #