Software engineering fundamentals

Conceptual Story
Section titled “Conceptual Story”AI changes how software is produced, but it does not suspend the properties good software must have. Systems still need comprehensible requirements, coherent architecture, correct data, maintainable code, secure interfaces, repeatable deployments and operational accountability. Rapid code generation increases the rate at which poor decisions can enter a codebase.
Software fundamentals provide the constraints and verification mechanisms within which models and coding agents can contribute safely. They let an engineer recognise when generated code is locally plausible but systemically wrong. The goal is not merely to make the code run; it is to create a system that can be understood, changed, tested, operated and trusted over time.
Concepts in This Area
Section titled “Concepts in This Area”Requirements and Design
Requirements engineering, computational thinking and design for AI-supported systems.
Architecture and Interfaces
Boundaries, contracts, integration and structural decisions that make AI systems changeable.
Data Modelling and Data Engineering
Representing entities, relations, events and lifecycle so AI has meaningful data to work with.
Code Quality and Version Control
Maintainability, readable diffs and reversible change in human and agent-written code.
Testing and Testability
Traditional tests for deterministic behaviour and evals for probabilistic behaviour.
Security, Privacy and Accessibility
Security, privacy and inclusive design constraints for AI-supported applications.
DevOps, Deployment and Observability
Build, release and operations practices for observable and recoverable AI software.
Technical Debt, Documentation and Teamwork
Managing future cost, decision records, collaboration and review in fast-moving AI projects.