Software EngineeringSoftware Engineering (SE)
Software Engineering (SE)
Cheat sheet for SDLC, Agile, Scrum, and CI/CD
Software Engineering (SE) Cheat Sheet
This document summarizes essential concepts in Software Engineering, including SDLC, Agile, Scrum, and CI/CD.
Software Development Life Cycle (SDLC)
SDLC is a process for creating high-quality software, consisting of core phases:
- Requirement Analysis: Gathering and analyzing requirements from stakeholders.
- Design: Designing system architecture and software design.
- Implementation (Coding): Writing code according to design specifications.
- Testing: Testing software to find bugs and verify it meets requirements.
- Deployment: Installing software into a production environment.
- Maintenance: Maintaining and fixing bugs, as well as updating new features.
Agile Methodology
Agile is a software development approach that focuses on iterative and incremental work.
- Focuses on collaboration within the team and with stakeholders.
- Responds quickly to changing requirements.
- Delivers working software frequently.
Scrum Framework
Scrum is a framework under Agile for managing complex projects.
- Roles: Product Owner, Scrum Master, Developers
- Artifacts: Product Backlog, Sprint Backlog, Increment
- Events: Sprint, Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective
Continuous Integration / Continuous Deployment (CI/CD)
CI/CD is a practice for automating the software release process.
- Continuous Integration (CI): Frequently merging code from multiple developers into a shared repository, along with running automated tests.
- Continuous Delivery (CD): Always keeping code in a ready-to-deploy state for production.
- Continuous Deployment (CD): Automatically deploying code to a production environment when all tests pass.