摘要
对共同变化的识别有利于软件维护人员对软件变化的理解和控制。传统的软件共同变化识别方法通过对软件版本控制系统中的数据挖掘,进而识别源程序文件或者类之间的共同变化,但这种方法不适合对构件化软件中构件间共同变化的识别。为此,在基于构件的软件配置管理模型的基础上,设计了构件化软件演化信息本体模型以及两者间的映射规则,并提出了构件化软件共同变化模式(基本模式和复合模式)和相应的本体推理规则,开发了原型支撑系统。
Identifying co-change,software maintainer can be easier to understand,control software changes and detect software defects. However,traditional methods of identifying software co-change is aimed at file or class co-change by mining software version control system based on file,and it lacks the ability to identify co-change among components in component-based software. Based on component-based software configuration management model,this paper designed a component-based software evolution ontology model including corresponding mapping rules,and proposed component-based software co-change patterns( basic pattern and composite pattern) with its corresponding reason rules,and also developed a prototype support system.
引文
[1]杨芙清.软件工程技术发展思索[J].软件学报,2005,16(1):1-7.
[2]Zimmermann T,Weissgerber P,Diehl S,et al.Mining version histories to guide software changes[J].IEEE Trans on Software Engineering,2005,31(6):429-445.
[3]Zimmermann T,Weiβgerber P.Preprocessing CVS data for finegrained analysis[C]//Proc of the 1st International Workshop on Mining Software Repositories.2004.
[4]Gall H,Hajek K,Jazayeri M.Detection of logical coupling based on product release history[C]//Proc of International Conference on Software Maintenance.1998:190-198.
[5]Mondal M,Roy C K,Schneider K A.Insight into a method co-change pattern to identify highly coupled methods:an empirical study[C]//Proc of the 21st IEEE International Conference on Program Comprehension.2013:103-112.
[6]Zhou Yu,Wursch M,Giger E,et al.A Bayesian network based approach for change coupling prediction[C]//Proc of the 15th Working Conference on Reverse Engineering.2008.
[7]Angela L,Noguera C,Jonckers V.Explaining why methods change together[C]//Proc of the 14th IEEE International Working Conference on Source Code Analysis and Manipulation.2014.
[8]D’Ambros M,Lanza M,Lungu M.Visualizing co-change information with the evolution radar[J].IEEE Trans on Software Engineering,2009,35(5):720-735.
[9]Beyer D,Hassan A E.Animated visualization of software history using evolution storyboards[C]//Proc of the 13th Working Conference on Reverse Engineering.2006:199-210.
[10]Beyer D.Co-change visualization[C]//Proc of International Conference on Software Maintenance.2005:89-92.
[11]Tantithamthavorn C,Ihara A,Matsumoto K I.Using co-change histories to improve bug localization performance[C]//Proc of the 14th ACIS International Conference on Software Engineering,Artificial Intelligence,Networking and Parallel/Distributed Computing.2013:543-548.
[12]Palomba F,Bavota G,Di Penta M,et al.Detecting bad smells in source code using change history information[C]//Proc of the 28th IEEE/ACM International Conference on Automated Software Engineering.2013:268-278.
[13]Mondal M,Roy C K,Schneider K A.A fine-grained analysis on the evolutionary coupling of cloned code[C]//Proc of IEEE International Conference on Software Maintenance and Evolution.2014.
[14]张路.基于构件的软件配置管理技术研究[J].电子学报,2001,29(2):266-268.
[15]Jena.Inference[EB/OL].http://jena.apache.org/documentation/inference.
[16]钟林辉,谢冰,邵维忠.扩充CDL支持基于构件的系统组装与演化[J].计算机研究与发展,2002,39(10):1361-1365.
[17]钟林辉,宗洪雁.基于本体的构件化软件演化信息获取及度量研究[J].计算机科学,2015,42(1):196-200,231.
[18]钟林辉,谢冰.构件化软件演化信息建模和获取方法研究[J].计算机应用研究,2014,31(2):401-403.