Projects per year
Abstract
Multi-threading is an important programming concept in Java and is essential for developing efficient and scalable applications. However, understanding how multi-threaded programs work can be challenging for novice programmers, as program behavior depends on complex interactions between concurrently running threads.
To support programming novices in understanding multi-threading more easily, this thesis extends the educational visual debugger JavaWiz with support for multi-threaded Java programs. The primary goal is to enhance JavaWiz by incorporating multi-threading while preserving its interactive, step-by-step debugging approach. Instead of executing threads concurrently, the proposed solution allows users to take over parts of the scheduler's role. This enables users to decide which thread should execute next and to reproduce different execution scenarios in a controlled and predictable manner.
JavaWiz consists of a frontend and a backend component. The frontend comprises different visualizations for showing statement execution and program state changes. The existing visualizations of JavaWiz, including the sequence diagram, the stack and heap, the tabular view and the flowchart, were extended to distinguish between threads and visualize thread-related information.
The backend of JavaWiz comes in two versions, one based on the Java Debug Interface and one based on the GraalVM Espresso Virtual Machine. For the extensions presented in this thesis, the GraalVM Espresso backend has been used. In particular, it utilizes the GraalVM Truffle Debug API to collect information required for visualizations.
Finally, the developed system is demonstrated using a collection of application examples taken from the course Praktikum aus Softwareentwicklung 2 at Johannes Kepler University Linz. These examples show that the extended JavaWiz is capable of visualizing the behavior of multi-threaded Java programs and has the potential to support teaching concurrent programming concepts at university level.
To support programming novices in understanding multi-threading more easily, this thesis extends the educational visual debugger JavaWiz with support for multi-threaded Java programs. The primary goal is to enhance JavaWiz by incorporating multi-threading while preserving its interactive, step-by-step debugging approach. Instead of executing threads concurrently, the proposed solution allows users to take over parts of the scheduler's role. This enables users to decide which thread should execute next and to reproduce different execution scenarios in a controlled and predictable manner.
JavaWiz consists of a frontend and a backend component. The frontend comprises different visualizations for showing statement execution and program state changes. The existing visualizations of JavaWiz, including the sequence diagram, the stack and heap, the tabular view and the flowchart, were extended to distinguish between threads and visualize thread-related information.
The backend of JavaWiz comes in two versions, one based on the Java Debug Interface and one based on the GraalVM Espresso Virtual Machine. For the extensions presented in this thesis, the GraalVM Espresso backend has been used. In particular, it utilizes the GraalVM Truffle Debug API to collect information required for visualizations.
Finally, the developed system is demonstrated using a collection of application examples taken from the course Praktikum aus Softwareentwicklung 2 at Johannes Kepler University Linz. These examples show that the extended JavaWiz is capable of visualizing the behavior of multi-threaded Java programs and has the potential to support teaching concurrent programming concepts at university level.
| Original language | English |
|---|---|
| Qualification | Master |
| Awarding Institution |
|
| Supervisors/Reviewers |
|
| Award date | 29 Jun 2026 |
| Publication status | Published - Jun 2026 |
Fields of science
- 102 Computer Sciences
- 102009 Computer simulation
- 102013 Human-computer interaction
- 102011 Formal languages
- 102022 Software development
- 102029 Practical computer science
- 102024 Usability research
JKU Focus areas
- Digital Transformation
Projects
- 1 Active
-
Java VM Compiler Performance (Oracle)
Marr, S. (PI) & Mössenböck, H. (PI)
01.01.2001 → 31.05.2027
Project: Contract research › Industry project
Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver