Static Detection of Implementation Errors Using Formal Code Specification

被引:0
|
作者
Saleh, Iman [1 ]
Kulczycki, Gregory [2 ]
Blake, M. Brian [1 ]
Wei, Yi [3 ]
机构
[1] Univ Miami, Dept Comp Sci, Coral Gables, FL 33124 USA
[2] Battelle Mem Inst, Cyber Innovat Unit, Columbus, OH USA
[3] Notre Dame Univ, Dept Comp Sci & Engn, Notre Dame, IN USA
来源
SOFTWARE ENGINEERING AND FORMAL METHODS, SEFM 2013 | 2013年 / 8137卷
关键词
Formal Methods; Mutation Testing; Experimentation; NUMBER; JML;
D O I
暂无
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
The software engineering community suggests that formal specification of source code facilitates the verification that can help to identify hidden functional errors. In this work, we investigate the impact of various levels of formal specification on the ability to statically detect errors in code. Our goal is to quantify the return on investment with regards to the effectiveness of identifying errors versus the overhead of specifying software at various levels of detail. We looked at common algorithms and data structures implemented using C# and specified using Spec#. We selectively omitted various parts of the specification to come up with five different levels of specification, from unspecified to highly-specified. For each level of specification, we injected errors into the classes using a fault injection tool. Experimentation using a verifier showed that over 80% of the errors were detected from the highest specification levels while the levels in between generated mixed results. To the best of our knowledge, our study is the first to quantitatively measure the effect of formal methods on code quality. We believe that our work can help convince skeptics that formal methods can be practically integrated into programming activities to produce code with higher quality even with partial specification.
引用
收藏
页码:197 / 211
页数:15
相关论文
共 50 条
  • [1] Static and Precise Detection of Concurrency Errors in Systems Code Using SMT Solvers
    Lahiri, Shuvendu K.
    Qadeer, Shaz
    Rakamaric, Zvonimir
    COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2009, 5643 : 509 - +
  • [2] Formal Specification and Implementation of Priority Queue using Stream Functions
    Hu, Gongzhu
    Zhang, Jin
    Lee, Roger
    INTERNATIONAL JOURNAL OF SOFTWARE INNOVATION, 2013, 1 (03) : 66 - 75
  • [3] Formal specification and implementation of an automated pattern-based parallel-code generation framework
    Gervasio Pérez
    Sergio Yovine
    International Journal on Software Tools for Technology Transfer, 2019, 21 : 183 - 202
  • [4] Formal specification and implementation of an automated pattern-based parallel-code generation framework
    Perez, Gervasio
    Yovine, Sergio
    INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2019, 21 (02) : 183 - 202
  • [5] An approach to detecting domain errors using formal specification-based testing
    Chen, YT
    Liu, SY
    11TH ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2004, : 276 - 283
  • [6] Formal Specification, Refinement, and Implementation of Path Planning
    Rabiah, Eman
    Belkhouche, Boumediene
    PROCEEDINGS OF THE 2016 12TH INTERNATIONAL CONFERENCE ON INNOVATIONS IN INFORMATION TECHNOLOGY (IIT), 2016, : 1 - 6
  • [7] THE FORMAL SPECIFICATION AND PROTOTYPE IMPLEMENTATION OF A SIMPLE EDITOR
    AMOROSO, EG
    SIGPLAN NOTICES, 1985, 20 (08): : 51 - 59
  • [8] Formal Specification, Implementation, and Evaluation of the AdoBPRIM Approach
    Thabet, Rafika
    Lamine, Elyes
    Boufaied, Amine
    Bork, Dominik
    Korbaa, Ouajdi
    Pingaud, Herve
    AMCIS 2020 PROCEEDINGS, 2020,
  • [9] PLC Code Generation Based on a Formal Specification Language
    Darvas, Daniel
    Vinuela, Enrique Blanco
    Majzik, Istvan
    2016 IEEE 14TH INTERNATIONAL CONFERENCE ON INDUSTRIAL INFORMATICS (INDIN), 2016, : 389 - 396
  • [10] FORMAL SPECIFICATION AND IMPLEMENTATION OF COMPUTATIONAL AGGREGATION FUNCTIONS
    Lopez, Victoria
    Montero, Javier
    Tinguaro Rodriguez, J.
    COMPUTATIONAL INTELLIGENCE: FOUNDATIONS AND APPLICATIONS: PROCEEDINGS OF THE 9TH INTERNATIONAL FLINS CONFERENCE, 2010, 4 : 523 - +