Skip to main content

A Machine Learning Approach for Migrating to Microservices

This project aims to advance the state of the art by defining an approach that uses machine learning techniques to automate the migration of monolithic software into microservice architecture. The purpose is to aid software engineers in identifying candidate microservices from existing software systems by using features and metrics of the code.

The main research question is “How can we use machine learning techniques to extract microservices from existing software?”

The following sub questions can be defined:

  1. What are the criteria that need to be analysed in the monolithic to define microservice architectural elements? 
  2. How can we combine efficient machine learning techniques to perform the migration?
  3. What methodology and tool support can be defined to facilitate practitioners in their migration to microservices?

Successful applicants will be able to demonstrate skills and experience of object-oriented analysis and design, software architecture, microservices, machine learning and familiarity with software repositories such as github. You should also be able to conduct critical background and literature reviews.

You should be highly motivated, able to work independently as well as in a team, collaborate with others and have good communication skills. Project and time management skills are essential.

How to apply

If you are interested in applying for the above PhD topic please follow the steps below:

  1. Contact the supervisor by email or phone to discuss your interest and find out if you woold be suitable. Supervisor details can be found on this topic page. The supervisor will guide you in developing the topic-specific research proposal, which will form part of your application.
  2. Click on the 'Apply here' button on this page and you will be taken to the relevant PhD course page, where you can apply using an online application.
  3. Complete the online application indicating your selected supervisor and include the research proposal for the topic you have selected.

Good luck!

This is a self funded topic

Brunel offers a number of funding options to research students that help cover the cost of their tuition fees, contribute to living expenses or both. See more information here: The UK Government is also offering Doctoral Student Loans for eligible students, and there is some funding available through the Research Councils. Many of our international students benefit from funding provided by their governments or employers. Brunel alumni enjoy tuition fee discounts of 15%.

Meet the Supervisor(s)

Nour Ali - Dr Nour Ali is a Senior Lecturer in the Department of Computer Science at Brunel University London since June 2017.  She currently co-heads the Brunel Software Engineering Lab ( and is the Director of Undergraduate Placements, She received her PhD in Software Engineering from Universidad Politecnica de Valencia – Spain and has a Major in Computer Science from Bir-Zeit University- Palestine. Before moving to Brunel, she was a Principal Lecturer in Software Engineering at University of Brighton and held research fellowships at Lero, the Irish Software Engineering Research Centre and the Politecnico di Milano. She also has been a visiting researcher at Leicester University and Free University of Bolzen. She has been Principal Investigator and member of several research and knowledge transfer projects. Her research focuses on developing software architecture techniques, methods and tools and applying them to different challenging systems and situations such as distributed, mobile and adaptive. She has over 70 publications in journals, books and conferences. Here are links to her publications on dblp and google scholar . She also is a reviewer for top journals and national funding bodies such as EPSRC. She serves in several Programme and Organization Committees of conferences and workshops in her area and has co-edited 4 books. Dr Ali has experience of Higher Education teaching, from undergraduate to MSc level. She has a PG Certificate in Teaching and Learning in Higher Education from the University of Brighton. She is also Fellow of the Higher Education Academy (HEA).

Related Research Group(s)

Brunel Software Engineering Lab

Brunel Software Engineering Lab - Promoting all sides of empirical and formal investigations of software artefacts – code, formal models and human aspects.