The notion of refinement plays an important role in software engineering. It is the basis of a stepwise development methodology in which the correctness of a system can be established by proving, or computing, that a system refines its specification. Wang et al. describe algorithms based on antichains for efficiently deciding trace refinement, stable failures refinement and failures-divergences refinement. We identify several issues pertaining to the soundness and performance in these algorithms and propose new, correct, antichain-based algorithms. Using a number of experiments we show that our algorithms outperform the original ones in terms of running time and memory usage. Furthermore, we show that additional run time improvements can be obtained by applying divergence-preserving branching bisimulation minimisation.
翻译:改进概念在软件工程中起着重要作用。它是一个渐进式发展方法的基础,在这个方法中,可以通过证明或计算来确定系统是否正确,使系统能够完善其规格。 Wang et al.描述基于抗链的算法,以便有效决定微量改进、稳定故障改进和故障-差幅改进。我们找出了与这些算法的健全性和性能有关的几个问题,并提出了新的、正确的、以反链为基础的算法。我们用一些实验来表明,我们的算法在运行时间和记忆使用方面超过了原来的算法。此外,我们还表明,通过应用差异-保留分节减法可以取得额外的运行时间改进。