《计算机应用研究》|Application Research of Computers

基于双重维度发现代码变更模式的挖掘方法

Software change pattern mining based on double dimensions

免费全文下载 (已被下载 次)  
获取PDF全文
作者 左翔宇,刘婧,何璐璐
机构 武汉大学 计算机学院 软件工程国家重点实验室,武汉 430072
统计 摘要被查看 次,已被下载
文章编号 1001-3695(2017)08-2252-06
DOI 10.3969/j.issn.1001-3695.2017.08.003
摘要 在代码演变的历史中,识别出重复的代码变更,对工具开发者、项目开发者、代码研究者都大有裨益。在代码演变的历史信息中,通过抽取细粒度的变更,采用两重维度划分事务,应用频繁项集挖掘算法提取出一些频繁的代码变更模式。以真实项目为对象进行了实验分析,结果表明该方法能有效挖掘出项目演变历史中的频繁代码变更,检测出有意义的高层次程序转换。
关键词 代码演变历史;代码变更模式;两重维度;频繁项集挖掘;高层次程序转换
基金项目
本文URL http://www.arocmag.com/article/01-2017-08-003.html
英文标题 Software change pattern mining based on double dimensions
作者英文名 Zuo Xiangyu, Liu Jing, He Lulu
机构英文名 StateKeyLaboratoryofSoftwareEngineering,SchoolofComputer,WuhanUniversity,Wuhan430072,China
英文摘要 Identifying repetitive code changes from the history of code evolution, can benefit tool builders, program developers and code researchers. This paper employed the algorithm of change distiller to extract fine-grained changes from the code evolution history and then derived transactions using both the temporal and spacial dimentions. This paper designed a frequent multiple instance itemset mining algorithm, and applied to derive valuable high-level program change patterns. Experiment results on the real software projects illustrate that this approach can find the frequent code changes from the history of program evolution, reveal significant and high-level program transformations.
英文关键词 history of code evolution; code change pattern; both temporal and spacial dimensions; frequent itemset mining; high-level program transformation
参考文献 查看稿件参考文献
  [1] Lapainskait R, Boguslauskas V. The maintenance cost allocation in product life cycle[J] . Engineering Economics, 2015, 44(4):17-23.
[2] Jr Brooks F P. The mythical man-month[M] . anniversary ed. [S. l. ] :Addison-Wesley Longman Publishing Co, 1995.
[3] Alenezi M, Zarour M. Does software structures quality improve over software evolution? Evidences from open-source projects[J] . International Journal of Computer Science and Information Security, 2016, 14(S1):61-75.
[4] Bakota T, Hegedüs P, Ladányi G, et al. A cost model based on software maintainability[C] //Proc of the 28th IEEE International Conference on Software Maintenance. 2012:316-325.
[5] Aggarwal C C, Han Jiawei. Frequent pattern mining[M] . [S. l. ] :Springer International Publishing, 2014.
[6] Meng Na, Kim M, Mckinley K S. LASE:locating and applying systematic edits by learning from examples[C] //Proc of International Conference on Software Engineering. 2013:1319-1322.
[7] Fluri B, Wuersch M, Pinzger M, et al. Change distilling:tree diffe-rencing for fine-grained source code change extraction[J] . IEEE Trans on Software Engineering, 2007, 33(11):725-743.
[8] Fluri B, Giger E, Gall H C. Discovering patterns of change types[C] //Proc of IEEE/ACM International Conference on Automated Software Engineering. Washington DC:IEEE Computer Society, 2008:463-466.
[9] Bruch M, Monperrus M, Mezini M. Learning from examples to improve code completion systems[C] //Proc of Joint Meeting of the European Software Engineering and ACM SIGSOFT International Symposium on Foundations of Software Engineering. 2009:213-222.
[10] El-Matarawy A, El-Ramly M, Bahgat R. Code clone detection using sequential pattern mining[J] . International Journal of Computer Applications, 2015, 127(2):10-18.
[11] Avetisyan A, Kurmangaleev S, Sargsyan S, et al. LLVM-based code clone detection framework[C] //Computer Science and Information Technologies. Washington DC:IEEE Computer Society, 2015:100-104.
[12] Negara S, Codoban M, Dig D, et al. Mining fine-grained code changes to detect unknown change patterns[C] //Proc of the 36th International Conference on Software Engineering. 2014:803-813.
[13] Canfora G, Cerulo L, Penta M D. Identifying changed source code lines from version repositories[C] //Proc of the 29th International Workshop on Software Engineering. Washington DC:IEEE Computer Society, 2007:14.
[14] Chawathe S S, Rajaraman A, Garciamolina H, et al. Change detection in hierarchically structured information[J] . ACM SIGMOD Record, 1996, 25(2):493-504.
[15] Wang Hui. MaxMining:a novel algorithm for mining maximal frequent itemset, applied mechanics and materials[J] . Applied Mechanics and Materids, 2015, 713-715:1765-1768.
[16] Bhandari A, Gupta A, Das D. Improvised Apriori algorithm using frequent pattern tree for real time applications in data mining[J] . Procedia Computer Science, 2015, 46:644-651.
[17] Ramya V, Ramakrishnan M. Mining association rules using modified FP-Growth algorithm[J] . International Journal for Research in Emerging Science and Technology, 2016, 3(1):210-213.
[18] Ma Zhiyong, Yang Juncheng, Zhang Taixia, et al. An improved Eclat algorithm for mining association rules based on increased search strategy[J] . International Journal of Database Theory and Application, 2016, 9(5):251-266.
[19] Ye Xin, Wei Feng, Jiang Fan, et al. An optimization to CHARM algorithm for mining frequent closed itemsets[C] //Proc of IEEE International Conference on Computer and Information Technology;Ubi-quitous Computing and Communications;Dependable, Autonomic and Secure Computing;Pervasive Intelligence and Computing. 2015:226-235.
收稿日期 2016/10/13
修回日期 2016/11/30
页码 2252-2257
中图分类号 TP311.52
文献标志码 A