一句话:提出概率推断方法,从变量名和表达式线索中分配物理单位并检测不一致,显著提升覆盖率和准确率。
机器人及信息物理系统中的变量常隐含物理单位,但变量类型无法表达,且单位不一致会导致严重错误。现有方法依赖开发者标注,或只能处理与已知机器人库直接/传递相关的变量。论文提出 Phys,利用变量名和特定表达式形式等带有不确定性的单位线索,将其建模为概率分布并进行概率推断,为每个变量得到单位分布,再用高概率单位分配检测不一致。在 30 个程序上,单位推断的变量数比先进方法多 159.3%,真阳性率超过 88.7%;在 90 个程序上的不一致检测中,报告的不一致数多 103.3%,真阳性率为 85.3%。
Program variables used in robotic and cyber-physical systems often have implicit physical units that cannot be determined from their variable types. Inferring an abstract physical unit type for variables and checking their physical unit type consistency is of particular importance for validating the correctness of such systems. For instance, a variable with the unit of ‘meter’ should not be assigned to another variable with the unit of ‘degree-per-second’. Existing solutions have various limitations such as requiring developers to annotate variables with physical units and only handling variables that are directly or transitively used in popular robotic libraries with known physical unit information. We observe that there are a lot of physical unit hints in these softwares such as variable names and specific forms of expressions. These hints have uncertainty as developers may not respect conventions. We propose to model them with probability distributions and conduct probabilistic inference. At the end, our technique produces a unit distribution for each variable. Unit inconsistencies can then be detected using the highly probable unit assignments. Experimental results on 30 programs show that our technique can infer units for 159.3% more variables compared to the state-of-the-art with more than 88.7% true positives, and inconsistencies detection on 90 programs shows that our technique reports 103.3% more inconsistencies with 85.3% true positives.
@inproceedings{paperbot4675,
title = {Phys: probabilistic physical unit assignment and inconsistency detection},
author = {Sayali Kate and John-Paul Ore and Xiangyu Zhang and Sebastian Elbaum and Zhaogui Xu},
booktitle = {FSE},
year = {2018},
doi = {10.1145/3236024.3236035}
}