Formal methods are mathematically-based techniques for the rigorous development of software-intensive systems. The railway signaling domain is a field in which formal methods have traditionally been applied, with several success stories. This article reports on a mapping study that surveys the landscape of research on applications of formal methods to the development of railway systems. Our main results are as follows: (i) we identify a total of 328 primary studies relevant to our scope published between 1989 and 2020, of which 44% published during the last 5 years and 24% involving industry; (ii) the majority of studies are evaluated through Examples (41%) and Experience Reports (38%), while full-fledged Case Studies are limited (1.5%); (iii) Model checking is the most commonly adopted technique (47%), followed by simulation (27%) and theorem proving (19.5%); (iv) the dominant languages are UML (18%) and B (15%), while frequently used tools are ProB (9%), NuSMV (8%) and UPPAAL (7%); however, a diverse landscape of languages and tools is employed; (v) the majority of systems are interlocking products (40%), followed by models of high-level control logic (27%); (vi) most of the studies focus on the Architecture (66%) and Detailed Design (45%) development phases. Based on these findings, we highlight current research gaps and expected actions. In particular, the need to focus on more empirically sound research methods, such as Case Studies and Controlled Experiments, and to lower the degree of abstraction, by applying formal methods and tools to development phases that are closer to software development. Our study contributes with an empirically based perspective on the future of research and practice in formal methods applications for railways.
翻译:以数学为基础的正规方法,是严格开发软件密集型系统的数学基础。铁路信号领域是一个传统上采用正规方法的领域,其间有一些成功的故事。本篇文章报告了一项绘图研究,调查正式方法应用于铁路系统开发的研究情况。我们的主要结果如下:(一) 我们确定了与1989年至2020年期间出版的范围相关的总共328项初级研究,其中44%在过去五年期间出版,24%涉及产业界;(二) 大多数研究是通过实例(41%)和《经验报告》(38%)进行评估,而全面的案例研究则有限(1.5%);(三) 模型检查是最常用的技术(47%),其次是模拟(27%)和理论演示(19.5%);(四) 主要语言是UML(18%)和B(15%),而经常使用的工具是ProB(9%)、NusMV(8%)和UPPAL(7%),而正式工具和工具的格局是多种多样的;(五) 多数系统对当前案例研究产品(40%)进行内部闭锁,然后是高级逻辑分析(27级) 重点研究模式,这些是我们预期发展方法。