Abstract
AbstractThis paper presents a case study where a concurrent module of a tunnel control system written in Java is verified for memory safety and data race freedom using VerCors, a software verification tool. This case study was carried out in close collaboration with our industrial partner Technolution, which is in charge of developing the tunnel control software. First, we describe the process of preparing the code for verification, and how we make use of the different capabilities of VerCors to successfully verify the module. The concurrent module has gone through a rigorous process of design, code reviewing and unit and integration testing. Despite this careful approach, VerCors found two memory related bugs. We describe these bugs, and show how VerCors could have found them during the development process. Second, we wanted to communicate back our results and verification process to the engineers of Technolution. We discuss how we prepared our presentation, and the explanation we settled on. Third, we present interesting feedback points from this presentation. We use this feedback to determine future work directions with the goal to improve our tool support, and to bridge the gap between formal methods and industry.
Publisher
Springer International Publishing
Cited by
4 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. The VerCors Verifier: A Progress Report;Lecture Notes in Computer Science;2024
2. The Logic of Separation Logic: Models and Proofs;Lecture Notes in Computer Science;2023
3. Multiparty Session Typing in Java, Deductively;Tools and Algorithms for the Construction and Analysis of Systems;2023
4. Verification and Validation of Concurrent and Distributed Heterogeneous Systems (Track Summary);Leveraging Applications of Formal Methods, Verification and Validation. Verification Principles;2022