A manifesto for applicable formal methods

被引:10
作者
Gleirscher, Mario [1 ,2 ]
van de Pol, Jaco [3 ,4 ]
Woodcock, Jim [3 ,5 ]
机构
[1] Univ Bremen, Bibliothekstr 5, D-28359 Bremen, Germany
[2] Univ York, Assuring Auton Int Programme AAIP, Deramore Lane, York YO10 5GH, England
[3] Aarhus Univ, Abogade 34, DK-8200 Aarhus, Denmark
[4] Univ Twente, POB 217, NL-7500 AE Enschede, Netherlands
[5] Univ York, Deramore Lane, York YO10 5GH, England
基金
英国工程与自然科学研究理事会;
关键词
Formal methods; Formal verification; Software engineering; Tools; Research evaluation; Research transfer; SYMBOLIC MODEL CHECKING; SOFTWARE; VERIFICATION; MYTHS; CODE;
D O I
10.1007/s10270-023-01124-2
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Recently, formal methods have been used in large industrial organisations (including AWS, Facebook/Meta, and Microsoft) and have proved to be an effective part of a software engineering process finding important bugs. Perhaps because of that, practitioners are interested in using them more often. Nevertheless, formal methods are far less applied than expected, particularly for safety-critical systems where they are strongly recommended and have the most significant potential. We hypothesise that formal methods still seem not applicable enough or ready for their intended use in such areas. In critical software engineering, what do we mean when we speak of a formal method? And what does it mean for such a method to be applicable both from a scientific and practical viewpoint? Based on what the literature tells about the first question, with this manifesto, we identify key challenges and lay out a set of guiding principles that, when followed by a formal method, give rise to its mature applicability in a given scope. Rather than exercising criticism of past developments, this manifesto strives to foster increased use of formal methods in any appropriate context to the maximum benefit.
引用
收藏
页码:1737 / 1749
页数:13
相关论文
共 95 条
[1]  
Abrial J. -R., 2006, 28th International Conference on Software Engineering Proceedings, P761, DOI 10.1145/1134285.1134406
[2]  
Ahrendt Wolfgang, 2016, Deductive Software Verification-The KeY Book -From Theory to Practice, DOI DOI 10.1007/978-3-319-49812-6
[3]  
Aichernig B.K., 2003, LNCS, V2757
[4]  
Andersen Lars Ole, 1994, Program analysis and specialization for the C prolanguage
[5]  
Andreasen E.S., 2017, P 6 ACM SIGPLAN INT, P31, DOI DOI 10.1145/3088515.3088521
[6]  
[Anonymous], 2004, Logic in Computer Science: Modelling and reasoning about systems
[7]  
[Anonymous], 2002, 13568 ISO IEC JTC Z
[8]  
[Anonymous], 2014, SWEBOK: Guide to the Software Engineering Body of Knowledge
[9]  
[Anonymous], 2010, Z100 ITU SDL
[10]  
[Anonymous], 1989, 8807 ISO