arrow
返回

Rigorous code review by reverse engineering

delete2021-05-01
delete3
PRE
AI
S
Shaoying Liu *
李
李虹辉 (Honghui Li)
Z
Zhouxian Jiang
X
Xiuru Li
F
Feng Liu
Y
Yan Zhong
DOI:10.1016/j.infsof.2020.106503delete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
Context: Agile software development methods advocate the importance of producing working software without comprehensive documentation. While this approach seems to suit the evolutionary nature of realistic software development for many applications, even including safety-critical systems, it faces two major challenges. One is the lack of a comprehensible specification for code evolution and future maintenance, and the other is the potentially huge cost in code verification. Objective: To address this problem, we believe that supporting the efficient production of system specification by reversing the program constructed as the result of an agile development will be a useful solution. The reverse engineering of specifications from programs will not only help us produce the necessary specification for future program evolution, but more importantly can help us rigorously review the program to detect bugs for the enhancement of program quality. Method: In this paper, we put forward a novel method for rigorously reviewing code by reversing it into a comprehensible, formal specification. We elaborate on the principle of translating code into a specification and discuss how the translation process helps detect bugs in programs. We demonstrate how the proposed method works in practice with examples. We also present an experiment to evaluate the performance of the method by comparing it with existing checklist-based inspection. Conclusions: How to utilize reverse engineering of formal specifications from programs as a means to review the program for bug detection is an almost unexplored topic in software engineering. In this paper, we have described a specific method called RCRRE to reverse engineering of SOFL formal specifications from code and discussed how the reverse engineering process can be taken as an effective means to review the program for bug detection. The principle of converting code to a SOFL specification is reflected by a set of translation patterns and a two-step approach to construct a SOFL specification is established. To evaluate the performance, we have carried out an experiment on the effectiveness of our RCRRE method by comparing it with the CBI approach. The result of the experiment indicates that using our RCRRE method can effectively help the reviewer scrutinize the code and therefore find more bugs than the CBI when the reviewer is rather familiar with the SOFL specification language and skills. In the meanwhile, it also shows that the effectiveness of our RCRRE method may be affected in the situation where the reviewer lacks sufficient understanding and experience of SOFL, and using our RCRRE method may in general take a little longer time than the CBI.
Keyword:
Agile method
Reverse engineering
Formal specification
Bug detection
AI总结

AI总结

对已上传原文的论文进行重点信息的提取,主要内容包括:简要概述、研究摘要、背景介绍、关键亮点、图文解析、展望与总结。

期刊

Information and Software Technology 封面图
Information and Software Technology
IF:
4.3
论文数:
3.8K
被引数:
7.7K

机构

B
Beijing Jiaotong University
学者数:
2.2W
论文数: 1.7W
被引数: 1.2W
H
Hiroshima University
学者数:
2.1W
论文数: 1.5W
被引数: 1.3W
引用论文

引用论文

Risk factors for nuclear and cortical cataracts: A hospital based study
err2015-01-01
err0
errOAAI
errBangeraSheshappa Mamatha; Bhatiwada Nidhi; ChamrajnagarAnantharajiah Padmaprabhu; Prabhu Pallavi; Baskaran Vallikannan
err分享
err收藏
Best practices in code inspection for safety-critical software
err2003-05-01
err17
PREAI
errde Almeida, JR; Camargo, JB; Basseto, BA; Paz, SM
err分享
err收藏
err分享
err收藏
Transforming representations of movement from body- to world-centric space
err
IF0
err2020-12-23
err0
errOAAI
errJenny Lu; Elena A. Westeinde; Lydia Hamburg; Paul M. Dawson; Cheng Lyu; Gaby Maimon; Shaul Druckmann; Rachel I. Wilson
err分享
err收藏
学者 查看更多内容