Glossary of Software Engineering Terms

The below glossary covers a range of terms commonly encountered in software engineering, providing a foundation for understanding key concepts and practices in the field.

Software Engineer Career Path Program by Uplatz]


  1. Agile Methodology: An iterative and incremental approach to software development, emphasizing flexibility, adaptability, collaboration, and customer feedback.
  2. Algorithm: A step-by-step procedure or formula for solving a problem or accomplishing a task, often used in computer programming, data processing, and artificial intelligence.
  3. API (Application Programming Interface): A set of rules, protocols, and tools that allows different software applications to communicate, interact, and share data with each other.
  4. Artifact: Any tangible or intangible item produced or modified during the software development process, including documents, code, diagrams, and models.
  5. Authentication: The process of verifying the identity of a user or system before granting access to resources, typically involving usernames, passwords, tokens, or biometric data.
  6. Bug: An error, flaw, or defect in a software program that causes it to behave unexpectedly, produce incorrect results, or crash.
  7. CI/CD (Continuous Integration/Continuous Delivery): Practices, processes, and tools used to automate the process of integrating code changes into a shared repository (CI) and delivering them to production environments (CD) frequently and reliably.
  8. Database: A structured collection of data stored electronically in a computer system, typically organized in tables, rows, and columns, and queried using a query language like SQL (Structured Query Language).
  9. Debugging: The process of identifying, analyzing, and fixing defects, errors, or issues in software code or systems to ensure they behave as expected.
  10. Deployment: The process of releasing software applications or updates into production environments, making them available for use by end-users.
  11. Design Patterns: Reusable solutions to common software design problems, providing best practices and guidelines for structuring code and architecting applications.
  12. Framework: A reusable set of libraries, tools, and conventions that provide a foundation for developing software applications, often facilitating common tasks, promoting code organization, and enhancing maintainability.
  13. Git: A distributed version control system used to track changes in source code during software development, enabling collaboration among multiple developers and teams.
  14. IDE (Integrated Development Environment): A software application that provides comprehensive tools and features for writing, editing, debugging, and testing code within a single interface.
  15. Machine Learning: A subset of artificial intelligence (AI) that involves developing algorithms and models that allow computers to learn from and make predictions or decisions based on data without being explicitly programmed.
  16. Refactoring: The process of restructuring existing code without changing its external behavior to improve readability, maintainability, or performance, often involving techniques like code cleanup, simplification, and optimization.
  17. Scrum: A framework for agile project management that emphasizes iterative development, frequent inspection, and adaptation, typically involving fixed-length iterations called sprints, and roles like Product Owner, Scrum Master, and Development Team.
  18. Testing: The process of evaluating a software application or system to identify defects, errors, or discrepancies between expected and actual behavior, often involving techniques such as unit testing, integration testing, regression testing, and acceptance testing.
  19. UI (User Interface): The visual elements and controls through which users interact with a software application, including menus, buttons, forms, dialogs, and other graphical components.
  20. Version Control: The practice of tracking and managing changes to source code and other files over time, enabling collaboration, code review, and rollback to previous versions, often using tools like Git, SVN (Subversion), or Mercurial.
  21. Waterfall Model: A traditional software development approach characterized by sequential phases, such as requirements gathering, design, implementation, testing, and maintenance, with each phase dependent on the completion of the previous one.
  22. XML (Extensible Markup Language): A markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable, commonly used for data interchange, configuration files, and web services.