

FOLLOWUS
1.School of Computer Science and Engineering, Southeast University, Nanjing210096, China
2.Jiangsu Automation Research Institute, Lianyungang222061, China
3.Huawei Digital Technology Lab, Suzhou215125, China
E-mail: wangli1218@seu.edu.cn;
E-mail: xlkong@seu.edu.cn;
E-mail: 18262609320@163.com;
‡Corresponding author
Received:29 September 2021,
Accepted:29 December 2021,
Published Online:06 April 2022,
Published:0 May 2022
Scan QR Code
Li WANG, Xianglong KONG, Jiahui WANG, et al. An incremental software architecture recovery technique driven by code changes[J]. Frontiers of Information Technology & Electronic Engineering, 2022, 23(5): 664-677.
Li WANG, Xianglong KONG, Jiahui WANG, et al. An incremental software architecture recovery technique driven by code changes[J]. Frontiers of Information Technology & Electronic Engineering, 2022, 23(5): 664-677. DOI: 10.1631/FITEE.2100461.
在软件演化过程中,受开发能力和投入资源限制,软件架构通常难以与代码保持同步更新,导致架构设计与代码产生不一致,对软件维护等工作造成潜在影响。为解决此问题,本文提出一种增量式软件架构恢复技术,即ISAR。该技术首先从变更代码片段中提取依赖信息,然后根据依赖强度分析模块间关联关系,最后基于代码变更与架构更新间的关联关系设计两层分类器以恢复架构。本文基于10个开源项目构建验证实验,结果表明ISAR在架构恢复精度和效率方面优于传统技术。此外,本文发现架构设计文档质量对ISAR架构恢复精度有一定影响,但随着版本迭代逐渐趋于稳定。
It is difficult to keep software architecture up to date with code changes during software evolution. Inconsistency is caused by the limitations of standard development specifications and human power resources
which may impact software maintenance. To solve this problem
we propose an incremental software architecture recovery (ISAR) technique. Our technique obtains dependency information from changed code blocks and identifies different strength-level dependencies. Then
we use double classifiers to recover the architecture based on the method of mapping code-level changes to architecture-level updates. ISAR is evaluated on 10 open-source projects
and the results show that it performs more effectively and efficiently than the compared techniques. We also find that the impact of low-quality architectural documentation on effectiveness remains stable during software evolution.
Akthar S , Rafi S , 2010 . Recovery of software architecture using partitioning approach by Fiedler vector and clustering . Comput Inform Sci , 3 ( 1 ): 72 - 75 . doi: 10.5539/cis.v3n1p72 http://doi.org/10.5539/cis.v3n1p72
Ali S , Maqbool O , 2009 . Monitoring software evolution using multiple types of changes . Int Conf on Emerging Technologies , p. 410 - 415 . doi: 10.1109/ICET.2009.5353135 http://doi.org/10.1109/ICET.2009.5353135
Andritsos P , Tzerpos V , 2005 . Information-theoretic software clustering . IEEE Trans Softw Eng , 31 ( 2 ): 150 - 165 . doi: 10.1109/TSE.2005.25 http://doi.org/10.1109/TSE.2005.25
Anquetil N , Lethbridge TC , 2003 . Comparative study of clustering algorithms and abstract representations for software remodularisation . IEE Proc Softw , 150 ( 3 ): 185 - 201 . doi: 10.1049/ip-sen:20030581 http://doi.org/10.1049/ip-sen:20030581
Bazylevych R , Burtnyk R , 2015 . Algorithms for software clustering and modularization . X th Int Scientific and Technical Conf “Computer Sciences and Information Technologies” , p. 30 - 33 . doi: 10.1109/STC-CSIT.2015.7325424 http://doi.org/10.1109/STC-CSIT.2015.7325424
Bittencourt RA , Guerrero DDS , 2009 . Comparison of graph clustering algorithms for recovering software architecture module views . 13 th European Conf on Software Maintenance and Reengineering , p. 251 - 254 . doi: 10.1109/CSMR.2009.28 http://doi.org/10.1109/CSMR.2009.28
Campo M , Amandi A , Biset JC , 2021 . A software architecture perspective about Moodle flexibility for supporting empirical research of teaching theories . Educ Inform Technol , 26 ( 1 ): 817 - 842 . doi: 10.1007/s10639-020-10291-4 http://doi.org/10.1007/s10639-020-10291-4
Cho C , Lee KS , Lee M , et al. , 2019 . Software architecture module-view recovery using cluster ensembles . IEEE Access , 7 : 72872 - 72884 . doi: 10.1109/ACCESS.2019.2920427 http://doi.org/10.1109/ACCESS.2019.2920427
Garcia J , Ivkovic I , Medvidovic N , 2013a . A comparative analysis of software architecture recovery techniques . 28 th IEEE/ACM Int Conf on Automated Software Engineering , p. 486 - 496 . doi: 10.1109/ASE.2013.6693106 http://doi.org/10.1109/ASE.2013.6693106
Garcia J , Krka I , Mattmann C , et al. , 2013b . Obtaining ground-truth software architectures . 35 th Int Conf on Software Engineering , p. 901 - 910 . doi: 10.1109/ICSE.2013.6606639 http://doi.org/10.1109/ICSE.2013.6606639
Glukhikh MI , Itsykson VM , Tsesko VA , 2012 . Using dependencies to improve precision of code analysis . Autom Contr Comput Sci , 46 ( 7 ): 338 - 344 . doi: 10.3103/S0146411612070097 http://doi.org/10.3103/S0146411612070097
Jia XY , Chen SQ , Zhou XQ , et al. , 2021 . Where to handle an exception? Recommending exception handling locations from a global perspective . IEEE/ACM 29 th Int Conf on Program Comprehension , p. 369 - 380 . doi: 10.1109/ICPC52881.2021.00042 http://doi.org/10.1109/ICPC52881.2021.00042
Kobayashi K , Kamimura M , Kato K , et al. , 2012 . Feature-gathering dependency-based software clustering using Dedication and Modularity . 28 th IEEE Int Conf on Software Maintenance , p. 462 - 471 . doi: 10.1109/ICSM.2012.6405308 http://doi.org/10.1109/ICSM.2012.6405308
Kong XL , Li BX , Wang LL , et al. , 2018 . Directory-based dependency processing for software architecture recovery . IEEE Access , 6 : 52321 - 52335 . doi: 10.1109/ACCESS.2018.2870118 http://doi.org/10.1109/ACCESS.2018.2870118
Kong XL , Han WN , Liao L , et al. , 2020 . An analysis of correctness for API recommendation: are the unmatched results useless? Sci China Inform Sci , 63 ( 9 ): 190103 . doi: 10.1007/s11432-019-2929-9 http://doi.org/10.1007/s11432-019-2929-9
Lee KS , Lee CG , 2020 . Identifying semantic outliers of source code artifacts and their application to software architecture recovery . IEEE Access , 8 : 212467 - 212477 . doi: 10.1109/ACCESS.2020.3040024 http://doi.org/10.1109/ACCESS.2020.3040024
Lehman MM , 1996 . Laws of software evolution revisited . 5 th European Workshop Software Process Technology , p. 108 - 124 . doi: 10.1007/BFb0017737 http://doi.org/10.1007/BFb0017737
Lima C , Assunção WK , Martinez J , et al. , 2019 . Product line architecture recovery with outlier filtering in software families: the Apo-Games case study . J Braz Comput Soc , 25 ( 1 ): 7 . doi: 10.1186/s13173-019-0088-4 http://doi.org/10.1186/s13173-019-0088-4
Link D , Behnamghader P , Moazeni R , et al. , 2019 . The value of software architecture recovery for maintenance . Proc 12 th Innovations on Software Engineering Conf (formerly known as India Software Engineering Conf), Article 17 . doi: 10.1145/3299771.3299787 http://doi.org/10.1145/3299771.3299787
Link D , Srisopha K , Boehm B , 2021 . Study of the utility of text classification based software architecture recovery method RELAX for maintenance . Proc 15 th ACM/IEEE Int Symp on Empirical Software Engineering and Measurement, Article 33 . doi: 10.1145/3475716.3484194 http://doi.org/10.1145/3475716.3484194
Liu X , Wang HD , Ma HY , et al. , 2021 . The architecture design and implementation of aircraft structural fault assistant decision system based on data analysis . J Phys Conf Ser , 1813 : 012032 . doi: 10.1088/1742-6596/1813/1/012032 http://doi.org/10.1088/1742-6596/1813/1/012032
Lutellier T , Chollak D , Garcia J , et al. , 2015 . Comparing software architecture recovery techniques using accurate dependencies . IEEE/ACM 37 th IEEE Int Conf on Software Engineering , p. 69 - 78 . doi: 10.1109/ICSE.2015.136 http://doi.org/10.1109/ICSE.2015.136
Lutellier T , Chollak D , Garcia J , et al. , 2018 . Measuring the impact of code dependencies on software architecture recovery techniques . IEEE Trans Softw Eng , 44 ( 2 ): 159 - 181 . doi: 10.1109/TSE.2017.2671865 http://doi.org/10.1109/TSE.2017.2671865
Mancoridis S , Mitchell BS , Rorres C , et al. , 1998 . Using automatic clustering to produce high-level system organizations of source code . Proc 6 th Int Workshop on Program Comprehension , p. 45 - 52 . doi: 10.1109/WPC.1998.693283 http://doi.org/10.1109/WPC.1998.693283
Mancoridis S , Mitchell BS , Chen Y , et al. , 1999 . Bunch: a clustering tool for the recovery and maintenance of software system structures . Proc IEEE Int Conf on Software Maintenance , p. 50 - 59 . doi: 10.1109/ICSM.1999.792498 http://doi.org/10.1109/ICSM.1999.792498
Maqbool O , Babri HA , 2004 . The weighted combined algorithm: a linkage algorithm for software clustering . 8 th European Conf on Software Maintenance and Reengineering , p. 15 - 24 . doi: 10.1109/CSMR.2004.1281402 http://doi.org/10.1109/CSMR.2004.1281402
Maqbool O , Babri HA , 2007 . Bayesian learning for software architecture recovery . Int Conf on Electrical Engineering , p. 1 - 6 . doi: 10.1109/ICEE.2007.4287309 http://doi.org/10.1109/ICEE.2007.4287309
Mendonça NC , Kramer J , 1998 . An experiment in distributed software architecture recovery . 2 nd Int ESPRIT ARES Workshop on Development and Evolution of Software Architectures for Product Families , p. 106 - 114 . doi: 10.1007/3-540-68383-6_16 http://doi.org/10.1007/3-540-68383-6_16
Mens T , Tourwe T , 2004 . A survey of software refactoring . IEEE Trans Softw Eng , 30 ( 2 ): 126 - 139 . doi: 10.1109/TSE.2004.1265817 http://doi.org/10.1109/TSE.2004.1265817
Mitchell BS , 2003 . A heuristic approach to solving the software clustering problem . Int Conf on Software Maintenance , p. 285 - 288 . doi: 10.1109/ICSM.2003.1235432 http://doi.org/10.1109/ICSM.2003.1235432
Mitchell BS , Mancoridis S , 2006 . On the automatic modularization of software systems using the Bunch tool . IEEE Trans Softw Eng , 32 ( 3 ): 193 - 208 . doi: 10.1109/TSE.2006.31 http://doi.org/10.1109/TSE.2006.31
Monroy M , Pinzger M , 2021 . ARCo: architecture recovery in context . J Xi'an Univ Arch Technol , XIII ( 2 ): 128 .
Naseem R , Maqbool O , Muhammad S , 2013 . Cooperative clustering for software modularization . J Syst Softw , 86 ( 8 ): 2045 - 2062 . doi: 10.1016/j.jss.2013.03.080 http://doi.org/10.1016/j.jss.2013.03.080
Pourasghar B , Izadkhah H , Isazadeh A , et al. , 2021 . A graph-based clustering algorithm for software systems modularization . Inform Softw Technol , 133 : 106469 . doi: 10.1016/j.infsof.2020.106469 http://doi.org/10.1016/j.infsof.2020.106469
Sartipi K , 2003 . Software architecture recovery based on pattern matching . Int Conf on Software Maintenance , p. 293 - 296 . doi: 10.1109/ICSM.2003.1235434 http://doi.org/10.1109/ICSM.2003.1235434
Schmitt Laser M , Medvidovic N , Le DM , et al. , 2020 . ARCADE: an extensible workbench for architecture recovery, change, and decay evaluation . Proc 28 th ACM Joint Meeting on European Software Engineering Conf and Symp on the Foundations of Software Engineering , p. 1546 - 1550 . doi: 10.1145/3368089.3417941 http://doi.org/10.1145/3368089.3417941
Sievi-Korte O , Richardson I , Beecham S , 2019 . Software architecture design in global software development: an empirical study . J Syst Softw , 158 : 110400 . doi: 10.1016/j.jss.2019.110400 http://doi.org/10.1016/j.jss.2019.110400
Silva DEU , Bittencourt RA , Calumby RT , 2019 . Clustering similarity measures for architecture recovery of evolving software . Anais do VII Workshop de Visualização, Evolução E Manutenção de Software , p. 45 - 52 . doi: 10.5753/vem.2019.7583 http://doi.org/10.5753/vem.2019.7583
Sözer H , 2019 . Evaluating the effectiveness of multi-level greedy modularity clustering for software architecture recovery . 13 th European Conf on Software Architecture , p. 71 - 87 . doi: 10.1007/978-3-030-29983-5_5 http://doi.org/10.1007/978-3-030-29983-5_5
Tamburri DA , Kazman R , 2018 . General methods for software architecture recovery: a potential approach and its evaluation . Empir Softw Eng , 23 ( 3 ): 1457 - 1489 . doi: 10.1007/s10664-017-9543-z http://doi.org/10.1007/s10664-017-9543-z
Teymourian N , Izadkhah H , Isazadeh A , 2020 . A fast clustering algorithm for modularization of large-scale software systems . IEEE Trans Softw Eng , early access . doi: 10.1109/TSE.2020.3022212 http://doi.org/10.1109/TSE.2020.3022212
Tufano M , Sajnani H , Herzig K , 2019 . Towards predicting the impact of software changes on building activities . IEEE/ACM 41st Int Conf on Software Engineering , p. 49 - 52 . doi: 10.1109/ICSE-NIER.2019.00021 http://doi.org/10.1109/ICSE-NIER.2019.00021
Tzerpos V , Holt RC , 2000 . ACCD: an algorithm for comprehension-driven clustering . Proc 7 th Working Conf on Reverse Engineering , p. 258 - 267 . doi: 10.1109/WCRE.2000.891477 http://doi.org/10.1109/WCRE.2000.891477
Wu J , Hassan AE , Holt RC , 2005 . Comparison of clustering algorithms in the context of software evolution . 21 st IEEE Int Conf on Software Maintenance , p. 525 - 535 . doi: 10.1109/ICSM.2005.31 http://doi.org/10.1109/ICSM.2005.31
Yang TF , Jiang ZY , Shang YH , et al. , 2021 . Systematic review on next-generation web-based software architecture clustering models . Comput Commun , 167 : 63 - 74 . doi: 10.1016/j.comcom.2020.12.022 http://doi.org/10.1016/j.comcom.2020.12.022
Zhang PL , Jiang YJ , Wei AJ , et al. , 2021 . Domain-specific fixes for flaky tests with wrong assumptions on underdetermined specifications . IEEE/ACM 43 rd Int Conf on Software Engineering , p. 50 - 61 . doi: 10.1109/ICSE43902.2021.00018 http://doi.org/10.1109/ICSE43902.2021.00018
Zhao JF , Zhou JT , Yang HJ , et al. , 2015 . An orthogonal approach to reusable component discovery in cloud migration . China Commun , 12 ( 5 ): 134 - 151 . doi: 10.1109/CC.2015.7112036 http://doi.org/10.1109/CC.2015.7112036
Publicity Resources
Related Articles
Related Author
Related Institution
京公网安备11010802024621