The role of model checking in software engineering

被引:10
作者
Karna, Anil Kumar [1 ]
Chen, Yuting [1 ]
Yu, Haibo [2 ]
Zhong, Hao [1 ]
Zhao, Jianjun [3 ]
机构
[1] Shanghai Jiao Tong Univ, Dept Comp Sci & Engn, Shanghai 200240, Peoples R China
[2] Shanghai Jiao Tong Univ, Sch Software, Shanghai 200240, Peoples R China
[3] Kyushu Univ, Dept Adv Informat Technol, Fukuoka, Fukuoka 8190395, Japan
基金
日本学术振兴会;
关键词
software engineering; model checking; state-explosion; SYMBOLIC EXECUTION; NETWORKED APPLICATIONS; CONSISTENCY CHECKING; DISTRIBUTED SYSTEMS; VERIFICATION; PROGRAMS; TOOL; ABSTRACTION; EFFICIENT; SYMMETRY;
D O I
10.1007/s11704-016-6192-0
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Model checking is a formal verification technique. It takes an exhaustively strategy to check hardware circuits and network protocols against desired properties. Having been developed for more than three decades, model checking is now playing an important role in software engineering for verifying rather complicated software artifacts. This paper surveys the role of model checking in software engineering. In particular, we searched for the related literatures published at reputed conferences, symposiums, workshops, and journals, and took a survey of (1) various model checking techniques that can be adapted to software development and their implementations, and (2) the use of model checking at different stages of a software development life cycle. We observed that model checking is useful for software debugging, constraint solving, and malware detection, and it can help verify different types of software systems, such as object- and aspect-oriented systems, service-oriented applications, web-based applications, and GUI applications including safety- and mission-critical systems. The survey is expected to help human engineers understand the role of model checking in software engineering, and as well decide which model checking technique(s) and/or tool(s) are applicable for developing, analyzing and verifying a practical software system. For researchers, the survey also points out how model checking has been adapted to their research topics on software engineering and its challenges.
引用
收藏
页码:642 / 668
页数:27
相关论文
共 50 条
  • [31] PARAMETERIZED REACHABILITY GRAPH FOR SOFTWARE MODEL CHECKING BASED ON PDNET
    Jia, Xiangyu
    Li, Shuo
    COMPUTING AND INFORMATICS, 2023, 42 (04) : 781 - 804
  • [32] Verifying properties of hardware and software by predicate abstraction and model checking
    Bryant, RE
    Rajamani, SK
    ICCAD-2004: INTERNATIONAL CONFERENCE ON COMPUTER AIDED DESIGN, IEEE/ACM DIGEST OF TECHNICAL PAPERS, 2004, : 437 - 438
  • [33] Model-checking software library API usage rules
    Song, Fu
    Touili, Tayssir
    SOFTWARE AND SYSTEMS MODELING, 2016, 15 (04) : 961 - 985
  • [34] The Role of Semiotic Engineering in Software Engineering
    Abdelzad, Vahdat
    Lethbridge, Timothy C.
    Hosseini, Mahmood
    2016 IEEE/ACM 5TH INTERNATIONAL WORKSHOP ON THEORY-ORIENTED SOFTWARE ENGINEERING (TOSE), 2016, : 15 - 21
  • [35] Towards automatic software model checking of thousands of Linux modules-a case study with Avinux
    Post, Hendrik
    Sinz, Carsten
    Kuechlin, Wolfgang
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2009, 19 (02) : 155 - 172
  • [36] Symbolic PathFinder: integrating symbolic execution with model checking for Java']Java bytecode analysis
    Pasareanu, Corina S.
    Visser, Willem
    Bushnell, David
    Geldenhuys, Jaco
    Mehlitz, Peter
    Rungta, Neha
    AUTOMATED SOFTWARE ENGINEERING, 2013, 20 (03) : 391 - 425
  • [37] Model Checking Programs
    Willem Visser
    Klaus Havelund
    Guillaume Brat
    SeungJoon Park
    Flavio Lerda
    Automated Software Engineering, 2003, 10 (2) : 203 - 232
  • [38] Symmetry and model checking
    Emerson, EA
    Sistla, AP
    FORMAL METHODS IN SYSTEM DESIGN, 1996, 9 (1-2) : 105 - 131
  • [39] Modular Software Model Checking for Distributed Systems
    Leungwattanakit, Watcharin
    Artho, Cyrille
    Hagiya, Masami
    Tanabe, Yoshinori
    Yamamoto, Mitsuharu
    Takahashi, Koichi
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2014, 40 (05) : 483 - 501
  • [40] Selected dynamic issues in software model checking
    Nguyen V.Y.
    Ruys T.C.
    Nguyen, V. Y. (nguyen@cs.rwth-aachen.de), 2013, Springer Verlag (15) : 337 - 362