Article
Computer Science, Software Engineering
Lu Xiao, Yuanfang Cai, Rick Kazman, Ran Mo, Qiong Feng
Summary: This paper presents an approach to precisely locate and predict the maintenance cost of Architectural Technical Debt (ATD) in software systems. By aggregating related debts, architects can focus on cost-effective compound debts and make informed decisions regarding refactoring.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2022)
Article
Computer Science, Information Systems
Di Cui, Lingling Fan, Sen Chen, Yuanfang Cai, Qinghua Zheng, Yang Liu, Ting Liu
Summary: This paper presents the first attempt to understand bug fixes from the perspective of dependencies. A systematic study on bug fixes collected from 157 Apache open source projects is conducted, revealing a relatively high proportion of bug fixes introducing dependency-level changes. These fixes are strongly correlated with high priority, large fixing churn, long fixing time, frequent bug reopening, and bug inducing. In addition, patched files with dependency-level changes consume much more maintenance costs compared to those without these changes.
SCIENCE CHINA-INFORMATION SCIENCES
(2022)
Article
Computer Science, Information Systems
Maryam Gillani, Hafiz Adnan Niaz, Ata Ullah
Summary: This paper aims to explore and discuss the application and importance of software architecture in requirement engineering through a systematic literature review. It also identifies the challenges and methods in bridging the gap between requirements and architecture. Furthermore, a resource bank is created to provide relevant software architecture tools and techniques for effective requirement engineering.
Article
Computer Science, Software Engineering
Maria Salama, Rami Bahsoon, Patricia Lago
Summary: This study conducted a systematic literature review on stability as a software property, focusing on the wide variation in dimensions when dealing with stability and suggesting a shift towards a multi-dimensional concept. The need for more research efforts to be directed towards identified gaps to drive future developments was highlighted.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2021)
Review
Computer Science, Software Engineering
Matheus Paixao, Jens Krinke, DongGyun Han, Chaiyong Ragkhitwetsagul, Mark Harman
Summary: Empirical evidence about how developers perform and perceive architectural changes is scarce, despite its importance in the software development lifecycle. Research shows that developers often lack awareness of the impact of their changes on software architecture, and discussions about architecture during code review can lead to better architectural improvements in final merged revisions.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2021)
Editorial Material
Multidisciplinary Sciences
Amber Dance
Summary: Computers trained to reduce noise in micrographs are now capable of handling fresh data autonomously.
Article
Computer Science, Software Engineering
Muhui Jiang, Qinming Dai, Wenlong Zhang, Rui Chang, Yajin Zhou, Xiapu Luo, Ruoyu Wang, Yang Liu, Kui Ren
Summary: Embedded devices are becoming more common and ARM is dominating in this field, highlighting the need for security assessments. This paper presents a comprehensive study on ARM disassembly tools, evaluating them with a diverse set of ARM binaries. The findings reveal limitations in current tools and suggest potential improvements.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2023)
Article
Computer Science, Information Systems
Qiang Zhi, Wanxu Pu, Jianguo Ren, Zhengshu Zhou
Summary: In the early stage of software development, a clear and explicit software requirements specification (SRS) is crucial for generating high-quality software. Various methods have been developed to improve the quality of SRS. This paper proposes a questions extraction method based on SRS elements decomposition to evaluate SRS quality using numerical indicators. The method not only evaluates SRS quality but also helps detect defects, particularly description problems and omissions. Experimental results with graduate students and feedback from engineers in the software development industry confirm the effectiveness and advantages of the proposed method.
CMC-COMPUTERS MATERIALS & CONTINUA
(2023)
Article
Computer Science, Information Systems
Di Cui
Summary: This paper proposes a method to identify flawed structural dependencies early in software evolution by combining structural and semantic dependencies, helping developers save maintenance costs by fixing issues in time. The evaluation results from 838 releases of 15 open source projects showed that the method can accurately capture files prone to errors or changes, with a high precision rate of 92%. The identified dependencies also showed significantly higher bug frequencies and change frequencies in future versions compared to the average.
Article
Computer Science, Software Engineering
Weifeng Pan, Hua Ming, Carl K. Chang, Zijiang Yang, Dae-Kyoo Kim
Summary: Software comprehension is crucial in software maintenance, and starting the understanding process from important software elements is practical. ElementRank approach utilizes multilayer software networks, weighted PageRank algorithm, and AHP to provide a ranked list of classes (or packages) for maintainers to initiate the comprehension process, validated theoretically and empirically. It offers a valuable method for understanding large software systems efficiently.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2021)
Article
Computer Science, Software Engineering
Damian A. A. Tamburri, Rick Kazman, Hamed Fahimi
Summary: Forming coherent groups or teams in an organization is vital in large-scale software engineering, particularly in agile software development where self-organization and organizational flexibility are crucial. Through mixed-methods research involving interviews, surveys, and Delphi studies of real agile teams, we investigated the existence of recurrent organizational structure patterns in agile software teams and their implications on software architecture quality. Our study of 30 agile software teams revealed that out of seven recurring organizational structure patterns, a single pattern occurred over 37% of the time. This pattern reflected young communities, disappeared in established ones, and correlated with a higher number of reported architecture smells. Additionally, we found a negative correlation between a proposed organizational measure and architecture smells. These findings can help architects design both architectures and communities that best support co-evolution, while also highlighting the impact of organizational structures in software engineering beyond software architectures.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2023)
Article
Computer Science, Information Systems
Ahmed M. Khan, Timothy D. Blackburn
Summary: The AUTILE Framework is introduced as a new methodology to develop automotive software with the aim of reducing the number and severity of defects. By following the automotive open system architecture standard and integrating Agile methodologies, defect reduction can be achieved in automotive software development. The research highlights the enablers and barriers in the adoption of Agile methodologies in this domain.
IEEE SYSTEMS JOURNAL
(2021)
Article
Computer Science, Software Engineering
Joshua Garcia, Ehsan Kouroshfar, Negar Ghorbani, Sam Malek
Summary: As software systems evolve, their architecture tends to decay, leading to elements resistant to maintenance or prone to defects. Engineers can benefit from predicting architectural decay, focusing maintenance resources on elements most likely to decay. Utilizing multiple architectural views and metrics can accurately predict low architectural quality, helping to enhance software stability.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2021)
Article
Computer Science, Software Engineering
Francisca Perez, Raul Lapena, Ana Marcen, Carlos Cetina
Summary: In the software industry, long-term software projects often involve multiple engineers joining or leaving the company over time. This creates a challenge when it comes to maintenance tasks such as Traceability Link Recovery (TLR), Bug Localization (BL), and Feature Location (FL), as no single engineer has all the necessary knowledge. Collaboration among engineers has the potential to enhance the quality of these maintenance tasks by combining different contributions. This study examines how the selection criteria for collaborating engineers affects the quality of TLR, BL, and FL in the context of a global railway solution supplier. The findings reveal that even engineers who might not initially be considered relevant can significantly improve the results of collaboration.
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
(2023)
Article
Computer Science, Theory & Methods
Daniel S. Santos, Brauner R. N. Oliveira, Rick Kazman, Elisa Y. Nakagawa
Summary: This article discusses the dependence of the quality of large and complex Systems-of-Systems (SoS) in critical application domains on the quality of their architectures. It also highlights the unclear methods for modeling and evaluating the quality of these architectures. Through systematic examination of literature, relevant architectural evaluation methods, modeling techniques, quality attributes, and the maturity of these methods, as well as the benefits and costs of adopting them, were discovered and summarized. The article also addresses open issues and research opportunities, and recommends changing the mindset for SoS architecture evaluation in critical domains to ensure quality.
ACM COMPUTING SURVEYS
(2023)
Review
Business
Damian A. Tamburri, Fabio Palomba, Rick Kazman
Summary: Success and failure in software engineering are still poorly understood and require further research and automated tool support. This article provides a systematic literature review with a grounded theory of factors and a quality model, allowing managers to identify risks and conduct more detailed parameter analysis.
IEEE TRANSACTIONS ON ENGINEERING MANAGEMENT
(2021)
Article
Computer Science, Software Engineering
Wuxia Jin, Ting Liu, Yuanfang Cai, Rick Kazman, Ran Mo, Qinghua Zheng
Summary: Monolithic systems face maintainability and scalability issues as they grow, and (micro)service-based architectures are believed to alleviate these problems. Service extraction from traditional monolithic systems is difficult and challenging, as well as evaluating the identified service candidates.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2021)
Article
Computer Science, Software Engineering
Damian A. A. Tamburri, Rick Kazman, Hamed Fahimi
Summary: Forming coherent groups or teams in an organization is vital in large-scale software engineering, particularly in agile software development where self-organization and organizational flexibility are crucial. Through mixed-methods research involving interviews, surveys, and Delphi studies of real agile teams, we investigated the existence of recurrent organizational structure patterns in agile software teams and their implications on software architecture quality. Our study of 30 agile software teams revealed that out of seven recurring organizational structure patterns, a single pattern occurred over 37% of the time. This pattern reflected young communities, disappeared in established ones, and correlated with a higher number of reported architecture smells. Additionally, we found a negative correlation between a proposed organizational measure and architecture smells. These findings can help architects design both architectures and communities that best support co-evolution, while also highlighting the impact of organizational structures in software engineering beyond software architectures.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2023)
Article
Computer Science, Software Engineering
Soumaya Rebai, Vahid Alizadeh, Marouane Kessentini, Houcem Fehri, Rick Kazman
Summary: This paper proposes an interactive approach that allows developers to pinpoint their preferences in both the objective and decision spaces, resulting in more efficient resolution of quality issues. By using multi-objective search and clustering algorithms, developers are able to examine a smaller number of solutions and provide feedback, which is then used to generate constraints and optimize the refactoring process.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2022)
Article
Computer Science, Information Systems
Ran Mo, Shaozhi Wei, Qiong Feng, Zengyang Li
Summary: This study investigates predicting bug-prone methods by proposing a series of code metrics and history measures, comparing different prediction models, and analyzing the prediction importance of each metric. The results suggest that by simplifying the prediction model and focusing on important metrics, method-level bugs can be effectively predicted.
INFORMATION AND SOFTWARE TECHNOLOGY
(2022)
Article
Computer Science, Artificial Intelligence
Leticia Duboc, Rami Bahsoon, Faisal Alrebeish, Carlos Mera-Gomez, Vivek Nallur, Rick Kazman, Philip Bianco, Ali Babar, Rajkumar Buyya
Summary: Dynamic Service Composition (DSC) is a relatively mature research field that can help maintain the desired QoS, cost, and stability of long-lived software systems. This article introduces a new goal-modeling technique to support DSC designers in identifying characteristics and metrics that can affect system scalability goals, and applies it to QoS-aware dynamic services composition with detailed exemplars.
ACM TRANSACTIONS ON AUTONOMOUS AND ADAPTIVE SYSTEMS
(2022)
Article
Computer Science, Software Engineering
Wolfgang Mauerer, Mitchell Joblin, Damian A. Tamburri, Carlos Paradis, Rick Kazman, Sven Apel
Summary: This study investigates the impact of socio-technical congruence on software quality through a large-scale empirical study, finding no statistical relationship between socio-technical congruence and project quality measures.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2022)
Article
Computer Science, Software Engineering
Qiong Feng, Ran Mo
Summary: This study examines the evolution and resolution of dependency cycles in open-source projects. The results show that different shapes of dependency cycles exhibit distinct characteristics during evolution, and several recurring patterns have been identified for breaking dependency cycles.
JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS
(2023)
Article
Computer Science, Software Engineering
Lu Xiao, Yuanfang Cai, Rick Kazman, Ran Mo, Qiong Feng
Summary: This paper presents an approach to precisely locate and predict the maintenance cost of Architectural Technical Debt (ATD) in software systems. By aggregating related debts, architects can focus on cost-effective compound debts and make informed decisions regarding refactoring.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2022)
Article
Computer Science, Information Systems
Wuyan Cheng, Po Hu, Shaozhi Wei, Ran Mo
Summary: This paper proposes a novel keyword-guided abstractive code summarization approach that incorporates structural and contextual information. The method achieves better code summaries in terms of completeness, correctness, and consistency compared to existing state-of-the-art approaches, as demonstrated through evaluation on large-scale benchmark datasets.
INFORMATION AND SOFTWARE TECHNOLOGY
(2022)
Article
Computer Science, Software Engineering
Gaston Marquez, Hernan Astudillo, Rick Kazman
Summary: Architectural tactics are important for software architecture design and analysis. However, there is a lack of systematic definition and industrial evidence in the literature. This study presents a systematic mapping of architectural tactics, revealing the current status and identifying research opportunities.
JOURNAL OF SYSTEMS AND SOFTWARE
(2023)
Article
Computer Science, Information Systems
Wuyan Cheng, Po Hu, Shaozhi Wei, Ran Mo
Summary: In this paper, KGCodeSum, a novel keyword-guided abstractive code summarization approach was proposed to improve the quality of summaries. The approach was found to outperform existing state-of-the-art methods in terms of completeness, correctness, and consistency. Incorporating a dynamic vocabulary strategy was also seen to significantly save time and space in the model training process.
INFORMATION AND SOFTWARE TECHNOLOGY
(2022)