4.6 Article

The Effect of GoF Design Patterns on Stability: A Case Study

期刊

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
卷 41, 期 8, 页码 781-802

出版社

IEEE COMPUTER SOC
DOI: 10.1109/TSE.2015.2414917

关键词

Design Tools and Techniques; Object-oriented programming; Metrics/Measurement

资金

  1. European Union (European Social Fund-ESF)
  2. Greek national fund through Operational Program Education and Lifelong Learning of the National Strategic Reference Framework (NSRF)-Research Funding Program: Thalis-Athens University of Economics and Business-SOFTWARE ENGINEERING RESEARCH PLATFORM

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

Stability refers to a software system's resistance to the ripple effect, i.e., propagation of changes. In this paper, we investigate the stability of classes that participate in instances/occurrences of GoF design patterns. We examine whether the stability of such classes is affected by (a) the pattern type, (b) the role that the class plays in the pattern, (c) the number of pattern occurrences in which the class participates, and (d) the application domain. To this end, we conducted a case study on about 65.000 Java open-source classes, where we performed change impact analysis on classes that participate in zero, one (single pattern), or more than one (coupled) pattern occurrences. The results suggest that, the application of design patterns can provide the expected shielding of certain pattern-participating classes against changes, depending on their role in the pattern. Moreover, classes that participate in coupled pattern occurrences appear to be the least stable. The results can be used for assessing the benefits and liabilities of the use of patterns and for testing and refactoring prioritization, because less stable classes are expected to require more effort while testing, and urge for refactoring activities that would make them more resistant to change propagation.

作者

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

评论

主要评分

4.6
评分不足

次要评分

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

推荐

Article Computer Science, Information Systems

A mapping study on documentation in Continuous Software Development

Theo Theunissen, Uwe van Heesch, Paris Avgeriou

Summary: Research shows that challenges in continuous software development include difficulties in understanding informal documentation, the perception of documentation as wasteful, and a focus on short-term productivity. To address these challenges, practitioners are recommended to adopt practices like non-written communication and tools like architecture frameworks to improve the quantity and quality of documentation.

INFORMATION AND SOFTWARE TECHNOLOGY (2022)

Article Computer Science, Software Engineering

The temporality of technical debt introduction on new code and confounding factors

George Digkas, Apostolos Ampatzoglou, Alexander Chatzigeorgiou, Paris Avgeriou

Summary: The study found that the number of TD issues introduced through new code is generally stable with occasional spikes, and the number of commits performed as well as developers' experience are not strongly correlated to the number of introduced TD issues.

SOFTWARE QUALITY JOURNAL (2022)

Article Computer Science, Software Engineering

A metric for quantifying the ripple effects among requirements

Elvira-Maria Arvanitou, Apostolos Ampatzoglou, Alexander Chatzigeorgiou, Paris Avgeriou, Nikolaos Tsiridis

Summary: Identifying and understanding the artifacts that need to be changed during software maintenance is often costlier than applying the actual change. This paper proposes a metric for assessing the probability of one requirement being affected by a change in another requirement, focusing on the requirements level. The metric accounts for past co-change, overlapping implementations, and source code dependencies, and is validated through an industrial case study.

SOFTWARE QUALITY JOURNAL (2022)

Article Computer Science, Software Engineering

Identifying self-admitted technical debt in issue tracking systems using machine learning

Yikun Li, Mohamed Soliman, Paris Avgeriou

Summary: Technical debt refers to sub-optimal solutions implemented for short-term benefits, sacrificing the long-term maintainability and evolvability of software. Self-Admitted Technical Debt (SATD) is commonly found in source code comments and issue tracking systems, and can be effectively identified and improved using machine learning methods.

EMPIRICAL SOFTWARE ENGINEERING (2022)

Article Computer Science, Information Systems

System and software architecting harmonization practices in ultra-large-scale systems of systems: A confirmatory case study

Hector Cadavid, Vasilios Andrikopoulos, Paris Avgeriou, P. Chris Broekema

Summary: This study aims to confirm and extend the applicability of architecture harmonization practices from systems and software engineering in the field of System of Systems (SoS). The findings from a confirmatory case study provide further emphasis on the importance of a cross-disciplinary view and its value in SoS architecture research.

INFORMATION AND SOFTWARE TECHNOLOGY (2022)

Editorial Material Computer Science, Software Engineering

Introduction to the Special Issue on Software-Intensive Autonomous Systems: Methods and applications

Nesrine Khabou, Ismael Bouassida Rodriguez, Khalil Drira, Paris Avgeriou, David C. Shepherd, Wing-Kwong Chan, Raffaela Mirandola

JOURNAL OF SYSTEMS AND SOFTWARE (2023)

Article Computer Science, Software Engineering

Automatic identification of self-admitted technical debt from four different sources

Yikun Li, Mohamed Soliman, Paris Avgeriou

Summary: Technical debt refers to taking shortcuts in software development at the expense of long-term maintainability. Previous research has focused on identifying developer-reported technical debt, while this study proposes and evaluates an approach for automated identification of self-admitted technical debt (SATD) from multiple sources. The approach integrates source code comments, commit messages, pull requests, and issue tracking systems, achieving superior performance compared to baseline methods. The study also characterizes SATD in open-source projects and explores the relationships between SATD in different sources, revealing insights such as even distribution among sources and common keywords shared between issues and pull requests.

EMPIRICAL SOFTWARE ENGINEERING (2023)

Article Computer Science, Software Engineering

Self-Admitted Technical Debt in the Embedded Systems Industry: An Exploratory Case Study

Yikun Li, Mohamed Soliman, Paris Avgeriou, Lou Somers

Summary: Technical debt refers to shortcuts taken during software development for the sake of expedience. Self-Admitted Technical Debt (SATD) occurs when developers explicitly acknowledge these shortcuts. While SATD management in Open Source projects has been studied extensively, its exploration in industry and developers' perspectives towards SATD have received limited attention. To address this gap, an exploratory case study was conducted with an industrial partner to understand how SATD is perceived and managed. The study involved collecting data on SATD from different sources and conducting interviews with 12 software practitioners. The results highlight the core characteristics of SATD in industrial projects, developers' attitudes towards it, triggers for its introduction and repayment, relations between SATD in different sources, practices used for its management, as well as challenges and tooling ideas.

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING (2023)

Article Computer Science, Software Engineering

Improving hardware/software interface management in systems of systems through documentation as code

Hector Cadavid, Vasilios Andrikopoulos, Paris Avgeriou

Summary: This study aims to improve the management of Interface Control Documents (ICDs) in Systems of Systems (SoS) using the documentation-as-code philosophy. A Technical Action Research (TAR) study was conducted with engineers at ASTRON to gain insights on interface management issues. Based on these insights, a proof-of-concept was developed to address the issues and received positive reviews from practitioners and experts, identifying areas for improvement and future work.

EMPIRICAL SOFTWARE ENGINEERING (2023)

Article Computer Science, Information Systems

The lifecycle of Technical Debt that manifests in both source code and issue trackers

Jie Tan, Daniel Feitosa, Paris Avgeriou

Summary: Although Technical Debt (TD) has received increasing attention, most studies are based on single sources. This study investigates the management of TD across different sources and finds that most resolved TD items in issue trackers are also paid back in source code, although many are not further discussed. It is also discovered that the identification of TD items often takes a long time (around one year) but can be resolved quickly if the same developer is involved in the process.

INFORMATION AND SOFTWARE TECHNOLOGY (2023)

Article Computer Science, Information Systems

Warnings: Violation symptoms indicating architecture erosion

Ruiyin Li, Peng Liang, Paris Avgeriou

Summary: The degradation of software architecture as a software system evolves hampers software maintenance and evolution activities and affects the quality attributes of the system. This study investigates the characteristics of architecture violation symptoms in code review comments from the developers' perspective and provides insights on how developers address these symptoms.

INFORMATION AND SOFTWARE TECHNOLOGY (2023)

Article Computer Science, Software Engineering

An Architectural Technical Debt Index Based on Machine Learning and Architectural Smells

Darius Sas, Paris Avgeriou

Summary: A key aspect of technical debt management is measuring the accumulated principal. Existing approaches to estimate technical debt principal focus on architectural debt, but lack full automation, availability, and validation. This article proposes a novel approach using machine learning and architectural smells to estimate architectural technical debt principal, addressing shortcomings of current approaches. The approach applies information retrieval techniques to train a learning-to-rank machine learning model, calculates the number of lines of code creating the smell, and combines these values for the debt estimation, validated through a case study and interviews with practitioners.

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING (2023)

Proceedings Paper Computer Science, Software Engineering

Where and What do Software Architects blog?

Mohamed Soliman, Kirsten Gericke, Paris Avgeriou

Summary: This paper conducts an exploratory study on architectural blogs to investigate their types, topics, and their relevance to design steps. The results provide support for researchers and practitioners in finding and reusing valuable knowledge from blogs.

2023 IEEE 20TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE, ICSA (2023)

Proceedings Paper Computer Science, Software Engineering

Documentation-as-Code for Interface Control Document Management in Systems of Systems: A Technical Action Research Study

Hector Cadavid, Vasilios Andrikopoulos, Paris Avgeriou

Summary: The architecting of Systems of Systems (SoS) is an important topic that has gained increasing interest. However, the interplay between different disciplines involved in the architecting process is often overlooked, which has significant implications for integration and operational issues. In this research, the authors collaborated with practitioners in a large-scale radio astronomy SoS project to explore potential improvements in interface management by adopting elements of the documentation-as-code philosophy. The results and lessons learned from this study are reported in this paper.

SOFTWARE ARCHITECTURE, ECSA 2022 (2022)

Proceedings Paper Computer Science, Hardware & Architecture

Symptoms of Architecture Erosion in Code Reviews: A Study of Two OpenStack Projects

Ruiyin Li, Mohamed Soliman, Peng Liang, Paris Avgeriou

Summary: This study investigates the erosion symptoms discussed in code reviews, their trends, and the actions taken by developers in the OpenStack community. The findings show that code review is an effective way to reduce erosion symptoms, and analyzing the trend of erosion symptoms can provide insights into the erosion status of software systems and help avoid potential risks.

IEEE 19TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE (ICSA 2022) (2022)

暂无数据