论文标题

为什么您可以重构时只是烦恼呢?重新调整怪异的要求

Why just FRET when you can Refactor? Retuning FRETISH Requirements

论文作者

Luckcuck, Matt, Farrell, Marie, Sheridan, Oisín

论文摘要

对软件系统的正式验证依赖于正式遵循的要求,这可能具有挑战性。在自然语言的正式要求的同时,我们的依赖项会导致许多要求重复信息,这意味着对一个要求的更改会导致几个地方的更新。我们建议对NASA的正式需求启发工具(FRET)改编代码重构,这是我们的选择工具。重构是重组软件以改善其内部结构而不改变其外部行为的过程;它也可以应用于要求,以通过减少重复来使其更易于管理。 FRET会自动将需求(以其输入语言怪异)的形式转化为时间逻辑,这使我们能够正式验证重构保留了需求的基本含义。在本文中,我们提出了四个针对怪异要求的重构,并解释了它们的效用。我们描述了其中一种重构对民用飞机发动机软件控制器的要求的应用,以使依赖项与重复的依赖性解矛,并分析这如何改变要求的数量和重复的数量。我们使用Spot评估我们的方法,该方法是用于检查时间逻辑规格等效性的工具。

Formal verification of a software system relies on formalising the requirements to which it should adhere, which can be challenging. While formalising requirements from natural-language, we have dependencies that lead to duplication of information across many requirements, meaning that a change to one requirement causes updates in several places. We propose to adapt code refactorings for NASA's Formal Requirements Elicitation Tool (FRET), our tool-of-choice. Refactoring is the process of reorganising software to improve its internal structure without altering its external behaviour; it can also be applied to requirements, to make them more manageable by reducing repetition. FRET automatically translates requirements (written in its input language Fretish) into Temporal Logic, which enables us to formally verify that refactoring has preserved the requirements' underlying meaning. In this paper, we present four refactorings for Fretish requirements and explain their utility. We describe the application of one of these refactorings to the requirements of a civilian aircraft engine software controller, to decouple the dependencies from the duplication, and analyse how this changes the number of requirements and the number of repetitions. We evaluate our approach using Spot, a tool for checking equivalence of Temporal Logic specifications.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源