@students: looking for a Master's thesis project?
Are you looking for a Master's thesis project? If you want to do it in the field of software engineering and/or distributed systems, contact Helmut. See my research areas for topics where I can make suggestions concerning projects. If you are interested in other topics than my research area, we can discuss this as well.
Currently, I have funding for a Master's thesis project in aspect-orientation for software testing.
Some other possible topics are:
- LoRa is a long-range, low-power (but also low-bandwidth) wireless communication suitable for IoT, such as transmitting sensor data. Various research in the field of distributed systems/wireless networking/IoT is possible using LoRa. This could include connecting to LoRa satellites, distributing GPS corrections data, e.g., for precise navigation of autonomous vessels, or the next topic shown below.
In 2022, I am looking for students working in the project Communication with buoys using LoRa. - Delay-tolerant opportunistic networking in an Icelandic context: in areas without mobile phone coverage, mobile devices can still communicate via WiFi or bluetooth and since they are mobile they can carry-on and buffer received data until another mobile device is met, i.e. hop-by-hop communication involving mobility of nodes and buffering of data. Possible implementation targets would be ESP8266 and Android or iOS. Combining with LoRaWAN might also be considered, e.g. using The Things Network or adding own stations. Long term goal would be to have this integrated into the 112 Iceland app (together with Esa Hyytiä and Ingólfur Hjörleifsson)
- Refactoring for LaTeX. While LaTeX is for text processing, it is at the same time almost like a programming language and therefore, refactorings are desirable (e.g. renaming an internal label and all references to it, pushing down sections into subsections / pulling up subsections into sections, adding columns to a table, replacing double quotes by typographic quotes, replacing spaces by non-breaking spaces in front of references, adjusting space following abbreviations where LaTeX thinks the dot is a fullstop, changing BibTeX entry types from one into another). These refactorings shall be implemented and added to some open-source LaTeX editing environment.
- Machine learning and Software Engineering: either work on how to, e.g., test machine learning software or how to use machine learning in Software Engineering, e.g. use machine learning to support software testing
- Scalable video conferencing: the COVID pandemic has shown that there is a need for a FOSS video conference solution that is able to handle more than 50 students in an online lecture. BigBlueButton and Jitsi meet are FOSS solutions, however there scalability is limited. The idea is to identify/profile bottlenecks of scalability and develop improvements.
- Developing concepts for testing High-Performance Computing (HPC) code (e.g. how to use the Google Test framework to test HPC C++ code)
- Developing and implementing refactoring concepts for High-Performance Computing (HPC) C++ code and the Eclipse CDT C/C++ IDE
- Enabling big data processing of scientific file formats: the HDF5 binary file format used in sciences cannot be processed out of the box by the text-based big data approaches: An Apache Spark RDD/Hadoop MapReduce input format for HDF5 files that takes locality of the HDFS distributed file-system into account
- Performance modelling (together with Esa Hyytiä) of big data systems (=local storage) in comparison to high-performance computing systems (=central storage)
- Migrating Eclipse IDE functionality to an Xtext-based model-based IDE.
- Model-based (Eclipse modeling tools) generation of TTCN-3 test case skeletons from TPlan test purpose descriptions.
- Model-based (Eclipse Xtext + possibly suitable model transformation ) refactoring of TTCN-3 source code.
- Traceability between requirements and UML models (connecting Eclipse ProR and Eclipse Papyrus tools using OSLC technology)
- Generation of Jata-based Java test cases from TTCN-3 source code (=TTCN-3 to Jata compiler).
- Selection of a set JUnit regression tests for a source code change based on the source code coverage recorded for each test in earlier test runs: Regression test are about finding out which parts of a code have changed and running then only those tests that related to that change. The PIT mutation testing applies this approach internally, but it what is missing is a tool that tells a developer explicitly which tests to re-run based on a coverage analysis.
- Model-based (Eclipse modeling tools) refactoring of UML models and diagrams.
- Aspect-oriented testing: develop an aspect-oriented language extension for the test language TTCN-3