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 条
  • [1] The role of model checking in software engineering
    Anil Kumar Karna
    Yuting Chen
    Haibo Yu
    Hao Zhong
    Jianjun Zhao
    Frontiers of Computer Science, 2018, 12 : 642 - 668
  • [2] Software Model Checking
    Jhala, Ranjit
    Majumdar, Rupak
    ACM COMPUTING SURVEYS, 2009, 41 (04)
  • [3] Model checking of safety-critical software in the nuclear engineering domain
    Lahtinen, J.
    Valkonen, J.
    Bjorkman, K.
    Frits, J.
    Niemela, I.
    Heljanko, K.
    RELIABILITY ENGINEERING & SYSTEM SAFETY, 2012, 105 : 104 - 113
  • [4] A case study in model checking software systems
    Wing, JM
    VaziriFarahani, M
    SCIENCE OF COMPUTER PROGRAMMING, 1997, 28 (2-3) : 273 - 299
  • [5] Model Checking of Software for Microcontrollers
    Schlich, Bastian
    ACM TRANSACTIONS ON EMBEDDED COMPUTING SYSTEMS, 2010, 9 (04)
  • [6] Software Model Checking SystemC
    Cimatti, Alessandro
    Narasamdya, Iman
    Roveri, Marco
    IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2013, 32 (05) : 774 - 787
  • [7] Making CEGAR More Efficient in Software Model Checking
    Tian, Cong
    Duan, Zhenhua
    Duan, Zhao
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2014, 40 (12) : 1206 - 1223
  • [8] SMT-Based Bounded Model Checking for Embedded ANSI-C Software
    Cordeiro, Lucas
    Fischer, Bernd
    Marques-Silva, Joao
    IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2012, 38 (04) : 957 - 974
  • [9] Model Checking Software in Cyberphysical Systems
    Sirjani, Marjan
    Lee, Edward A.
    Khamespanah, Ehsan
    2020 IEEE 44TH ANNUAL COMPUTERS, SOFTWARE, AND APPLICATIONS CONFERENCE (COMPSAC 2020), 2020, : 1017 - 1026
  • [10] ONTOLOGY-DRIVEN SOFTWARE ENGINEERING: BEYOND MODEL CHECKING AND TRANSFORMATIONS
    Katasonov, Artem
    INTERNATIONAL JOURNAL OF SEMANTIC COMPUTING, 2012, 6 (02) : 205 - 242