Matthias Tichy
Current Organizations / Institutes
The organizations/institutes from the scholar's latest article
Previous Organizations / Institutes
The organizations / institutes from the scholar's other articles in the past ten years
Research Subjects
Research Interests
Matthias Tichy has a total of 152 co-authors. Here are the top co-authors by number of shared publications:
- Florian Sihler
Ulm University, Ulm, Germany
11 shared publications - Stefan Höppner
Ulm University, Ulm, Germany
10 shared publications - Raffaela Groner
German Aerospace Center University of Liechtenstein Ulm University University of Innsbruck Ulm University Ulm University University of Innsbruck Ulm University
8 shared publications - Alexander Raschke
Institute of Software Engineering and Programming Languages, Ulm University, Ulm, Germany
7 shared publications - Katharina Juhnke
Ulm University, Ulm, Germany
6 shared publications - Thomas Witte
German Aerospace Center University of Liechtenstein Ulm University University of Innsbruck Ulm University Ulm University University of Innsbruck Ulm University
6 shared publications
Latest Publications
- Open Access
- 7 October 2026
- Published by Association for Computing Machinery (ACM)
- p. 1446-1456
Inferring the Shape of Data Frames in R Programs using Abstract Interpretation
- 7 October 2026
- Published by Association for Computing Machinery (ACM)
- p. 1446-1456
Open AccessInferring the Shape of Data Frames in R Programs using Abstract Interpretation
- 7 October 2026
- Published by Springer Nature
- p. 45-61
Scalable Design-Time Analysis of Self-adaptive Cloud Systems Using Monte Carlo Tree Search
- 7 October 2026
- Published by Springer Nature
- p. 45-61
Scalable Design-Time Analysis of Self-adaptive Cloud Systems Using Monte Carlo Tree Search
- Open Access
- 2 October 2026
- Published by Association for Computing Machinery (ACM)
- p. 18-25
Towards Statically Reasoning about R Vectors
- 2 October 2026
- Published by Association for Computing Machinery (ACM)
- p. 18-25
Open AccessTowards Statically Reasoning about R Vectors
- Open Access
- 5 July 2026
- Published by Association for Computing Machinery (ACM)
- p. 112-116
Supporting the Comprehension of Data Analysis Scripts
- 5 July 2026
- Published by Association for Computing Machinery (ACM)
- p. 112-116
Open AccessSupporting the Comprehension of Data Analysis Scripts
- Open Access
- 22 May 2026
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. PP (00985589) , 1-19
Tackling Expressive Feature-Modeling Constructs with Pseudo-Boolean d-DNNF Compilation
Configurable systems typically consist of reusable assets that have dependencies between each other. To specify such dependencies, feature models are commonly used. As feature models in practice are often complex, automated reasoning is typically employed to analyze the dependencies. Here, the de facto standard is translating the feature model to conjunctive normal form (CNF) to enable employing off-the-shelf tools, such as SAT or #SAT solvers. However, modern feature-modeling dialects often contain constructs, such as cardinality constraints, that are ill-suited for conversion to CNF. This mismatch between the input of reasoning engines and the available feature-modeling dialects limits the applicability of the more expressive constructs. In this work, we shorten this gap between expressive constructs and scalable automated reasoning. Our contribution is twofold: First, we provide a pseudo-Boolean encoding for feature models, which facilitates smaller representations of commonly employed constructs compared to Boolean encoding. Second, we propose a novel method to compile pseudo-Boolean formulas to Boolean d- DNNFs. With the compiled d-DNNFs, we can resort to a plethora of efficient analyses already used in feature modeling. Our empirical evaluation shows that our proposal substantially outperforms the state-of-the-art based on CNF inputs for expressive constructs. For every considered dataset representing different feature models and feature-modeling constructs, the feature models can be significantly faster translated to pseudo-Boolean than to CNF. Overall, deriving d-DNNFs from a feature model with the targeted expressive constraints can be substantially accelerated using our pseudo-Boolean approach. For instance, the Boolean approach only scales for group cardinalities with up-to 13 features while pseudo-Boolean d-DNNF compilation can compile cardinalities with thousands of features. Furthermore, our approach is competitive on feature models with only basic constructs.
- 22 May 2026
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. PP (00985589) , 1-19
Open AccessTackling Expressive Feature-Modeling Constructs with Pseudo-Boolean d-DNNF Compilation
Configurable systems typically consist of reusable assets that have dependencies between each other. To specify such dependencies, feature models are commonly used. As feature models in practice are often complex, automated reasoning is typically employed to analyze the dependencies. Here, the de facto standard is translating the feature model to conjunctive normal form (CNF) to enable employing off-the-shelf tools, such as SAT or #SAT solvers. However, modern feature-modeling dialects often contain constructs, such as cardinality constraints, that are ill-suited for conversion to CNF. This mismatch between the input of reasoning engines and the available feature-modeling dialects limits the applicability of the more expressive constructs. In this work, we shorten this gap between expressive constructs and scalable automated reasoning. Our contribution is twofold: First, we provide a pseudo-Boolean encoding for feature models, which facilitates smaller representations of commonly employed constructs compared to Boolean encoding. Second, we propose a novel method to compile pseudo-Boolean formulas to Boolean d- DNNFs. With the compiled d-DNNFs, we can resort to a plethora of efficient analyses already used in feature modeling. Our empirical evaluation shows that our proposal substantially outperforms the state-of-the-art based on CNF inputs for expressive constructs. For every considered dataset representing different feature models and feature-modeling constructs, the feature models can be significantly faster translated to pseudo-Boolean than to CNF. Overall, deriving d-DNNFs from a feature model with the targeted expressive constraints can be substantially accelerated using our pseudo-Boolean approach. For instance, the Boolean approach only scales for group cardinalities with up-to 13 features while pseudo-Boolean d-DNNF compilation can compile cardinalities with thousands of features. Furthermore, our approach is competitive on feature models with only basic constructs.
- Open Access
- 12 April 2026
- Published by Association for Computing Machinery (ACM)
- p. 36-40
Towards Automatically Inferring Constraints to Identify Implicit Assumptions in Data Analysis
- 12 April 2026
- Published by Association for Computing Machinery (ACM)
- p. 36-40
Open AccessTowards Automatically Inferring Constraints to Identify Implicit Assumptions in Data Analysis
- Open Access
- 2 November 2025
- Published by Springer Nature in Empirical Software Engineering
- Vol. 31 (1) , 1-57
Mapping aids using output-directed programming increase novices’ performance in programming mobile robotic systems
Context: Novices programming robotic systems’ behavior, like quadcopter missions, face several challenges and require adequate support to overcome initial barriers. One approach to support novices is to display multiple representations such as graphical previews along with the code editor. Such supportive representations, however, also pose challenges for novices: finding corresponding information in the code and in the preview. To facilitate this, mapping aids can be implemented to clarify the connections between code and preview and foster a deeper understanding. Using output-directed programming, that is, adding the ability to reverse expression evaluation in the domain-specific language, is a promising basis for easily creating and implementing mapping aids. Objective: We investigated, whether mapping aids based on output-directed programming can improve learning language semantics and overall program correctness and how these mapping aids support novices while implementing quadcopter missions. Method: In our study, we tested $$N=82$$ participants while interacting and learning in an online programming environment. Using our 2x2 between-subject design study, we investigated the effects of two mapping aids: highlighting (supports to find element-based connections in the environment) and dynamic linking (supports finding similarities on the semantic level of the content) on program correctness including a typical error, learning outcomes as well as traces of learning strategies. Results: While highlights were more helpful for implementing the quadcopter missions (mission 1: $$p=.008$$ **, $$\eta ^2_{\small \textit{partial}}=.091$$ ), dynamic linking improved learning outcomes on the comprehension ( $$F(1,75)=5.61$$ , $$p=.020$$ *, $$\eta ^2_{\small \textit{partial}} =.070$$ ) and application level ( $$F(1,75)=4.08$$ , $$p=.047$$ *, $$\eta ^2_{\small \textit{partial}} =.052$$ ). Traces of learning strategies were related to higher program correctness (organizing (changes in the preview)): $$r=.553$$ , $$p<.001$$ ***; elaborating (time engaging in the task)): $$r=.639$$ $$p<.001$$ ***) and higher learning outcomes (organizing: $$r=.400$$ , $$p<.001$$ ***; elaborating : $$r=.404$$ , $$p<.001$$ ***). Conclusions: Implementing mapping aids through output-directed programming supports novices in developing a better semantic understanding of the domain specific language. Depending on the program tasks, different mapping aids might be effective. Based on traces of learning strategies while programming, adaptive interactive programming environments might support users individually.- 2 November 2025
- Published by Springer Nature in Empirical Software Engineering
- Vol. 31 (1) , 1-57
Open AccessMapping aids using output-directed programming increase novices’ performance in programming mobile robotic systems
Context: Novices programming robotic systems’ behavior, like quadcopter missions, face several challenges and require adequate support to overcome initial barriers. One approach to support novices is to display multiple representations such as graphical previews along with the code editor. Such supportive representations, however, also pose challenges for novices: finding corresponding information in the code and in the preview. To facilitate this, mapping aids can be implemented to clarify the connections between code and preview and foster a deeper understanding. Using output-directed programming, that is, adding the ability to reverse expression evaluation in the domain-specific language, is a promising basis for easily creating and implementing mapping aids. Objective: We investigated, whether mapping aids based on output-directed programming can improve learning language semantics and overall program correctness and how these mapping aids support novices while implementing quadcopter missions. Method: In our study, we tested $$N=82$$ participants while interacting and learning in an online programming environment. Using our 2x2 between-subject design study, we investigated the effects of two mapping aids: highlighting (supports to find element-based connections in the environment) and dynamic linking (supports finding similarities on the semantic level of the content) on program correctness including a typical error, learning outcomes as well as traces of learning strategies. Results: While highlights were more helpful for implementing the quadcopter missions (mission 1: $$p=.008$$ **, $$\eta ^2_{\small \textit{partial}}=.091$$ ), dynamic linking improved learning outcomes on the comprehension ( $$F(1,75)=5.61$$ , $$p=.020$$ *, $$\eta ^2_{\small \textit{partial}} =.070$$ ) and application level ( $$F(1,75)=4.08$$ , $$p=.047$$ *, $$\eta ^2_{\small \textit{partial}} =.052$$ ). Traces of learning strategies were related to higher program correctness (organizing (changes in the preview)): $$r=.553$$ , $$p<.001$$ ***; elaborating (time engaging in the task)): $$r=.639$$ $$p<.001$$ ***) and higher learning outcomes (organizing: $$r=.400$$ , $$p<.001$$ ***; elaborating : $$r=.404$$ , $$p<.001$$ ***). Conclusions: Implementing mapping aids through output-directed programming supports novices in developing a better semantic understanding of the domain specific language. Depending on the program tasks, different mapping aids might be effective. Based on traces of learning strategies while programming, adaptive interactive programming environments might support users individually. - Open Access
- 9 October 2025
- Published by Association for Computing Machinery (ACM) in Proceedings of the ACM on Programming Languages
- Vol. 9 (OOPSLA2) , 1034-1062
Statically Analyzing the Dataflow of R Programs
The R programming language is primarily designed for statistical computing and mostly used by researchers without a background in computer science. R provides a wide range of dynamic features and peculiarities that are difficult to analyze statically like dynamic scoping and lazy evaluation with dynamic side effects. At the same time, the R ecosystem lacks sophisticated analysis tools that support researchers in understanding and improving their code. In this paper, we present a novel static dataflow analysis framework for the R programming language that is capable of handling the dynamic nature of R programs and produces the dataflow graph of given R programs. This graph can be essential in a range of analyses, including program slicing, which we implement as a proof of concept. The core analysis works as a stateful fold over a normalized version of the abstract syntax tree of the R program, which tracks (re-)definitions, values, function calls, side effects, external files, and a dynamic control flow to produce one dataflow graph per program. We evaluate the correctness of our analysis using output equivalence testing on a manually curated dataset of 779 sensible slicing points from executable real-world R scripts. Additionally, we use a set of systematic test cases based on the capabilities of the R language and the implementation of the R interpreter and measure the runtimes well as the memory consumption on a set of 4,230 real-world R scripts and 20,815 packages available on R’s package manager CRAN. Furthermore, we evaluate the recall of our program slicer, its accuracy using shrinking, and its improvement over the state of the art. We correctly analyze almost all programs in our equivalence test suite, preserving the identical output for 99.7% of the manually curated slicing points. On average, we require 576ms to analyze the dataflow and around 213kB to store the graph of a research script. This shows that our analysis is capable of analyzing real-world sources quickly and correctly. Our slicer achieves an average reduction of 84.8% of tokens indicating its potential to improve program comprehension.
- 9 October 2025
- Published by Association for Computing Machinery (ACM) in Proceedings of the ACM on Programming Languages
- Vol. 9 (OOPSLA2) , 1034-1062
Open AccessStatically Analyzing the Dataflow of R Programs
The R programming language is primarily designed for statistical computing and mostly used by researchers without a background in computer science. R provides a wide range of dynamic features and peculiarities that are difficult to analyze statically like dynamic scoping and lazy evaluation with dynamic side effects. At the same time, the R ecosystem lacks sophisticated analysis tools that support researchers in understanding and improving their code. In this paper, we present a novel static dataflow analysis framework for the R programming language that is capable of handling the dynamic nature of R programs and produces the dataflow graph of given R programs. This graph can be essential in a range of analyses, including program slicing, which we implement as a proof of concept. The core analysis works as a stateful fold over a normalized version of the abstract syntax tree of the R program, which tracks (re-)definitions, values, function calls, side effects, external files, and a dynamic control flow to produce one dataflow graph per program. We evaluate the correctness of our analysis using output equivalence testing on a manually curated dataset of 779 sensible slicing points from executable real-world R scripts. Additionally, we use a set of systematic test cases based on the capabilities of the R language and the implementation of the R interpreter and measure the runtimes well as the memory consumption on a set of 4,230 real-world R scripts and 20,815 packages available on R’s package manager CRAN. Furthermore, we evaluate the recall of our program slicer, its accuracy using shrinking, and its improvement over the state of the art. We correctly analyze almost all programs in our equivalence test suite, preserving the identical output for 99.7% of the manually curated slicing points. On average, we require 576ms to analyze the dataflow and around 213kB to store the graph of a research script. This shows that our analysis is capable of analyzing real-world sources quickly and correctly. Our slicer achieves an average reduction of 84.8% of tokens indicating its potential to improve program comprehension.
- 9 September 2025
- Published by Springer Nature
- p. 280-297
Explainability in Self-Adaptive Systems: A Systematic Literature Review
- 9 September 2025
- Published by Springer Nature
- p. 280-297
Explainability in Self-Adaptive Systems: A Systematic Literature Review
- 20 August 2025
- Published by Springer Nature
- p. 181-196
Model-Based Proactive Self-adaptation for Cloud Systems
- 20 August 2025
- Published by Springer Nature
- p. 181-196
Model-Based Proactive Self-adaptation for Cloud Systems