[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

A survey of software architectural change detection and categorization techniques

Published: 01 December 2022 Publication History

Abstract

Software architecture is defined as the structural construction, design decisions implementation, evolution and knowledge sharing mechanisms of a system. Software architecture documentation help architects with decision making, guide developers during implementation, and preserve architectural decisions so that future caretakers are able to better understand an architect’s solution. Many modern-day software development teams are focusing more on architectural consistency of software design to better cope with the cost-time-efforts, continuous integration, software glitches, security backdoors, regulatory inspections, human values, and so on. Therefore, in order to better reflect the software design challenges, the development teams review the architectural design either on a regular basis or after completing certain milestones or releases. However, many studies have focused on architectural change detection and classification as the essential steps for reviewing design, discovering architectural tactics and knowledge, analyzing software stability, tracing and auditing software development history, recovering design decisions, generating design summary, and so on.
In this paper, we survey state-of-the-art architectural change detection and categorization techniques and identify future research directions. To the best of our knowledge, our survey is the first comprehensive report on this area. However, in this survey, we compare available techniques using various quality attributes relevant to software architecture for different implementation levels and types. Moreover, our analysis shows that there is a lack of lightweight techniques (in terms of human intervention, algorithmic complexity, and frequency of usage) feasible to process hundreds and thousands of change revisions of a project. We also realize that rigorous focuses are required for capturing the design decision associativity of the architectural change detection techniques for practical use in the design review process. However, our survey on architectural change classification shows that existing automatic change classification techniques are not promising enough to use for real-world scenarios and reliable post analysis of causes of architectural change is not possible without manual intervention. There is also a lack of empirical data to construct an architectural change taxonomy, and further exploration in this direction would add much value to architectural change management.

Highlights

Survey on software architectural change detection and classification.
Analysis from various perspectives.
Quickly find SOTA for future research plans.
Beneficial for change management & documentation.

References

[1]
AbuHassan Amjad, Alshayeb Mohammad, A metrics suite for UML model stability, Softw. Syst. Model. 18 (1) (2019) 557–583.
[2]
Aghajani Emad, Nagy Csaba, Linares-Vásquez Mario, Moreno Laura, Bavota Gabriele, Lanza Michele, Shepherd David C., Software documentation: the practitioners’ perspective, in: 2020 IEEE/ACM 42nd International Conference on Software Engineering (ICSE), IEEE, 2020, pp. 590–601.
[3]
Ahmad Aakash, Jamshidi Pooyan, Pahl Claus, Classification and comparison of architecture evolution reuse knowledge—a systematic review, J. Softw.: Evol. Process 26 (7) (2014) 654–691.
[4]
Alsolai Hadeel, Roper Marc, A systematic literature review of machine learning techniques for software maintainability prediction, Inf. Softw. Technol. 119 (2020).
[5]
Alves Nicolli S.R., Mendes Thiago S., de Mendonça Manoel G., Spínola Rodrigo O., Shull Forrest, Seaman Carolyn, Identification and management of technical debt: A systematic mapping study, Inf. Softw. Technol. 70 (2016) 100–121.
[6]
Arvanitou Elvira Maria, Ampatzoglou Apostolos, Tzouvalidis Konstantinos, Chatzigeorgiou Alexander, Avgeriou Paris, Deligiannis Ignatios, Assessing change proneness at the architecture level: An empirical validation, in: 2017 24th Asia-Pacific Software Engineering Conference Workshops (APSECW), IEEE, 2017, pp. 98–105.
[7]
Bachmann Felix, Bass Len, Clements Paul, Garlan David, Ivers James, Little M., Merson Paulo, Nord Robert, Stafford Judith, Documenting Software Architectures: Views and Beyond, second ed., Addison-Wesley Professional, 2010.
[8]
Baldwin Carliss Young, Clark Kim B., Design Rules: The Power of Modularity, Vol. 1, MIT Press, 2000.
[10]
Behnamghader Pooyan, Le Duc Minh, Garcia Joshua, Link Daniel, Shahbazian Arman, Medvidovic Nenad, A large-scale study of architectural evolution in open-source software systems, Empir. Softw. Eng. 22 (3) (2017) 1146–1193.
[11]
ben Fadhel Ameni, Kessentini Marouane, Langer Philip, Wimmer Manuel, Search-based detection of high-level model changes, in: 2012 28th IEEE International Conference on Software Maintenance (ICSM), IEEE, 2012, pp. 212–221.
[12]
Bergersen Gunnar R., Sjøberg Dag I.K., Dybå Tore, Construction and validation of an instrument for measuring programming skill, IEEE Trans. Softw. Eng. 40 (12) (2014) 1163–1184.
[13]
Bhat Manoj, Shumaiev Klym, Hohenstein Uwe, Biesdorf Andreas, Matthes Florian, The evolution of architectural decision making as a key focus area of software architecture research: A semi-systematic literature study, in: 2020 IEEE International Conference on Software Architecture (ICSA), IEEE, 2020, pp. 69–80.
[14]
Bi Tingting, Liang Peng, Tang Antony, Yang Chen, A systematic mapping study on text analysis techniques in software architecture, J. Syst. Softw. 144 (2018) 533–558.
[15]
Bi T., Xia X., Lo D., Grundy J., Zimmermann T., An empirical study of release note production and usage in practice, IEEE Trans. Softw. Eng. (2020) 1,.
[16]
Black Nate, Nicolai parlog on java 9 modules, IEEE Softw. (3) (2018) 101–104.
[17]
Blanco Roi, Lioma Christina, Graph-based term weighting for information retrieval, Inf. Retr. (2012) 54–92.
[18]
Bouwers Eric, Correia Jose Pedro, van Deursen Arie, Visser Joost, Quantifying the analyzability of software architectures, in: 2011 Ninth Working IEEE/IFIP Conference on Software Architecture, IEEE, 2011, pp. 83–92.
[19]
Bowman Ivan T., Holt Richard C., Brewster Neil V., Linux as a case study: Its extracted software architecture, in: Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No. 99CB37002), IEEE, 1999, pp. 555–563.
[20]
Bruneliere, Hugo, Cabot, Jordi, Jouault, Frédéric, Madiot, Frédéric, 2010. MoDisco: a generic and extensible framework for model driven reverse engineering. In: Proceedings of the IEEE/ACM International Conference on Automated Software Engineering. pp. 173–174.
[21]
Buse Raymond P.L., Zimmermann Thomas, Information needs for software development analytics, in: 2012 34th International Conference on Software Engineering (ICSE), IEEE, 2012, pp. 987–996.
[22]
Cai Yuanfang, Sullivan Kevin, Simon: A tool for logical design space modeling and analysis, in: 20th IEEE/ACM International Conference on Automated Software Engineering, 2005.
[23]
Cai, Yuanfang, Sullivan, Kevin J., 2006. Modularity analysis of logical design models. In: Proc. of Automated Software Engineering. pp. 91–102.
[24]
Cai, Yuanfang, Wang, Hanfei, Wong, Sunny, Wang, Linzhang, 2013. Leveraging design rules to improve software architecture recovery. In: Proceedings of the 9th International ACM Sigsoft Conference on Quality of Software Architectures. pp. 133–142.
[25]
Carriere Jeromy, Kazman Rick, Ozkaya Ipek, A cost-benefit framework for making architectural decisions in a business context, in: 2010 ACM/IEEE 32nd International Conference on Software Engineering, 2, IEEE, 2010, pp. 149–157.
[27]
Chakroborti Debasish, Schneider Kevin A., Roy Chanchal K., Backports: Change types, challenges and strategies, in: International Conference on Program Comprehension, 2022.
[28]
Chapin Ned, Hale Joanne E., Khan Khaled Md, Ramil Juan F., Tan Wui-Gee, Types of software evolution and software maintenance, J. Softw. Maint. Evol.: Res. Pract. 13 (1) (2001) 3–30.
[29]
Chen Yih-Fam, Gansner Emden R., Koutsofios Eleftherios, A C++ data model supporting reachability analysis and dead code detection, IEEE Trans. Softw. Eng. 24 (9) (1998) 682–694.
[30]
Cicchetti Antonio, Ciccozzi Federico, Leveque Thomas, Supporting incremental synchronization in hybrid multi-view modelling, in: International Conference on Model Driven Engineering Languages and Systems, Springer, 2011, pp. 89–103.
[31]
Clements Paul, Garlan David, Little Reed, Nord Robert, Stafford Judith, Documenting software architectures: views and beyond, in: 25th International Conference on Software Engineering, 2003. Proceedings, IEEE, 2003, pp. 740–741.
[32]
Codoban, M., Ragavan, S.S., Dig, D., Bailey, B., 2015. Software history under the lens: A study on why and how developers examine it. In: Proc. of the 2015 International Conference on Software Maintenance and Evolution. pp. 1–10.
[33]
Collard Michael L., Kagdi Huzefa H., Maletic Jonathan I., An XML-based lightweight C++ fact extractor, in: 11th IEEE International Workshop on Program Comprehension, 2003, IEEE, 2003, pp. 134–143.
[34]
Corazza Anna, Di Martino Sergio, Maggio Valerio, Scanniello Giuseppe, Investigating the use of lexical information for software system clustering, in: 2011 15th European Conference on Software Maintenance and Reengineering, IEEE, 2011, pp. 35–44.
[35]
Cornelissen Bas, Zaidman Andy, Van Deursen Arie, Moonen Leon, Koschke Rainer, A systematic survey of program comprehension through dynamic analysis, IEEE Trans. Softw. Eng. 35 (5) (2009) 684–702.
[36]
Dagpinar Melis, Jahnke Jens H., Predicting maintainability with object-oriented metrics-an empirical comparison, in: 10th Working Conference on Reverse Engineering, 2003. Proceedings, IEEE Computer Society, 2003, p. 155.
[37]
Dig Danny, Comertoglu Can, Marinov Darko, Johnson Ralph, Automated detection of refactorings in evolving components, in: European Conference on Object-Oriented Programming, Springer, 2006, pp. 404–428.
[38]
Ding Wei, Liang Peng, Tang Antony, Van Vliet Hans, Causes of architecture changes: An empirical study through the communication in OSS mailing lists, in: Software Engineering and Knowledge Engineering, 2015, pp. 403–408.
[39]
Ding Wei, Liang Peng, Tang Antony, Van Vliet Hans, Shahin Mojtaba, How do open source communities document software architecture: An exploratory survey, in: 19th International Conference on Engineering of Complex Computer Systems, 2014, pp. 136–145.
[40]
Dong Xinyi, Godfrey Michael W., Identifying architectural change patterns in object-oriented systems, in: 2008 16th IEEE International Conference on Program Comprehension, IEEE, 2008, pp. 33–42.
[41]
Dragan Natalia, Collard Michael L., Hammad Maen, Maletic Jonathan I., Using stereotypes to help characterize commits, in: 2011 27th IEEE International Conference on Software Maintenance (ICSM), IEEE, 2011, pp. 520–523.
[42]
Durisic Darko, Nilsson Martin, Staron Miroslaw, Hansson Jörgen, Measuring the impact of changes to the complexity and coupling properties of automotive software systems, J. Syst. Softw. 86 (5) (2013) 1275–1293.
[43]
Durisic, Darko, Staron, Miroslaw, Nilsson, Martin, 2011. Measuring the size of changes in automotive software systems and their impact on product quality. In: Proceedings of the 12th International Conference on Product Focused Software Development and Process Improvement. pp. 10–13.
[46]
Estublier Jacky, Leblang David, Hoek André van der, Conradi Reidar, Clemm Geoffrey, Tichy Walter, Wiborg-Weber Darcy, Impact of software engineering research on the practice of software configuration management, ACM Trans. Softw. Eng. Methodol. (TOSEM) 14 (4) (2005) 383–430.
[47]
Esuli, Andrea, Sebastiani, Fabrizio, 2017. Sentiwordnet: A publicly available lexical resource for opinion mining. In: Proceedings of the Fifth International Conference on Language Resources and Evaluation.
[48]
Fluri Beat, Gall Harald C., Classifying change types for qualifying change couplings, in: 14th IEEE International Conference on Program Comprehension (ICPC’06), IEEE, 2006, pp. 35–45.
[49]
Fowler M., Design-who needs an architect?, IEEE Softw. (2003) 11–13.
[50]
Fu Ying, Yan Meng, Zhang Xiaohong, Xu Ling, Yang Dan, Kymer Jeffrey D., Automated classification of software change messages by semi-supervised latent Dirichlet allocation, Inf. Softw. Technol. 57 (2015) 369–377.
[51]
Garcia Joshua, Ivkovic Igor, Medvidovic Nenad, A comparative analysis of software architecture recovery techniques, in: 2013 28th IEEE/ACM International Conference on Automated Software Engineering (ASE), IEEE, 2013, pp. 486–496.
[52]
Garcia Joshua, Mirakhorli Mehdi, Xiao Lu, Zhao Yutong, Mujhid Ibrahim, Pham Khoi, Okutan Ahmet, Malek Sam, Kazman Rick, Cai Yuanfang, et al., Constructing a shared infrastructure for software architecture analysis and maintenance, in: 2021 IEEE 18th International Conference on Software Architecture (ICSA), IEEE, 2021, pp. 150–161.
[53]
Garcia Joshua, Popescu Daniel, Mattmann Chris, Medvidovic Nenad, Cai Yuanfang, Enhancing architectural recovery using concerns, in: 2011 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), IEEE, 2011, pp. 552–555.
[54]
Garlan David, Bachmann Felix, Ivers James, Stafford Judith, Bass Len, Clements Paul, Merson Paulo, Documenting Software Architectures: Views and Beyond, second ed., Addison-Wesley Professional, 2010.
[55]
Gharbi, Sirine, Mkaouer, Mohamed Wiem, Jenhani, Ilyes, Messaoud, Montassar Ben, 2019. On the classification of software change messages using multi-label active learning. In: Proceedings of the 34th ACM/SIGAPP Symposium on Applied Computing. pp. 1760–1767.
[56]
Ghorbani Negar, Garcia Joshua, Malek Sam, Detection and repair of architectural inconsistencies in java, in: Proceedings of the 41st International Conference on Software Engineering, IEEE Press, 2019, pp. 560–571.
[57]
Grundy John, Hosking John, High-level static and dynamic visualisation of software architectures, in: Proceeding 2000 IEEE International Symposium on Visual Languages, IEEE, 2000, pp. 5–12.
[58]
Gustafsson Juha, Paakki Jukka, Nenonen Lilli, Verkamo A. Inkeri, Architecture-centric software evolution by software metrics and design patterns, in: Proceedings of the Sixth European Conference on Software Maintenance and Reengineering, IEEE, 2002, pp. 108–115.
[59]
Haitzer Thomas, Navarro Elena, Zdun Uwe, Reconciling software architecture and source code in support of software evolution, J. Syst. Softw. 123 (2017) 119–144.
[60]
Hammad Maen, Collard Michael L., Maletic Jonathan I., Automatically identifying changes that impact code-to-design traceability, in: 2009 IEEE 17th International Conference on Program Comprehension, IEEE, 2009, pp. 20–29.
[61]
Hassan, Ahmed E., 2008. Automated classification of change messages in open source projects. In: Proceedings of the 2008 ACM Symposium on Applied Computing. pp. 837–841.
[62]
Hattori Lile P., Lanza Michele, On the nature of commits, in: 2008 23rd IEEE/ACM International Conference on Automated Software Engineering-Workshops, IEEE, 2008, pp. 63–71.
[63]
Herzig Kim, Just Sascha, Zeller Andreas, It’s not a bug, it’s a feature: how misclassification impacts bug prediction, in: 2013 35th International Conference on Software Engineering (ICSE), IEEE, 2013, pp. 392–401.
[64]
Hewitt Eben, Semantic Software Design: A New Theory and Practical Guide for Modern Architects, O’Reilly Media, 2019.
[65]
Hindle, Abram, Ernst, Neil A., Godfrey, Michael W., Mylopoulos, John, 2011. Automated topic naming to support cross-project analysis of software maintenance activities. In: Proceedings of the 8th Working Conference on Mining Software Repositories. pp. 163–172.
[66]
Hindle Abram, German Daniel M., Godfrey Michael W., Holt Richard C., Automatic classication of large changes into maintenance categories, in: 2009 IEEE 17th International Conference on Program Comprehension, IEEE, 2009, pp. 30–39.
[67]
Hindle, Abram, German, Daniel M., Holt, Ric, 2008. What do large commits tell us? A taxonomical study of large commits. In: Proceedings of the 2008 International Working Conference on Mining Software Repositories. pp. 99–108.
[68]
Hönel Sebastian, Ericsson Morgan, Löwe Welf, Wingkvist Anna, Using source code density to improve the accuracy of automatic commit classification into maintenance activities, J. Syst. Softw. (2020).
[69]
Jamshidi, P., Ghafari, M., Ahmad, A., Pahl, C., 2013. A framework for classifying and comparing architecture-centric software evolution research. In: Proceedings of the 2013 17th European Conference on Software Maintenance and Reengineering. pp. 305–314.
[70]
Jansen, Anton, Bosch, Jan, 2005. Software architecture as a set of architectural design decisions. In: Proceedings of the 5th Working IEEE/IFIP Conference on Software Architecture. pp. 109–120.
[71]
Jansen Anton, Bosch Jan, Avgeriou Paris, Documenting after the fact: Recovering architectural design decisions, J. Syst. Softw. 81 (4) (2008) 536–557.
[72]
Kazman Rick, Carriere S. Jeromy, View extraction and view fusion in architectural understanding, in: Proceedings. Fifth International Conference on Software Reuse (Cat. No. 98TB100203), IEEE, 1998, pp. 290–299.
[73]
Khan Safoora Shakil, Greenwood Phil, Garcia Alessandro, Rashid Awais, On the impact of evolving requirements-architecture dependencies: An exploratory study, in: International Conference on Advanced Information Systems Engineering, Springer, 2008, pp. 243–257.
[74]
Kim, Jungil, Lee, Eunjoo, 2014. The effect of IMPORT change in software change history. In: Proceedings of the 29th Annual ACM Symposium on Applied Computing. pp. 1753–1754.
[75]
Kosenkov, Oleksandr, Unterkalmsteiner, Michael, Mendez, Daniel, Fucci, Davide, 2021. Vision for an artefact-based approach to regulatory requirements engineering. In: Proceedings of the 15th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). pp. 1–6.
[76]
Kruchten Philippe, An ontology of architectural design decisions in software intensive systems, in: 2nd Groningen Workshop on Software Variability, Citeseer, 2004, pp. 54–61.
[77]
Kurtanović Zijad, Maalej Walid, Automatically classifying functional and non-functional requirements using supervised machine learning, in: 2017 IEEE 25th International Requirements Engineering Conference (RE), IEEE, 2017, pp. 490–495.
[78]
Lai Siwei, Xu Liheng, Liu Kang, Zhao Jun, Recurrent convolutional neural networks for text classification, in: Twenty-Ninth AAAI Conference on Artificial Intelligence, 2015.
[79]
Le Duc Minh, Behnamghader Pooyan, Garcia Joshua, Link Daniel, Shahbazian Arman, Medvidovic Nenad, An empirical study of architectural change in open-source software systems, in: 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories, IEEE, 2015, pp. 235–245.
[80]
Le, Duc, Medvidovic, Nenad, 2016. Architectural-based speculative analysis to predict bugs in a software system. In: Proceedings of the 38th International Conference on Software Engineering Companion. pp. 807–810.
[81]
Lehman Manny M., Laws of software evolution revisited, in: European Workshop on Software Process Technology, Springer, 1996, pp. 108–124.
[82]
Levin Stanislav, Yehudai Amiram, Using temporal and semantic developer-level information to predict maintenance activity profiles, in: 2016 IEEE International Conference on Software Maintenance and Evolution (ICSME), IEEE, 2016, pp. 463–467.
[83]
Levin, Stanislav, Yehudai, Amiram, 2017. Boosting automatic commit classification into maintenance activities by utilizing source code changes. In: Proceedings of the 13th International Conference on Predictive Models and Data Analytics in Software Engineering. pp. 97–106.
[84]
Li Yi, Zhu Chenguang, Rubin Julia, Chechik Marsha, Semantic slicing of software version histories, IEEE Trans. Softw. Eng. 44 (2) (2017) 182–201.
[85]
Lin I.-H., Gustafson David A., Classifying software maintenance, in: Proceedings. Conference on Software Maintenance, 1988, IEEE, 1988, pp. 241–247.
[86]
Linberg Kurt R., Software developer perceptions about software project failure: a case study, J. Syst. Softw. 49 (2–3) (1999) 177–192.
[87]
Link Daniel, Behnamghader Pooyan, Moazeni Ramin, Boehm Barry, Recover and RELAX: Concern-oriented software architecture recovery for systems development and maintenance, in: 2019 IEEE/ACM International Conference on Software and System Processes (ICSSP), IEEE, 2019, pp. 64–73.
[88]
[89]
Lutellier Thibaud, Chollak Devin, Garcia Joshua, Tan Lin, Rayside Derek, Medvidovic Nenad, Kroeger Robert, Comparing software architecture recovery techniques using accurate dependencies, in: 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering, Vol. 2, IEEE, 2015, pp. 69–78.
[90]
Ma Haohai, Shao Weizhong, Zhang Lu, Ma Zhiyi, Jiang Yanbing, Applying OO metrics to assess UML meta-models, in: International Conference on the Unified Modeling Language, Springer, 2004, pp. 12–26.
[91]
Manadhata Pratyusa K., Wing Jeannette M., An attack surface metric, IEEE Trans. Softw. Eng. 37 (03) (2011) 371–386.
[92]
Mancoridis Spiros, Mitchell Brian S., Chen Yihfarn, Gansner Emden R., Bunch: A clustering tool for the recovery and maintenance of software system structures, in: Proceedings IEEE International Conference on Software Maintenance-1999 (ICSM’99).’software Maintenance for Business Change’(Cat. No. 99CB36360), IEEE, 1999, pp. 50–59.
[93]
Mancoridis Spiros, Mitchell Brian S., Rorres Chris, Chen Y., Gansner Emden R., Using automatic clustering to produce high-level system organizations of source code, in: Proceedings. 6th International Workshop on Program Comprehension. IWPC’98 (Cat. No. 98TB100242), IEEE, 1998, pp. 45–52.
[94]
Maqbool Onaiza, Babri Haroon Atique, The weighted combined algorithm: A linkage algorithm for software clustering, in: Eighth European Conference on Software Maintenance and Reengineering, 2004. Proceedings, IEEE, 2004, pp. 15–24.
[95]
Maqbool Onaiza, Babri Haroon, Hierarchical clustering for software architecture recovery, IEEE Trans. Softw. Eng. 33 (11) (2007) 759–780.
[96]
Mariano Richard V.R., dos Santos Geanderson E., de Almeida Markos V., Brandão Wladmir C., Feature changes in source code for commit classification into maintenance activities, in: 2019 18th IEEE International Conference on Machine Learning and Applications (ICMLA), IEEE, 2019, pp. 515–518.
[97]
Mauczka Andreas, Brosch Florian, Schanes Christian, Grechenig Thomas, Dataset of developer-labeled commit messages, in: 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories, IEEE, 2015, pp. 490–493.
[98]
Mauczka Andreas, Huber Markus, Schanes Christian, Schramm Wolfgang, Bernhart Mario, Grechenig Thomas, Tracing your maintenance work–a cross-project validation of an automated classification dictionary for commit messages, in: International Conference on Fundamental Approaches to Software Engineering, Springer, 2012, pp. 301–315.
[99]
Mirakhorli Mehdi, Shin Yonghee, Cleland-Huang Jane, Cinar Murat, A tactic-centric approach for automating traceability of quality concerns, in: 2012 34th International Conference on Software Engineering (ICSE), IEEE, 2012, pp. 639–649.
[100]
Mo Ran, Cai Yuanfang, Kazman Rick, Xiao Lu, Feng Qiong, Architecture anti-patterns: Automatically detectable violations of design principles, IEEE Trans. Softw. Eng. (2019).
[101]
Mockus Audris, Votta Lawrence G., Identifying reasons for software changes using historic databases, in: International Conference on Software Maintenance, 2000, pp. 120–130.
[102]
Mohagheghi Parastoo, Conradi Reidar, An empirical study of software change: origin, acceptance rate, and functionality vs. quality attributes, in: Proceedings. 2004 International Symposium on Empirical Software Engineering, 2004, IEEE, 2004, pp. 7–16.
[103]
Mondal, Amit Kumar, Roy, Banani, Schneider, Kevin A., 2019. An exploratory study on automatic architectural change analysis using natural language processing techniques. In: 2019 19th International Working Conference on Source Code Analysis and Manipulation (SCAM). IEEE. pp. 62–73.
[104]
Monschein David, Mazkatli Manar, Heinrich Robert, Koziolek Anne, Enabling consistency between software artefacts for software adaption and evolution, in: 2021 IEEE 18th International Conference on Software Architecture (ICSA), IEEE, 2021, pp. 1–12.
[105]
Montandon Joao Eduardo, Silva Luciana Lourdes, Valente Marco Tulio, Identifying experts in software libraries and frameworks among github users, in: 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR), IEEE, 2019, pp. 276–287.
[106]
Myers Christopher R., Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs, Phys. Rev. E 68 (4) (2003).
[107]
Nakamura Taiga, Basili Victor R., Metrics of software architecture changes based on structural distance, in: 11th IEEE International Software Metrics Symposium (METRICS’05), IEEE, 2005, p. 24.
[108]
Nam, Daye, Lee, Youn Kyu, Medvidovic, Nenad, 2018. Eva: A tool for visualizing software architectural evolution. In: Proceedings of the 40th International Conference on Software Engineering: Companion Proceeedings. pp. 53–56.
[109]
Nurwidyantoro, Arif, Shahin, Mojtaba, Chaudron, Michel, Hussain, Waqar, Perera, Harsha, Shams, Rifat Ara, Whittle, Jon, 2021. Towards a human values dashboard for software development: an exploratory study. In: Proceedings of the 15th ACM/IEEE International Symposium on Empirical Software Engineering and Measurement (ESEM). pp. 1–12.
[110]
Oreizy Peyman, Medvidovic Nenad, Taylor Richard N., Architecture-based runtime software evolution, in: Proceedings of the 20th International Conference on Software Engineering, IEEE, 1998, pp. 177–186.
[111]
Ozkaya, Ipek, Wallin, Peter, Axelsson, Jakob, 2010. Architecture knowledge management during system evolution: observations from practitioners. In: Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge. pp. 52–59.
[112]
Paixao, Matheus, Krinke, Jens, Han, DongGyun, Ragkhitwetsagul, Chaiyong, Harman, Mark, 2017. Are developers aware of the architectural impact of their changes? In: Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering. pp. 95–105.
[113]
Paixao Matheus, Krinke Jens, Han DongGyun, Ragkhitwetsagul Chaiyong, Harman Mark, The impact of code review on architectural changes, IEEE Trans. Softw. Eng. (2019).
[115]
Ramage, Daniel, Hall, David, Nallapati, Ramesh, Manning, Christopher D., 2009. Labeled LDA: A supervised topic model for credit attribution in multi-labeled corpora. In: Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing. pp. 248–256.
[116]
Rasool Ghulam, Fazal Nancy, Evolution prediction and process support of OSS studies: a systematic mapping, Arab. J. Sci. Eng. 42 (8) (2017) 3465–3502.
[117]
Rástočnỳ Karol, Mlynčár Andrej, Automated change propagation from source code to sequence diagrams, in: International Conference on Current Trends in Theory and Practice of Informatics, Springer, 2018, pp. 168–179.
[118]
Roshandel Roshanak, Hoek André Van Der, Mikic-Rakic Marija, Medvidovic Nenad, Mae—a system model and environment for managing architectural evolution, ACM Trans. Softw. Eng. Methodol. (TOSEM) 13 (2) (2004) 240–276.
[119]
Russo, Barbara, Steff, Maximilian, 2014. What can changes tell about software processes? In: Proceedings of the 5th International Workshop on Emerging Trends in Software Metrics. pp. 1–7.
[120]
Schmitt Laser, Marcelo, Medvidovic, Nenad, Le, Duc Minh, Garcia, Joshua, 2020. ARCADE: an extensible workbench for architecture recovery, change, and decay evaluation. In: Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. pp. 1546–1550.
[121]
Schneidewind, Norman, 1997. IEEE Standard For A Software Quality Metrics Methodology Revision And Reaffirmation. In: Proceedings of International Symposium on Software Engineering Standards. pp. 278–278.
[122]
Sehestedt, Stephan, Cheng, Chih-Hong, Bouwers, Eric, 2014. Towards quantitative metrics for architecture models. In: Proceedings of the WICSA 2014 Companion Volume. pp. 1–4.
[123]
Shahbazian Arman, Lee Youn Kyu, Le Duc, Brun Yuriy, Medvidovic Nenad, Recovering architectural design decisions, in: 2018 IEEE International Conference on Software Architecture (ICSA), IEEE, 2018, pp. 95–9509.
[124]
Shahbazian Arman, Nam Daye, Medvidovic Nenad, Toward predicting architectural significance of implementation issues, in: Proceedings of the 15th International Conference on Mining Software Repositories, ACM, 2018, pp. 215–219.
[125]
Silva Marcelino Campos Oliveira, Valente Marco Tulio, Terra Ricardo, Does technical debt lead to the rejection of pull requests?, in: In 12th Brazilian Symposium on Information Systems on Brazilian Symposium on Information Systems: Information Systems in the Cloud Computing Era, 2016, pp. 248–254.
[126]
Steff Maximilian, Russo Barbara, Measuring architectural change for defect estimation and localization, in: 2011 International Symposium on Empirical Software Engineering and Measurement, IEEE, 2011, pp. 225–234.
[127]
Sutskever Ilya, Vinyals Oriol, Le Quoc V., Sequence to sequence learning with neural networks, in: Advances in Neural Information Processing Systems, 2014, pp. 3104–3112.
[128]
Swanson E. Burton, The dimensions of maintenance, in: Proceedings of the 2nd International Conference on Software Engineering, IEEE Computer Society Press, 1976, pp. 492–497.
[129]
Tang Antony, Lau Man F., Software architecture review by association, J. Syst. Softw. 88 (2014) 87–101.
[130]
Taylor Richard N., Medvidovic Nenad, Dashofy Eric, Software Architecture: Foundations, Theory, and Practice, Wiley, 2009.
[131]
Tzerpos Vassilios, Holt Richard C., Mojo: A distance metric for software clusterings, in: Sixth Working Conference on Reverse Engineering (Cat. No. PR00303), IEEE, 1999, pp. 187–193.
[132]
Tzerpos Vassilios, Holt Richard C., Accd: an algorithm for comprehension-driven clustering, in: Proceedings Seventh Working Conference on Reverse Engineering, IEEE, 2000, pp. 258–267.
[133]
Uchôa Anderson, Barbosa Caio, Coutinho Daniel, Oizumi Willian, Assunçao Wesley K.G., Vergilio Silvia Regina, Pereira Juliana Alves, Oliveira Anderson, Garcia Alessandro, Predicting design impactful changes in modern code review: A large-scale empirical study, in: 2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR), IEEE, 2021, pp. 471–482.
[134]
[135]
Vasa Rajesh, Schneider J.-G., Woodward Clinton, Cain Andrew, Detecting structural changes in object oriented software systems, in: 2005 International Symposium on Empirical Software Engineering, 2005, IEEE, 2005, pp. 8–pp.
[136]
Verdecchia Roberto, Kruchten Philippe, Lago Patricia, Malavolta Ivano, Building and evaluating a theory of architectural technical debt in software-intensive systems, J. Syst. Softw. 176 (2021).
[137]
Wang, Song, Bansal, Chetan, Nagappan, Nachiappan, Philip, Adithya Abraham, 2019a. Leveraging change intents for characterizing and identifying large-review-effort changes. In: Proceedings of the Fifteenth International Conference on Predictive Models and Data Analytics in Software Engineering. pp. 46–55.
[138]
Wang Ying, Chen Bihuan, Huang Kaifeng, Shi Bowen, Xu Congying, Peng Xin, Wu Yijian, Liu Yang, An empirical study of usages, updates and risks of third-party libraries in java projects, in: 2020 IEEE International Conference on Software Maintenance and Evolution (ICSME), IEEE, 2020, pp. 35–45.
[139]
Wang Min, Lin Zeqi, Zou Yanzhen, Xie Bing, Cora: decomposing and describing tangled code changes for reviewer, in: 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE), IEEE, 2019, pp. 1050–1061.
[140]
Wang Tong, Wang Dongdong, Zhou Ying, Li Bixin, Software multiple-level change detection based on two-step mpat matching, in: 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER), IEEE, 2019, pp. 4–14.
[141]
Wen Zhihua, Tzerpos Vassilios, An effectiveness measure for software clustering algorithms, in: Proceedings. 12th IEEE International Workshop on Program Comprehension, 2004, IEEE, 2004, pp. 194–203.
[142]
Williams Byron J., Carver Jeffrey C., Characterizing software architecture changes: A systematic review, Inf. Softw. Technol. (2010) 31–51.
[143]
Williams Byron J., Carver Jeffrey C., Examination of the software architecture change characterization scheme using three empirical studies, Empir. Softw. Eng. 19 (3) (2014) 419–464.
[144]
Wimmer Manuel, Moreno Nathalie, Vallecillo Antonio, Viewpoint co-evolution through coarse-grained changes and coupled transformations, in: International Conference on Modelling Techniques and Tools for Computer Performance Evaluation, Springer, 2012, pp. 336–352.
[145]
Wong, S., Cai, Y., Valetto, G., Simeonov, G., Sethi, K., 2009. Design rule hierarchies and parallelism in software development tasks. In: Proc. of Automated Software Engineering. p. 197.
[146]
Xing Zhenchang, Stroulia Eleni, Differencing logical UML models, Autom. Softw. Eng. 14 (2) (2007) 215–259.
[147]
Yan Meng, Fu Ying, Zhang Xiaohong, Yang Dan, Xu Ling, Kymer Jeffrey D., Automatically classifying software changes via discriminative topic model: Supporting multi-category and cross-project, J. Syst. Softw. (2016) 296–308.
[148]
Yu Shanshan, Su Jindian, Luo Da, Improving bert-based text classification with auxiliary sentence and domain knowledge, IEEE Access 7 (2019) 176600–176612.
[149]
Zanjani Motahareh Bahrami, Kagdi Huzefa, Bird Christian, Automatically recommending peer reviewers in modern code review, Trans. Softw. Eng. (2016) 530–543.
[150]
Zhang Su, Zhang Xinwen, Ou Xinming, Chen Liqun, Edwards Nigel, Jin Jing, Assessing attack surface with component-based package dependency, in: International Conference on Network and System Security, Springer, 2015, pp. 405–417.
[151]
Zwinkau Andreas, Definitions of software architecture, 2019, beza1e1.tuxen.de/definitions_software_architecture.html.

Cited By

View all
  • (2024)ChangeRCA: Finding Root Causes from Software Changes in Large Online SystemsProceedings of the ACM on Software Engineering10.1145/36437281:FSE(24-46)Online publication date: 12-Jul-2024

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Journal of Systems and Software
Journal of Systems and Software  Volume 194, Issue C
Dec 2022
240 pages

Publisher

Elsevier Science Inc.

United States

Publication History

Published: 01 December 2022

Author Tags

  1. Software architecture
  2. Change detection
  3. Classification
  4. Design review
  5. Abstraction

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 21 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)ChangeRCA: Finding Root Causes from Software Changes in Large Online SystemsProceedings of the ACM on Software Engineering10.1145/36437281:FSE(24-46)Online publication date: 12-Jul-2024

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media