Software Engineering Cheat Sheet
The core ideas of Software Engineering distilled into a single, scannable reference — perfect for review or quick lookup.
Quick Reference
Software Development Life Cycle (SDLC)
A structured framework defining the phases involved in building software, from initial planning and requirements analysis through design, implementation, testing, deployment, and maintenance. Different SDLC models such as Waterfall, Agile, and Spiral offer varying approaches to sequencing these phases.
Agile and Scrum
Agile is a set of principles for software development that prioritizes individuals and interactions, working software, customer collaboration, and responding to change. Scrum is a popular Agile framework that organizes work into fixed-length sprints, with defined roles (Product Owner, Scrum Master, Developers) and ceremonies (Sprint Planning, Daily Standup, Sprint Review, Retrospective).
Version Control
A system that records changes to files over time, enabling multiple developers to collaborate on code, track history, revert to previous states, and manage parallel lines of development through branching and merging. Git is the most widely adopted distributed version control system.
Design Patterns
Reusable solutions to commonly occurring problems in software design. Catalogued by the Gang of Four, design patterns are divided into creational (e.g., Factory, Singleton), structural (e.g., Adapter, Decorator), and behavioral (e.g., Observer, Strategy) categories. They provide a shared vocabulary for developers and proven approaches to recurring challenges.
Testing (Unit, Integration, End-to-End)
Software testing verifies that code behaves as expected at multiple levels of granularity. Unit tests validate individual functions or methods in isolation. Integration tests verify that different modules or services work correctly together. End-to-end tests simulate real user workflows through the entire system to confirm that all components function as a whole.
Continuous Integration / Continuous Deployment (CI/CD)
CI is the practice of frequently merging code changes into a shared repository, where automated builds and tests run against every commit. CD extends this by automatically deploying validated changes to staging or production environments. Together, CI/CD reduces integration risk, shortens feedback loops, and accelerates delivery.
Refactoring
The process of restructuring existing code without changing its external behavior to improve readability, reduce complexity, and enhance maintainability. Refactoring is guided by code smells, which are surface indicators of deeper problems such as duplicated code, long methods, and excessive coupling.
Microservices Architecture
An architectural style that structures an application as a collection of small, independently deployable services, each responsible for a specific business capability. Services communicate via well-defined APIs and can be developed, deployed, and scaled independently, enabling organizational agility and fault isolation.
Technical Debt
The implied cost of additional rework caused by choosing a quick or easy solution now instead of a better approach that would take longer. Like financial debt, technical debt accumulates interest over time as shortcuts make future changes increasingly difficult, expensive, and risky.
Code Review
A systematic examination of source code by one or more peers before it is merged into the main codebase. Code reviews catch bugs, enforce coding standards, share knowledge across the team, and improve overall code quality. They are typically conducted through pull requests in platforms like GitHub or GitLab.
Key Terms at a Glance
Get study tips in your inbox
We'll send you evidence-based study strategies and new cheat sheets as they're published.
We'll notify you about updates. No spam, unsubscribe anytime.