Software Engineering Glossary
25 essential terms — because precise language is the foundation of clear thinking in Software Engineering.
Showing 25 of 25 terms
A set of software development principles emphasizing iterative delivery, collaboration, and adaptability to change.
A defined set of protocols and tools that allows different software components or systems to communicate with each other.
An independent line of development in version control, allowing parallel work without affecting the main codebase.
Continuous Integration and Continuous Delivery/Deployment: practices that automate building, testing, and releasing software.
A peer examination of source code to identify defects, enforce standards, and share knowledge before merging changes.
A surface-level indicator in source code that suggests a deeper design or implementation problem requiring refactoring.
The process of releasing a software application or update to a target environment such as staging or production.
A reusable, general solution to a commonly occurring problem in software design within a given context.
A culture and set of practices that unify software development and IT operations to shorten the development lifecycle.
A principle advocating that every piece of knowledge should have a single, authoritative representation in the system.
A version control branch created specifically for developing a single feature, keeping it isolated until ready for integration.
Testing the interaction between combined components or services to verify they function correctly together.
An architectural style structuring an application as a collection of small, independently deployable services.
A software architecture where all components are tightly coupled and deployed as a single, unified application.
A mechanism for proposing code changes and requesting peer review before merging into a shared branch.
Restructuring existing code to improve its internal structure without changing its observable external behavior.
Re-running tests after code changes to ensure that existing functionality has not been broken.
An Agile framework that uses fixed-length sprints, defined roles, and regular ceremonies to manage iterative development.
Software Development Life Cycle: a structured process defining the phases of software creation from planning to maintenance.
Five object-oriented design principles: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion.
A fixed-length iteration in Scrum, typically one to four weeks, during which a set of work items is completed.
The implied cost of future rework resulting from choosing a quick solution over a more robust approach.
A development methodology where tests are written before the production code, following a Red-Green-Refactor cycle.
Testing individual functions or methods in isolation to verify they produce the correct output for given inputs.
A system that tracks changes to files over time, enabling collaboration, history tracking, branching, and merging.