Research Information
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.
I did a Computerphile video on model-driven engineering (MDE) and DSLs; you can find it here. Find some other videos of a talk on DSLs I gave for the London Java Community here and here.
MDENet is the expert network for model-driven engineering. I am the director of this EPSRC funded network, together with Perdita Stevens from the University of Edinburgh. More information about the network is available on the network website.
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.
First Supervisor
I am first supervisor for the following student(s): Thomas Mead, Thomas Godfrey.
Second Supervisor
I am second supervisor for the following student(s), among others: Faisal Almisned, Krikor Maroukian, Ravinder Zandu.
Previous Students
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, Paraskevi Zerva, Kleopatra Chatziprimou, Alexandru Burdusel.
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).
Organisation
I have been or am co-organising the following events: Member of scientific committee GReTA (Graph Transformation Theory and Applications), Tutorials @ MoDELS'18, Workshops @ STAF'17, Demonstrations @ MODELS 2013, Research Project Symposium @ ECOOP 2011, Doctoral Symposium @ SLE 2010, SLE 2008, WSRCC'09, MiSE 2009, MiSE 2008, MiSE 2007, NfC'05, NfC'04, Roles 2007, secretary and treasurer of AOSA, the association steering the Modularity and Programming conference series.
PC Membership
I have been or am PC member for the following events: MODELS'13, AOSD'13, MODELS'12, MODELS'11, GPCE'11, SLE 2012--2010, 2008, ICECCS 2010-12, GPCE'09, FESCA, ECMDA, QoSA 2009, QoSA 2008, AOM@MODELS 2009, NFPinDSML'09, NFPinDSML'08, M-ADAPT 2007, CSDUML 2006, CMDS 2005.
Reviewing
I am a member of the editorial board of the International Journal on Software and Systems Modeling (SoSyM). I have been invited to review for the following events and journals, among others: IET Software, Journal on Software and Systems Modelling (SoSyM), ACM Computing Surveys, FASE, Sci. Comp. Prog., IEEE Software.
Invited Talks
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