My research is in software engineering. I am interested in capturing existing good practice and domain knowledge in automatable and analysable forms to improve software quality. To this end, I study
- the use of domain-specific modelling languages in various contexts, for example in health care, biology, AI planning, ...
- the design and development of modelling languages and model transformations in the context of model-driven engineering. A particular focus here is on techniques for modularising models and transformations to enable modular reasoning and reuse. Example work includes work on Reuseware and on the use of GTS morphisms for DSL modularisation.
- high-level language and tool support for optimisation. Check out our MDEOptimiser tool.
- the specification and analysis of quality-of-service (QoS) properties of systems. QoS properties make or break a system's success. Example work in this area includes QML/CS, a generic QoS specification language based on temporal logic of actions, and the current extension of this idea in work using GTS morphisms to modularise and generalise the specification of QoS analyses in the context of the Palladio component framework.
- the way in which software developers go about their work and what this implies for the tools they require. Example work includes research on assumptions made by aspect programmers and research on capturing the structure of software design dialogues.
- the way in which we teach programming and software development to learners of all ages and how this can be improved. Example work includes research on the use of software frameworks in UG teaching, automated assessment of programming tasks, and work on concept development in learners of programming.
In this King's Together project, we are investigating opportunities for applying performance modelling and agent-based modelling techniques to the problem of optimising patient flow in hospital settings.
This student summer internship investigates integration of symmetric aspects into Epsilon's new EGX language for scheduling code generators.
A UG Research Fellowship has been funded to support a systematic review of recent literature on finding design patterns.
I was PI for KCL in the RELATE FP7 Marie-Curie Initial Training Network on model-driven approaches to service development in the Cloud.
I have been a Marie-Curie Fellow on the RIVAR project on Rich Interfaces for Verifiable Aspect Reuse.
From October 2009 to September 2010, I was work-package leader for work package 2 "Architecture" of the AMPLE project, a European project on aspect-oriented, model-driven product-line engineering. In this context, I co-developed VML* a family of languages for variability management.
I was involved, together with Jendrik Johannes and Sebastian Cech, in the EU IST IP MODELPLEX, a project on providing model-driven solutions for complex systems development.
I was one of the administrators of the Dresden OCL Toolkit, a set of tools for evaluating OCL constraints.
I was one of the members of "COMponents with QUantitative properties and ADaptivity", a DFG-funded research project, which ran until October 2004.
I have been one of the co-authors of the submission that eventually became the OMG's specification for version 2.0 of the Object Constraint Language (OCL).
I am always interested in supervising PhD students. My research interests span the fields of model-driven development, non-functional properties, and modularity. If you want to work towards a PhD in this space, please do not hesitate to contact me. You will find that it helps if you have actually read some of my more recent work and can make a research proposal that is related to my interests. I have written up some notes for prospective and current PhD students, which I encourage you to read before contacting me about working towards a PhD with me. A list of potential topics is also available.
My MSc and BSc project topic offers will be made available through the normal Departmental channels.
I am second supervisor for the following student(s): Faisal Almisned, Krikor Maroukian, Ravinder Zandu.
I have previously supervised the following student(s) (among others): Abdulrahman Alreshidi, Holger Kampffmeyer (MSc), Nur Azyyati Ahmad, Aakriti Anand (MSc), Annalisa Gopie (MSc), Frederico Emmediato (MSc), Dhruv Ahuja (MSc), Vineet Gupta (MSc), Vasanth Kumar Jagadeesh (MSc), Dionysios Efstathiou, Kleopatra Chatziprimou.
I have been asked to give talks at the following occasions:
- Towards Modular and Verified Model Transformations; University of York, May 02, 2012
- Meta-X: Basis for Efficient DSL Development; University of Middlesex, July 05, 2012
- Modularity in Models and Transformations; Royal Holloway, November 20, 2012
- Non-functional Properties in Software Architecture; University of Malaga, Spain, November 29, 2012
- Putting Engineering into MDE: Components and Contracts for Models and Transformations; Keynote XM workshop at MODELS 2014, Valencia, Spain
- Building flexible analysis: Modular formal specification of QoS and QoS analysis -- Keynote FESCA 2015