SDLC (Software Development Life Cycle)
Definition: A structured process for planning, creating, testing, and
deploying software.
7 Phases of SDLC:
Phase Key Activities People Artifacts
Involved Produced
1. Project initiation, Product Owner, Project Plan
Planning idea generation, System User,
setting schedule, Project Manager
estimating budget
2. Analysis Stakeholder Product Owner, Use Cases, User
identification, System User, Stories, Functional
requirement System Analyst, Spec Document
gathering, defining Project Manager
scope
3. Design UI/UX, data design, System Analyst, ERD, UI
system Architect, DB Prototypes,
architecture, Admin, System
business rules Software Architecture
Engineer, Diagram, Class &
Designer Sequence
Diagrams
4. Frontend, backend, Developers, Source Code,
Developm middleware UI/UX Designers Configuration Files
ent implementation
5. Testing Unit, Integration, Developers, QA Test Plan, Test
System, UAT, Engineers, Cases, Test
Security, Users Specification
Performance Document
testing
6. Staged release, System Admin, Training Plans,
Deployme data migration, Support User Manual,
nt training Engineers Installer
7. Bug fixes, System Analyst, Change Request
Maintenan enhancements, Support Docs, Maintenance
ce patching, upgrades Engineers Logs, Software
Patches
Six principles of Sustainable Software Engineering
Carbon Efficiency: Build applications that are carbon efficient.
Electricity Efficiency: Build applications that are energy efficient.
Carbon Awareness: Consume electricity with the lowest carbon
intensity.
Hardware Efficiency: Build applications that are hardware efficient.
Measurement: Improve sustainability through measurement.
Climate Commitments: Defining the exact mechanism of carbon
reduction.
📌 SOFTWARE DEVELOPMENT METHODOLOGIES (SDM)
Methodol Characteristi Pros Cons Best For
ogy cs
Waterfall Sequential, Easy to Inflexible, Small, well-
phase-driven manage, low defined
well docu, customer projects
involvement,
not for
complex
stuff
Spiral Risk-driven, Great risk Expensive, High-risk,
iterative, risk managemen complex, complex
analysis at t, flexible time- systems
each phase consuming,
needs
experienced
team
RAD Fast, Rapid Not for Time-
prototyping, feedback, complex critical,
involves users adaptable to systems, changing
closely changes needs skilled requirement
devs s
Agile Iterative, High Needs Projects
flexible, user- adaptability, skilled team, with
centric, involves hard for changing
incremental customers large needs
projects
DevOps CI/CD, Fast Needs Any org
collaboration delivery, cultural/tool wanting
between dev improve investment efficiency
and operation reliability
team
📌 AGILE SOFTWARE DEVELOPMENT
4 Core Values of Agile Manifesto:
1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
12 Agile Principles:
1. Customer satisfaction through early and continuous delivery
2. Welcome changing requirements—even late in development
3. Deliver working software frequently
4. Business people and developers work together daily
5. Build projects around motivated individuals
6. Face-to-face conversation is the most effective communication
7. Working software is the primary measure of progress
8. Promote sustainable development
9. Continuous attention to technical excellence
10. Simplicity—the art of maximizing the amount of work not done
—is essential
11. Best architectures emerge from self-organizing teams
12. Reflect and adapt regularly
📌 SCRUM FRAMEWORK
👤 Scrum Roles
Role Responsibilities
Product Owner Defines product vision, prioritizes backlog,
accepts/rejects work
Scrum Master Facilitates meetings, removes blockers, enforces
Scrum practices
Development Self-organizing, delivers sprint goal, estimates tasks
Team
🛠 Scrum Artifacts
Artifact Description
Product Master list of features, prioritized by Product Owner
Backlog
Sprint Tasks chosen for the sprint; includes Burn Down Chart
Backlog to track progress
Product Completed, tested, and potentially shippable software
Increment at the end of a sprint
Scrum Events (Activities)
Activity Purpose Frequency
Backlog Grooming Refine, prioritize, and estimate Ongoing
user stories
Sprint Planning Define sprint goal and tasks Start of each
sprint
Sprint Execution & Develop increment, resolve Daily
Daily Scrum blockers, daily 15-min stand-up
Sprint Review Demo the work, gather feedback End of sprint
Sprint Reflect on sprint, identify End of sprint
Retrospective improvements
📌 STAKEHOLDERS
Stakeholder Groups:
Group Examples
Internal/External Admins, staff, customers, suppliers
System Users
Development & Developers, Analysts, Project Managers, QA,
Support Team Documentation Writers
Authorities Shareholders, Regulators, Legal, Compliance
Officers, Executives
If the stakeholder includes the general public, you must consider:
Accessibility
Inclusivity (e.g., multilingual support)
Privacy compliance (e.g., PDPA)
Simplicity of UI
📌 REQUIREMENTS
✅ Functional Requirements:
Define what the system does
E.g., "User can register for an account"
⚙️Non-Functional Requirements:
Define how the system behaves (performance, security, etc.)
E.g., "System must respond within 2 seconds"
Subtypes include:
Performance
Security
Usability
Scalability
Sustainability (e.g., CPU efficiency, hardware lifecycle)
📌 USER STORIES
Definition: Short descriptions from the user’s perspective to define a
feature.
INVEST Model:
Independent
Negotiable
Valuable
Estimable
Small
Testable
📌 USE CASE DIAGRAMS
Purpose: Shows interactions between users (actors) and the system (use
cases)
Components:
Component Description
Actor Person/system interacting with system
(Primary/Secondary)
Use Case Function that yields a result (verb + noun e.g.,
"Withdraw Cash")
System Defines system scope
Boundary
Associations Lines showing interaction between actor and use case
<<include>> Base use case must include another use case
<<extend>> Optional/conditional use case that adds to a base
📌 SOFTWARE TESTING
Goals of Testing:
Ensure functional requirements met
Ensure performance, usability, and security
🧪 Testing Approaches:
Approa Knowledge Performed
ch Required By
White- Internal knowledge Developers
box
Black- No internal Testers/
box knowledge Users
Gray- Partial knowledge Dev +
box testers
🌍 Test Environments:
Environment Purpose
Dev Environment Individual modules tested by
developers
System Integration Integrated components tested as a
Testing system
UAT/Staging End-user tests full business flow before
release
🧩 Functional Testing Levels:
1. Unit Testing – smallest parts
2. Integration Testing – interfaces
3. System Testing – whole system
4. User Acceptance Testing (UAT) – business goals
⚙️Non-Functional Testing Types:
Type Purpose
Performan Speed under normal
ce conditions
Load Behavior under peak load
Stress System stability under
overload
Security Identifying vulnerabilities
Usability How easy is it to use
📝 Test Artifacts:
Artifact Purpose
Test Plan Scope and schedule of testing
Test Details what to test (derived from
Specifications requirements)
Test Cases Detailed input/output actions
Test Scripts Manual/automated steps
Test Data Input data (valid, invalid, boundary)