SDLC process models
Concept
Software development lifecycle(SDLC)
- brownfield: builds upon existing software
- greenfield: new software from scratch
Sequential model
- linear process
- specify requirements -> design -> implement -> test -> deploy
Iterative breadth-first
- each iteration is a working product
- all components are improved
Iterative depth-first
- each iteration implements new functionality
- iterations may not produce a working product
Agile model
- alternate to document-driven, heavyweight software development
- core values:
- individuals & interactions > processes & tools
- working software > documentation
- customer collaboration > contracts
- responding to change > fixed plans
- key characteristics:
- continuous requirement refinement
- flexible, evolving design
- transparency and shared responsibility
Extreme Programming(XP) model
- focus: customer satisfaction and adaptability to changing requirements
- emphasizes:
- frequent feedback (testing early and often)
- simple design
- teamwork
- core values: communication, simplicity, feedback, respect, courage
Scrum
- iterative framework using sprints (1 week–1 month)
- roles:
- scrum Master (process facilitator)
- product Owner (represents stakeholders)
- team (does the work)
- key practices:
- sprint planning → define tasks
- sprint execution → build working product increment
- sprint review/retrospective → improve process
- daily scrum (15 min updates)
- features:
- time-boxed development
- frozen requirements during a sprint
- prioritized product backlog
- emphasis on adaptability and self-organizing teams
Unified Process
- inception -> elaboration -> construction -> transition
- flexible and customizable framework
Capability Maturity Model Integration(CMMI)
- maturity levels for a process
- criteria and what to focus on for each level
- initial -> managed -> defined -> quantitatively managed -> optimizing