← Back to Forge Seeds
Sign In
🌍 Public Flashcards36 ConceptsBy: Ascander

Software Engineering

The systematic, disciplined, and quantifiable application of engineering principles to the design, development, maintenance, testing, and evaluation of software systems to ensure they are reliable, efficient, and scalable.

#software engineering

⚡Practice & Mastery Launchers

Launch interactive study modes or print uniform flashcard sheets.

Practicing as guest • Session saved locally on this device
📇
Flashcards PDF
Download uniform 8-card sheets formatted for paper cutting
Deck Mastery Distribution0 / 36 Deep Rooted (0%)
Unplanted (36) Seeded (0) Sprouting (0) Deep Rooted (0)

Deck Vocabulary & Concepts (36)

Review definitions, formulas, and aliases included in this glossary.

Filter by tag:

Agile Methodology

#
#software engineering

An iterative and incremental approach to software development emphasizing flexible responses to change, continuous delivery, and collaboration among self-organizing teams. It prioritizes individuals and interactions over processes and tools.

(No full definition provided)

Algorithm

#
#artificial intelligence#software engineering

A set of well-defined, step-by-step instructions or rules designed to solve a specific problem or perform a task efficiently. In AI, algorithms are the fundamental foundation for learning, reasoning, and decision-making processes.

(No full definition provided)

API (Application Programming Interface)

#
#software engineering

A set of defined rules and protocols that allows different software components to communicate with each other. It specifies how software components should interact, enabling integration without needing to understand internal workings.

(No full definition provided)

Cloud Computing

#
#software engineering

The on-demand delivery of computing services—including servers, storage, databases, networking, software, analytics, and intelligence—over the Internet ("the cloud") to offer faster innovation, flexible resources, and economies of scale.

(No full definition provided)

Code Review

#
#software engineering

A systematic examination of computer source code. It is intended to find and fix mistakes overlooked in the initial development phase, improving the overall quality of software and allowing knowledge sharing among developers.

(No full definition provided)

Continuous Delivery (CD)

#
#software engineering

An extension of CI where code changes are automatically built, tested, and prepared for release to production. It ensures that software can be reliably released at any time, though manual approval for deployment might be required.

(No full definition provided)

Continuous Integration (CI)

#
#software engineering

A development practice where developers frequently merge their code changes into a central repository, after which automated builds and tests are run. The primary goal is to detect integration errors early and rapidly.

(No full definition provided)

Data Structures

#
#software engineering

A particular way of organizing and storing data in a computer so that it can be accessed and modified efficiently. Common examples include arrays, linked lists, trees, graphs, and hash tables, each suited for different tasks.

(No full definition provided)

Database Management System (DBMS)

#
#databases#software engineering

Software that interacts with end-users, applications, and the database itself to capture and analyze data, providing an interface for managing and accessing the data efficiently. It handles data storage, retrieval, and security.

(No full definition provided)

Debugging

#
#software engineering

The process of identifying, analyzing, and removing errors or 'bugs' from computer hardware or software. It involves systematically locating the root cause of a defect and implementing a fix to restore correct functionality.

(No full definition provided)

Deployment

#
#software engineering

The process of making software available for use, involving all activities that make a software system operational. This typically includes installation, configuration, testing, and release to the target environment.

(No full definition provided)

Design Patterns

#
#software engineering

Reusable solutions to common problems in software design. They are not direct code but rather templates for how to solve problems that can be adapted to various situations, promoting best practices and maintainability.

(No full definition provided)

DevOps

#
#software engineering

A set of practices that combines software development (Dev) and IT operations (Ops) to shorten the systems development life cycle and provide continuous delivery with high software quality. It emphasizes automation and collaboration.

(No full definition provided)

Microservices

#
#software engineering

An architectural style where an application is structured as a collection of loosely coupled, independently deployable services. Each service typically focuses on a single business capability and communicates via lightweight mechanisms.

(No full definition provided)

Monolithic Architecture

#
#software engineering

A traditional software architecture where all components of an application are tightly coupled and run as a single, indivisible unit. It often leads to challenges in scaling individual parts and slower development cycles for large systems.

(No full definition provided)

Object-Oriented Programming (OOP)

#
#software engineering

A programming paradigm based on the concept of "objects," which can contain data (attributes) and code (methods). Key principles include encapsulation, inheritance, polymorphism, and abstraction, promoting modularity and reusability.

(No full definition provided)

Refactoring

#
#software engineering

The process of restructuring existing computer code without changing its external behavior. Its goal is to improve the code's non-functional attributes, such as readability, maintainability, and complexity, making it easier to understand and modify.

(No full definition provided)

Reliability

#
#software engineering

The ability of a system or component to perform its required functions under stated conditions for a specified period of time. It measures the probability that the software will operate without failure for a given duration.

(No full definition provided)

Requirements Engineering

#
#software engineering

The process of defining, documenting, and maintaining software requirements. It involves eliciting, analyzing, specifying, validating, and managing needs from stakeholders to ensure the final product meets user expectations.

(No full definition provided)

Requirements Gathering / Elicitation

#
#software engineering

The process of collecting and understanding the needs and constraints of stakeholders for a new software system. It involves techniques like interviews, surveys, and prototyping to define what the system should do.

(No full definition provided)

Risk Management

#
#software engineering

The process of identifying, assessing, and controlling threats to an organization's capital and earnings. In software engineering, it involves proactively identifying potential project risks, analyzing their impact, and planning mitigation strategies.

(No full definition provided)

Scalability

#
#software engineering

The capability of a system, network, or process to handle a growing amount of work, or its potential to be enlarged to accommodate that growth. In software, it means gracefully handling increased user load or data volume.

(No full definition provided)

Scrum

#
#software engineering

A lightweight, iterative, and incremental agile framework for managing complex product development, characterized by short cycles called sprints, daily stand-ups, and defined roles like Product Owner and Scrum Master.

(No full definition provided)

Security

#
#software engineering

The protection of software systems and data from unauthorized access, use, disclosure, disruption, modification, or destruction. It involves implementing measures to ensure confidentiality, integrity, and availability (CIA triad).

(No full definition provided)

Software Architecture

#
#software engineering

The fundamental structures of a software system, encompassing its components, their external properties, and the relationships among them. It defines the high-level organization, chosen design patterns, and system properties.

(No full definition provided)

Software Design

#
#software engineering

The process of defining the architecture, components, interfaces, and other characteristics of a system or component. It translates requirements into a detailed plan for implementation, focusing on structure and behavior.

(No full definition provided)

Software Development Life Cycle (SDLC)

#
#software engineering

A structured process that outlines the stages involved in developing, deploying, and maintaining software, from initial idea to retirement. It provides a framework for managing software projects effectively.

(No full definition provided)

Software Maintenance

#
#software engineering

The modification of a software product after delivery to correct faults, improve performance or other attributes, or adapt the product to a modified environment. It includes corrective, adaptive, perfective, and preventive actions.

(No full definition provided)

Software Quality Assurance (SQA)

#
#software engineering

A process that ensures software products and services meet specified requirements and stakeholder expectations by monitoring and improving every stage of the development process. It's a proactive approach to prevent defects.

(No full definition provided)

Software Testing

#
#software engineering

The process of evaluating a software system or component with the intent to discover whether it satisfies specified requirements or to identify defects. It includes various types like unit, integration, system, and acceptance testing.

(No full definition provided)

SQL (Structured Query Language)

#
#databases#software engineering

A standard language for managing and manipulating relational databases, used for querying data, defining schemas, and controlling access. It is the primary interface for interacting with most relational DBMS.

(No full definition provided)

Technical Debt

#
#software engineering

The implied cost of additional rework caused by choosing an easy solution now instead of using a better approach that would take longer. It acts like financial debt, accruing interest (increased complexity, slower development).

(No full definition provided)

Test-Driven Development (TDD)

#
#software engineering

A software development process where tests are written before the code they are meant to test. This cycle involves writing a failing test, writing just enough code to pass the test, and then refactoring the code.

(No full definition provided)

Usability / UX (User Experience)

#
#software engineering

Usability is the ease of use and learnability of a human-made object like a software application. User Experience (UX) encompasses all aspects of an end-user's interaction with the company, its services, and its products, aiming for positive emotional responses.

(No full definition provided)

Version Control System (VCS) / Git

#
#software engineering

A system that records changes to files over time, allowing users to recall specific versions later. Git is a widely used distributed VCS that tracks modifications to source code during software development.

(No full definition provided)

Waterfall Model

#
#software engineering

A sequential, linear software development process where each phase must be completed and signed off before the next phase can begin, typically including requirements, design, implementation, testing, and maintenance.

(No full definition provided)