Pub Date : 2025-11-10DOI: 10.1016/j.jss.2025.112697
Mohammad Reza Pirayesh, Mohsen Raji, Mohammad Reza Moosavi
Accurate analysis of software applications resiliency to soft errors is crucial for ensuring reliable operation in computing systems, particularly in safety-critical applications where failures can result in significant consequences. Machine Learning (ML) methods have been investigated as effective tools for evaluating software application resiliency. The core idea is to leverage patterns in historical data, system behavior, and dynamic runtime features to build predictive models. However, current approaches often suffer from capturing the intricate structure of source code, leading to models that lack the acceptable accuracy needed for resiliency prediction in software applications. This paper introduces a novel ML-based approach, named SARG, that leverages graph neural networks to predict software resiliency in the presence of soft errors. By incorporating both control flow and data flow graphs, dynamic runtime information, and code sequence signatures, SARG captures the syntactic and semantic features of software applications that are vital for accurate resiliency prediction. Experimental results demonstrate that the proposed approach outperforms existing ML-based approaches, achieving 43 % higher prediction accuracy while being 3x faster. The results show the potential of SARG as an efficient, generalizable, and accurate solution for evaluating software resiliency in the presence of soft errors.
{"title":"SARG: Software application resiliency prediction using graph neural networks","authors":"Mohammad Reza Pirayesh, Mohsen Raji, Mohammad Reza Moosavi","doi":"10.1016/j.jss.2025.112697","DOIUrl":"10.1016/j.jss.2025.112697","url":null,"abstract":"<div><div>Accurate analysis of software applications resiliency to soft errors is crucial for ensuring reliable operation in computing systems, particularly in safety-critical applications where failures can result in significant consequences. Machine Learning (ML) methods have been investigated as effective tools for evaluating software application resiliency. The core idea is to leverage patterns in historical data, system behavior, and dynamic runtime features to build predictive models. However, current approaches often suffer from capturing the intricate structure of source code, leading to models that lack the acceptable accuracy needed for resiliency prediction in software applications. This paper introduces a novel ML-based approach, named SARG, that leverages graph neural networks to predict software resiliency in the presence of soft errors. By incorporating both control flow and data flow graphs, dynamic runtime information, and code sequence signatures, SARG captures the syntactic and semantic features of software applications that are vital for accurate resiliency prediction. Experimental results demonstrate that the proposed approach outperforms existing ML-based approaches, achieving 43 % higher prediction accuracy while being 3x faster. The results show the potential of SARG as an efficient, generalizable, and accurate solution for evaluating software resiliency in the presence of soft errors.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"232 ","pages":"Article 112697"},"PeriodicalIF":4.1,"publicationDate":"2025-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145520687","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}
Context: Digital twins serve as virtual representations of systems, enabling capabilities such as intelligent monitoring, real-time control, decision-making, and predictive analytics. The Asset Administration Shell (AAS) is the pivotal Industry 4.0 standard for digital twin engineering. In parallel, the Systems Modeling Language (SysML) has emerged as a modeling standard for systems engineering, providing a formalized and semantically rich approach to system modeling. SysML v2 is its recent evolution. With its growing adoption, multiple models are expected to be widely available, each capturing different facets of the modeled system by leveraging diverse engineering capabilities offered by various tool ecosystems. Problem: Instead of manually re-creating models for digital twinning, existing system models should be leveraged to relieve repetitive modeling tasks. While SysML v2 and AAS are prominent standards in DT engineering, they lack direct integration, necessitating a dedicated approach for their seamless interoperability. Purpose: This paper presents a practical investigation into the conceptual alignment between the SysML v2 and AAS specifications, with a focus on their structural and behavioral modeling aspects. It proposes an implementable approach for mapping SysML v2 to AAS, enabling the automated generation of AAS models from SysML v2 models. Method: To realize this approach, we employ model-driven engineering techniques leveraging the Eclipse Modeling Framework (EMF) and model transformations based on the Query View Transformation (QVT) language. The proposed model transformation incorporates query mechanisms for extracting structured elements, preserving information and structural integrity, and ensuring static semantic consistency at design-time and seamless integration between the two investigated standards. We develop and validate the model transformation following an iterative test-driven development approach using an existing set of 24 SysML v2 examples, sourced from the official SysML v2 repository. Result: We deliver a QVT-based, EMF-compliant transformation that automatically generates AAS submodel templates from SysML v2 models, preserving structural hierarchies and behavioral semantics via dedicated AAS concepts and their extension. Through an iterative, test-driven development process, we validate metamodel conformance, information preservation, and structural integrity. The current mapping addresses design-time concepts, and the implementation supports forward transformation. All conceptual mappings, QVT scripts, and example artifacts are publicly available in a dedicated repository.
{"title":"From engineering models to digital twins: Generating AAS from SysML v2 models","authors":"Enxhi Ferko , Luca Berardinelli , Alessio Bucaioni , Moris Behnam , Manuel Wimmer","doi":"10.1016/j.jss.2025.112688","DOIUrl":"10.1016/j.jss.2025.112688","url":null,"abstract":"<div><div><strong>Context:</strong> Digital twins serve as virtual representations of systems, enabling capabilities such as intelligent monitoring, real-time control, decision-making, and predictive analytics. The Asset Administration Shell (AAS) is the pivotal Industry 4.0 standard for digital twin engineering. In parallel, the Systems Modeling Language (SysML) has emerged as a modeling standard for systems engineering, providing a formalized and semantically rich approach to system modeling. SysML v2 is its recent evolution. With its growing adoption, multiple models are expected to be widely available, each capturing different facets of the modeled system by leveraging diverse engineering capabilities offered by various tool ecosystems. <strong>Problem:</strong> Instead of manually re-creating models for digital twinning, existing system models should be leveraged to relieve repetitive modeling tasks. While SysML v2 and AAS are prominent standards in DT engineering, they lack direct integration, necessitating a dedicated approach for their seamless interoperability. <strong>Purpose:</strong> This paper presents a practical investigation into the conceptual alignment between the SysML v2 and AAS specifications, with a focus on their structural and behavioral modeling aspects. It proposes an implementable approach for mapping SysML v2 to AAS, enabling the automated generation of AAS models from SysML v2 models. <strong>Method:</strong> To realize this approach, we employ model-driven engineering techniques leveraging the Eclipse Modeling Framework (EMF) and model transformations based on the Query View Transformation (QVT) language. The proposed model transformation incorporates query mechanisms for extracting structured elements, preserving information and structural integrity, and ensuring static semantic consistency at design-time and seamless integration between the two investigated standards. We develop and validate the model transformation following an iterative test-driven development approach using an existing set of 24 SysML v2 examples, sourced from the official SysML v2 repository. <strong>Result:</strong> We deliver a QVT-based, EMF-compliant transformation that automatically generates AAS submodel templates from SysML v2 models, preserving structural hierarchies and behavioral semantics via dedicated AAS concepts and their extension. Through an iterative, test-driven development process, we validate metamodel conformance, information preservation, and structural integrity. The current mapping addresses design-time concepts, and the implementation supports forward transformation. All conceptual mappings, QVT scripts, and example artifacts are publicly available in a dedicated repository.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"233 ","pages":"Article 112688"},"PeriodicalIF":4.1,"publicationDate":"2025-11-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145618392","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}
Pub Date : 2025-11-05DOI: 10.1016/j.jss.2025.112691
Hans-Martin Heyn , Yufei Mao , Roland Weiß , Eric Knauss
Unlike conventional software systems, where rules are explicitly defined to specify the desired behaviour, software components that incorporate machine learning (ML) infer such rules as associations from data. Requirements Engineering (RE) provides methods and tools for specifying the desired behaviour as structured natural language. However, the inherent ambiguity of natural language can make these specifications difficult to interpret. Moreover, it is challenging in RE to establish a clear link between the specified desired behaviour and data requirements necessary for training and validating ML models.
In this paper, we explore the use of causal models to address this gap in RE. Through an exploratory case study, we found that causal models, represented as directed acyclic graphs (DAGs), support the collaborative discovery of an ML system’s operational context from a causal perspective. We also found that causal models can serve as part of the requirements specification for ML models because they encapsulate both data and model requirements needed to achieve the desired causal behaviour. We introduce a concept for causality-driven development, in which we show that data and model requirements, as well as a causal description of the operational context, can be discovered iteratively using graphical causal models. We demonstrate this approach using an industrial use case on anomaly detection with ML.
{"title":"Causal models for specifying requirements in industrial ML-based software: A case study","authors":"Hans-Martin Heyn , Yufei Mao , Roland Weiß , Eric Knauss","doi":"10.1016/j.jss.2025.112691","DOIUrl":"10.1016/j.jss.2025.112691","url":null,"abstract":"<div><div>Unlike conventional software systems, where rules are explicitly defined to specify the desired behaviour, software components that incorporate machine learning (ML) infer such rules as associations from data. Requirements Engineering (RE) provides methods and tools for specifying the desired behaviour as structured natural language. However, the inherent ambiguity of natural language can make these specifications difficult to interpret. Moreover, it is challenging in RE to establish a clear link between the specified desired behaviour and data requirements necessary for training and validating ML models.</div><div>In this paper, we explore the use of causal models to address this gap in RE. Through an exploratory case study, we found that causal models, represented as directed acyclic graphs (DAGs), support the collaborative discovery of an ML system’s operational context from a causal perspective. We also found that causal models can serve as part of the requirements specification for ML models because they encapsulate both data and model requirements needed to achieve the desired causal behaviour. We introduce a concept for <em>causality-driven development</em>, in which we show that data and model requirements, as well as a causal description of the operational context, can be discovered iteratively using graphical causal models. We demonstrate this approach using an industrial use case on anomaly detection with ML.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"232 ","pages":"Article 112691"},"PeriodicalIF":4.1,"publicationDate":"2025-11-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145520688","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}
Pub Date : 2025-11-04DOI: 10.1016/j.jss.2025.112694
Manouchehr Zadahmad Jafarlou, Eugene Syriani
Software developers often collaborate by contributing to different branches in a version control system. However, merging the changes from the different branches often leads to conflicts, and resolving these conflicts is a tedious task. This challenge is exacerbated when the software to merge are domain-specific models, since they follow a graph-like structure rather than linear text. DSMCompare is a tool for comparing domain-specific models, detecting differences, and visualizing conflicts using the concrete syntax of the domain-specific language. In this paper, we enhance DSMCompare with conflict resolution capabilities to reduce the effort of merging model versions. Our evaluation demonstrates that DSMCompare is effective in achieving highly accurate automatic conflict resolution with minimal manual intervention. A user study further validates the tool, revealing a significant decrease in resolution time coupled with higher accuracy and user satisfaction.
{"title":"Domain-specific conflict resolution and model merge","authors":"Manouchehr Zadahmad Jafarlou, Eugene Syriani","doi":"10.1016/j.jss.2025.112694","DOIUrl":"10.1016/j.jss.2025.112694","url":null,"abstract":"<div><div>Software developers often collaborate by contributing to different branches in a version control system. However, merging the changes from the different branches often leads to conflicts, and resolving these conflicts is a tedious task. This challenge is exacerbated when the software to merge are domain-specific models, since they follow a graph-like structure rather than linear text. DSMCompare is a tool for comparing domain-specific models, detecting differences, and visualizing conflicts using the concrete syntax of the domain-specific language. In this paper, we enhance DSMCompare with conflict resolution capabilities to reduce the effort of merging model versions. Our evaluation demonstrates that DSMCompare is effective in achieving highly accurate automatic conflict resolution with minimal manual intervention. A user study further validates the tool, revealing a significant decrease in resolution time coupled with higher accuracy and user satisfaction.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"232 ","pages":"Article 112694"},"PeriodicalIF":4.1,"publicationDate":"2025-11-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145520558","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}
Pub Date : 2025-11-04DOI: 10.1016/j.jss.2025.112695
Jiaxin Wang , Dongying Shi , Shanshan Li , Jiaqi Yan , Yanze Wang , Qian’ang Mao , Ya Liu , Li Zhu , He Zhang
Federated learning (FL) has gained popularity but faces inherent challenges such as privacy, security, and reliability. As a novel framework, blockchain-enabled federated learning (BFL) has emerged, exhibiting promise in utilizing blockchain technology (BT) to enhance FL systems. However, existing research on BFL ignores software architecture concerns, which largely hinders practical deployment in real-world environments. Prior surveys mainly focus on design workflows, causing unsatisfying reusability for adopters. This study conducted a systematic literature review on BFL to examine how patterns from general FL systems are re-architected when integrated with BT. Through rigorous data extraction and synthesis, we eventually formalized 12 architectural patterns unique to the BFL context, including two Participant Management Patterns, two Task Management Patterns, two Model Management Patterns, three Incentive Patterns, two Model Evaluation Patterns, and one Aggregation Pattern. Each pattern is analyzed by its context, problem, forces, solutions, consequences, and known uses. The relationship between data and patterns in BFL systems and the complex dependencies among patterns are explored in detail. We also discuss the specific challenges associated with applying these patterns in real-world development. These architectural patterns can serve as valuable guidance for practitioners and researchers, facilitating the adoption of BFL best practices.
{"title":"Architectural patterns for blockchain-enabled federated learning: A systematic literature review","authors":"Jiaxin Wang , Dongying Shi , Shanshan Li , Jiaqi Yan , Yanze Wang , Qian’ang Mao , Ya Liu , Li Zhu , He Zhang","doi":"10.1016/j.jss.2025.112695","DOIUrl":"10.1016/j.jss.2025.112695","url":null,"abstract":"<div><div>Federated learning (FL) has gained popularity but faces inherent challenges such as privacy, security, and reliability. As a novel framework, blockchain-enabled federated learning (BFL) has emerged, exhibiting promise in utilizing blockchain technology (BT) to enhance FL systems. However, existing research on BFL ignores software architecture concerns, which largely hinders practical deployment in real-world environments. Prior surveys mainly focus on design workflows, causing unsatisfying reusability for adopters. This study conducted a systematic literature review on BFL to examine how patterns from general FL systems are re-architected when integrated with BT. Through rigorous data extraction and synthesis, we eventually formalized 12 architectural patterns unique to the BFL context, including two <em>Participant Management</em> Patterns, two <em>Task Management</em> Patterns, two <em>Model Management</em> Patterns, three <em>Incentive</em> Patterns, two <em>Model Evaluation</em> Patterns, and one <em>Aggregation</em> Pattern. Each pattern is analyzed by its context, problem, forces, solutions, consequences, and known uses. The relationship between data and patterns in BFL systems and the complex dependencies among patterns are explored in detail. We also discuss the specific challenges associated with applying these patterns in real-world development. These architectural patterns can serve as valuable guidance for practitioners and researchers, facilitating the adoption of BFL best practices.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"232 ","pages":"Article 112695"},"PeriodicalIF":4.1,"publicationDate":"2025-11-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145520557","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}
Pub Date : 2025-11-04DOI: 10.1016/j.jss.2025.112683
Antonio Mastropaolo , Pietro Liguori , Gabriele Bavota
{"title":"Editorial of the special issue in the journal of systems and software on reliable and secure large language models for software engineering","authors":"Antonio Mastropaolo , Pietro Liguori , Gabriele Bavota","doi":"10.1016/j.jss.2025.112683","DOIUrl":"10.1016/j.jss.2025.112683","url":null,"abstract":"","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"233 ","pages":"Article 112683"},"PeriodicalIF":4.1,"publicationDate":"2025-11-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145685130","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":"Editorial of the special issue in the journal of systems and software on managing technical debt in software-intensive products and services","authors":"Zadia Codabux , Rodrigo Spinola , Carolyn Seaman , Matthias Galster","doi":"10.1016/j.jss.2025.112687","DOIUrl":"10.1016/j.jss.2025.112687","url":null,"abstract":"","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"233 ","pages":"Article 112687"},"PeriodicalIF":4.1,"publicationDate":"2025-11-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145685131","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}
Pub Date : 2025-11-02DOI: 10.1016/j.jss.2025.112689
Bruno Sotto-Mayor, Roni Stern, Meir Kalech
Finding the root cause of observed software bugs, also referred to as software fault diagnosis, is a challenging problem that often must be solved in order to maintain software reliability. Spectrum-Based Fault Localization (SFL) is a powerful technique for automated software fault diagnosis that leverages execution traces. However, having the exact trace of every executed function is not common in real-world software projects, since tracing incurs significant overhead. Instead, many projects maintain log files to track execution, from which only partial execution traces may be extracted. This raises a key challenge: how can we diagnose fault faults (bugs) correctly given only partial execution traces?One way to do so is to run SFL using only the available partial traces. This approach is very limited, as it ignores all components that are not in the partial trace, which may even include the buggy components we are looking for. To overcome this limitation, we propose to use trace reconstruction techniques to synthetically add components to the given partial traces. These techniques analyze possible execution paths, which are extracted via static code analysis. In this work, we consider three trace reconstruction techniques: Rec-Min, Rec-Max, and Rec-Weighted. Rec-Min adds to the partial traces components present in all possible execution paths. Rec-Max adds to the partial trace components that exists in at least one execution path. Rec-Weighted applies a more refined approach. It assigns likelihood scores to the missing components based on the number of execution paths that pass through them. Then, it adapts SFL to intelligently consider these likelihood scores. Empirical evaluation on 109 faulty versions of 10 projects from the Defects4J dataset demonstrates that using our trace reconstruction techniques significantly enhances fault localization compared to the baseline SFL that only uses the partial traces. In some cases, using Rec-Weighted enabled reducing the wasted effort by 34.4 %.
{"title":"Spectrum-based fault diagnosis with partial traces","authors":"Bruno Sotto-Mayor, Roni Stern, Meir Kalech","doi":"10.1016/j.jss.2025.112689","DOIUrl":"10.1016/j.jss.2025.112689","url":null,"abstract":"<div><div>Finding the root cause of observed software bugs, also referred to as software fault diagnosis, is a challenging problem that often must be solved in order to maintain software reliability. Spectrum-Based Fault Localization (SFL) is a powerful technique for automated software fault diagnosis that leverages execution traces. However, having the exact trace of every executed function is not common in real-world software projects, since tracing incurs significant overhead. Instead, many projects maintain log files to track execution, from which only partial execution traces may be extracted. This raises a key challenge: <em>how can we diagnose fault faults (bugs) correctly given only partial execution traces?</em>One way to do so is to run SFL using only the available partial traces. This approach is very limited, as it ignores all components that are not in the partial trace, which may even include the buggy components we are looking for. To overcome this limitation, we propose to use <em>trace reconstruction</em> techniques to synthetically add components to the given partial traces. These techniques analyze possible execution paths, which are extracted via static code analysis. In this work, we consider three trace reconstruction techniques: Rec-Min, Rec-Max, and Rec-Weighted. Rec-Min adds to the partial traces components present in all possible execution paths. Rec-Max adds to the partial trace components that exists in at least one execution path. Rec-Weighted applies a more refined approach. It assigns likelihood scores to the missing components based on the number of execution paths that pass through them. Then, it adapts SFL to intelligently consider these likelihood scores. Empirical evaluation on <span>109</span> faulty versions of <span>10</span> projects from the Defects4J dataset demonstrates that using our trace reconstruction techniques significantly enhances fault localization compared to the baseline SFL that only uses the partial traces. In some cases, using Rec-Weighted enabled reducing the wasted effort by 34.4 %.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"232 ","pages":"Article 112689"},"PeriodicalIF":4.1,"publicationDate":"2025-11-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145520686","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}
Pub Date : 2025-11-01DOI: 10.1016/j.jss.2025.112655
Ivan Compagnucci , Riccardo Pinciroli , Catia Trubiani
Federated Learning has emerged as a promising paradigm that enables collaborative model training while preserving data privacy, thus contributing to enhance user trust. However, the design of Federated Learning systems requires non-trivial architectural choices to address several challenges, such as system efficiency and learning accuracy. Architectural patterns for Federated Learning systems have been defined in the literature to handle these challenges, but their experimentation is limited. The objective of this paper is to empower software architects in their task of evaluating the design of FL systems while deciding which architectural alternatives are more beneficial in their context of adoption. Our methodology consists of a tool-based approach that embeds the implementation of six architectural patterns defined in the literature. The advantage is that software architects can select design alternatives either in isolation or in a combined fashion, and the subsequent analysis provides the evaluation of some metrics of interest. The experimental results indicate that architectural patterns can enhance system efficiency, although we found a combination of patterns that added overhead and turned to limit its benefit. By quantifying these trade-offs, we aim to support software architects in designing Federated Learning systems by evaluating the benefits and drawbacks of applying architectural patterns.
{"title":"Experimenting Architectural Patterns in Federated Learning Systems","authors":"Ivan Compagnucci , Riccardo Pinciroli , Catia Trubiani","doi":"10.1016/j.jss.2025.112655","DOIUrl":"10.1016/j.jss.2025.112655","url":null,"abstract":"<div><div>Federated Learning has emerged as a promising paradigm that enables collaborative model training while preserving data privacy, thus contributing to enhance user trust. However, the design of Federated Learning systems requires non-trivial architectural choices to address several challenges, such as system efficiency and learning accuracy. Architectural patterns for Federated Learning systems have been defined in the literature to handle these challenges, but their experimentation is limited. The objective of this paper is to empower software architects in their task of evaluating the design of FL systems while deciding which architectural alternatives are more beneficial in their context of adoption. Our methodology consists of a tool-based approach that embeds the implementation of six architectural patterns defined in the literature. The advantage is that software architects can select design alternatives either in isolation or in a combined fashion, and the subsequent analysis provides the evaluation of some metrics of interest. The experimental results indicate that architectural patterns can enhance system efficiency, although we found a combination of patterns that added overhead and turned to limit its benefit. By quantifying these trade-offs, we aim to support software architects in designing Federated Learning systems by evaluating the benefits and drawbacks of applying architectural patterns.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"232 ","pages":"Article 112655"},"PeriodicalIF":4.1,"publicationDate":"2025-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145466803","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}
Pub Date : 2025-11-01DOI: 10.1016/j.jss.2025.112679
Gao Hao , Haytham Hijazi , Júlio Medeiros , João Durães , Chan Tong Lam , Paulo De Carvalho , Henrique Madeira
Despite the widely accepted notion that software metrics like classic McCabe cyclomatic complexity (V(g)) or those provided by tools such as SonarQube (CC Sonar) represent code understandability from the perspective of a typical programmer, the accuracy of these metrics in reflecting perceived code understandability remains uncertain. This paper investigates the complementarity of code complexity metrics using a data-driven approach that incorporates linear and non-linear regression models.
To evaluate the complementarity of code metrics, a controlled experiment was conducted with 35 programmers of varying expertise, who read and comprehended a set of programs with varying levels of complexity. The complexity of the programs was initially measured using established metrics, and the cognitive load (CL) of the programmers was captured through electroencephalography (EEG) while they understood the code. Given the controlled conditions of the experiment (free from interruptions or distractions), the cognitive load measured by EEG accurately indicates the mental effort involved in understanding the code.
The study found that Halstead metrics (Effort and Difficulty) have a higher correlation with EEG-measured cognitive load (Spearman correlation and 0.64, respectively) compared to V(g) () and CC Sonar (). However, no single metric fully captured the complexity perceived by programmers, emphasizing the need for complementary metrics.
The results of combining multiple metrics through data-driven regression models significantly improved predictive accuracy, with Gaussian Process Regression achieving a maximum R² of 0.8742. These findings suggest that bridging the gap between static complexity metrics and the cognitive demands of code comprehension requires a hybrid approach that integrates complementary metrics, offering a more holistic view of code understandability.
{"title":"Complementarity in software code complexity metrics","authors":"Gao Hao , Haytham Hijazi , Júlio Medeiros , João Durães , Chan Tong Lam , Paulo De Carvalho , Henrique Madeira","doi":"10.1016/j.jss.2025.112679","DOIUrl":"10.1016/j.jss.2025.112679","url":null,"abstract":"<div><div>Despite the widely accepted notion that software metrics like classic McCabe cyclomatic complexity (V(g)) or those provided by tools such as SonarQube (CC Sonar) represent code understandability from the perspective of a typical programmer, the accuracy of these metrics in reflecting perceived code understandability remains uncertain. This paper investigates the complementarity of code complexity metrics using a data-driven approach that incorporates linear and non-linear regression models.</div><div>To evaluate the complementarity of code metrics, a controlled experiment was conducted with 35 programmers of varying expertise, who read and comprehended a set of programs with varying levels of complexity. The complexity of the programs was initially measured using established metrics, and the cognitive load (CL) of the programmers was captured through electroencephalography (EEG) while they understood the code. Given the controlled conditions of the experiment (free from interruptions or distractions), the cognitive load measured by EEG accurately indicates the mental effort involved in understanding the code.</div><div>The study found that Halstead metrics (Effort and Difficulty) have a higher correlation with EEG-measured cognitive load (Spearman correlation <span><math><mrow><msub><mi>r</mi><mi>s</mi></msub><mo>=</mo><mn>0.66</mn></mrow></math></span> and 0.64, respectively) compared to V(g) (<span><math><mrow><msub><mi>r</mi><mi>s</mi></msub><mo>=</mo><mn>0.33</mn></mrow></math></span>) and CC Sonar (<span><math><mrow><msub><mi>r</mi><mi>s</mi></msub><mo>=</mo><mn>0.35</mn></mrow></math></span>). However, no single metric fully captured the complexity perceived by programmers, emphasizing the need for complementary metrics.</div><div>The results of combining multiple metrics through data-driven regression models significantly improved predictive accuracy, with Gaussian Process Regression achieving a maximum R² of 0.8742. These findings suggest that bridging the gap between static complexity metrics and the cognitive demands of code comprehension requires a hybrid approach that integrates complementary metrics, offering a more holistic view of code understandability.</div></div>","PeriodicalId":51099,"journal":{"name":"Journal of Systems and Software","volume":"232 ","pages":"Article 112679"},"PeriodicalIF":4.1,"publicationDate":"2025-11-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145466804","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}