4.6 Article

Architecture Anti-Patterns: Automatically Detectable Violations of Design Principles

期刊

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
卷 47, 期 5, 页码 1008-1028

出版社

IEEE COMPUTER SOC
DOI: 10.1109/TSE.2019.2910856

关键词

Computer architecture; Maintenance engineering; History; Software systems; Tools; Observers; Java; Software architecture; software maintenance; software quality

资金

  1. National Science Foundation of the US [CCF-1514315, CCF1514561]

向作者/读者索取更多资源

This paper discusses the architecture anti-patterns that occur in all large-scale software systems and contribute to high maintenance costs, impacting files' bug-proneness and change-proneness. Among all defined architecture anti-patterns, Unstable Interface and Crossing have the most significant impact on files' error-proneness and change-proneness.
In large-scale software systems, error-prone or change-prone files rarely stand alone. They are typically architecturally connected and their connections usually exhibit architecture problems causing the propagation of error-proneness or change-proneness. In this paper, we propose and empirically validate a suite of architecture anti-patterns that occur in all large-scale software systems and are involved in high maintenance costs. We define these architecture anti-patterns based on fundamental design principles and Baldwin and Clark's design rule theory. We can automatically detect these anti-patterns by analyzing a project's structural relationships and revision history. Through our analyses of 19 large-scale software projects, we demonstrate that these architecture anti-patterns have significant impact on files' bug-proneness and change-proneness. In particular, we show that 1) files involved in these architecture anti-patterns are more error-prone and change-prone; 2) the more anti-patterns a file is involved in, the more error-prone and change-prone it is; and 3) while all of our defined architecture anti-patterns contribute to file's error-proneness and change-proneness, Unstable Interface and Crossing contribute the most by far.

作者

我是这篇论文的作者
点击您的名字以认领此论文并将其添加到您的个人资料中。

评论

主要评分

4.6
评分不足

次要评分

新颖性
-
重要性
-
科学严谨性
-
评价这篇论文

推荐

Review Business

Success and Failure in Software Engineering: A Followup Systematic Literature Review

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

Service Candidate Identification from Monolithic Systems Based on Execution Traces

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

On the Relationship Between Organizational Structure Patterns and Architecture in Agile Teams

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

Enabling Decision and Objective Space Exploration for Interactive Multi-Objective Refactoring

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

An exploratory study of bug prediction at the method level

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

Systematic Scalability Modeling of QoS-aware Dynamic Service Composition

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

In Search of Socio-Technical Congruence: A Large-Scale Longitudinal Study

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

Fine-grained analysis of dependency cycles among classes

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

Detecting the Locations and Predicting the Maintenance Costs of Compound Architectural Debts

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

Keyword-guided abstractive code summarization via incorporating structural and contextual information

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

Architectural tactics in software architecture: A systematic mapping study

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

Keyword-guided abstractive code summarization via incorporating structural and contextual information

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)

暂无数据