国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:黄子杰,陈军华,高建华
单位:黄子杰,上海师范大学 计算机科学与技术系, 上海 200234;华东理工大学 计算机科学与工程系, 上海 20023711,陈军华,上海师范大学 计算机科学与技术系, 上海 20023402,高建华,上海师范大学 计算机科学与技术系, 上海 20023403
关键词:Code Smell;JavaScript;内聚;耦合;类
基金:国家自然科学基金(61672355)
Code Smell是软件程序中存在不良设计和不良实现的征兆.正确地检测和识别Code Smell可以指导软件重构,提高软件的可用性和可靠性.通过Code Smell的度量指标,可以量化软件的设计问题.JavaScript已成为最常用的编程语言之一,类是JavaScript的设计模式,优秀类的设计体现为高内聚和低耦合.现有关于JavaScript内聚耦合的Code Smell研究均在微观的层面,即函数和语句上进行.它们可以提供程序实现的重构建议,但无法分析内聚耦合相关的软件系统设计问题.针对FE、DC和Blob这3种类的内聚耦合Code Smell,提出一种JavaScript类的内聚耦合Code Smell检测方法JS4C.该方法基于静态分析,同时适用于客户端和服务端程序.它通过遍历软件系统中所有的类,利用源程序的文本相似度特征和结构特征,识别Code Smell并检测其强度.在结构特征检测中,JS4C使用了经扩展的对象类型推断及非严格的耦合分散度度量法NSCDISP,有效地降低了解释型语言的静态分析过程中,类型信息缺失对检测产生的影响.实验通过对6个开源项目的分析表明,JS4C对内聚耦合设计问题有良好的检测效果.
来源:2021年第8期
《软件学报》期刊编辑部