arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 1602.02004cs.SE
收藏

事件B的代码生成

Code Generation for Event-B

Victor Rivera

摘要:

逐步求精和契约设计是两种形式化的系统建模方法。这些方法在系统开发中被广泛使用。这两种方法都有(缺点)。本论文的目的是回答,是否有可能结合这两种方法在系统的开发,为用户提供两者的好处?我们通过将Event-B的逐步细化方法翻译为Java和JML的契约式设计来回答这个问题,因此用户可以充分利用这两种正式方法而不会失去他们的好处。本文提出了一套语法规则,将Event-B转换为带XML注释的Java代码。它还介绍了作为EventB 2 Java工具的语法规则的实现。我们使用该工具翻译了几个Event-B模型。它为所有考虑的模型生成了XML注释的Java代码,这些代码用作初始实现。我们还使用EventB 2 Java开发了两个软件应用程序。此外,我们还将EventB 2 Java与其他两个用于Event-B代码生成的工具进行了比较。EventB 2 Java使用户能够在Event-B中开始软件开发过程,用户可以在Event-B中对系统进行建模并证明其一致性,然后过渡到带XML注释的Java代码,用户可以在Event-B中继续开发过程。

英文摘要:

Stepwise refinement and Design-by-Contract are two formal approaches for modelling systems. These approaches are widely used in the development of systems. Both approaches have (dis-)advantages. This thesis aims to answer, is it possible to combine both approaches in the development of systems, providing the user with the benefits of both? We answer this question by translating the stepwise refinement method with Event-B to Design-by-Contract with Java and JML, so users can take full advantage of both formal approaches without losing their benefits. This thesis presents a set of syntactic rules that translates Event-B to JML-annotated Java code. It also presents the implementation of the syntactic rules as the EventB2Java tool. We used the tool to translate several Event-B models. It generated JML-annotated Java code for all the considered models that serve as initial implementation. We also used EventB2Java for the development of two software applications. Additionally, we compared EventB2Java against two other tools for Event-B code generation. EventB2Java enables users to start the software development process in Event-B, where users can model the system and prove its consistency, to then transition to JML-annotated Java code, where users can continue the development process.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑