Research Information

Research Interests

My main research interest is in modelling and model-driven development. Key questions that seem to crop up again and again are: What is the right abstraction level for a specific modelling task and how can developers move between abstraction levels as required? Looking at the different roles involved in software development, who knows what and how can these different roles be supported by appropriate modelling languages and model-driven infrastructure to help them build consistent complex systems? Supporting different viewpoints requires developing different modelling languages; how can we support the efficient and effective development of such languages?

I have been involved in the definition of the Object Constraint Language (OCL) in its version 2.0 an extension to the Unified Modelling Language (UML). Over the years, this language keeps coming up both as a useful tool for research and an interesting case study in language design (especially, I guess, because we made plenty of mistakes in the original definition, which are now there to be learned from). Later on, I was involved in a project on development processes, modelling languages and middleware support for component-based systems and their non-functional properties. This led to my doctoral dissertation, in which I have proposed a formal semantic framework for specifying non-functional properties of component-based systems. After having studied non-functional properties of component systems, recently, I have spent some of my time thinking about model-driven performance engineering.

Having worked on component systems, I was naturally led to think about modularisation techniques, especially at the modelling level. I find particular fascinating the trade-off between flexible adaptation of modules to enable more wide-spread reuse, and information hiding and encapsulation to make reuse safe and reliable. In this context, I am currently working at Lancaster University in the AMPLE project, where we are looking at using aspect-oriented and model-driven techniques for product-line development. I am also involved with work on invasive software composition, based on the Reuseware tool kit. Reuseware provides a very flexible basis for experimenting with different notions of aspect-orientation at the modelling level. Recently, we have been able to use this to make the definition of domain-specific modelling languages less complex by using modularly defined model transformations. This has led me to look at the development of modelling languages in general, and in particular at how to structure them in a modular fashion to make it easier to customise them for particular purposes. Ironically, one of the first languages that we tried to better modularise is OCL.

As a pet project, I have become interested in formally modelling design patterns, more specifically their intent. This has lead to a paper at MODELS 2007. I am currently looking for partners with whom to further pursue this strand of research.

I have recently started an on-line bibliography of research on non-functional properties and requirements. This is still in its beginnings. If you have any pointers to other literature that you think should be included, please let me know.

Community engagement

Below is a selection of things I do in the community.

Organisation

I have been co-organising the following events: SLE 2008, WSRCC'09, MiSE 2009, MiSE 2008, MiSE 2007, NfC'05, NfC'04, Roles 2007.

PC Membership

Reviewing

I have done reviews for the following events and journals: Journal on Software and Systems Modelling (SoSyM), ACM Computing Surveys, MoDELS, FASE, UML, Sci. Comp. Prog..

Current Projects and Activities

I am currently a Marie-Curie Fellow on the RIVAR project on Rich Interfaces for Verifiable Aspect Reuse.

I am one of the administrators of the Reuseware project, which provides a framework for language-independent invasive software composition.

Past Projects and Activities

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).

A Java framework for point of sale applications that is being used in undergraduate lab courses.