自动检测GUI设计气味:Blob监听器的案例

Valéria Lelli, Arnaud Blouin, B. Baudry, F. Coulon, Olivier Beaudoux
{"title":"自动检测GUI设计气味:Blob监听器的案例","authors":"Valéria Lelli, Arnaud Blouin, B. Baudry, F. Coulon, Olivier Beaudoux","doi":"10.1145/2933242.2933260","DOIUrl":null,"url":null,"abstract":"Graphical User Interfaces (GUIs) intensively rely on event-driven programming: widgets send GUI events, which capture users' interactions, to dedicated objects called controllers. Controllers implement several GUI listeners that handle these events to produce GUI commands. In this work, we conducted an empirical study on 13 large Java Swing open-source software systems. We study to what extent the number of GUI commands that a GUI listener can produce has an impact on the change- and fault-proneness of the GUI listener code. We identify a new type of design smell, called Blob listener that characterizes GUI listeners that can produce more than two GUI commands. We show that 21% of the analyzed GUI controllers are Blob listeners. We propose a systematic static code analysis procedure that searches for Blob listener that we implement in InspectorGuidget. We conducted experiments on six software systems for which we manually identified 37 instances of Blob listener. InspectorGuidget successfully detected 36 Blob listeners out of 37. The results exhibit a precision of 97.37% and a recall of 97.59%. Finally, we propose coding practices to avoid the use of Blob listeners.","PeriodicalId":287624,"journal":{"name":"Proceedings of the 8th ACM SIGCHI Symposium on Engineering Interactive Computing Systems","volume":"23 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-06-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"11","resultStr":"{\"title\":\"Automatic detection of GUI design smells: the case of Blob listener\",\"authors\":\"Valéria Lelli, Arnaud Blouin, B. Baudry, F. Coulon, Olivier Beaudoux\",\"doi\":\"10.1145/2933242.2933260\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Graphical User Interfaces (GUIs) intensively rely on event-driven programming: widgets send GUI events, which capture users' interactions, to dedicated objects called controllers. Controllers implement several GUI listeners that handle these events to produce GUI commands. In this work, we conducted an empirical study on 13 large Java Swing open-source software systems. We study to what extent the number of GUI commands that a GUI listener can produce has an impact on the change- and fault-proneness of the GUI listener code. We identify a new type of design smell, called Blob listener that characterizes GUI listeners that can produce more than two GUI commands. We show that 21% of the analyzed GUI controllers are Blob listeners. We propose a systematic static code analysis procedure that searches for Blob listener that we implement in InspectorGuidget. We conducted experiments on six software systems for which we manually identified 37 instances of Blob listener. InspectorGuidget successfully detected 36 Blob listeners out of 37. The results exhibit a precision of 97.37% and a recall of 97.59%. Finally, we propose coding practices to avoid the use of Blob listeners.\",\"PeriodicalId\":287624,\"journal\":{\"name\":\"Proceedings of the 8th ACM SIGCHI Symposium on Engineering Interactive Computing Systems\",\"volume\":\"23 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2016-06-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"11\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Proceedings of the 8th ACM SIGCHI Symposium on Engineering Interactive Computing Systems\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/2933242.2933260\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 8th ACM SIGCHI Symposium on Engineering Interactive Computing Systems","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2933242.2933260","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 11

摘要

图形用户界面(GUI)高度依赖于事件驱动编程:小部件将捕获用户交互的GUI事件发送到称为控制器的专用对象。控制器实现几个GUI监听器来处理这些事件以生成GUI命令。在这项工作中,我们对13个大型Java Swing开源软件系统进行了实证研究。我们研究GUI侦听器可以生成的GUI命令的数量对GUI侦听器代码的变更和错误倾向的影响程度。我们确定了一种新的设计气味类型,称为Blob侦听器,它的特点是可以产生两个以上GUI命令的GUI侦听器。我们显示,所分析的GUI控制器中有21%是Blob侦听器。我们提出了一个系统的静态代码分析过程,用于搜索我们在inspectorguide中实现的Blob侦听器。我们在六个软件系统上进行了实验,我们手动识别了37个Blob侦听器实例。InspectorGuidget成功检测到37个Blob监听器中的36个。结果显示,准确率为97.37%,召回率为97.59%。最后,我们提出了避免使用Blob侦听器的编码实践。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Automatic detection of GUI design smells: the case of Blob listener
Graphical User Interfaces (GUIs) intensively rely on event-driven programming: widgets send GUI events, which capture users' interactions, to dedicated objects called controllers. Controllers implement several GUI listeners that handle these events to produce GUI commands. In this work, we conducted an empirical study on 13 large Java Swing open-source software systems. We study to what extent the number of GUI commands that a GUI listener can produce has an impact on the change- and fault-proneness of the GUI listener code. We identify a new type of design smell, called Blob listener that characterizes GUI listeners that can produce more than two GUI commands. We show that 21% of the analyzed GUI controllers are Blob listeners. We propose a systematic static code analysis procedure that searches for Blob listener that we implement in InspectorGuidget. We conducted experiments on six software systems for which we manually identified 37 instances of Blob listener. InspectorGuidget successfully detected 36 Blob listeners out of 37. The results exhibit a precision of 97.37% and a recall of 97.59%. Finally, we propose coding practices to avoid the use of Blob listeners.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Engineering mixed-criticality interactive applications Bluewave: enabling opportunistic context sharing via bluetooth device names Statistical analysis and improvement of the repeatability and reproducibility of an evaluation method for IMUs on a smartphone Faceted search on coordinated tablets and tabletop: a comparison Automatic detection of GUI design smells: the case of Blob listener
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1