Mining temporal rules for software maintenance

被引:33
作者
Lo, David [1 ]
Khoo, Siau-Cheng [2 ]
Liu, Chao [3 ]
机构
[1] Singapore Management Univ, Sch Informat Syst, Singapore 178902, Singapore
[2] Natl Univ Singapore, Dept Comp Sci, Singapore 117548, Singapore
[3] Microsoft Res, Redmond, WA USA
来源
JOURNAL OF SOFTWARE MAINTENANCE AND EVOLUTION-RESEARCH AND PRACTICE | 2008年 / 20卷 / 04期
关键词
specification mining; software evolution; dynamic analysis; data mining; program comprehension; program verification;
D O I
10.1002/smr.375
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software evolution incurs difficulties in program comprehension and software verification, and hence it increases the cost of software maintenance. In this study, we propose a novel technique to mine front program execution traces a sound and complete set of statistically significant temporal rules of arbitrary lengths. The extracted temporal rules reveal invariants that the program observes, and will consequently guide developers to understand the program behaviors, and facilitate all downstream applications such as verification and debugging. Different from previous studies that were restricted to mining two-event rules (e.g., < lock > --> < unlock >), our algorithm discovers rules of arbitrary lengths. In order to facilitate downstream applications, we represent the mined rules as temporal logic expressions, so that existing model checkers or other formal analysis toolkit can readily consume our mining results. Performance studies on benchmark data sets and it case study on an industrial system have been performed to show the scalability and utility of our approach. We performed case studies on JBoss application server and a buggy concurrent versions system application, and the result clearly demonstrates the usefulness of our technique in recovering underlying program designs and detecting bugs. Copyright (C) 2008 John Wiley & Sons, Ltd.
引用
收藏
页码:227 / 247
页数:21
相关论文
共 31 条
[1]  
AGRAWAL R, 2009, P INT C DAT ENG ICDE, P3
[2]  
Agrawal R., 1994, Proceedings of the 20th International Conference on Very Large Data Bases. VLDB'94, P487
[3]   Mining specifications [J].
Ammons, G ;
Bodík, R ;
Larus, JR .
ACM SIGPLAN NOTICES, 2002, 37 (01) :4-16
[4]  
*AP, 2008, JAK COMM NET
[5]  
Ball T, 1999, LECT NOTES COMPUT SC, V1687, P216, DOI 10.1145/318774.318944
[6]  
Canfora G., 2001, Handbook of software engineering and knowledge engineering, P91, DOI [10.1142/9789812389718_0005, DOI 10.1142/9789812389718_0005]
[7]  
Clarke EM, 1999, MODEL CHECKING, P1
[8]  
Cook J. E., 1998, ACM Transactions on Software Engineering and Methodology, V7, P215, DOI 10.1145/287000.287001
[9]  
Corbett J. C., 2000, Proceedings of the 2000 International Conference on Software Engineering. ICSE 2000 the New Millennium, P439, DOI 10.1109/ICSE.2000.870434
[10]  
Dwyer M. B., 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002), P411, DOI 10.1109/ICSE.1999.841031