中文

GUI 设计坏味的自动检测:以 Blob 监听器为例

软件工程 2017-03-28 v1 人机交互

摘要

图形用户界面(GUIs)严重依赖事件驱动编程:控件(widgets)将捕获用户交互的 GUI 事件发送给称为控制器(controllers)的专用对象。控制器实现若干处理这些事件以产生 GUI 命令的 GUI 监听器。本工作中,我们对 13 个大型 Java Swing 开源软件系统进行了实证研究。我们研究了 GUI 监听器所能产生的 GUI 命令数量在多大程度上影响该监听器代码易变更与易出错的程度。我们识别出一种称为 Blob 监听器(Blob listener)的新型设计坏味(design smell),其特征是能产生多于两个 GUI 命令的 GUI 监听器。我们发现所分析的 GUI 控制器中有 21% 是 Blob 监听器。我们提出了一种系统的静态代码分析流程来搜索 Blob 监听器,并在 InspectorGuidget 工具中予以实现。我们在六个软件系统上进行了实验,手动识别出 37 个 Blob 监听器实例。InspectorGuidget 成功检测出 37 个中的 36 个 Blob 监听器。结果展现出 97.37% 的精确率与 97.59% 的召回率。最后,我们提出避免使用该 Blob 监听器的编码实践。

关键词

引用

@article{arxiv.1703.08803,
  title  = {Automatic Detection of GUI Design Smells: The Case of Blob Listener},
  author = {Valéria Lelli and Arnaud Blouin and Benoit Baudry and Fabien Coulon and Olivier Beaudoux},
  journal= {arXiv preprint arXiv:1703.08803},
  year   = {2017}
}