Article
Computer Science, Information Systems
David Moreno-Lumbreras, Roberto Minelli, Andrea Villaverde, Jesus M. Gonzalez-Barahona, Michele Lanza
Summary: This comparative study aimed to investigate the suitability of virtual reality (VR) for visualizing CodeCity compared to the traditional on-screen implementation. The results showed that participants using the VR version completed the tasks much faster, while maintaining a comparable level of correctness.
INFORMATION AND SOFTWARE TECHNOLOGY
(2023)
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, Hardware & Architecture
Huaijin Wang, Shuai Wang, Dongpeng Xu, Xiangyu Zhang, Xiao Liu
Summary: Obfuscation is a crucial security technique that transforms the syntactic representation of a program to a complex form while preserving its semantics. However, a key challenge lies in identifying effective combinations of obfuscation methods. In this research, a reinforcement learning approach is proposed to generate an optimal program obfuscation scheme by selecting a sequence of obfuscation transformations, resulting in effective obfuscation with low cost.
IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING
(2022)
Article
Computer Science, Information Systems
Rodrigo Santos, Eleni Constantinou, Pablo Antonino, Jan Bosch
Summary: In the last decade, software engineering has faced challenges beyond technical aspects. The field now considers technological, organizational, and social aspects together in research and practice to handle complexity and provide solutions to the industry's demands. Systems-of-systems (SoS) and software ecosystems (SECO) have emerged as topics of interest, bringing together researchers and practitioners to understand how to manage and engineer software-intensive systems in modern, complex, distributed, dynamic, and open environments.
INFORMATION AND SOFTWARE TECHNOLOGY
(2024)
Article
Computer Science, Theory & Methods
Saed Alrabaee, Mourad Debbabi, Lingyu Wang
Summary: This article provides a systematic review of existing binary code fingerprinting approaches and their applications, discusses the information captured during the fingerprinting process, addresses limitations and open questions, and proposes future directions.
ACM COMPUTING SURVEYS
(2023)
Article
Business
Paolo Spagnoletti, Niloofar Kazemargi, Andrea Prencipe
Summary: This article focuses on how organizations achieve agility in the maintenance and development of software products by conducting a longitudinal case study of Agile Scrum implementation in a major supplier of telecommunication equipment. It identifies key practices and capabilities that support effective collaboration and coordination in software development, providing practical guidance for R&D managers to attain agility in software ecosystems.
IEEE TRANSACTIONS ON ENGINEERING MANAGEMENT
(2022)
Editorial Material
Computer Science, Information Systems
Paul Leger, Alexandre Bergel, Juan Pablo Sandoval Alcocer, Leonel Merino
Summary: Software visualization is a research area that focuses on visually encoding and analyzing software systems. It draws on theories and techniques from information visualization and computer graphics and applies them in the software engineering domain. This special issue received 17 submissions and accepted 6 papers, with 3 of them being extended versions from the IEEE Working Conference on Software Visualization (VISSOFT) 2021.
INFORMATION AND SOFTWARE TECHNOLOGY
(2023)
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
Enrico Fregnan, Josua Froehlich, Davide Spadini, Alberto Bacchelli
Summary: This paper presents a new visualization approach to support developers in understanding code review changes. The authors implemented the approach in a tool called ReviewVis and conducted surveys to assess its benefits. The collected feedback showed that developers perceived ReviewVis as helpful in navigating and understanding review changes.
JOURNAL OF SYSTEMS AND SOFTWARE
(2023)
Article
Computer Science, Software Engineering
Toufique Ahmed, Premkumar Devanbu, Anand Ashok Sawant
Summary: This paper evaluates a supervised learning approach for recovering optimized function calls and utilizes open-source software and an automated labeling scheme to generate a large dataset for training. The study also includes a pre-training step on a larger unlabeled dataset to improve performance.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2022)
Article
Computer Science, Software Engineering
Weifeng Sun, Meng Yan, Zhongxin Liu, Xin Xia, Yan Lei, David Lo
Summary: Many previous studies have focused on the co-evolution of production and test code based on samples mined from software repositories. However, the quality of the mined samples is crucial for reliable research conclusions. We conducted an empirical study and found that the existing assumption used in identifying production-test co-evolution samples is often noisy. Based on our findings, we proposed a method called CHOSEN which outperforms existing identification methods and helps draw more accurate conclusions regarding the co-evolution of production and test code.
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
(2023)
Article
Chemistry, Multidisciplinary
Muhammad Abid Jamil, Mohamed K. Nour, Saud S. Alotaibi, Mohammad Jabed Hussain, Syed Mutiullah Hussaini, Atif Naseer
Summary: Currently, software development emphasizes the use of families of configurable software rather than a single implementation of a product. Testing these software product lines (SPLs) is challenging due to the numerous combinations and impracticality of testing all optional features. One approach to address this issue is to test subsets of configured products, but alternative methods like combinatorial interaction testing (CIT) are needed for better results.
APPLIED SCIENCES-BASEL
(2023)
Article
Computer Science, Software Engineering
Huaijin Wang, Pingchuan Ma, Yuanyuan Yuan, Zhibo Liu, Shuai Wang, Qiyi Tang, Sen Nie, Shi Wu
Summary: Binary code function search is widely used in security and software engineering applications, but recognizing logically similar assembly functions is still a challenge. Existing search tools based on program analysis or deep neural networks have limitations in accurately representing program functionality and robustness. This paper proposes a general solution to enhance the top-k candidates in DNN-based binary code function search using a low-cost and comprehensive equivalence check. The proposed method, named BinUSE, improves the false alarm rate of DNN-based search tools and shows effectiveness in various challenging settings.
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING
(2023)
Article
Computer Science, Artificial Intelligence
Santiago Duenas, Valerio Cosentino, Jesus M. Gonzalez-Barahona, Alvaro del Castillo San Felix, Daniel Izquierdo-Cortazar, Luis Canas-Diaz, Alberto Perez Garcia-Plaza
Summary: After years of research, a mature and reusable toolset, GrimoireLab, has been developed to support various data sources related to software development. It has been extensively tested in different environments, providing a wide range of services. The toolset is modular and easy to integrate with new data sources and analysis methods.
PEERJ COMPUTER SCIENCE
(2021)
Article
Computer Science, Information Systems
Nadera Aljawabrah, Tamas Gergely, Sanjay Misra, Luis Fernandez-Sanz
Summary: In software development, the combination of traceability recovery methods was implemented to help developers overview links inferred by various recovery techniques. The visualization model presented herein effectively supported browsing, comprehension, and maintenance of Test-to-Code Traceability (TCT) links, with visualization of TCT links from multiple sources proving better than a single source.
Article
Computer Science, Software Engineering
Fengcai Wen, Csaba Nagy, Michele Lanza, Gabriele Bavota
Summary: Most changes during software maintenance are not atomic and developers may omit needed changes, leading to technical debt or bugs. A study on quick remedy commits found that developers tend to quickly fix issues introduced by omitted changes in previous commits. These quick remedy commits are important for improving code quality and must be considered in mining software repositories for accurate findings.
EMPIRICAL SOFTWARE ENGINEERING
(2022)
Article
Computer Science, Software Engineering
Luca Traini, Daniele Di Pompeo, Michele Tucci, Bin Lin, Simone Scalabrino, Gabriele Bavota, Michele Lanza, Rocco Oliveto, Vittorio Cortellessa
Summary: This study fills the gap in understanding the impact of refactoring operations on software performance. Through a large-scale analysis, it is found that refactoring operations can significantly affect code execution time, with types aimed at decomposing complex code entities more likely to cause performance degradation, suggesting cautious consideration when refactoring performance-critical code.
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
(2022)
Review
Computer Science, Software Engineering
Bin Lin, Nathan Cassee, Alexander Serebrenik, Gabriele Bavota, Nicole Novielli, Michele Lanza
Summary: Opinion mining, also known as sentiment analysis, has gained attention in software engineering research for identifying developer emotions and extracting user criticisms in mobile apps. Through a systematic literature review of 185 papers, we provide well-defined categories of opinion mining-related software development activities, available opinion mining approaches, datasets for evaluation and tool customization, and concerns or limitations for researchers to consider when applying or customizing opinion mining techniques. Our study serves as a reference for selecting suitable opinion mining tools and provides critical insights for the further development of this technique in software engineering.
ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
(2022)
Article
Computer Science, Information Systems
David Moreno-Lumbreras, Roberto Minelli, Andrea Villaverde, Jesus M. Gonzalez-Barahona, Michele Lanza
Summary: This comparative study aimed to investigate the suitability of virtual reality (VR) for visualizing CodeCity compared to the traditional on-screen implementation. The results showed that participants using the VR version completed the tasks much faster, while maintaining a comparable level of correctness.
INFORMATION AND SOFTWARE TECHNOLOGY
(2023)
Article
Computer Science, Software Engineering
Giovanni Rosa, Luca Pascarella, Simone Scalabrino, Rosalia Tufano, Gabriele Bavota, Michele Lanza, Rocco Oliveto
Summary: Automatically linking bug-fixing changes to bug-inducing ones is a crucial step in empirical studies in software engineering. The standard method, SZZ algorithm, has been improved over time, but evaluating its performance is challenging. Previous works manually assessed the correctness of SZZ-identified bug-inducing changes or created oracles with manual determination. We propose a methodology to define a developer-informed oracle for evaluating SZZ implementations without manual inspection from the original developers. Natural Language Processing (NLP) is used to identify bug-fixing commits referencing the introduced bug. The methodology is applied to evaluate existing SZZ variants and introduce two new variants to address weaknesses in state-of-the-art implementations.
JOURNAL OF SYSTEMS AND SOFTWARE
(2023)
Proceedings Paper
Computer Science, Software Engineering
Gianlorenzo Occhipinti, Csaba Nagy, Roberto Minelli, Michele Lanza
Summary: The comprehension of large-scale software system evolution poses challenges due to the vast amount of time-based data and its complex nature. SYN is a web-based tool that utilizes versatile visualization and data processing techniques to create scalable depictions of ultra-scale software system evolution. SYN has been successfully applied to several systems on GitHub, including the 20-year history of Linux operating system with millions of commits on evolving files.
2023 IEEE/ACM 31ST INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, ICPC
(2023)
Proceedings Paper
Computer Science, Software Engineering
Edoardo Riggio, Marco Raglianti, Michele Lanza
Summary: Modern instant messaging applications provide users with real-time communication means, which are valuable for program comprehension in collaborative development. However, the interleaving of messages makes it difficult to analyze datasets, calling for better practices and tool support. CODI is a RESTful API micro-service and web interface that offers an easy way to disentangle conversation transcripts and achieve state-of-the-art performances. It can significantly improve research reusability while reducing efforts and potential mistakes. Rating: 9/10
2023 IEEE/ACM 31ST INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, ICPC
(2023)
Proceedings Paper
Computer Science, Software Engineering
Adrian Hoff, Christoph Seidl, Michele Lanza
Summary: Software visualization is helpful for exploring large code bases, but repetitive patterns in software structure make it difficult to distinguish different subsystems and recognize previously visited parts. By using variability-modeling techniques and custom-tailored 3D models to make visualizations of subsystems unique, this problem can be effectively addressed.
17TH INTERNATIONAL WORKING CONFERENCE ON VARIABILITY MODELLING OF SOFTWARE-INTENSIVE SYSTEMS, VAMOS 2023
(2023)
Proceedings Paper
Computer Science, Software Engineering
Olivier Nourry, Yutaro Kashiwa, Bin Lin, Gabriele Bavota, Michele Lanza, Yasutaka Kamei
Summary: Energy consumption in mobile applications is an important area of software engineering studies. Several software-based energy calculation tools can provide estimates of energy consumed by mobile applications and enable large-scale studies. However, the use of randomly generated events in existing tools undermines the reproducibility and generalizability of the research.
2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2022)
(2022)
Proceedings Paper
Computer Science, Software Engineering
Marco Raglianti, Csaba Nagy, Roberto Minelli, Michele Lanza
Summary: New communication platforms have been developed to assist developers in finding and creating the knowledge they need for program comprehension, maintenance, and evolution. However, there is a lack of visual and interactive tools to explore these platforms.
2022 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE AND EVOLUTION (ICSME 2022)
(2022)
Proceedings Paper
Computer Science, Software Engineering
Mircea Lungu, Rolf-Helge Pfeiffer, Marco D'Ambros, Michele Lanza, Jesper Findahl
Summary: In recent years, numerous software visualization tools have been introduced to support the analysis of software systems and their evolution as captured in the versioning systems. This paper argues that these tools are beneficial for educators who need to evaluate the quality of software systems developed by students. Several educator needs are discussed, along with usage examples from student projects. Considerations for both educators and future tool-builders are also provided.
2022 WORKING CONFERENCE ON SOFTWARE VISUALIZATION (IEEE VISSOFT)
(2022)
Proceedings Paper
Computer Science, Software Engineering
Nour Jihene Agouf, Stephane Ducasse, Anne Etien, Michele Lanza
Summary: This article introduces the concept and importance of classes in object-oriented programming and discusses the limitations of using the CLASS BLUEPRINT visualization tool. The authors propose a new version, BLUEPRINTV2, which enhances the visualization by identifying dead code, methods under test, and calling relationships between classes and instance-level methods. The first validation with 26 developers and 18 projects shows that BLUEPRINTV2 is effective in supporting program comprehension.
2022 WORKING CONFERENCE ON SOFTWARE VISUALIZATION (IEEE VISSOFT)
(2022)
Proceedings Paper
Computer Science, Software Engineering
Susanna Ardigo, Csaba Nagy, Roberto Minelli, Michele Lanza
Summary: This article explores the use of a city metaphor to visualize software systems in 3D. It introduces an interactive web application called M3TRICITY that allows visualization of object-oriented software systems, their evolution, and data access. The application can be useful for program comprehension and analysis of data-intensive software systems.
2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: COMPANION PROCEEDINGS (ICSE-COMPANION 2022)
(2022)
Proceedings Paper
Computer Science, Software Engineering
Michael MacInnis, Olga Baysal, Michele Lanza
Summary: The terminal has remained a relevant and efficient interface for programming activities, from its humble beginnings as a teletypewriter to the present-day windowed terminal emulators. In contrast to feature-rich IDEs, we propose using interconnected windowed terminal emulators as the foundation for a new type of distributed and language-agnostic development environment.
2022 ACM/IEEE 44TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING: NEW IDEAS AND EMERGING RESULTS (ICSE-NIER 2022)
(2022)
Proceedings Paper
Computer Science, Software Engineering
Marco Raglianti, Csaba Nagy, Roberto Minelli, Michele Lanza
Summary: Modern communication platforms like Discord are essential tools for conversations among developers and users in software development. However, the sheer volume, velocity, and small granularity of single messages make it difficult to find useful results. Extracting and analyzing these conversations can aid in program comprehension.
30TH IEEE/ACM INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION (ICPC 2022)
(2022)
Article
Computer Science, Software Engineering
Amel Mammar, Meriem Belguidoum, Saddam Hocine Hiba
Summary: This paper introduces a formal EVENT-B-based approach for modeling and verifying the deployment of component-based applications. By gradually refining an abstract model, a precise specification is built, and mathematical reasoning is used to prove its correctness. The presented approach validates the deployment in a cloud environment using PROB and ensures the construction of a correct system that meets the constraints.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Shuqi Liu, Yu Zhou, Longbing Ji, Tingting Han, Taolue Chen
Summary: In this paper, we propose a framework that combines GUI events deduplication with an adaptive semantic matching strategy to enhance the usability of reused tests. Experimental evaluation demonstrates that the framework improves widget mapping performance, significantly reduces event redundancy, and reduces the manual effort of creating tests for similar applications.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Xiangyu Mu, Lei Liu, Peng Zhang, Jingyao Li, Hui Li
Summary: The aim of this study is to reduce the size of the test case set required to detect the commutativity problem of the reduce function. By determining the pattern of the function and selecting corresponding test cases, the proposed test case generation strategy can achieve the same accuracy with a smaller test case set. It has been shown to be effective and has a high recall rate.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Padmalata Nistala, Asha Rajbhoj, Vinay Kulkarni, Sapphire Noronha, Ankit Joshi
Summary: This paper presents an automated proposal development approach using a combination of model-based and AI-enabled techniques, and discusses the successful deployment and user feedback of the system.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Jacco O. G. Krijnen, Manuel M. T. Chakravarty, Gabriele Keller, Wouter Swierstra
Summary: Compiler correctness is a long-standing problem, and it becomes more significant with the rise of smart contracts on blockchains. A translation certification framework can address the trust issue for low-level code on the blockchain, allowing users to have confidence in the compilation process of smart contracts.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Phillip James, Faron Moller, Filippos Pantekis
Summary: OnTrack is a tool that supports railway verification workflows using model driven engineering frameworks, allowing railway engineers to interact with verification procedures through encapsulating formal methods.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Oleg Kiselyov
Summary: Heterogeneous metaprogramming systems leverage higher-level host languages to generate lower-level object language code, enabling faster production of high-performant code with correctness guarantees. This paper presents two systems with OCaml as the host language and C as the object language, discussing their implementation and applications.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Conor Reynolds, Rosemary Monahan
Summary: This paper provides a detailed approach to formalize a fragment of the theory of institutions in the Coq proof assistant. The approach is illustrated and evaluated by instantiating the framework with specific institution examples.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Herbert Rausch Fernandes, Giovanni Freitas Gomes, Antonio Carlos Pinheiro de Oliveira, Sergio Vale Aguiar Campos
Summary: Alzheimer's disease is a common form of dementia with no effective drug treatment available. In this study, a statistical model checking approach was used to analyze protein and drug interactions and evaluate the effects of different drugs on the components contributing to Alzheimer's disease. The results showed that rapamycin could slow down the biological process causing neuronal death, while LY294002 and NVP-BEZ235 may increase tau phosphorylation. These findings provide important insights for the scientific community and raise awareness about potential side effects of PI3K inhibitor drugs.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Erwan Mahe, Christophe Gaston, Pascale Le Gall
Summary: This paper presents an Interaction Language to encode Sequence Diagrams (SD) and associates it with three different formal semantics. This allows for direct formal verification of SD, while preserving traceability of SD concepts and executed actions, and addressing the translation of problematic operators.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Joan Giner-Miguelez, Abel Gomez, Jordi Cabot
Summary: Datasets are crucial for training and evaluating machine learning models, but they can also lead to undesirable behaviors like biased predictions. To tackle this issue, the machine learning community suggests adopting consistent guidelines for dataset descriptions. However, these guidelines rely on natural language descriptions, which hinder automated computation and analysis. To overcome this, we present DescribeML, a language engineering tool that provides precise, structured descriptions of machine learning datasets, including their composition, provenance, and social concerns.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Andrey Sadovykh, Bilal Said, Dragos Truscan, Hugo Bruneliere
Summary: In this paper, the authors report on their 7 years of practical experience with an iterative Model-based Requirements Engineering (MBRE) approach and language in five large European collaborative projects. They demonstrate through significant data sets that this model-based approach provides interesting benefits in terms of scalability, heterogeneity, adaptability, traceability, automation, consistency and quality, and usefulness or usability. Concrete examples from these projects are provided to illustrate the application of the MBRE approach and language, and the authors discuss the general benefits and limitations of using such an approach, as well as the lessons learned over the years.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Alfa Yohannis, Dimitris Kolovos, Antonio Garcia-Dominguez
Summary: Picto Web is a multi-tenant web-based tool that allows exploration of complex models by transforming them into various transient web-based views using rule-based transformations. It uses a lazy view computation approach to efficiently support large models and complex transformations, and includes monitoring and push notification facilities for automatic recomputation of views and updated delivery to clients.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Enes Yigitbas, Maximilian Schmidt, Antonio Bucchiarone, Sebastian Gottschalk, Gregor Engels
Summary: UML has become a popular modeling language used in computer science courses, and various interactive learning applications have been developed to improve student engagement and learning outcomes. However, these applications have not successfully created immersive environments for students. Therefore, this study introduces GaMoVR, a VR-based and gamified learning environment, which provides an interactive and fun learning experience for students learning about UML modeling.
SCIENCE OF COMPUTER PROGRAMMING
(2024)
Article
Computer Science, Software Engineering
Yaxin Zhao, Lina Gong, Wenhua Yang, Yu Zhou
Summary: Accessible design aims to enable as many people as possible to access software products and services. This study investigates the interaction between accessibility issues and other factors affecting software performance. By analyzing a large number of accessibility issues, the study reveals the characteristics of these issues and their relationship with software quality attributes.
SCIENCE OF COMPUTER PROGRAMMING
(2024)