当前位置: X-MOL 学术Automat. Softw. Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Automatic B-model repair using model checking and machine learning
Automated Software Engineering ( IF 2.0 ) Pub Date : 2019-08-14 , DOI: 10.1007/s10515-019-00264-4
Cheng-Hao Cai , Jing Sun , Gillian Dobbie

The B-method, which provides automated verification for the design of software systems, still requires users to manually repair faulty models. This paper proposes B-repair, an approach that supports automated repair of faulty models written in the B formal specification language. After discovering a fault in a model using the B-method, B-repair is able to suggest possible repairs for the fault, estimate the quality of suggested repairs and use a suitable repair to revise the model. The suggestion of repairs is produced using the Isolation method, which suggests changing the pre-conditions of operations, and the Revision method, which suggests changing the post-conditions of operations. The estimation of repair quality makes use of machine learning techniques that can learn the features of state transitions. After estimating the quality of suggested repairs, the repairs are ranked, and a best repair is selected according to the result of ranking and is used to revise the model. This approach has been evaluated using a set of finite state machines seeded with faults and a case study. The evaluation has revealed that B-repair is able to repair a large number of faults, including invariant violations, assertion violations and deadlock states, and gain high accuracies of repair. Using the combination of model checking and machine learning-guided techniques, B-repair saves development time by finding and repairing faults automatically during design.

中文翻译:

使用模型检查和机器学习自动修复 B 模型

B 方法为软件系统的设计提供自动验证,但仍需要用户手动修复故障模型。本文提出了 B-repair,一种支持自动修复用 B 形式规范语言编写的错误模型的方法。在使用 B 方法发现模型中的故障后,B-repair 能够为故障提出可能的修复建议,估计建议修复的质量并使用合适的修复来修改模型。维修建议是使用隔离方法产生的,它建议改变操作的先决条件,以及修订方法,它建议改变操作的后条件。修复质量的估计利用了机器学习技术,可以学习状态转换的特征。在对建议修复的质量进行估计后,对修复进行排序,并根据排序结果选择最佳修复并用于修正模型。已使用一组带有故障种子的有限状态机和案例研究对这种方法进行了评估。评估表明,B-repair 能够修复大量故障,包括不变量违反、断言违反和死锁状态,并获得较高的修复精度。B-repair 结合使用模型检查和机器学习引导技术,通过在设计过程中自动查找和修复故障来节省开发时间。已使用一组带有故障种子的有限状态机和案例研究对这种方法进行了评估。评估表明,B-repair 能够修复大量故障,包括不变量违反、断言违反和死锁状态,并获得较高的修复精度。B-repair 结合使用模型检查和机器学习引导技术,通过在设计过程中自动查找和修复故障来节省开发时间。已使用一组带有故障种子的有限状态机和案例研究对这种方法进行了评估。评估表明,B-repair 能够修复大量故障,包括不变量违反、断言违反和死锁状态,并获得较高的修复精度。B-repair 结合使用模型检查和机器学习引导技术,通过在设计过程中自动查找和修复故障来节省开发时间。
更新日期:2019-08-14
down
wechat
bug