I have two lines of research. One is testing autonomous robot software by simulating it in challenging environments; the other is studying the real-world effectiveness of software testing and safety analysis techniques. These two lines converge in my most recent EPSRC-funded project, in which I am developing a situation coverage metric that will help answer the question "What is an adequate level of testing for an autonomous vehicle, in terms of the number and range of situations it has been simulated in?" In parallel with that, I will be working out how that answer can be used as part of quantitative safety assessment to decide whether a given robot control program is safe to deploy in the wild.
Andrew Rae, Rob Alexander, John McDermid Reliability Engineering and System Safety, May 2014
There’s no question that quantitative risk assessment is a powerful idea, but the flaws inherent to it (or common to its execution in practice) are serious and worrying. This paper pulls together years of criticism of such risk assessment, and arranges the many identified types of assessment flaws into a set of "maturity levels". In this structure, flaws at a lower level are more fundamental and serious, and are thus symptoms of a less mature risk assessment process. This has potential to guide both practitioners (in assessing the maturity of their practices) and researchers (in deciding what problems warrant the most research attention).
Dimitris Kolovos, Enterprise Systems
My main area of research is Model-Driven Engineering (MDE). MDE is a disruptive approach to Software Engineering that raises the level of abstraction from implementation-level artefacts (e.g. 3GL code, configuration files), which are typically hand-crafted through labour-intensive and error-prone processes, to domain-specific models. MDE then advocates the use of model transformation techniques to derive the required implementation-level artefacts from the constructed domain-specific models in a consistent and automated manner. Applications of MDE in industrial projects have demonstrated up to 10x productivity improvements.
Since 2006, I have been leading the development of a widely-used open-source project (Epsilon - http://www.eclipse.org/epsilon) under the Eclipse Foundation, which provides a family of state-of-the-art languages and tools for MDE. Over the last few years, Epsilon has been used to support MDE processes in organisations such as NASA, BAE Systems, Siemens, Rolls-Royce, THALES and IBM, and for research and teaching purposes in several universities across the globe. I am currently a principal investigator and the technical director of a collaborative EC-funded project (MONDO -
http://www.mondo-project.org/), which aims at tackling some of the major scalability concerns related to MDE.
Dimitris Kolovos, Richard Paige, Fiona Polack Theory and Practice of Model Transformations, 2008
This paper provides an overview of a widely-used model transformation language implemented atop Epsilon, and demonstrates how Epsilon can be used as a foundation for developing consistent and interoperable model management languages. To date, the paper has been cited 138 times according to Google Scholar.
I am an interdisciplinary researcher working in the York Centre for Complex Systems Analysis. My research can be categorised with two overarching themes. First, I use computational models and statistical analysis of large datasets to study ecological and evolutionary systems. Second, I take inspiration from biology to build intelligent systems such as swarming robots. My study of biological systems often involves the development and use of network analysis. For example, I have published methods papers, and studied systems from killer whale leadership networks, to ant colony transport networks
E.A. Foster, D.W. Franks, S. Mazzi, S.K. Darden, K.C. Balcomb, J.K.B.Ford, & D.P. Croft (2012) Science, 337, 2012, 1313.
Will Smith, Computer Vision & Pattern Recognition
My research is in the area of computer vision but also has links to computer graphics, computational geometry and psychology. My two main interests are photometric vision (using the properties of light and reflectance to tell us about object shape and material properties) and statistical face modelling (learning the ways in which faces vary by building models of the variability in a sample of faces). The two come together when we try to analyse an image of a face. The ultimate goal of my research would be to be able to build a very high quality relightable 3D model of a face given only a single image. If we could do this, we could predict how the face would look in any pose or under any illumination condition. This has obvious application in face recognition and forensic imaging but is also useful in animation (for example building avatars of users from images) and visual effects (compositing face images or videos into new 3D scenes). Many of the problems I am interested in solving are also of interest to psychologists. They would like to establish how the brain represents and stores faces to better understand the capabilities and limitations of human face recognition. We can help them probe these representations by producing stimulus images in which different factors of appearance are carefully controlled.
“Inverse rendering” seeks to invert the process by which an image was formed. For example, given a photograph, you may wish to estimate how the scene was lit. In this paper, we show that restricting the inverse rendering problem to faces and using a statistical model allows us to estimate all of: facial texture, diffuse lighting, specular reflectance and camera properties from a single image. This is useful for face recognition and editing face images by changing the illumination.
I am interested in high-performance concurrent systems. The rise of multicore has made concurrency a critical part of social and scientific infrastructure, but it remains extremely difficult to get right. Fixing this means answering three related questions. First, how should concurrent systems behave? Second, how can we guarantee they are reliable? Third, what are the constraints on their design? I use rigorous engineering mathematics to try to solve these problems.
C is one of the world's most popular programming languages, so it's a surprise to discover that its concurrency semantics is poorly understood. In this paper, we explore how concurrent libraries can interact in C. Unsettlingly, we discover that C's concurrency model violates several essential properties, making it difficult to build truly reusable concurrent systems in C.