Please use this identifier to cite or link to this item:
Authors: Hilbig, Aaron
Title: Analysing timing behavior of component-based software systems
Issue Date: 2023 Abschlussarbeit (Master) viii, 61
Abstract: 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.
Appears in Collections:05 Fakultät Informatik, Elektrotechnik und Informationstechnik

Files in This Item:
File Description SizeFormat 
ahilbig_report_with_title.pdf3,21 MBAdobe PDFView/Open

Items in OPUS are protected by copyright, with all rights reserved, unless otherwise indicated.