【24h】

Synthesis of interface specifications for Java classes

机译:Java类的接口规范的综合

获取原文
获取原文并翻译 | 示例
获取外文期刊封面目录资料

摘要

While a typical software component has a clearly specified (static) interface in terms of the methods and the input/output types they support, information about the correct sequencing of method calls the client must invoke is usually undocumented. In this paper, we propose a novel solution for automatically extracting such temporal specifications for Java classes. Given a Java class; and a safety property such as "the exception E should not be raised", the corresponding (dynamic) interface is the most general way of invoking the methods in the class so that the safety property is not violated. Our synthesis method first constructs a symbolic representation of the finite state-transition system obtained from the class using predicate abstraction. Constructing the interface then corresponds to solving a partial-information two-player game on this symbolic graph. We present a sound approach to solve this computationally-hard problem approximately using algorithms for learning finite automata and symbolic model checking for branching-time logics. We describe an implementation of the proposed techniques in the tool JIST-Java Interface Synthesis Tool-and demonstrate that the tool can construct interfaces accurately and efficiently for sample Java2SDK library classes.
机译:尽管一个典型的软件组件在方法及其支持的输入/输出类型方面具有明确指定的(静态)接口,但是有关客户端必须调用的方法调用正确顺序的信息通常是未记录的。在本文中,我们提出了一种新颖的解决方案,用于自动提取Java类的此类时间规范。给定一个Java类;和诸如“不应引发异常E”之类的安全属性,相应的(动态)接口是调用该类中的方法的最通用方法,因此不会违反该安全属性。我们的综合方法首先使用谓词抽象构造从类中获得的有限状态转换系统的符号表示。构造接口则对应于在该符号图上解决部分信息的两人游戏。我们提出了一种合理的方法来解决此计算难题,大约使用学习有限自动机的算法和分支时间逻辑的符号模型检查来解决。我们在工具JIST-Java接口综合工具中描述了所建议技术的实现,并演示了该工具可以为示例Java2SDK库类准确而有效地构造接口。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号