Auflistung nach Autor:in "Helm, Dominik"
1 - 3 von 3
Treffer pro Seite
Sortieroptionen
- KonferenzbeitragCiFi: Versatile Analysis of Class and Field Immutability(Software Engineering 2022, 2022) Roth, Tobias; Helm, Dominik; Reif, Michael; Mezini, MiraThis paper was accepted in 2021 at the 36th IEEE/ACM International Conference on Automated Software Engineering and proposes a model for immutability analysis. Reasoning about immutability is important for preventing bugs, e.g., in multi-threaded software. Static analysis to infer immutability properties has mostly focused on individual objects and references. Reasoning about fields and entire classes, while significantly simpler, has gained less attention. A consistently used terminology is missing, which makes it difficult to implement analyses that rely on immutability information. We propose a model for class and field immutability that unifies terminology for immutability flavors considered by previous work and covers new levels of immutability to handle lazy initialization and immutability dependent on generic type parameters. Using the OPAL static analysis framework, we implement CiFi, a set of modular, collaborating analyses for different flavors of immutability, inferring the properties defined in our model. We propose a benchmark of representative test cases for class and field immutability. We use the benchmark to showcase CiFi's precision and recall in comparison to state of the art and use CiFi to study the prevalence of immutability in real-world libraries, showcasing the practical quality and relevance of our model.
- ZeitschriftenartikelModular Collaborative Program Analysis(Softwaretechnik-Trends Band 44, Heft 2, 2024) Helm, DominikStatic analyses are essential to ensure the efficiency and security of software. They face challenges as we use ever more and ever more complex software. We address these challenges by enabling collaborative analyses composed of small, maintainable modules. In this thesis, we propose the blackboard analysis architecture that allows independent modules to collaborate using a central data store. This architecture is framework-independent, applicable to a broad range of static analyses regardless of their implementation paradigm, and allows for modular soundness proofs. Using four case studies and an extensive evaluation, we show how the blackboard analysis architecture allows improving the soundness, precision, and scalability of static analyses and fosters the exploration of trade-offs between these qualities.
- KonferenzbeitragA Unified Lattice Model and Framework for Purity Analyses(Software Engineering and Software Management 2019, 2019) Helm, Dominik; Kübler, Florian; Eichberg, Michael; Reif, Michael; Mezini, MiraThis paper was presented in 2018 at the 33rd ACM/IEEE International Conference on Automated Software Engineering and proposes a framework for purity analyses. Analyzing methods in object-oriented programs whether they are side-effect free and also deterministic, i.e., mathematically pure, has been the target of extensive research. Identifying such methods helps to find code smells and security related issues, and helps analyses detecting concurrency bugs. Pure methods are further used for formal specifications and proving the pureness is necessary to ensure correct specifications. However, no common terminology exists which describes the purity of methods. Furthermore, some terms (e.g., pure or side-effect free) are used inconsistently. Further, all current approaches only report selected purity information making them only suitable for a smaller subset of the potential use cases. We present a fine-grained unified lattice model which puts the purity levels found in the literature into relation and which adds a new level that generalizes existing definitions. We have also implemented a scalable, modularized purity analysis which produces significantly more precise results for real-world programs than the best-performing related work. The analysis shows that all defined levels are found in real-world projects.