Article
Computer Science, Software Engineering
Damian A. Tamburri, Fabio Palomba, Rick Kazman
Summary: Software engineering success relies on balancing distance, culture, global engineering practices and more. This paper introduces an automated approach, CodeFace4Smells, to identify four community smell types. A large-scale empirical study on 60 open-source communities reveals that community smells are highly diffused in open-source and perceived by developers as significant issues for software community evolution.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2021)
Article
Chemistry, Multidisciplinary
Mamdouh Alenezi
Summary: The evolution of software systems and understanding their internal quality is crucial in software engineering. This study analyzed the evolution of object-oriented open-source software systems in terms of size, internal quality metrics, showing significant differences among systems in LOC, significant correlations between internal quality metrics, and positive effects of complexity and inheritance on LOC. Coupling and Cohesion did not show significant effects on LOC.
APPLIED SCIENCES-BASEL
(2021)
Article
Computer Science, Information Systems
Yanan Zhang, Yuqiao Ning, Chao Ma, Longhai Yu, Zhen Guo
Summary: This paper examines the unique characteristics and challenges of open-source software in automotive vehicles. By analyzing real-world examples and case studies, it is found that automotive firmware contains a significant number of open-source components, with a majority being specific to automotive systems. The results of this research provide valuable recommendations for improving automotive security through the building of a database of automotive-specific open-source libraries.
Article
Computer Science, Artificial Intelligence
Linda Erlenhov, Francisco Gomes de Oliveira Neto, Philipp Leitner
Summary: This paper presents an empirical study on bot activity, using both quantitative and qualitative analysis. The study highlights the differences in definitions of bot activity in open-source software and identifies tools that comply with the characteristics of Devbots. The analysis also reveals that most projects experiment with multiple bots before making a decision on adoption or switching. Factors such as generated noise and required adaptation in development practices are found to drive discussions about the adoption or removal of Devbots.
PEERJ COMPUTER SCIENCE
(2022)
Article
Computer Science, Software Engineering
Moses Openja, Mohammad Mehdi Morovati, Le An, Foutse Khomh, Mouna Abidi
Summary: This paper investigates the distribution and evolution of technical debts in quantum software and their relationship with fault occurrences. The study finds that quantum software suffers from issues such as code convention violation, error-handling, and code design.
JOURNAL OF SYSTEMS AND SOFTWARE
(2022)
Article
Computer Science, Software Engineering
Wesley K. G. Assuncao, Jacob Kruger, Sebastien Mosser, Sofiane Selaoui
Summary: Microservice architectures are widely used in the industry for developing scalable software systems. However, their design and maintenance present challenges to software engineers. To gain insights into the evolution of microservices, a large-scale empirical study was conducted on 11 open-source systems, revealing recurring patterns of evolution and analyzing the dependence between microservices.
JOURNAL OF SYSTEMS AND SOFTWARE
(2023)
Article
Computer Science, Software Engineering
Jevgenija Pantiuchina, Bin Lin, Fiorella Zampetti, Massimiliano Di Penta, Michele Lanza, Gabriele Bavota
Summary: The researchers manually coded rejection reasons from 330 refactoring-related pull requests, resulting in a comprehensive taxonomy consisting of 26 refactoring-related rejection reasons and 21 process-related rejection reasons. The taxonomy provides valuable insights for developers and highlights several directions for improving refactoring recommenders.
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
(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, Software Engineering
Simon Butler, Jonas Gamalielsson, Bjorn Lundell, Christoffer Brax, Johan Sjoberg, Anders Mattsson, Tomas Gustavsson, Jonas Feist, Erik Lonroth
Summary: This research investigates the various work practices used by company contributors to engage with and contribute to eight community OSS projects, finding that companies choose contribution methods based on their needs and capabilities. Factors influencing contributor work practices can be complex, arising from considerations such as company and project structure, technical concerns, and commercial strategies.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2021)
Article
Biology
Vishhvaan Gopalakrishnan, Dena Crozier, Kyle J. Card, Lacy D. Chick, Nikhil P. Krishnan, Erin McClure, Julia Pelesko, Drew F. K. Williamson, Daniel Nichol, Soumyajit Mandal, Robert A. Bonomo, Jacob G. Scott
Summary: A morbidostat is a bioreactor that uses antibiotics to control bacterial growth, making it suitable for studying antibiotic resistance evolution. We present a low-cost morbidostat called the EVolutionary biorEactor (EVE) that can be constructed by students with minimal engineering and programming experience. We validate EVE in a real classroom setting by evolving replicate Escherichia coli populations under chloramphenicol challenge, providing students the opportunity to learn about bacterial growth and antibiotic resistance.
Article
Computer Science, Cybernetics
Phesto P. Namayala, Tabu S. Kondo, Leonard J. Mselle
Summary: The study aims to identify the influencing factors of user experience maturity in the free and open-source software community and evaluate the community's understanding of this concept. The results can be used to develop user experience capability models exclusive to the free and open-source software community.
INTERNATIONAL JOURNAL OF HUMAN-COMPUTER INTERACTION
(2023)
Article
Energy & Fuels
T. Niet, A. Shivakumar, F. Gardumi, W. Usher, E. Williams, M. Howells
Summary: This paper illustrates how a vibrant community of practice has been built around OSeMOSYS through updated code management structure, revised community forum, and outreach activities. These three pillars are key to establishing a community around an open source tool.
ENERGY STRATEGY REVIEWS
(2021)
Article
Computer Science, Information Systems
Feras Al-Hawari
Summary: This paper introduces five design patterns that were utilized to develop recurring features in complex information systems, and provides detailed documentation using UML diagrams. Some of these design patterns were widely used in six information systems at the German Jordanian University.
JOURNAL OF KING SAUD UNIVERSITY-COMPUTER AND INFORMATION SCIENCES
(2022)
Article
Computer Science, Information Systems
Juanan Pereira
Summary: This study followed four students contributing to two established OSS projects for two academic years, analyzing their work on GitHub and survey responses. The results provided specific recommendations for future practitioners and listed benefits achieved by steering FDP towards OSS contributions.
Article
Computer Science, Hardware & Architecture
Wayne Beaton
Summary: Open source software engineering develops publicly available source code through processes that actively engage and solicit participation from the community.
Article
Computer Science, Software Engineering
Emanuele Iannone, Roberta Guadagni, Filomena Ferrucci, Andrea De Lucia, Fabio Palomba
Summary: Software vulnerabilities are weaknesses in source code that can be exploited to cause harm. However, there is a lack of knowledge on how vulnerabilities are introduced and removed during the software engineering life cycle. This study investigates the life cycle of known vulnerabilities in open-source software projects, finding that vulnerabilities often require multiple contributions before being introduced and remain unfixed for significant periods of time. The study provides practical implications for vulnerability detectors to assist developers in identifying and addressing these issues in a timely manner.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2023)
Article
Computer Science, Software Engineering
Fiorella Zampetti, Damian Tamburri, Sebastiano Panichella, Annibale Panichella, Gerardo Canfora, Massimiliano Di Penta
Summary: CI/CD practices have benefits for software development and operations, but applying them to CPS development can be challenging. This study investigates the challenges and barriers of applying CI/CD to CPS development in 10 organizations across eight domains. The study reveals peculiarities in the application of CI/CD to CPSs and suggests the need for balancing continuous and periodic builds, addressing difficulties in software deployment, considering behavior differences in simulators and Hardware-in-the-Loop, and combining hardware/software expertise in the development team. The findings can inform the development of CI/CD pipelines and interdisciplinary university curricula.
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
(2023)
Editorial Material
Computer Science, Software Engineering
Giovanni Quattrocchi, Damian A. Tamburri
Summary: This special issue demonstrates the maturity of infrastructure code and its plethora of off-the-shelf approaches to continuous software engineering, as seen through a scientific lens.
Article
Computer Science, Software Engineering
Stefano Dalla Palma, Chiel van Asseldonk, Gemma Catolino, Dario Di Nucci, Fabio Palomba, Damian A. Tamburri
Summary: Infrastructure-as-code (IaC) is crucial for providing and managing infrastructures through configuration files, but these files may suffer from code smells that impact quality and maintenance. This paper investigates the application of a traditional implementation code smell, Large Class or Blob Blueprint, in the context of TOSCA, and compares metrics-based and unsupervised learning-based detectors on a large dataset. The results suggest a new research direction for dealing with this problem and highlight the effectiveness of metrics-based detectors in detecting Blob Blueprints.
JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS
(2023)
Review
Computer Science, Theory & Methods
Morteza Zakeri-Nasrabadi, Saeed Parsa, Ehsan Esmaili, Fabio Palomba
Summary: The accuracy of code smell-detecting tools varies depending on the dataset used for evaluation. The adequacy of a dataset highly depends on relevant properties such as size, severity level, project types, and the number of each type of smell. Existing datasets often suffer from imbalanced samples, lack of severity level support, and restriction to Java language.
ACM COMPUTING SURVEYS
(2023)
Article
Computer Science, Artificial Intelligence
Majid Mohammadi, Amir Ahooye Atashin, Damian A. Tamburri
Summary: This paper proposes a simple projection neural network for '1-regularized logistic regression. Unlike other available solvers, the proposed network does not require any extra auxiliary variable or smooth approximation, and its complexity is almost the same as that of gradient descent for logistic regression without '1 regularization, thanks to the projection operator. The paper also demonstrates the convergence of the proposed neural network using Lyapunov theory and shows its superior performance in terms of execution time compared to state-of-the-art methods, while remaining competitive in accuracy and AUROC.
Article
Computer Science, Software Engineering
Giovanni Quattrocchi, Damian Andrew Tamburri, Willem-Jan Van Den Heuvel
Summary: Service continuity requires establishing a visible and understandable connection between customer experience and service operations. Manual methods for establishing this connection, such as service incident management, are time-consuming, inefficient, and prone to errors. On the other hand, artificial intelligence (AI) is emerging as an automated solution for handling the discontinuities in critical business tasks. This article introduces AI-driven incident management and proposes ACQUA, an AI approach for automatically assessing the quality of ticket descriptions, leading to improved resolution times and service continuity.
SOFTWARE-PRACTICE & EXPERIENCE
(2023)
Article
Computer Science, Information Systems
Damian A. Tamburri, Vincent R. van Mierlo, Willem-Jan van den Heuvel
Summary: The amount of data is increasing rapidly, but its consumption is not keeping up. DataOps is a new family of techniques and tools that utilize complex cloud systems orchestration techniques to continuously harness the potential of data. This paper presents a proof-of-concept implementation of a DataOps pipeline for mitigating the effects of droughts in high-risk areas. The study focuses on a game reserve in the Waterberg area of Limpopo province, South Africa. The objectives of the paper include developing and studying a proof of concept for DataOps, exploring the applicability of individual software components in a large-scale continuous pipeline, and discussing the spatial classification of these components in a new Drought Early-Warning System (DEWS). The findings suggest that a combined model of local, regional, and global data performs the best within an acceptable timeframe for stakeholders.
IEEE TRANSACTIONS ON BIG DATA
(2023)
Article
Management
Majid Mohammadi, Damian A. Tamburri, Jafar Rezaei
Summary: This article examines three common fallacies in group multi-criteria decision-making and proposes solutions based on compositional data analysis to prevent misapplication of statistical operations.
GROUP DECISION AND NEGOTIATION
(2023)
Article
Computer Science, Software Engineering
Xiaozhou Li, Sergio Moreschini, Zheying Zhang, Fabio Palomba, Davide Taibi
Summary: Software vulnerabilities pose significant risks, such as the loss and manipulation of private data. The software engineering research community has conducted empirical studies and proposed automated techniques to detect and remove vulnerabilities. In this paper, a systematic mapping study is conducted to analyze popular vulnerability databases, adoption goals, other information sources, methods and techniques, and proposed tools. Understanding these aspects can help researchers make informed decisions and practitioners establish reliable sources of information for security policies and standards.
JOURNAL OF SYSTEMS AND SOFTWARE
(2023)
Article
Computer Science, Software Engineering
Lulai Zhu, Damian Andrew Tamburri, Giuliano Casale
Summary: This paper proposes a semi-automatic approach called RADF to migrate monolithic applications to serverless architecture by decomposing them into serverless functions based on business logic analysis. The approach adopts a two-stage refactoring strategy and can generate solutions at either microservice or function level. Evaluation experiments show that RADF achieves lower coupling and relatively balanced cohesion compared to previous approaches.
SOFTWARE-PRACTICE & EXPERIENCE
(2023)
Proceedings Paper
Computer Science, Software Engineering
Indika Kumara, Fabiano Pecorelli, Gemma Catolino, Rick Kazman, Damian Andrew Tamburri, Willem-Jan van den Heuvel
Summary: MLOps refers to a set of practices and tools that automate and combine model development and model operation, enabling organizations to successfully deploy and manage their ML models in production.
2023 IEEE 20TH INTERNATIONAL CONFERENCE ON SOFTWARE ARCHITECTURE COMPANION, ICSA-C
(2023)
Article
Computer Science, Software Engineering
Stefano Lambiase, Gemma Catolino, Fabiano Pecorelli, Damian A. Tamburri, Fabio Palomba, Willem-Jan van den Heuvel, Filomena Ferrucci
Summary: This paper contributes to the existing body of knowledge on factors affecting productivity in software development by studying the cultural and geographical dispersion of a development community. The results show that cultural and geographical dispersion significantly impact productivity, suggesting that managers and practitioners should consider these aspects throughout the software development lifecycle.
JOURNAL OF SYSTEMS AND SOFTWARE
(2024)