AI-Augmented Software Engineering - Reimagining the Software Engineering Life Cycle (SDLC)
Principal lecturers: Prof Neil Lawrence, Dr Christian Cabrera Jojoa
Taken by: MPhil ACS, Part III
Code: L174
Term: Lent
Hours: 16 (8 x 1hr lectures + 8 hrs supervised practicals)
Class limit: max. 30 students
Prerequisites: Good programming skills in at least one programming language, knowledge of software development methodologies (e.g. Agile), software engineering, and fundamentals of artificial intelligence.
timetable
Aims
This course aims to equip students with a multidisciplinary set of skills for transforming the software development life cycle (SDLC) using the latest AI advances. While different stakeholders in the SDLC have core competencies and responsibilities (e.g., developers write code), they also perform multiple additional tasks outside of their core competencies (e.g., documentation, meetings and discussions, training). Therefore, there are multiple opportunities to use AI to assist or automate SDLC tasks, even outside the core competencies. The course develops students' abilities to recognise opportunities where AI is potentially beneficial, providing empirical evidence on how to transform SDLC with the help of AI. Part of these practical aspects will focus on establishing multi-agent systems for managing the systems engineering pipeline. Students will utilise this knowledge to transform SDLCs in existing organisations or start their own companies and software products with innovative ideas for the current market. The insights provided in this course are based on cutting-edge industrial case studies and fundamental scientific conclusions about the goals of software engineering and the roles that humans have and will have in this process. Furthermore, we include conclusions from use cases regarding the business and management changes in the presence of AI. This multidisciplinary approach enables students to construct knowledge they will use to conduct critical research and advance software engineering beyond technical skills. Students will be able to continue their research in AI-enabled software systems, human-machine interaction, and the adoption of AI in society.
Objectives
1. Identify SDLC tasks, processes, and methodologies that are effort-intensive or cognitively demanding, making them strong candidates for AI assistance;
2. Articulate the practical and theoretical limitations and benefits of AI relevant to the SDLC scope;
3. Assess the immediate and long-term benefits and drawbacks of adopting GenAI in SDLC;
4. Evaluate the readiness of an organisation for the adoption of GenAI in SDLC (skills, roles, processes, and methodologies) and suggest adequate adjustments;
5. Articulate the business value of AI adoption within SDLC;
6. Implement AI-enabled SDLC pipelines using multi-agents.
Syllabus
Eight sessions are reserved for teaching, and each session will focus on a different topic:
1 .Foundations of AI for Software Engineers (AI properties relevant for software engineering)
2. Introduction to the Software Development Life Cycle - SDLC (actions, challenges, sources of complexity, stakeholders and their responsibilities, skillsets)
3. AI as a technology in the SDLC: adequacy evaluation process (theoretical and evidence-based evaluation of AI as a technology for particular SDLC challenges)
4. AI-enabled software methodologies (raw use of AI vs abstracted AI-enabled methodologies and toolchains hidden behind interfaces)
5. Multi-agent systems approach in SDLC (implementation of AI-enabled SDLC using a multi-agent approach)
6. Deployment of multi-agent systems (operations and deployment of AI-enabled methodology through deployment and CI/CD of multi-agent systems)
7. Linking AI systems to self-adaptive properties for software maintenance (self-adaptive properties of software in conjunction with adaptive properties of AI)
8. Measurement methodologies and measurement metrics (evaluating the impact of AI adoption on classical SDLC-relevant metrics, business benefits)
Practical sessions will follow teaching sessions. These sessions are implementation-oriented and will allow students to experiment with and learn from cutting-edge state-of-the-practice methodologies and tools in AI-enabled software engineering. At the beginning of the course, students will form groups and choose a software project. After every teaching session, students will receive a set of assignments to advance their software project.
practical sessions:
1. Distill and re-train a small language model for software engineering: students will distil a small language model from an open-source LLM and fine-tune it with an open-access dataset.
2. Group project idea and SDLC details: students will scope their group project idea in SDLC terms. They will identify relevant stakeholders, their actions, and deliverables. Finally, students will use their knowledge of AI for software engineering and SDLC to specify conceptual AI-enabled methodologies (actions in SDLC augmented with AI).
3. Create an AI agent: students will learn how to create and configure AI agents. They will use this exercise to learn about conceptual and practical configurations relevant to AI agents. Finally, they will identify actions in SDLC that AI agents can augment.
4. Create a multi-agent system: students will implement a multi-agent system to automate and assist with particular SDLC actions.
5. Deploy a multi-agent system as a form of AI-enabled SDLC: students will specify AI-enabled methodologies. They will use AI agents to implement these methodologies.
6. Tools complementing multi-agent SDLC: review of existing state-of-the-practice tools that complement adoption of agents in SDLC (e.g., support tools, DevOps, MLOps, AIops, templates).
7. Create infrastructure that supports AI-enabled SDLC: the goal is to abstract AI-enabled tasks into a toolchain that SDLC stakeholders can use through standardised interfaces, without explicit knowledge of AI. For this, it is necessary to integrate non-AI tools, design workflows, create abstractions, data templates, and predefined prompts.
8. Business analysis of the AI adoption in SDLC: change of skills, focus of work, and affected parts of development methodologies.
Assessment
Mini Project (80%)
Students will work in small groups (2–3 students) on a scoped software project. Each student will assume a set of roles in the SDLC (e.g., requirements engineer, architect, developer, tester).
The project is structured as a controlled comparison between two modes of development: Phase 1 (non-AI): students develop selected features of a software system without the use of AI tools;
Phase 2 (AI-enabled): students extend and refine the same system using AI-assisted approaches, including AI agents and supporting tooling.
The scope of the project is limited to a prototype-level implementation, focusing on representative SDLC activities, ensuring alignment with the expected workload of the module.
Assessment components include the group project report and supporting artefacts (80%). Students submit a structured report (maximum 6 pages) describing their project and analysis, supported by submitted artefacts (e.g., code, design documents). The report must include evidence of individual contributions within SDLC roles. Each student will assume responsibility for one or more SDLC roles (e.g., requirements engineering, software development, testing, architecture), and will describe the artefacts they produced within their role(s), compare their experience in Phase 1 (non-AI) and Phase 2 (AI-enabled), analyse how AI affected productivity, quality, and decision-making in their role, and critically evaluate the strengths, limitations, and risks of AI in that context.
The report must also include description of the software system and selected SDLC scope, justification of design decisions across both phases,and comparative analysis of Phase 1 and Phase 2 across selected SDLC roles, critical evaluation of the benefits, drawbacks, strengths, limitations, and trade-offs of AI in the development process, as well as long term effects such as changes to the roles, focus of work, distribution of effort, and collaboration mode, and engagement with relevant research literature. Assessment focuses on the quality of technical artefacts, depth of analysis, and ability to critically evaluate AI-enabled software engineering practices.
Group presentation (20%)
Requires students to deliver a presentation (maximum 12 slides) demonstrating the implemented system and key artefacts, the transition from non-AI to AI-enabled development, evidence of individual contributions within SDLC roles, and key findings from the comparative analysis.
Assessment focuses on clarity of communication, evidence-based reasoning, and ability to justify design and methodological choices. Primary evaluation properties include critical thinking and engagement with relevant research, understanding of AI capabilities, limitations, and trade-offs, understanding short (e.g., automation) and long term (e.g., effort distribution, skills and tooling requirements) consequences of AI adoption, and depth and rigour of comparative analysis (AI vs non-AI).
Recommended Reading
1. Engineering AI Systems: Architecture and DevOps Essentials, Ingo Weber, Liming Zhu, Len Bass, Qinghua Lu, 2025;
2. Digital Transformation: A Holistic Perspective for Business Leaders, Jan Bosch, 2024; 3. Artificial Intelligence: A Modern Approach, Global Edition, Stuart Russell, Peter Norvig, 2021;
4. The Software Architect Elevator: Redefining the Architect's Role in the Digital Enterprise, Gregor Hohpe, 2020;
5. Shai Shalev-Shwartz et al., Understanding Machine Learning: From Theory to Algorithms. New York, NY, USA: Cambridge University Press, 2014;
6. Software Architecture in Practice, Len Bass, Paul C. Clements, Rick Kazman, 2012;
7. The Atomic Human: Understanding ourselves in the age of AI. Neil D. Lawrence, Random House, 2024.