UCL Logo Software Systems Engineering Group Logo

Research Interests
PhD Students
Former PhD Students
CV (in PDF)
ICSE 2007

Research Interests

I began my research career by investigating the database support that is necessary to build integrated and process-centred software engineering environments. I obtained my PhD by showing that object database management systems can improve the flexible construction of integrated software engineering environments. The inherent disadvantages of many database systems, though, lie in their centralized nature which causes performance and scalability bottlenecks.

When moving to the UK and starting to collaborate with fellow academics and work with research fellows and research students, I became interested in architectures for decentralized process-centred software engineering environments that were also tolerant to inconsistency. I have investigated the principles of process-centred software engineering environments that tolerate non-compliance to prescribed processes. I have also researched methods and principles for managing software engineering artefacts using lightweight Web technologies. I have devised a method for handling UML diagrams in standard web browsers using the scalable vector graphics standard that emerged at the time. This work has influenced the OMG UML 2.0 standard for diagram interchange, that I co-authored. Moreover, I have devised the principles and theoretical foundation for managing inconsistencies of distributed semi-structured software engineering artefacts. This work has led to a patent and formed the basis of the UCL spin-off Systemwire Ltd.

Seeking to enable distribution of software engineering environments, I became interested in distributed object middleware. My research interest then broadened and generalized to different styles of middleware-based distributed software architectures to achieve real-time publication of data and the integration of disparate applications in enterprises.

Distributed software architectures are determined by a given set of available computational resources and the non-functional requirements, for example the performance, scalability and reliability, that they need to provide. For the last five years, the research agenda that I pursued within my research projects has been focussed on the investigation of principles, formalisms, methods, techniques and tools that, given a particular mix of non-functional requirements and computational resources, can assist in the systematic engineering of middleware-based software architectures that are fit for purpose. I have investigated the integration of the UML with a process algebra to facilitate reliability and prove absence of deadlocks and safety problems, as well as livenes anlaysis. Moreover, I am investigating the use of economic models, in particular real option theory, to assess the stability of a distributed software architecture.

A principle that has emerged in support of non-functional requirements, particularly in resource constrained environments, such as mobile systems is reflection. I have investigated and built prototypes for various forms of reflective middleware for mobile computing and am currently investigating the exploitation of reflection at the network and middleware level to address scalability, performance and reliability in the TAPAS, MANIAC and Promile projects. In the Promile project, I have investigated programming language principles for a programmable router platform that allows applications to influence how their network flows are being processed. I have demonstrated using an image processing application in the Maniac project that the principles of reflection work in practice. In TAPAS, we have devised a language to express service level agreements between autonomous parties that provide components and infrastructure for a distributed system in order to enable both the network and the middleware to monitor and reflect on the provision of non-functional requirements.

This year, I have started a number of e-science collaborations that explore distributed software architectures for protein folding, polymorph prediction and simulation of environmental processes at the molecular level. In these projects, we devise distributed software architectures that are built on Grid middleware, such as implementations of the Open Grid Services Architecture that meet particular scalability requirements.

My future research agenda will focus on establishing an engineering discipline for the construction of distributed software systems using middleware. This research will need to be collaborative, inter-disciplinary and applied in nature. I expect my research to reach out from requirements engineering and software architecture to testing of distributed components and component deployment. As a result, I hope to establish UCL as one of the internationally recognized centres of excellence for distributed software engineering.

Last Updated: August 2003
Contact: Page Maintainer