When adding or changing code in a large software system, it is hard to predict all possible effects of the change due to the system complexity. For systems containing several communicating processes with real-time requirements there is also a risk of introducing errors related to timing or resource usage. Such errors may be very costly as they can easily be missed during testing and are hard to reproduce when discovered.
If such errors can be predicted when adding or changing features of complex software systems, companies can cut development costs and development time, as problems can be avoided. However, to predict the impact on timing manually is very hard, especially if the system is large. Our approach is based on the construction of a model that describes the interactions between tasks in the system, their resource usage and timing. The model is then analyzed using a set of tools in order to predict properties of the system and to analyze the impact of changes.
For this purpose we have developed the ART-ML modeling language, a simulator for ART-ML models and a tool for analysis and visualization of the simulation output. We have also developed the probabilistic property language (PPL) together with a PPL analysis tool. PPL allows for queries on properties (requirements) on both timing and resource usage.
Our main research question in this project is how to construct and validate such models, and to what extent they can be automatically generated based on information from both the implementation (static analysis) and run-time recordings of the running system (dynamic analysis).