Requirements engineering elicits, analyses, specifies, validates and manages functional and quality requirements. AI features additionally require behavioural examples, uncertainty policies and escalation rules.
Software design divides responsibilities among components, defines interfaces and makes trade-offs explicit. Good design limits the scope of AI uncertainty and keeps deterministic rules deterministic.
Computational thinking and programming fundamentals give engineers the vocabulary for decomposition, abstraction, algorithms, state, complexity and failure.