B-Repair: Repairing B-Models Using Machine Learning

Chenghao Cai,Jing Sun,Gillian Dobbie
DOI: https://doi.org/10.1109/ICECCS2018.2018.00012
2018-01-01
Abstract:The B-method provides facilities for the design, development and automated verification of software systems, but the repair of faulty abstract machines of B is still a manual task. This paper proposes B-repair, a method that supports the computer-assisted repair of faulty abstract machines. Based on model checking, the B-repair system can generate possible repairs, evaluate the repairs and apply the repairs to faulty B machines. The generation of repairs is based on two formal templates, namely isolation and revision. Moreover, the evaluation of repairs is based on machine learning techniques, such as logistic models, residual neural networks and random forests. The machine learning models learn from the state graph of the original abstract machine, which are used to estimate the quality of repairs. Users are able to select satisfactory repairs and apply the selected repairs to the original machine. Using such a computer-assisted methodology, the B-repair method improves the efficiency of software development using the B-method. The B-repair method has been validated using different real-world models, and the validation result has shown that B-repair can suggest a number of repairs with realistic meanings.
What problem does this paper attempt to address?