中文

电子表格中嵌套 IF 公式的自动化重构

软件工程 2017-12-29 v1

摘要

电子表格是最流行的终端用户编程软件,其中公式类似于程序且也存在坏味。电子表格公式中一个公认的常见坏味是嵌套 IF 表达式,其可读性低、用户认知成本高,且在复用或维护时易出错。然而,终端用户通常缺乏必要的编程语言知识与技能来应对甚至意识到该问题。以往研究在此方面仅做了非常初步的尝试,目前尚无有效且自动化的方法。本文首次提出一种基于 AST 的自动化方法,以系统性地重构嵌套 IF 公式。总体思路有两方面。首先,我们在 AST 上检测并去除逻辑冗余。其次,我们识别已被碎片化与分散化的高层语义,并使用简洁的内置函数重组语法。我们针对一个真实世界的电子表格语料库进行了全面评估,该语料库由一家领先 IT 公司出于研究目的收集。覆盖超过 68,000 个电子表格、含 2,700 万条嵌套 IF 公式的结果显示,我们的方法能够缓解超过 99% 的嵌套 IF 公式的坏味。超过 50% 的重构将嵌套 IF 的嵌套层级降低了逾一半。此外,一项涉及 49 名参与者的调查表明,大多数情况下参与者偏好重构后的公式,并认同此类自动化重构方法是必要且有帮助的。

关键词

引用

@article{arxiv.1712.09797,
  title  = {Automated Refactoring of Nested-IF Formulae in Spreadsheets},
  author = {Jie Zhang and Shi Han and Dan Hao and Lu Zhang and Dongmei Zhang},
  journal= {arXiv preprint arXiv:1712.09797},
  year   = {2017}
}