Software Engineering and Systems Development
Software Engineering and Systems Development tests the life cycle from requirements to maintenance, with emphasis on disciplined change and testing.
Core rules
- SDLC phases: requirements, analysis/design, implementation, testing, deployment and maintenance. Waterfall suits stable, well-understood requirements; iterative/agile suits evolving needs.
- Requirements must be testable. Functional requirements describe behaviour; non-functional requirements describe quality attributes such as performance, security and availability.
- Verification asks whether we built the product right; validation asks whether we built the right product.
- Version control, code review, configuration management and regression testing protect quality during change. Maintenance is the longest phase and includes corrective, adaptive, perfective and preventive work.
Worked example
A payroll user asks for a new allowance field after UAT. Reasoning: log a change request; assess impact on database schema, calculation rules, reports, test scripts and audit; estimate effort; obtain approval; implement in a branch; run unit and regression tests; repeat UAT; then deploy with a rollback plan. Skipping impact analysis risks breaking statutory deductions.
Traps
Do not treat a prototype as a finished requirement; do not call a non-functional requirement functional; do not confuse testing with debugging; and do not accept scope creep informally. A signed acceptance criterion is stronger than a verbal 'looks fine'.