Offered MSc Thesis topics

We welcome students interested in software engineering, empirical research and modern software technologies to do their thesis with our group! Below are some pointers and topics stemming from our research interests.  

See also the wider list of topics from the department: CSM Master thesis topics

General writing Instructions

We have written some instructions to help the students in writing their Master's theses, and seminar papers and B.Sc. theses as well. Please, read the guide before starting your thesis work: Scientific Writing – Guide of the Empirical Software Engineering Research Group

Master's Thesis Topics

Software engineering and technology are very popular areas for thesis at the Department and there are many candidates asking for thesis topics every academic year.

We provide guidande for selecting a suitable topic and provide the supervision and support needed for completing the work. Please contact Antti-Pekka Tuovinen or Tomi Männistö if you are interested. You can also contact the group members to ask about the subject areas they are working on.

If you, as a student, are working in software development, processes, architecture or something related, there is a good chance for finding an interesting thesis topic that closely relates to you work. In such a case, the actual work often provides a good problem to investigate, propose or try out potential solutions for or the case can act as a rich source of data about the practice of software development.    

We also welcome companies to suggest potential topics for Master's thesis. The topics can be general, based on existing research, or they may require original research and problem solving. We will help to evaluate and fine tune the proposals. Depending on the topic, you may also need to be prepared to provide some guidance and assistance during the thesis project.

Please contact Antti-Pekka Tuovinen or Tomi Männistö if you have an idea for an industrial thesis and if you need further information.

The listing below introduces our current areas of research and potential topics for thesis. Each topic has a short description and the names of the researchers working on the topic. Please contact them for more details about the research and the actual thesis work. Note that you can also suggest and discuss other topics within the general area of software engineering research. We encourage creativity and student-centered insight in the selection and definition of the topic.

 

CURRENT TOPICS (see below for the details)

Software engineering and climate change (TOPIC AREA)
Life-long learning for modern software engineering profession
Software development in non-ICT contexts (TOPIC AREA)
Creatively self-adaptive software architectures (TOPIC AREA)
Robotics software and software architectures (TOPIC AREA)
Continuous experimentation (TOPIC AREA)
Open Source Software Development (TOPIC AREA)
Digitalization and digital transformations: impacts on software engineering and systems development (TOPIC AREA)
Programmable World (TOPIC AREA)
High performing software teams (TOPIC AREA)
Software innovation (TOPIC AREA)

 

Software engineering and climate change (TOPIC AREA)

The global climate change may have various impacts on future software engineering on the one hand, and software engineering may affect climate change directly or indirectly, positively or negatively on the other hand. All that opens up many potentially important research problems. Specific theses in this topic area could be for instance about the following themes:

  • Green IT (e.g., engineering new software with energy-efficiency requirements in order to reduce or limit the power consumption and consequently the carbon footprint)
  • Carbon neutrality goals of software companies (e.g., software development organizations decreasing physical travelling in order to reduce their greenhouse gas emissions)
  • Developing software products or services for measuring climate change related factors

The thesis could be a literature review, an empirical case study or a design scientific work.

Contact: Petri Kettunen
 

Life-long learning for modern software engineering profession

Certain intended learning outcomes for computer science (software engineering) graduates are life-long learning skills. Such skills and capabilities are essential in modern industrial software engineering environments. Workplace learning is a key part in most professional software development jobs. What are the necessary life-long learning skills exactly? Why are those skills and capabilities important in different software organizations? How can they be learned and improved? How do software professionals learn in their workplaces? What particular skills will be more important in the future? Why?
This topic could be investigated by case studies in real-life software organizations. The specific research questions could be some of the above or possibly focused to certain skills (e.g., assessing one's own and the works of other software developers).
Contact: Petri Kettunen

Software development in non-ICT contexts (TOPIC AREA)

Software technology is increasingly applied in non-ICT domains and environments (e.g., healthcare, financial sector, telecommunications systems, industrial automation). Such conditions bring up many considerations for effective and efficient software engineering, such as: What are the key characteristics of different use domains (e.g., complexity, reliability)? What is the scope of the particular software system? How are the software requirements engineered? What are the particular constraints (e.g., regulations) in different domains to be taken into account in software engineering? How to measure the success of the software projects and products? What software development methods (e.g., agile) are applicable in different domains? Why/why not? What particular software-related competences are needed (e.g., digitalization, IoT, cyber-physical systems)?
This research problem could be investigated both theoretically (literature study) and empirically in industrial case studies. The actual research questions could be some of the above or formulated individually.
Contact: Petri Kettunen

Creatively self-adaptive software architectures (TOPIC AREA)

We have recently started exciting research in the intersection between the research fields of self-adaptive software and computational creativity, with the goal of developing novel software architectures that can creatively adapt themselves in unforeseen situations. This initiative is a new research collaboration between Discovery Group of Prof. Hannu Toivonen and ESE. There are different options for thesis work with either of the groups. To get a better idea of the topic see, Linkola et al. 2017. Aspects of Self-awareness: An Anatomy of Metacreative Systems. http://computationalcreativity.net/iccc2017/ICCC_17_accepted_submissions...
Contact: Tomi Männistö

Robotics software and software architectures (TOPIC AREA)

We are building an interesting line of research in the area of software and software architectures for robotics. This area is an intersection of software engineering and artificial cognitive systems, and takes into account knowledge from different domain areas where robots perform tasks in the physical world. Thesis work in this area can range from more technical and practical to theoretical. The perspectives include both questions about traits of the robotics platform architecture that make development of robotics applications easier and questions about implementing software for robotics systems in different kinds of physical environments.

We are currently looking for an MSc thesis writer who is interested in implementing software for a cleaning robot for construction sites. In this project, we cooperate with Pulurobotics (a Finnish startup providing the robotics platform), NCC, and Palmia (together providing a real-world use case). The project includes both investigating the use case requirements and programming the robot. There is an opportunity for a funded thesis position.
Contact: Niko Mäkitalo

Continuous Experimentation (TOPIC AREA)

Software product and service companies need capabilities to evaluate their development decisions and customer and user value. Continuous experimentation, as an experiment-driven development approach, may reduce such development risks by iteratively testing product and service assumptions that are critical to the success of the software. Experiment-driven development has been a crucial component of software development in especially in last decade, companies such as Microsoft, Facebook, Google, Amazon and many others often conduct experiments to base their development decisions on data collected from field usage. The topic is one of the most active research field for our research group and some recent publications are on introducing the concept and the RIGHT model
Contact: Timo Asikainen

Open Source Software Development (TOPIC AREA)

Open Source Software development is characterised by openly available online collaboration and communication systems. There is a growing body of work examining the data accumulating in such systems. Descriptive studies have examined, e.g., how the development process unfolds and how the social communication structure corresponds to technical actions in the code. Other studies have tried to leverage the the repository data for improving software quality, easing communication, or automating development tasks. Theses in this area could focus on, e.g., analysis of communication patterns using Natural Language Processing techniques, collecting and using software metrics, automated development process support, or methods for analysing specific kinds of repository data.

References: Guzzi, A.; Bacchelli, A.; Lanza, M.; Pinzger, M.; van Deursen, A. (2013). Communication in open source software development mailing lists. 10th IEEE Working Conference on Mining Software Repositories (MSR), pp.277-286. http://www.ossmeter.org/

Keywords: Mining software repositories, Open Source Software
Contact: Tommi Mikkonen

Digitalization and digital transformations: impacts on software engineering and systems development (TOPIC AREA)

Digitalization is nowdays cross-cutting and inherent in most areas of businesses and organizations. Software is increasingly built-in and ubiquitous. Such trends and developments bring up many potential software research problems, such as: What does digitalization actually entail in different contexts? How should digitalization be taken into account in software development processes? What is the role of customer/user involvement in software-intensive systems development (e.g., digital services)? What are the key quality attributes? What new software engineering skills and competencies may be needed? What is the role of software (and IT) in general in different digital transformations (e.g., vs. business process development)? How is digitalization related to traditional software engineering and computer science disciplines in different contexts? What aspects of software development and digital technologies are fundamentally new or different from the past?
This research problem could be investigated theoretically (literature study) or empirically in industrial case studies. The actual research questions could be some of the above or formulated individually.
Contact: Petri Kettunen

Programmable World (TOPIC AREA)

The emergence of millions of remotely programmable devices in our surroundings will pose signicant challenges for software developers. A roadmap from today’s cloud-centric, data-centric Internet of Things systems to the Programmable World highlights those challenges that haven’t received enough attention.
See e.g., A Roadmap to the Programmable World: Software Challenges in the IoT Era
Contact: Tommi Mikkonen

High performing software teams (TOPIC AREA)

How is (high) performance defined and measured in software development (e.g., productivity)? Which factors affect it - either positively or negatively - and how strongly (e.g., development tools, team composition)? Can we "build" high-performing software teams in systematic ways, or do they merely emerge under certain favorable conditions? What are suitable organizational designs and environments for hosting and supporting such teams? See this link and this link for more info.
Contact: Petri Kettunen

Software innovation (TOPIC AREA)

How is innovation and creativity taken into account in software development processes and methods (e.g., Agile)? What is the role of customer/user input and feedback in software(-intensive) product creation (e.g., open innovation)? How to define and measure 'innovativeness' in software development? What makes software development organizations (more) innovative? See here for more about the topic. How can Open Data Software help innovation?
Contact: Petri Kettunen