Automatic dimension inference and checking for object-oriented programs

Automatic dimension inference and checking for object-oriented programs
复制标题

面向对象程序的自动尺寸推断和检查

DOI:
10.1109/icse.2009.5070517
复制
发表时间:
2009
期刊:
2009 IEEE 31st International Conference on Software Engineering
影响因子:
--
通讯作者:
M. Lam
M. Lam
中科院分区:
--
文献类型:
--
作者:
Sudheendra Hangal;M. Lam

文献摘要

被引文献

相似文献

本文介绍了 UniFi,一个尝试自动检测 Java 程序中尺寸错误的工具。 UniFi 使用过程间、上下文相关的分析来推断程序中原始类型和字符串变量之间的维度关系。然后,随着程序的发展,它会监控这些维度关系,标记可能是错误的不一致之处。 UniFi 不需要程序员注释,并且支持任意特定于程序的维度,从而提供细粒度的维度一致性检查。 UniFi 利用面向对象语言的功能,但也可用于其他语言。我们在现实生活中的 Java 代码上运行 UniFi,发现它在暴露尺寸错误方面非常有用。我们提供了一个在 19,000 行代码库的夜间构建中使用 UniFi 的案例研究,该代码库经过 10 个月的演变。
This paper introduces UniFi, a tool that attempts to automatically detect dimension errors in Java programs. UniFi infers dimensional relationships across primitive type and string variables in a program, using an inter-procedural, context-sensitive analysis. It then monitors these dimensional relationships as the program evolves, flagging inconsistencies that may be errors. UniFi requires no programmer annotations, and supports arbitrary program-specific dimensions, thus providing fine-grained dimensional consistency checking. UniFi exploits features of object-oriented languages, but can be used for other languages as well. We have run UniFi on real-life Java code and found that it is useful in exposing dimension errors. We present a case study of using UniFi on nightly builds of a 19,000 line code base as it evolved over 10 months.