Hengyuan Liu , Zheng Li , Baolong Han , Xiang Chen , Doyle Paul , Yong Liu
{"title":"Integrating neural mutation into mutation-based fault localization: A hybrid approach","authors":"Hengyuan Liu , Zheng Li , Baolong Han , Xiang Chen , Doyle Paul , Yong Liu","doi":"10.1016/j.jss.2024.112281","DOIUrl":"10.1016/j.jss.2024.112281","url":null,"abstract":"<div><div>Fault localization is an important part of software testing and debugging, helping improve the process of fixing faults. Mutation-Based Fault Localization (MBFL) is widely used, but the reliance of Traditional-MBFL on syntactical mutants often limits its accuracy. To address this, we propose Neural-MBFL, which introduces neural mutation to generate semantically richer mutants using deep learning to better mimic real faults. Additionally, we present NeuraIntegra-MBFL, which combines neural and traditional mutation strategies through mutant combination and suspiciousness aggregation. Experiments on 835 faulty programs from the Defects4J benchmark show that Neural-MBFL improves fault localization compared to Traditional-MBFL, with a 35.50% relative improvement in <em>MAP</em> and 127 more faults localized at <em>TOP-5</em>, while maintaining acceptable computational cost. Compared to Neural-MBFL, NeuraIntegra-MBFL further enhances performance, particularly with suspiciousness aggregation, achieving an additional 11.96% <em>MAP</em> improvement and localizes 45 more faults at <em>TOP-5</em>, demonstrating the effectiveness of integrating suspiciousness scores. Using overlap and correlation analyses, we confirmed the complementarity between Neural-MBFL and Traditional-MBFL. Neural-MBFL is more effective at localizing faults that require understanding deep code semantics, while Traditional-MBFL performs better at handling rule-based modifications. NeuraIntegra-MBFL successfully integrates the strengths of both methods, offering better performance than either approach alone.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"221 ","pages":"Article 112281"},"PeriodicalIF":3.7,"publicationDate":"2024-11-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142698574","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Yue Liu, Sin Kit Lo, Qinghua Lu, Liming Zhu, Dehai Zhao, Xiwei Xu, Stefan Harrer, Jon Whittle
{"title":"Agent design pattern catalogue: A collection of architectural patterns for foundation model based agents","authors":"Yue Liu, Sin Kit Lo, Qinghua Lu, Liming Zhu, Dehai Zhao, Xiwei Xu, Stefan Harrer, Jon Whittle","doi":"10.1016/j.jss.2024.112278","DOIUrl":"10.1016/j.jss.2024.112278","url":null,"abstract":"<div><div>Foundation model-enabled generative artificial intelligence facilitates the development and implementation of agents, which can leverage distinguished reasoning and language processing capabilities to takes a proactive, autonomous role to pursue users’ goals. Nevertheless, there is a lack of systematic knowledge to guide practitioners in designing the agents considering challenges of goal-seeking (including generating instrumental goals and plans), such as hallucinations inherent in foundation models, explainability of reasoning process, complex accountability, etc. To address this issue, we have performed a systematic literature review to understand the state-of-the-art foundation model-based agents and the broader ecosystem. In this paper, we present a pattern catalogue consisting of 18 architectural patterns with analyses of the context, forces, and trade-offs as the outcomes from the previous literature review. We propose a decision model for selecting the patterns. The proposed catalogue can provide holistic guidance for the effective use of patterns, and support the architecture design of foundation model-based agents by facilitating goal-seeking and plan generation.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112278"},"PeriodicalIF":3.7,"publicationDate":"2024-11-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142705119","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Developing and sustaining a student-driven software solutions center—An experience report","authors":"Saheed Popoola, Vineela Kunapareddi, Hazem Said","doi":"10.1016/j.jss.2024.112279","DOIUrl":"10.1016/j.jss.2024.112279","url":null,"abstract":"<div><div>Traditional approaches to software engineering education often limit students’ exposure and engagement to real-world projects; thereby, failing to fully harness their potential and creativity. Yet, the dynamic and rapidly-advancing digital landscape means that there is a continuous need to empower students to become active participants, problem solvers, and innovators in delivering high-quality software solutions. Therefore, it is not surprising that fresh graduates are often ill-equipped to handle industrial projects. Existing approaches to exposing students to industrial projects such as internships or capstone projects have not achieved the desired result because industries are often reluctant to assign important tasks to interns, and a capstone project is likely to be discontinued by the student after completing the course. Furthermore, all the team members in a capstone project are usually inexperienced engineers, and this may limit mentorship opportunities for the students. This paper presents an experience report on the establishment and sustenance of a student-driven software solutions center named <em>Information Technology Solutions Center (ITSC)</em>, a unit within the School of Information Technology at the University of Cincinnati. A student-driven solution center empowers students to drive the design, development, execution, and maintenance of software solutions for industrial clients. This exposes the students to real-world projects and ensures that students are fully prepared to meet the demands of the ever-changing industrial landscape. The ITSC was established over a decade ago, has trained over 100 students, and executes about 20 projects annually with several industrial partners including Fortune 500 companies, government institutions, and research agencies. This paper discusses the establishment and maintenance of the center with the goal of motivating and providing a clear blueprint for computing programs that want to establish a similar student-driven software solutions center.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112279"},"PeriodicalIF":3.7,"publicationDate":"2024-11-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142654932","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Yves R. Kirschner , Moritz Gstür , Timur Sağlam , Sebastian Weber , Anne Koziolek
{"title":"Retriever: A view-based approach to reverse engineering software architecture models","authors":"Yves R. Kirschner , Moritz Gstür , Timur Sağlam , Sebastian Weber , Anne Koziolek","doi":"10.1016/j.jss.2024.112277","DOIUrl":"10.1016/j.jss.2024.112277","url":null,"abstract":"<div><div>Software systems, which have become an integral part of our daily lives, are constantly evolving and growing in complexity. The challenge of understanding and managing these systems has led to a shift towards automated extraction of models from software artifacts. However, extracting architectural models for web service or microservice systems is challenging due to the heterogeneity of formats, languages, and semantics. This challenge arises from the independent deployment and loose coupling of services, as well as the diverse technologies and platforms that comprise the heterogeneous artifacts. This paper addresses this issue with two key ideas: a knowledge representation model for diverse artifacts and a framework for integrating individual views into a unified architectural model. The former involves model-to-model transformations that consider technology-specific relationships and concepts. At the same time, the latter uses model transformation and composition techniques to create a unified model based on an existing metamodel. This work goes beyond the current state of the art by introducing an approach for reconstructing component-based software architectures and combining model-driven reverse engineering processes to capture information across multiple views. As empirical evidence of its applicability and accuracy, we report on its successful application in real projects of different sizes. Our evaluation shows scalability in generating architectural models and can reconstruct the components of a software system and their interactions with <span><math><msub><mrow><mi>F</mi></mrow><mrow><mn>1</mn></mrow></msub></math></span> values up to 0.94 for structural properties and up to 0.88 for behavioral properties.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112277"},"PeriodicalIF":3.7,"publicationDate":"2024-11-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142654931","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A comparison of quantum compilers using a DAG-based or phase polynomial-based intermediate representation","authors":"Arianne Meijer - van de Griend","doi":"10.1016/j.jss.2024.112224","DOIUrl":"10.1016/j.jss.2024.112224","url":null,"abstract":"<div><div>In the NISQ era, where quantum computing is dominated by hybrid quantum algorithms, it is important for quantum circuits to be well-optimized to reduce noise from unnecessary gates. We investigate different phase polynomial-based compilation strategies to determine the current best practices and compare them against the DAG-based Qiskit and TKET compilers. We find that phase polynomial-based compiling is very fast compared to DAG-based compiling. For long circuits, these compilers generate fewer CNOT gates than Qiskit or TKET, but for short circuits, they are quite inefficient. We also show that supplementary algorithms such as Reverse Traversal and simulated annealing mightimprove the generated CNOT count slightly, but the effect is negligible in most settings and generally not worth the additional compiler runtime. Instead, more sophisticated phase polynomial synthesis algorithms are needed.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"221 ","pages":"Article 112224"},"PeriodicalIF":3.7,"publicationDate":"2024-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142698575","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pierre Martou, Benoît Duhoux, Kim Mens, Axel Legay
{"title":"Combinatorial transition testing in dynamically adaptive systems: Implementation and test oracle","authors":"Pierre Martou, Benoît Duhoux, Kim Mens, Axel Legay","doi":"10.1016/j.jss.2024.112260","DOIUrl":"10.1016/j.jss.2024.112260","url":null,"abstract":"<div><div>Due to the large number of possible interactions and transitions among features in dynamically adaptive systems, testing such systems poses significant challenges. To verify that such systems behave correctly, combinatorial interaction testing (CIT) can create concise test suites covering all valid pairs of features of such systems. While CIT claims to find all errors caused by two features, it does not cover certain errors occurring only for specific <em>transitions</em> between features. To address this issue we study the technique of Combinatorial Transition Testing (CTT), which includes both generation and detection of what we call behavioural transition errors. From an initial generation algorithm that combines both interaction and transition coverage but lacks scalability, we propose an optimised version that enables CTT even for hundreds of features. From a valid test suite covering all transitions, we complete our testing approach with a test oracle that detects all behavioural transition errors without any prior knowledge of the system’s behaviour. After a comprehensive analysis over a large number of feature models, we conclude that size of CTT-generated test suites and test effort needed to use our test oracle are linearly correlated to CIT-generated ones and that CTT grows logarithmically in the number of features.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"221 ","pages":"Article 112260"},"PeriodicalIF":3.7,"publicationDate":"2024-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142698573","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Ana I. Molina , Crescencio Bravo , Jesús Gallardo , Carmen Lacave , Miguel A. Redondo
{"title":"Awareness support in collaborative programming tools: An evaluation based on programmer's perception and eye tracking","authors":"Ana I. Molina , Crescencio Bravo , Jesús Gallardo , Carmen Lacave , Miguel A. Redondo","doi":"10.1016/j.jss.2024.112276","DOIUrl":"10.1016/j.jss.2024.112276","url":null,"abstract":"<div><div>Groupware technology is an essential asset for organizations and a successful medium to support social meetings and teacher-learning processes when people are geographically distributed. Computer programming is a domain that can take advantage of the Collaborative Work paradigm and of this technology. However, to be truly effective, groupware systems must provide suitable <em>awareness</em> support, i.e., be capable of informing users of the activity taking place and of the team outcome, so that they can build a setting for their work. The study of awareness mechanisms and their influence on collaborative programming processes is an open research question. In this context, this article contributes an experimental study to evaluate the mechanisms to support coordination, communication, and awareness of COLLECE, a distributed group programming system rich in awareness support. This study brings as a novel approach the combination of subjective and objective information sources, specifically eye tracking techniques, and incorporates a heuristic evaluation of awareness support based on a well-known framework. Thanks to this experiment, we have been able to verify that this blended approach, in which users participate intensively, provides a more comprehensive and deeper assessment of awareness and other coordination and communication mechanisms, and thus a better understanding of how their use can influence the collaborative programming process and outcome (program or piece of software). The study has revealed strengths, weaknesses and opportunities for improvement of the evaluated system, and has yielded concrete results as to which are the most useful awareness components of the user interface not related to the activity supported by the system (programming), these being the traffic lights; the easiest to use, such as the session panel; or the components that impose a greater cognitive load, such as the multi-scrollbar. Regarding the relationship between the supported awareness dimensions and the quality of the collaboration outcome (computer program), the results point to the need to adequately support the <em>What-Artifact</em> dimension, i.e., highlighting in which part of the shared workspace (the source code) the user with floor control is working.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112276"},"PeriodicalIF":3.7,"publicationDate":"2024-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142654933","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Lorenzo Bacchiani , Mario Bravetti , Saverio Giallorenzo , Maurizio Gabbrielli , Gianluigi Zavattaro , Stefano Pio Zingaro
{"title":"Proactive–reactive microservice architecture global scaling","authors":"Lorenzo Bacchiani , Mario Bravetti , Saverio Giallorenzo , Maurizio Gabbrielli , Gianluigi Zavattaro , Stefano Pio Zingaro","doi":"10.1016/j.jss.2024.112262","DOIUrl":"10.1016/j.jss.2024.112262","url":null,"abstract":"<div><div>We develop a novel approach for run-time global adaptation of microservice applications, based on synthesis of architecture-level reconfigurations. More precisely, we devise an algorithm for proactive–reactive automatic scaling that reaches a target system’s Maximum Computational Load by performing optimal deployment orchestrations. We evaluate our approach by developing a platform for the modeling and simulation of microservice architectures, and we use such a platform to compare local/global and reactive/proactive scaling. Empirical benchmarks, obtained through our platform, show that proactive global scaling consistently outperforms the reactive approach, but the best performances can be obtained by our original approach for mixing proactivity and reactivity. In particular, our approach surpasses the state-of-the-art when both performance and resource consumption are considered.</div><div><em>Editor’s note: Open Science material was validated by the Journal of Systems and Software Open Science Board</em>.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112262"},"PeriodicalIF":3.7,"publicationDate":"2024-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142578791","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Syed Ishtiaque Ahmad , Shaiful Chowdhury , Reid Holmes
{"title":"Impact of methodological choices on the analysis of code metrics and maintenance","authors":"Syed Ishtiaque Ahmad , Shaiful Chowdhury , Reid Holmes","doi":"10.1016/j.jss.2024.112263","DOIUrl":"10.1016/j.jss.2024.112263","url":null,"abstract":"<div><div>Many statistical analyses and prediction models rely on past data about how a system evolves to learn and anticipate the number of changes and bugs it will have in the future. As a software engineer or data scientist creates these models, they need to make several methodological choices such as deciding on size measurements, whether size should be controlled, from what time range metrics should be obtained, etc. In this work, we demonstrate how different methodological decisions can cause practitioners to reach conclusions that are significantly and meaningfully different. For example, when measuring SLOC from evolving source code of a method, one could decide to use the initial, median, average, final, or a per-change measure of method size. These decisions matter; for instance, some prior studies observed better performance of code metrics for bug prediction in general, while other studies found negative results when performance was evaluated through a time-based approach. Understanding the impact of these different methodological decisions is especially important given the increasing significance of approaches that use these large datasets for software analysis tasks. This paper can impact both practitioners and researchers by helping them understand which of the methodological choices underpinning their analyses are important, and which are not; this can lead to more consistency among research studies and improved decision-making for deployed analyses.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112263"},"PeriodicalIF":3.7,"publicationDate":"2024-10-30","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142592998","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Reference architectures as boundary objects in the co-engineering of system properties: An empirical study","authors":"Muhammad Rusyadi Ramli, Fredrik Asplund","doi":"10.1016/j.jss.2024.112264","DOIUrl":"10.1016/j.jss.2024.112264","url":null,"abstract":"<div><h3>Context:</h3><div>The complexity of large-scale, software-intensive systems demands collaborative efforts across engineering disciplines to assure that all system properties are correctly implemented. Effective communication and knowledge sharing among the involved engineering are critical for fostering this collaboration. As a result, engineering artifacts, such as reference architectures, play a key role as boundary objects—shared objects used by different communities to reach a mutual understanding.</div></div><div><h3>Objective:</h3><div>This study aimed to understand how engineer should utilize reference architectures as boundary objects, and explored the challenges in using them in the co-engineering of system properties.</div></div><div><h3>Methodology and Methods:</h3><div>Semi-structured interviews were conducted with 10 experts from two engineering disciplines focusing on system properties of particular importance to contemporary large-scale software-intensive systems development. To analyze the data, an abductive thematic analysis approach was used.</div></div><div><h3>Results:</h3><div>Reference architectures can be used as promoters of synergy, change, and learning by the engineers involved in the co-engineering of system properties. However, related challenges with regard to organizational contexts were identified. These findings underscore the need for further investigations into the relationship between the role of reference architectures, power, and organizational theory.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"220 ","pages":"Article 112264"},"PeriodicalIF":3.7,"publicationDate":"2024-10-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"142586088","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}