Software Engineering
Actual coverage
Introduction; process; Agile development; requirements engineering; design and architecture; reliable implementation; verification/validation; fundamental principles; quality principles/metrics; people/process/planning; quality assurance; risk management; DevOps/SRE; security; maintenance; performance/scalability; continued learning.
Lifecycle model
flowchart LR
N[Need] --> R[Requirements]
R --> D[Design]
D --> I[Implementation]
I --> V[Verification]
V --> O[Operation]
O --> M[Maintenance and learning]
M --> R
Durable knowledge
- Process exists to manage uncertainty and coordination; tailor it to risk and feedback needs.
- Agile prioritizes working increments, collaboration, adaptation, and technical discipline—not absence of planning.
- Requirements include behavior and quality attributes; make acceptance observable.
- Architecture allocates responsibilities and quality tradeoffs across boundaries.
- Verification asks whether we built it correctly; validation asks whether we built the right thing.
- Quality assurance improves the system that produces software, while testing samples product behavior.
- Risk management identifies probability, impact, mitigation, trigger, and owner.
- DevOps/SRE connect delivery with operability through automation, observability, reliability targets, and learning from incidents.
- Most software cost occurs after first release; design for diagnosis and change.