Software systems are supposed to help support human activities, but all too frequently they are a source of frustration. One source of that frustration is that the design is not fully faithful to the requirements, but once translated, the requirements also become transformed (and mis-represented) as hard-coded decisions within the program. This makes change difficult (the translation and transformation processes need to be repeated) and costly (typically requires programmer who knows how the rest of the system works).

One way to mitigate this problem is to use a formal representation of the requirements that is comprehensible both to human and to program in the form of data to be interpreted. Consequently, requirements change can be reflected in the modification of this formal representation leading to modified behaviour of the system.

Authoring such formal specification however, takes us back to the need for skilled and expensive personnel. Hence we get to the aim of this project which is to evaluate available tools to extract policy specifications from textual specifications, such as statutes, regulations, laws or procedures, to generate formal representations in the action language InstAL and to develop an appropriate policy unit test framework to provide assurance that policies achieve intended goals.

Some potential resources are:



For several decades now, science’s grand challenges have dominated the allocation of computing resources resulting in a focus on high performance (or capability) computing and the creation of national HPC centres for the physical resources.

The increasing provision of capacity services through cloud computing and virtual machines opens up an avenue for the development of computationally demanding applications for which scale is more of an issue than pure numerical calculation power.

The objectives of this project are:

  1. to develop a methodology for the specification and creation of customized virtual machines to deliver Platform as a Service (PaaS) functionality
  2. to utilize Amazon’s EC2 service to configure and deploy instances of different kinds of PaaS (access provided)
  3. to demonstrate the application of this technology to large-scale social simulation (through an existing simulation) using the Jason agent platform.

Needs: strong programming skills, especially Java; good knowledge of networking; capacity to work with large software frameworks;


Quadcopters can be seen as a form of robot that can move in three dimensions. Of course, this complicates a lot of things, navigation especially, but there are also gains in that it can be easier to approximate the location of the robot relatively accurately after a movement, because there are fewer mechanical interactions (such as friction) affecting motion. There are potentially a large number of projects that can be put forward around the problems – and opportunities – created by UAVs, hence this generic project proposal. Here are some specific ideas, some of which may overlap, but other proposals are welcome:

  • Steering multiple UAVs using gesture and providing usable feedback to a human operator (but see 2013/14 projects by Paul Johnson and Jack Franklin first)
  • Convoy creation and management with UAVs
  • Feeding stations for UAVs to recharge themselves
  • Vision analysis for SLAM (simultaneous localization and mapping)
  • Surveying of buildings by automatic flight plan construction – needs on-the-fly (!) adaptation to capture complicated features (builds on 2013/14 project by David Paris)
  • Registration of visible and infra-red images to construct thermal surveys of buildings
  • Mapping the YAdrone API to work with the mikrokopter flight controller (NEW!)

The supervision team for these projects includes: Matt Brown, Julian Padget. Others tbc.