Master Thesis MSTR-2023-32

BibliographyHilbig, Aaron: Analysing timing behavior of component-based software systems.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Master Thesis No. 32 (2023).
61 pages, english.

Component-based Software Engineering (CBSE) is an established approach for dealing with the complexity of large-scale software systems. In such systems, the impact of small software changes on the overall system can be hard to assess. Because the behavior of the fully integrated system can be diffcult to reason about for developers who know only small parts in-depth, the system can break in unexpected ways. This can also make developers increasingly reluctant to make any changes to the codebase for fear of regressions, leading to a degradation of code quality and maintainability. CBSE is applied in a wide range of application domains in the industry. At ASML, it is used in the controller software of lithography machines. These complex cyber-physical systems consisting of hundreds of components are at the core of modern semiconductor manufacturing. If such a machine is defective in production, it can cost the operator “thousands of euros per minute” until the issue is resolved. The motivation to avoid software bugs, regressions in performance and throughput losses is thus high. To this end, researchers at ASML and TNO have developed the analysis tool Mids. Mids infers a sound approximation of the behavior of the overall system from the output traces of a machines’ components. Using Mids, models learned from the output traces of different software versions can be compared and the changes visualized. This provides a concise overview of the system and of detected behavioral changes between versions to the developers, enabling them to find unexpected changes and regressions. The methodology is not limited to ASML software, but is in principle generally applicable to component-based software. However, Mids only supports the analysis of functional software changes, i.e., added, removed or moved behavior. Finding and analysing the root cause of performance issues in the systems is still an arduous manual process. In this work, we aim to help engineers in finding performance issues or timing behavior changes in component-based software systems by leveraging the automata-based system models inferred by Mids and adding timing information to them. We explore how this data can be extracted from the output traces, added to the system models, and visualized. We further investigate whether signifcant timing behavior changes can be automatically detected, to help engineers focus only on the parts of the system which are impacted by a timing change. We implement our approach as an extension to Mids and evaluate it with artifcially modifed traces as well as with real-world traces. In our case studies, our prototype was not only able to detect the expected timing changes, but also detected additional timing changes that were unknown to the engineers. We received very positive feedback from the ASML engineers, who approached us independently for additional analyses and showed great interest in integrating our prototype into the main-line version of Mids. In a proof-of-concept with the open-source software cURL, we show that our methodology may even be applicable to non-component-based software and for analysing timing changes not caused by software changes.

Full text and
other links
Department(s)University of Stuttgart, Institute of Formal Methods in Computer Science, Theoretical Computer Science
Superviser(s)Kufleitner, PD Dr. Manfred; Hendriks, Dennis; Oortwijn, Dr. Wytse
Entry dateSeptember 19, 2023
   Publ. Computer Science