Quick Links

Here are some links to other bits of my site, for the benefit of those who might be looking specifically for them. Otherwise, here are links to the sections of this page:


For any other visitors, welcome to my more personal home page. This is now in something that is much closer to what I envisage its final form ought to be, although I guess there could be more work done on it. (Couldn't there always!)


Being boringly conventional, I've divided the rest of the page up into four main chunks. There are links if you want to jump around the chunks, or you can just read through the lot if you prefer. My eventual intention is to keep the chunks reasonably short, and put most of the detailed material in separate pages, but as you will realise I haven't got very far with that yet. The four chunks are: I hope you find the information useful!


There is a longer version of this if you are really interested, or would like to know a bit more about the history of the department.

Otherwise, there isn't a great deal to tell, since I haven't moved round much, as you'll see. I was brought up in Ilford, Essex , and I was educated at Bancroft's School.

In 1967 I went up to Leeds University as a student, and graduated in 1970 in Computational Science and Mathematics. I stayed there for a further three years, as a research student, and was eventually awarded my PhD.

In 1973 I became a lecturer at Sheffield University in what was then the Department of Applied Mathematics and Computer Science. The Computer Science part of this department eventually became a separate department in 1980, and I've been in it ever since.

I finally realised that I was a Software Engineer rather than a Computer Scientist during Doug Lewin's all-too-brief period as head of the department.  One result of this was that I ended up taking a lot of the responsibility for developing the Software Engineering degree that we started in 1988.

Partly as a consequence, I have been heavily involved in teaching matters since about the mid 1980s, including spells as:

Along the way I became a member of the British Computer Society, a Chartered Engineer and a European Engineer (Eur Ing). Eventually, in 1999 the university decided that all this deserved some recognition, and awarded me a senior lectureship.  It was at around this time that the various research interests that are described below started to flourish, and particularly the work on software engineering education.  In 2010, this led to the university presenting me with a Senate Award for Sustained Excellence in Teaching and Learning, and then two years later this led to them nominating me successfully for a National Teaching Fellowship, which was awarded to me by the UK HE Academy.

And I'm still working out quite what the next step on from this should be!

Research Interests

I'm a member of the Verification and Testing research group (VT for short), which grew out of an earlier group that tried to cover the whole of formal methods and software engineering. This was not really realistic, which is why we have sharpened up our focus, but we do still have a fairly broad range of interests. My particular concerns are as follows.

Software Engineering Education

Partly as a consequence of my personal history, one of my main research interests for most of my career has been a concern for how the subject in general should be taught, and in particular how Software Engineering should be taught. A separate page deals with my work on this in more detail.

High-Level Machines and Type Theory

A topic on which I spent quite a lot of time during the 1980s was trying to produce a formal description of what properties types would need to have, if they were to be represented directly in some kind of high-level machine architecture. The end result of this was a specification in a language that looked not unlike OBJ, which was documented in all its gory detail in a departmental research report. My efforts to get this published didn't get very far, thanks partly to the antics of a referee who sat on the paper for a year and then rubbished it. Meanwhile, the rest of the world had moved on in a different direction, and I did the same.

The report isn't available electronically, but if anybody is interested enough to email me about it I could supply a paper copy. Maybe one of these days I'll come back to the ideas and see whether I can get them published.

Methods Integration

This is the field that is concerned with trying to integrate formal and diagrammatic methods for modelling software system structures, and I have been working on trying to develop formal models for data flow diagrams, as used in many of the structured analysis and design methods. The end result has been two formalisms, as follows. A particular focus of this linking work is the problem of testing the distributed systems which these two formalisms are intended to model, and as part of this I was associated (along with other members of our research group) with the  FORTESTnetwork.

Empirical Software Engineering

While theorising about how software should be developed is all very well, eventually it is necessary to see what happens when the theories are put into practice, and this is what empirical SE is about.  It's a newer interest than the others, and is tied in very much with a project that we have developed within the VT group, which we called the Sheffield Software Engineering Observatory, or simply "the observatory" for short.  A separate set of pages deals with these in more detail.

Possible Research Projects

The research interests listed above have given rise to a variety of ideas for possible future research projects, and these are intended to be of particular interest to potential PhD students.  Since the project ideas are likely to change more frequently than the rest of this page, they are documented in a separate page.

Teaching Interests

Over the years I have taught courses in just about all areas of core computing apart from artifical intelligence, but recently most of the modules that I have been delivering have been ones that focus on various aspects of software engineering.  I have usually ended up creating web sites to support their delivery, although increasingly this support is being provided instead through our VLE (known locally as MOLE2).  The web sites still exist, but are only accessible from within the campus, via the page that lists them all.

Currently (ie for 2012-13) I shall be on research sabbatical, and so there is nothing more to say about current teaching.

Personal Interests

Jump Back to a section of this page:

This page created by A. J. Cowling, and last updated on 14 August 2012