Skip to navigation | Skip to main content | Skip to footer

COMP33711: Agile Software Engineering (2010-2011)

This is an archived syllabus from 2010-2011

Agile Software Engineering
Level: 3
Credit rating: 10
Pre-requisites: No Pre-requisites
Co-requisites: No Co-requisites
Duration: 11 weeks
Lectures: One two-hour session per week
Labs: Four practical exercises on writing models and using models as the basis for implementations
Lecturers: Andy Carpenter, Suzanne Embury
Course lecturers: Andy Carpenter

Suzanne Embury

Additional staff: view all staff
Sem 1 Lab 3rdLab Fri 13:00 - 15:00 -
Sem 1 Lecture IT407 Fri 13:00 - 15:00 -
Assessment Breakdown
Exam: 70%
Coursework: 30%
Lab: 0%

Themes to which this unit belongs
  • Agile Methods


As our politicians have recently been keen to emphasise, change is an inescapable fact of modern life. When applied to software products, even over the lifetime of a relatively small product, we can expect to see requirements, customers and technologies change. For more complex products, in addition to these changes, markets, laws and regulations, organisational structures and cultures may all change. Even our understanding of the best way to reach a solution, will undergo radical changes over the lifetime of a project.

Earlier software engineering approaches failed to take this onslaught of change into account. Consider waterfall-based approaches: these rely on the ability of produce comprehensive specification documents early in the project, which can then be set in stone, after which development happens followed by testing late in the project, when significant amounts of code have been written. Such an approach is fundamentally at odds with a situation where change will happen. The result of using such approaches was very large cost overruns on project's that delivered late, or failed to deliver any useful product.

An agile approach recognises that change will happen. Products are delivered incrementally, with testing used from the early stages of a project to both test code and detect when a change breaks functionality that has already been developed. To achieve this requires processes, tools and techniques that minimise implementation development effort and maximise code quality. How these processes, tools and techniques make software development agile is what this course unit examines.


This course unit continues the exploration of agile software development ideas that was begun in the second year software engineering project. The aim is to give students a broad awareness of how the underlying concepts of agility, specifically the need to adapt to change, impact on both the process and technical aspects of software development. By the end of the course unit, students should be well placed to make decisions as to whether to adopt an agile or a more traditional route in various circumstances, and when using an agile approach, the tools and techniques that give the ability to respond to change.

In terms of process aspects, we will take as our starting point the four key principles that underlie agile software engineering. We will examine each one from various viewpoints: as a critique of more traditional software engineering processes and as a starting point for exploring approaches that could work better for projects likely to be subject to pressures of change. Students will have a chance to try applying some of the techniques and critiquing them.

In terms of technical aspects, we will examine how by raising the abstraction level at which software is developed and by combining this with semi-automated implementation generation, implementations can be rapidly adapted to cope with the effects of change. Students will experience some of these tools and techniques.


The course unit will contain sessions on both agile processes and agile tools and techniques.

Agile Processes:

Agile Lego:
An introduction to the course unit and basic concepts that underlie agile software engineering

What Should we Build:
Agile requirements gathering story points

How Long will it Take:
Agile planning using story points

Is this What you Want:
Test-driven development in agile projects

Whose Job is That:
Team organisation for agile projects

Agile Tools and Techniques:

Defing a Solution:
Using models to raise the development abstraction level and define constraints

Generating Implementations:

Agile Tool Workflows:
model-driven software development, model-to-model transformations and model-to-text transformations

Modelling Paradigms:
model and meta-models

Domain Specific Langauges:
text-to-model transformations

Reading List

Title: Object Constraint Language: getting your models ready for MDA
Author: Warmer, Jos and Anneke Kleppe
ISBN: 9780321179364
Publisher: Addison-Wesley
Edition: 2nd
Year: 2003
A reference text for some aspects of the practical exercises, not worth buying just for this course unit.

Title: Eclipse modeling project: a Domain-Specific Language (DSL) toolkit
Author: Gronback, Richard
ISBN: 9780321534071
Publisher: Addison-Wesley
Year: 2009
Provides a more detailed description of tools than required for this course unit.

Title: Integrating agile development in the real world
Author: Schuh, Peter
ISBN: 9781584503644
Publisher: Charles River Media
Year: 2004

Title: Model-driven software development: technology, engineering, management
Author: Stahl, Thomas and Markus Volter (and others)
ISBN: 9780470025703
Publisher: Wiley
Year: 2006
A good background read on model-driven engineering that includes an indication of its pragmatic use in application development.

Title: MDA explained: the model-driven architecture: practice and promise
Author: Kleppe, Anneke, Jos Warmer and Wim Bast
ISBN: 9780321194428
Publisher: Addison-Wesley
Year: 2003
Gives a overview of the ways in which models and transformations can be used.

Title: EMF: Eclipse Modeling Framework (2nd edition)
Author: Steinberg, Dave et al
ISBN: 9780321331885
Publisher: Addison-Wesley
Edition: 2nd
Year: 2009
Provides a more detailed description of tools than required for this course unit.