Algorithms for Verifying Backwards Compatibility In Distributed Real-Time Systems
Examensarbete för masterexamen
Computer systems and networks (MPCSN), MSc
BACKGROUND: Backwards Compatibility is a key solution for companies that are attempting to reduce the cost and effort of introducing software updates to their customers. It is also an important property in order to gain the customer’s trust in accepting the updates without fearing side effects of some functionality not working properly. Therefore, it is important that the newly released software update is backwards compatible with an older version of the software of the same product. METHOD: In this paper, the main goal is to derive algorithms for verifying backwards compatibility and implement them. The results are obtained by following a research methodology that is based on the design research. Literature review was conducted in order to identify existing methods for verifying backwards compatibility. Algorithms for verifying backwards compatibility were designed, prototyped and tested on a distributed real-time system in order to evaluate their behaviour. The implemented prototypes of the algorithms can verify backwards compatibility in distributed real-time systems that pertain to telecommunications industry. RESULTS: Description of all the identified algorithms and strategies from academia and the industry, along with their classification into taxonomy are presented. Three algorithms that are designed by the authors which verify backwards compatibility in distributed real-time systems. The first algorithm is based on communication signals of a component during the execution of one of its tasks, the second algorithm focuses on the details of what the system is doing while executing the tasks, the third algorithm combines characteristics of the previous two algorithms. Prototypes of all the algorithm are developed and tested on various test scenarios of a software update. The combined results of the algorithms identified 8% backwards compatibility problems which are within the acceptable range when a software update is performed on the SGSN-MME product. All three algorithms provide details on what might be causing the incompatibility of the software update. CONCLUSION: Backwards compatibility is a hard problem to achieve especially in large and complex systems such as the one this study was based on. The algorithms that were identified in this study show a lot of promise in developing automated methods for verifying backwards compatibility. This is proven with the prototypes of the three algorithms that were developed over the study period. The work that was carried over this study shows that there is a number of open gaps to be studied in the future in order to achieve full scale autonomous algorithms for verifying backwards compatibility for various components of a system.
Data- och informationsvetenskap , Computer and Information Science