Doing a Master's Thesis in Software Engineering
(Last updated 24.8.2021)
Important: Read these instructions before the first meeting with the supervisor.
These pages contain general instructions for Master's Theses in the area of software engineering from my personal perspective (i.e., Tomi Männistö). The instructions add to the (already bit outdated, but still valid to an extent) instructions from the University of Helsinki, Department of Computer Science as found from Quick guide to MSc Thesis or same in Finnish: Pro gradu pikaohje.
The purpose of these instructions is to help you in starting with and working on your thesis project. As each thesis project involves some common characteristics as well as some unique ones, the idea is not to follow all the instructions given here literarily. Instead, it is assumed that you have read and tried to understand the instructions in the context of your thesis project before a meeting with the supervisor. Any unclear issues are then discussed and clarified in the meetings.
Regarding the writing of your thesis, please see the instructions from the ESE sesearch group's web site: Scientific Writing – Guide of the Empirical Software Engineering Research Group
Summary of important action points
Here is a list of the main action points related to doing your thesis project. They are presented in the order that may differ from the order you do them.
- Familiarise yourself with the relevant instructions
- Summarise your idea(s) about the topic and problem on one page
- Gain basic understanding on the research methods potentially relevant to your thesis
- Refresh your knowledge on technical scientific writing
- Discuss your research approach with the supervisor
- Outline your study design
- Do the actual research work and write the thesis
- Keep the supervisor and instructor(s) up to date with your progress
- Do all things officially required following the instructions (not repeated here)
Roles
Supervisor / Instructor(s)
For the guidelines on selecting the instructor for your thesis, please visit the web pages of the department.
The instruction process can have different roles, as one instructor may come from or be related to the organisation you are doing your thesis for. Then there is someone to ensure that the thesis complies to the requirements from the university point of view, including the theoretical and research methodological basis, quality and style of technical reporting, etc.
Student
Master's Thesis is not a job for life, but when well planned and implemented just a somewhat larger and more demanding than a typical exercise. That is, you simply need to set your thesis clear (sub)goals, turn those to action items, schedule them and keep the schedule!
Making progress and keeping the schedule is your responsibility. Well, in addition to also doing the actual work and writing the thesis.
It is also your responsibility to maintain the status of the project clear and communicate the status with your supervisor. Therefore, it makes sense to follow the required practice of making notes and writing a short memorandum on each meeting with the supervisor summarising what was discussed and agreed upon.
Starting your thesis project
First of all, familiarise yourself with the relevant instructions. In particular the instructions of the study programme and the official forms required in the process.
Think about the topic you would like to address in your thesis project. If you already know your instructor, discuss with her or him the topic, schedule, goal and general conditions for the project from perspective of the target organisation if there is such. Summarise your idea(s) about the topic and problem on one page.
Arrange the first appointment with the supervisor.
In the first meeting with the supervisor, you will then discuss the topic and its suitability for a thesis project, go through the first steps in starting the work, agree on a kick-off meeting with the instructor(s), if needed, and any other practical matters relevant at that point.
In the kick-off meeting with the instructor the following topics can be addressed: the goals from the point of view of the target organisation, the schedule and milestones for the project, instruction and guiding practices to be followed, the criteria for judging the success of the project, the required paperwork, and any other business related to the thesis project.
Meetings with supervisor and instructors
Instructor(s) and the student agree on the practices for the thesis project, for example, regular status meetings and such.
The meetings with the supervisor are organised as needed. Typical meetings in the beginning are the first discussion on the topic and the kick-off meeting with the instructor(s).
During the project there can be a meeting, for example, one after the theory (literature) and research methods and a second one when the results are there and it is the time to start analysing them in detail. These are just examples, and sometimes no meeting is required as email may be sufficient.
Typically a meeting is in place when the manuscript is ready; and the instructor agrees this is the case. Before this meeting the manuscript is delivered to the supervisor and the purpose of the meeting is to go through the supervisor's comments.
In each meeting, next steps are discussed and agreed upon. The student writes a short memo on each meeting, most importantly the action points, and emails the memo to the supervisor.
Working on your thesis project
In the following, the phases of a thesis project are roughly described and some general good practices and potential pitfalls are addressed. Read through all the instructions, as they are not necessarily in the order you might apply them.
Basics for doing a thesis project
In the beginning you need to gain basic understanding on relevant research methods you're going to apply. This is important to have as a solid background for the later phases of the project, as it is impossible, for example, to correct the research methods after the actual work has been done and while writing the thesis, if you then realise that something should have been done differently.
It is also highly recommended to visit the library or do some online searching, e.g., in E-thesis, and find some good theses on a related topic or similar research setting, read them and try to understand how they have been done, what makes them good and on what aspects you could improve.
At the same time find out some material and refresh your knowledge on technical scientific writing. This includes the general style and language of writing, typical structural issues as well as guidelines and conventions, e.g., for literature references and such. For some guidelines, read: Scientific Writing – Guide of the Empirical Software Engineering Research Group
Selecting the research approach
Selecting the research approach for your thesis requires some attention. You should familiarise yourself with the typical choices of research approach for a software engineering thesis project (e.g., design science / constructive research, case study, action / participatory research, or perhaps a literature survey). The good preparation is to take a course on research methods in software engineering before or close to starting your thesis project.
Then you discuss your research approach with the supervisor before starting the actual work. Before the discussion, outline your study design, i.e., the particular instantiation of the research approach in you thesis project.
Doing and reporting
The actual work in your thesis project may consist of building a prototype, testing a particular method in a company or gaining understanding of something relevant by means of interviewing people, for example. The work is mainly independent work of the student. With the supervisor, the student can have separate discussions about research methods, writing the thesis, and such.
It is advisable to start writing the thesis already in early phases of the project.
The work
According to your study design, you do your work. Iteratively, adjusting the research questions and fine tuning the study design as needed.
As a result, you get your results. It is important that you follow the advice for your research approach so that you that your results stand on a solid methodological foundation, maintaining the chain of evidence from any data you collect to the conclusions your make. In most cases, it is a good practice to keep a research diary and write reflective memos during the research. Furthermore, if you interview people, whether it is for example, for understanding the problem, collecting data as a part of your main research activity or validating your results within the company, it is important to record the sessions. On the other hand, if your approach is more constructive, it is good to make notes on the rationale for your design decisions.
Big picture of research process
The figure below gives a general idea of a process for research in software engineering, which you can use as a backbone for your research project.
You need to familiarise yourself with the previous work on the topic or close to it. In scientific research, the role of the previous work is to give background for the work and especially explicate the scientific novelty of the work. However, in a Master's thesis scientific novelty is not required. Therefore, the purpose of previous work is often somewhat different. It may be the source of existing methods for addressing a particular problem, used as a means to show what is reported in different sources and analysed here and used as a basis for this work. And, to make sure you are not repeating exactly what someone already has done.
So you need to understand the problem both from the perspective of the company and the perspective of the previous work. On this basis you then conceptualise the problem and express it in the form of your research questions.
Research questions
Coming up with good research questions is demanding. It is also typical that the research questions evolve towards the final form during the thesis project, and that is ok. However, that does not mean that you should start without any research questions and only write them afterwards, as by doing so you would most probably have a poor focus during your work and your results would be more accidental than anything else. The research questions define what exactly you are looking for in your thesis project. More about formulating your research questions can be found from Scientific Writing – Guide of the Empirical Software Engineering Research Group
To answer your research questions, you need to select a suitable research approach from the literature on research methods. Before committing to any particular research method, discuss the potential approaches with the supervisor.
Be careful with your wording of the research questions, because your results are judged against them. In fact, you are in a good position, as you can yourself set the exact criteria for judging your work. Of course, you the research questions need to be interesting and relevant, not just easy to fulfil. The whole point in your thesis is to build a consistent line of thought from the problem to the results and conclusions you make.
The goals of your research can also be set in the form of hypotheses. However, the research questions are used in these instructions, as it is generally very hard to prove much anything right or wrong in software engineering. Nevertheless, if you are, for example, planning to conduct a controlled experiment, the use of hypotheses would be natural. Nevertheless, many issues with exactly wording and accuracy are similar to those with research questions. In both cases, it is about clearly stating what your research is about.
Study design
Once you know your research approach, you need to design the details of your research. This is called here the study design. In short, the study design is your instantiation of the research approach describing the details of what you do in your research project in order to answer the research questions.
When describing your study design in your thesis be concrete. That is, describe what you did, how did you collect the data, e.g., you can mention the sources of information and number of informants, give an overview of their roles, show the artefact created etc. The idea is to describe your instance of the research approach and methods you use as the basis. A common mistake is to leave the description at the high level of abstraction, which only summarises the research methods from the literature and does not to actually describe your own study at all.