David Barrientos Velasco
Improving Timing Analyzability through Source Code Analysis and Testability Transformations in Real-Time Systems
Timing analysis is a method for validating the temporal correctness of real-time systems. It gives the confidence of the timing behavior of a real-time system, by measuring the bounds of the execution time of all the tasks in a system. However, timing analysis is a very difficult to perform technique, and it encounters many problems at different levels of abstraction, from high-level code to machine code. Timing analysis is in fact testing, where the test target is the main difference between them. In testing we want to generate enough test cases to find bugs in a system. While, in timing analysis we want to find input data that will generate the longest or shortest execution time of the program. In this thesis, I take advantage of the similarities between testing and timing analysis, and introduce the concepts of testability in the timing analysis domain, so that, we can generate more information (e.g. number of simple paths) based on the source code that will help us to predict the effort that we will require to perform timing analysis in a real-time system. Therefore, we can identify different patterns (i.e. testability transformation) at the source code level that can help us to improve the timing analyzability of real-time systems that make use of these patterns.