Student Projects

This year I am offering 8 software engineering final projects, of which I will supervise at least 6. I'm also happy to consider student-defined projects in the areas of Model-Driven Engineering, Mobile Application Development, Service Oriented Architectures and Object Oriented Design and Development. A selection of strong projects I have supervised in the past is available here.

Please feel free to contact me for any questions, clarifications, or to arrange a meeting and discuss the project(s) of your interest in person.

Please note that the projects below are available to current York CS students. If you are looking for a PhD project, please click here.

YAML as a Textual Modelling Language

Suitable for BSc

Textual languages for modelling, such as HUTN and ESON , allow models to be represented using text instead of diagrams. YAML is a human friendly (and widely used) data serialization format. The aim of this project is to investigate how EMF models can be represented in YAML and to implement an advanced editor for YAML-based models, that provides features such as content assistance, code completion, reference navigation and an outline view. (more...)

A Multi-Threaded XMI Parser

Suitable for BSc

The Eclipse Modelling Framework (EMF) is one of the most widely-used modelling frameworks both in academia and industry. By default, EMF models are persisted in an XML-based format called XML Metadata Interchange (XMI), which is essentially XML with IDs for cross-referencing model elements. The XMI parser that ships with EMF is single-threaded and hence does not make full use of the capabilities of contemporary multi-core developer workstations.  (more...)

Auto-Layout of Simulink Diagrams

Suitable for BSc

Matlab Simulink is a commercial graphical language, which is widely used in embedded systems industries (e.g. automotive, aerospace) for modelling and simulation of control systems. Surprisingly - given its popularity - the Simulink modelling environment does not provide built-in diagram auto-layout capabilities.  (more...)

Domain Specific 3D Modelling

Suitable for BSc

In the field of 2D graphical editor development, frameworks such as MetaEdit+, GMF/Eugenia , Graphiti and more recently Sirius have drastically reduced the effort and expertise required to develop and maintain diagram-based editors for domain-specific languages. Conversely, there is virtually no support for developing domain-specific 3D editors. (more...)

Semantic Analysis of Docker Compose configurations

Suitable for BSc

Compose is a configuration language that enables the definition of multi-container Docker applications. Using Compose, engineers can define the operation environment of distributed applications at a high level of abstraction.  (more...)

Using Machine Learning for HTML/CSS Linting

Suitable for BSc

HTML/CSS/JS frameworks such as Bootstrap provide a wealth of built-in components and styles for developing modern web-based UIs. Similar frameworks have been developed internally in many organisations to standardise the look and feel of large websites. Such frameworks come with a lot of implicit styling rules (e.g. in Bootstrap, "column" divs are expected to be found only under "row" divs).  (more...)

Hybrid Distributed Processing Architectures

Suitable for BSc

State-of-the-art stream processing frameworks such as Apache Spark and Flink provide facilities for distributing the processing of streams of incoming data (e.g. end-user events, incidents) over a large number of computing nodes and are extensively used in organisations such as Amazon, TripAdvisor, Netflix, Alibaba etc. One of their main current limitations is the assumption that all computing nodes are equally capable of carrying out all types of processing involved in the execution graph.  (more...)