山东大学学报 (工学版) ›› 2023, Vol. 53 ›› Issue (2): 77-86.doi: 10.6040/j.issn.1672-3961.0.2022.342
邓文涛1,章梦怡1,何鹏1*,曾张帆1,李兵2
DENG Wentao1, ZHANG Mengyi1, HE Peng1*, ZENG Zhangfan1, LI Bing2
摘要: 从包、类和方法3个粒度构建软件元素的网络模型。利用经典的网络表征学习方法Node2vec学习节点特征,并从网络距离、增长特性、更新率、模块度等方面对3个开源软件系统进行演化分析。试验结果表明:3种粒度下的演化特性不尽相同,包粒度下的演化更加稳定且高效;相比先前研究,本研究方法得到的软件演化特性与Lehman定律更契合;当软件系统迭代累计到最大阈值时其体系架构将重新部署,此时软件系统的鲁棒性最差且易产生峭壁。
中图分类号:
[1] | HASSELBRING W. Software architecture: past, present, future[J]. The Essence of Software Engineering, 2018: 169-184. |
[2] | DIJKSTRA E W. The structure of the “THE”-multiprogramming system[J]. Communications of the ACM, 1968, 11(5): 341-346. |
[3] | REICHELT D G, KUHNE S. How to detect performance changes in software history: performance analysis of software system versions[C] //Companion of the 2018 ACM/SPEC International Conference on Performance Engineering. Berlin, Germany: ACM, 2018: 183-188. |
[4] | BENNETT K. Software evolution: past, present and future[J]. Information & Software Technology, 1996, 38(11):673-680. |
[5] | LEHMAN M M, RAMIL J F, WERNICK P D, et al. Metrics and laws of software evolution-the nineties view[C] //Proceedings Fourth International Software Metrics Symposium. Albuquerque, NM, USA: IEEE, 1997: 20-32. |
[6] | 顾庆,陈道蓄. 基于软件网络的软件系统演化规律验证和模拟[J]. 中国科学: 信息科学, 2014(1): 20-36. GU Qing, CHEN Daoxu. Verification and simulation of software system evolution law based on software network[J]. Chinese Science: Information Science, 2014(1): 20-36. |
[7] | LU J, YU X, CHEN G, et al. Characterizing the synchronizability of small-world dynamical networks[J]. IEEE Transactions on Circuits & Systems I Regular Papers, 2004, 51(4):787-796. |
[8] | ZHOU J, LU J A, LU J H. Adaptive synchronization of an uncertain complex dynamical network[J]. IEEE Transactions on Automatic Control, 2006, 51(4): 652-656. |
[9] | HYLAND-WOOD D, CARRINGTON D, KAPLAN S. Scale-free nature of Java software package, class and method collaboration graphs[C] //Proceedings of the 5th International Symposium on Empirical Software Engineering. Rio de Janeiro, Brazil: ACM, 2006: 9-16. |
[10] | ZHOU T, BAI W J, WANG B H, et al. A brief review of complex networks[J]. Physics, 2005, 34(1): 31-36. |
[11] | DELELLIS P, DI BERNARDO M, GOROCHOWSKI T E, et al. Synchronization and control of complex networks via contraction, adaptation and evolution[J]. IEEE Circuits and Systems Magazine, 2010, 10(3): 64-82. |
[12] | CHEN P Y, CHEN K C. Information epidemics in complex networks with opportunistic links and dynamic topology[C] //2010 IEEE Global Telecommunications Conference GLOBECOM 2010. Miami, USA: IEEE, 2010: 1-6. |
[13] | LI G, XUAN Q, SONG Z, et al. Complex supply networks evolving model:complex networks perspective[C] //2010 IEEE International Conference on Intelligent Systems and Knowledge Engineering. Hangzhou, China: IEEE, 2010: 511-516. |
[14] | AMBROSE J A, PEDDERSEN J, PARAMESWARAN S, et al. SDG2KPN:system dependency graph to function-level KPN generation of legacy code for MPSoCs[C] //2014 19th Asia and South Pacific Design Automation Conference(ASP-DAC). Singapore: IEEE, 2014: 267-273. |
[15] | JENKINS S, KIRK S R. Software architecture graphs as complex networks:a novel partitioning scheme to measure stability and evolution[J]. Information Sciences, 2007, 177(12): 2587-2601. |
[16] | 李辉. 软件网络理论:形成机制分析与建模[D].沈阳:东北大学,2013. LI Hui. Software network theory: formation mechanism analysis and modeling[D]. Shengyang: Northeastern University, 2013. |
[17] | REN J, WW H, YIN T, et al. A novel approach for mining important nodes in directed-weighted complex software network[J]. Journal of Computational Information Systems, 2015, 11(8):3059-3071. |
[18] | TANG C, LU M, KONG S. An identification method for critical nodes of fault propagation based on software dynamic execution network[C] //2019 IEEE 10th International Conference on Software Engineering and Service Science(ICSESS). Beijing, China: IEEE, 2019: 249-255. |
[19] | MYERS C R. Software systems as complex networks: structure, function, and evolvability of software collaboration graphs[J]. Physical Review E, 2003, 68(4): 046116. |
[20] | 郁湧,李彤,王炜,等. 基于 Petri 网的软件演化过程[J]. 计算机应用与软件, 2008, 25(10): 46-48. YU Yong, LI Tong, WANG Wei, et al. Software evolution process based on Petri nets[J]. Computer Applications and Software, 2008, 25(10): 46-48. |
[21] | 何成万,张立军,张慧.基于元数据和反射的面向方面软件演化方法[J].电子学报,2011,39(8):1771-1777. HE Chengwan, ZHANG Lijun, ZHANG Hui. Aspect-oriented software evolution method based on metadata and reflection[J]. Journal of Electronics, 2011, 39(8): 1771-1777. |
[22] | YING A T T, MURPHY G C, NG R, et al. Predicting source code changes by mining change history[J]. IEEE Transactions on Software Engineering, 2004, 30(9): 574-586. |
[23] | 芦俊佳,刘敏昆.一种基于过程构件的软件演化过程设计方法[J].计算机应用与软件,2012,29(1):178-180. LU Junjia, LIU Minkun. A process design method for software evolution based on process components[J]. Computer Application and Software, 2012, 29(1): 178-180. |
[24] | JENKINS S, KIRK S R. Software architecture graphs as complex networks: a novel partitioning scheme to measure stability and evolution[J]. Information Sciences, 2007, 177(12): 2587-2601. |
[25] | 何鹏, 王鹏, 李兵, 等. 基于多粒度软件网络模型的软件系统演化分析[J]. 电子学报, 2018, 46(2): 257-267. HE Peng, WANG Peng, LI Bing, et al. Software system evolution analysis based on multi-granularity software network model [J]. Journal of Electronics, 2018, 46(2): 257-267. |
[26] | KARGAR M, ISAZADEH A, IZADKHAH H. New internal metric for software clustering algorithms validity[J]. IET Software, 2020, 14(4): 402-410. |
[27] | GRABUSTS P. Distance metrics selection validity in cluster analysis[J]. Computer Science, 2011, 49: 72-77. |
[28] | 李兵,马于涛,刘婧,等. 软件系统的复杂网络研究进展[J]. 力学进展,2008,38(6): 805-814. LI Bing, MA Yutao, LIU Jing, et al. Research progress on complex networks of software systems[J]. Advances in Mechanics, 2008, 38(6): 805-814. |
[29] | GROVER A, LESKOVEC J. Node2vec: scalable feature learning for networks[C] //Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Francisco, USA: ACM, 2016: 855-864. |
[30] | ISRAELI A, FEITELSON D G. Thelinux kernel as a case study in software evolution[J]. Journal of Systems and Software, 2010, 83(3): 485-501. |
[31] | WANG L, WANG Z, YANG C, et al. Linux kernels as complex networks: a novel method to study evolution[C] //2009 IEEE International Conference on Software Maintenance. Edmonton, Canada: IEEE, 2009: 41-50. |
[1] | 胡军,杨冬梅,刘立,钟福金. 融合节点状态信息的跨社交网络用户对齐[J]. 山东大学学报 (工学版), 2021, 51(6): 49-58. |
|