Phd students

Provenance for configuration language security
Weili Fu
Automated planning for configuration changes
Herry (2014) h thesis
Modelling system administration problems with CSPs
John Hewson (2013) h thesis

Prospective Phd students

I would welcome enquiries from prospective Phd students who are interested in applying rigorous techniques to the configuration and management of large computing systems. I don't currently have any predefined topics, but if you have some ideas in an area related to my research, or if you are interested in one of the general topics listed below, then I would be happy to discuss this with you by email. You will probably find it useful to read the following beforehand:
h contacting a potential supervisor h my research interests

A Phd project involves your own original research, and as part of the formal application, you would need to submit a brief proposal outlining your own views on the intended topic. This does not have to be a firm, detailed plan, but it should demonstrate that you have a reasonable background knowledge of the area, and that you have a suitable project. We would also use this document to assess your writing ability and general knowledge of the subject area. Depending on your background, you would probably need to do some preliminary reading in order to prepare a good proposal. You would then need to make a formal application here:
h how to apply

You would need to have sufficient funding to cover fees as well as travel and living costs. If you do not already have this, there are some suggestions for funding sources here:
h fees & funding

General information for prospective postgraduate students in Informatics is here:
h prospective postgraduates

Some suggested topics

Human factors and ergonomics of configuration languages

There is a good deal of evidence to suggest that configuration errors are responsible a large proportion of system failures. These are often due to misunderstandings about features of the configuration language or related procedures. There has been very little work done on the usability of such languages, and it would be interesting to study the way in language constructs are (mis)understood by real system administrators, and how common errors occur. This would be very useful in informing the design of new languages and configuration tools ...

Configuration language design

In contrast to modern programming languages, most current production configuration languages are defined by a single implementation which often has no clear specification for the semantics, or even the syntax. This makes it difficult to create alternative implementations, or other tools which process the language in different ways. The lack of clarity is also a potential source of configuration errors which risk creating a weakness in large system whose application-layer software has been verified with care. This motivates the development of new languages which support configuration-specific operations with a clear and simple semantics.

Intelligent analysis of system configurations

Modern-day computing infrastructures are complex, collaborative systems involving a plethora of interacting components, in a continual state of flux, which are managed in a federated way by different people and organisations. In the absence of centralised control and global co-ordination, such infrastructures evolve organically in unpredictable ways. The result is usually a system which less efficient, less reliable and difficult to manage. However, it is possible to imagine a set of intelligent agents gathering information about the configuration of a system and its running state, hypothesising about problems, and making suggestions for improvements.

Mixed initiative system configuration

Modern computing infrastructures are usually managed by specifying their configuration in a special-purpose configuration language which is then deployed by a configuration tool. This specification is usually a large collaborative endeavour which ultimately specifies every detail of the resulting system. This is a source of complexity (and hence error), as well as unnecessarily constraining the available options. Our previous work has shown that a constraint-based approach to the specification allows many of the details to be filled-in automatically. But such arbitrary, automatic choices of these details may not always be appropriate and administrators will usually want to understand and possibly influence a particular choice. This motivates a "mixed-initiative" approach which supports a dialog between the administrator and an automatic system to select an acceptable configuration.