School of Computer Science and Engineering, Southeast University, Nanjing 211189, China;State Key Laboratory of Computer Science, Institute of Software, The Chinese Academy of Sciences, Beijing 100190, China 在期刊界中查找 在百度中查找 在本站中查找
School of Computer Science and Engineering, Southeast University, Nanjing 211189, China;State Key Laboratory of Computer Science, Institute of Software, The Chinese Academy of Sciences, Beijing 100190, China 在期刊界中查找 在百度中查找 在本站中查找
Software progression is a fundamental ingredient of software. When changes are made to software, they will inevitably have some unpredicted effects and may cause inconsistencies with other parts of the original software. If the effects induced by the changes affect the whole system, an alternative change proposal may be required instead. Hence, change analysis is necessary before change implementation. This paper presented a compact intermediate representation for object oriented programs based on formal concept analysis—lattice of class and method dependence (LoCMD). Then, based on LoCMD, the study proposes a change analysis model, which includes some activities before change implementation, i.e., program comprehension, impact analysis and change assessment. The empirical study demonstrates the effectiveness of the representation and the change analysis model, and will help maintainers gain a better understanding about the change proposal.
[1] Wilde N, Huitt R. Maintenance support for object-oriented programs. IEEE Trans. on Software Engineering, 1992,18(12):1038-1044. [doi: 10.1109/TSE.1992.1263033]
[3] Tilley T, Cole R, Becker P, Eklund P. A survey of formal concept analysis support for software engineering activities. LNCS 3626:Formal Concept Analysis. Berlin: Springer-Verlag, 2005. 250-271. [doi: 10.1007/11528784_13]
[4] Tonella P. Formal concept analysis in software engineering. In: Proc. of the Int'l Conf. on Software Engineering. Edinburgh, 2004.743-744. http://portal.acm.org/citation.cfm?id=998675.999497 [doi: 10.1109/ICSE.2004.1317515]
[5] Birkhoff G. Lattice Theory. American Mathematical Society, 1940.
[6] Law J, Rothernel G. Whole program path-based dynamic impact analysis. In: Proc. of the Int'l Conf. on Software Engineering.2003. 308-318. [doi: 10.1109/ICSE.2003.1201210]
[7] Apiwattanapong T, Orso A, Harrold MJ. Efficient and precise dynamic impact analysis using execute after sequences. In: Proc. ofthe Int'l Conf. on Software Engineering. 2005. 432-441. [doi: 10.1145/1062455.1062534]
[8] Canfora G, Cerulo L. Fine grained indexing of software repositories to support impact analysis. In: Proc. of the Int'l Workshop onMining Software Repositories. 2006. 105-111. [doi: 10.1145/1137983.1138009]
[9] Tonella P. Using a concept lattice of decomposition slices for program understanding and impact analysis. IEEE Trans. on SoftwareEngineering, 2003,29(6):495-509. [doi: 10.1109/TSE.2003.1205178]
[10] Buckner J, Buchta J, Petrenko M, Rajlich V. JRipples: A tool for program comprehension during incremental change. In: Proc. ofthe Int'l Workshop on Program Comprehension. 2005. 149-152. [doi: 10.1109/WPC.2005.22]
[11] Jashki MA, Zafarani R, Bagheri E. Towards a more efficient static software change impact analysis methods. In: Proc. of the ACMSIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering. 2008. 84-90. [doi: 10.1145/1512475.1512493]
[12] Chaumun MA, Kabaili H, Keller RK, Lustman F. A change impact model for changeability assessment in object-oriented softwaresystems. In: Proc. of the 3rd Working Conf. on Software Maintenance and Reengineering. 1999. 130-138. [doi: 10.1109/CSMR.1999.756690]
[13] Fluri B. Assessing changeability by investigating the propagation of change types. In: Proc. of the Int'l Conf. on SoftwareEngineering, Edinburgh (ICSE Companion). 2007. 97-98. [doi: 10.1109/ICSECOMPANION.2007.23]
[14] Bohner S, Arnold R. Software Change Impact Analysis. Los Alamitos: IEEE Computer Society Press, 1996.
[15] Sun XB, Li BX, Tao CQ, Wen WZ, Zhang S. Change impact analysis based on a taxonomy of change types. In: Proc. of the IEEEInt'l Computer Software and Applications Conf. 2010. 373-382. [doi: 10.1109/COMPSAC.2010.45]
[16] Tonella P. Concept analysis for module restructuring. IEEE Trans. on Software Engineering, 2001,27(4):351-363. [doi: 10.1109/32.917524]
[17] Snelting G, Tip F. Reengineering class hierarchies using concept analysis. ACM Trans. on Programming Languages and Systems,2000,22(3):540-582. [doi: 10.1145/288195.288273]
[18] Eisenbarth T, Koschke R, Simon D. Locating features in source code. IEEE Trans. on Software Engineering, 2003,29(3):195-209.[doi: 10.1109/TSE.2003.1183929]
[19] Tonella P, Antoniol G. Inference of object oriented design patterns. Journal of Software Maintenance, 2001,13(5):309-330. [doi:10.1002/smr.235]
[20] Ammons G, Mandelin D, Bodik R, Larus JR. Debugging temporal specifications with concept analysis. In: Proc. of the Conf. onProgramming Language Design and Implementation. 2003. 182-195. [doi: 10.1145/781131.781152]
[21] Tonella P, Ceccato M. Aspect mining through the formal concept analysis of execution traces. In: Proc. of the Working Conf. onReverse Engineering. 2004. 112-121. [doi: 10.1109/WCRE.2004.13]
[22] Cellier P. Formal concept analysis applied to fault localization. In: Proc. of the Int'l Conf. on Software Engineering. 2008. 991-994.[doi: 10.1145/1370175.1370220]
[23] Xu JQ, Peng X, Zhao WY. Program clustering for comprehension based on fuzzy formal concept analysis. Journal of ComputerResearch and Development, 2009,46(9):1556-1566 (in Chinese with English abstract).
[24] Khor S, Grogono P. Using a genetic algorithm and formal concept analysis to generate branch coverage test data automatically. In:Proc. of the IEEE Int'l Conf. on Automated Software Engineering. 2004. 346-34. [doi: 10.1109/ASE.2004.1342761]
[25] Sun XB, Li BX, Zhang S, Tao CQ. Using lattice of class and method dependence for change impact analysis of object orientedprograms. In: Proc. of the 26th Symp. on Applied Computing. 2011. 1444-1449. [doi: 10.1145/1982185.1982495]
[26] Koschke R, Quante J. On dynamic feature location. In: Proc. of the 20th IEEE/ACM Int'l Conf. on Automated SoftwareEngineering. 2005. 86-95. [doi: 10.1145/1101908.1101923]
[27] Tallam S, Gupta N. A concept analysis inspired greedy algorithm for test suite minimization. In: Proc. of the 6th ACM SIGPLANSIGSOFTWorkshop on Program Analysis for Software Tools and Engineering. 2005. 35-42. [doi: 10.1145/1108768.1108802]
[28] Arévalo G, Ducasse S, Gordillo S, Nierstrasz O. Generating a catalog of unanticipated schemas in class hierarchies using formalconcept analysis. Information and Software Technology, 2010,52(11):1167-1187. [doi: 10.1016/j.infsof.2010.05.010]
[29] Siff M, Reps T. Identifying modules via concept analysis. IEEE Trans. on Software Engineering, 1999,25(6):749-768. [doi:10.1109/32.824377]