当前位置: X-MOL 学术J. Comput. Lang. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Stepwise abstraction of high-level system specifications from source code
Journal of Computer Languages ( IF 1.7 ) Pub Date : 2020-08-06 , DOI: 10.1016/j.cola.2020.100996
Flavio Ferrarotti , Michael Moser , Josef Pichler

We are interested in specifications which provide a consistent high-level view of systems. They should abstract irrelevant details and provide a precise and complete description of the behaviour of the system. This view of software specification can naturally be expressed by means of Gurevich’s Abstract State Machines (ASMs). There are many known benefits of such an approach to system specifications for software engineering and testing. In practice however, such specifications are rarely generated and/or maintained during software development. Addressing this problem, we present an exploratory study on (semi-)automated extraction of high-level software specifications by means of ASMs. We devise a method consisting in two phases. In the first phase we propose fully automated transformations from source code to base-level ASM specifications with the same core functionality. We present a prototype of an implementation of this phase which transforms Java code into base-level ASM specifications. The second phase consists in incrementally applying sound semi-automated abstraction procedures for ASMs to derive higher-level specifications, starting from the base-level ASM specification obtained in the first phase. This is by no means a trivial task. It opens up new and interesting research questions. We discuss possible methodologies to approach this task and provide a proof of concept in the form of elaborated and detailed examples. We argue that this process can be done in a (semi-)automated way and thus result in a valuable tool to improve the current software engineering practices.



中文翻译:

从源代码逐步抽象出高级系统规范

我们对提供一致的系统高级视图的规范感兴趣。他们应该抽象无关的细节,并提供系统行为的精确而完整的描述。这种软件规范的观点自然可以通过Gurevich的抽象状态机(ASM)来表达。这种用于软件工程和测试的系统规范方法具有许多已知的好处。然而,实际上,在软件开发期间很少生成和/或维护这样的规范。为了解决此问题,我们提出了一项关于通过ASM(半)自动提取高级软件规范的探索性研究。我们设计了一种由两个阶段组成的方法。在第一阶段,我们提出了从源代码到具有相同核心功能的基本级别ASM规范的全自动转换。我们提供了此阶段实现的原型,该原型将Java代码转换为基本级别的ASM规范。第二阶段包括从第一阶段中获得的基本级别ASM规范开始,逐步对ASM应用合理的半自动抽象过程以得出更高级别的规范。这绝不是一件简单的任务。它提出了新的有趣的研究问题。我们讨论了解决此任务的可能方法,并以详尽详细的示例形式提供了概念验证。

更新日期:2020-08-06
down
wechat
bug