Using Hierarchical Latent Dirichlet Allocation to Construct Feature Tree for Program Comprehension

被引:2
作者
Sun, Xiaobing [1 ]
Liu, Xiangyue [2 ]
Duan, Yucong [3 ]
Li, Bin [1 ]
机构
[1] Yangzhou Univ, Sch Informat Engn, Yangzhou, Jiangsu, Peoples R China
[2] Nanjing Univ Posts & Telecommun, Tongda Coll, Nanjing, Jiangsu, Peoples R China
[3] Hainan Univ, Haikou, Hainan, Peoples R China
基金
中国博士后科学基金; 中国国家自然科学基金;
关键词
SOFTWARE ARCHITECTURE; SOURCE CODE; INFORMATION; SUPPORT;
D O I
10.1155/2017/4382348
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Programcomprehension is an important task faced by developers during softwaremaintenance. With the increasing complexity of evolving systems, program comprehension becomes more and more difficult. In practice, programmers are accustomed to getting a general view of the features in a software system and then finding the interesting or necessary files to start the understanding process. Given a system, developers may need a general view of the system. The traditional view of a system is shown in a packageclass structure which is difficult to understand, especially for large systems. In this article, we focus on understanding the system in both feature view and file structure view. This article proposes an approach to generate a feature tree based on hierarchical Latent Dirichlet Allocation (hLDA), which includes two hierarchies, the feature hierarchy and file structure hierarchy. The feature hierarchy shows the features from abstract level to detailed level, while the file structure hierarchy shows the classes from whole to part. Empirical results show that the feature tree can produce a view for the features and files, and the clustering of classes in the package in our approach is better (in terms of recall) than the other clustering approach, that is, hierarchical clustering.
引用
收藏
页数:11
相关论文
共 56 条
[1]   Information-theoretic software clustering [J].
Andritsos, P ;
Tzerpos, V .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2005, 31 (02) :150-165
[2]  
Anquetil N., 1999, Sixth Working Conference on Reverse Engineering (Cat. No.PR00303), P235, DOI 10.1109/WCRE.1999.806964
[3]  
Anquetil N, 1999, J SOFTW MAINT-RES PR, V11, P201, DOI 10.1002/(SICI)1096-908X(199905/06)11:3<201::AID-SMR192>3.0.CO
[4]  
2-1
[5]   Architecture-aware adaptive clustering of OO systems [J].
Bauer, M ;
Trifu, M .
CSMR 2004: EIGHTH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, 2004, :3-14
[6]   Improving Software Modularization via Automated Analysis of Latent Topics and Dependencies [J].
Bavota, Gabriele ;
Gethers, Malcom ;
Oliveto, Rocco ;
Poshyvanyk, Denys ;
De Lucia, Andrea .
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY, 2014, 23 (01)
[7]  
Binkley D., 2014, 22nd International Conference on Program Comprehension (Hyderabad, India, 2014), P26, DOI DOI 10.1145/2597008.2597150
[8]   The Nested Chinese Restaurant Process and Bayesian Nonparametric Inference of Topic Hierarchies [J].
Blei, David M. ;
Griffiths, Thomas L. ;
Jordan, Michael I. .
JOURNAL OF THE ACM, 2010, 57 (02)
[9]  
Blei DM, 2004, ADV NEUR IN, V16, P17
[10]   Object-oriented program comprehension: Effect of expertise, task and phase [J].
Burkhardt J.-M. ;
Détienne F. ;
Wiedenbeck S. .
Empirical Software Engineering, 2002, 7 (2) :115-156