Yunior Pacheco Correa , Coen De Roover , Johannes Härtel
{"title":"The sampling threat when mining generalizable inter-library usage patterns","authors":"Yunior Pacheco Correa , Coen De Roover , Johannes Härtel","doi":"10.1016/j.scico.2025.103393","DOIUrl":"10.1016/j.scico.2025.103393","url":null,"abstract":"<div><div>Tool support in software engineering often relies on relationships, regularities, patterns, or rules mined from other users’ code. Examples include approaches to bug prediction, code recommendation, and code autocompletion. Mining is typically performed on samples of code rather than the entirety of available software projects. While sampling is crucial for scaling data analysis, it can affect the generalization of the mined patterns.</div><div>This paper focuses on sampling software projects filtered for specific libraries and frameworks, and on mining patterns that connect different libraries. We call these inter-library patterns. We observe that limiting the sample to a specific library may hinder the generalization of inter-library patterns, posing a threat to their use or interpretation. Using a simulation and a real case study, we show this threat for different sampling methods. Our simulation shows that only when sampling for the disjunction of both libraries involved in the implication of a pattern, the implication generalizes well. Additionally, we show that real empirical data sampled using the GitHub search API does not behave as expected from our simulation. This identifies a potential threat relevant for many studies that use the GitHub search API for studying inter-library patterns.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"248 ","pages":"Article 103393"},"PeriodicalIF":1.4,"publicationDate":"2025-09-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145219185","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Analyzing student perceptions and behaviors in the use of an engaging visualization dashboard for peer code review activities","authors":"Hoang-Thanh Duong , Chuan-Lin Huang , Bao-An Nguyen , Hsi-Min Chen","doi":"10.1016/j.scico.2025.103394","DOIUrl":"10.1016/j.scico.2025.103394","url":null,"abstract":"<div><h3>Background and context</h3><div>Traditional learning management systems often fail to sustain student motivation in computer science education, where consistent practice is crucial for skill development. This necessitates specialized tools that better support technical learning processes, foster engagement, and enable timely interventions for struggling students.</div></div><div><h3>Objectives</h3><div>This study introduces and evaluates a dashboard module integrated into peer code review activities within an \"Object-Oriented Design Laboratory\" course. The research analyzes comprehensive peer code review data collected through this dashboard to examine student review behaviors and identify at-risk students through behavioral indicators.</div></div><div><h3>Method</h3><div>A mixed-methods approach compared an experimental group (<em>n</em> = 75) using the assessment dashboard against a control group (<em>n</em> = 78) without dashboard access. Both cohorts received identical instructions over 17 weeks. Data collection included peer code review processes, programming exam results, and student surveys to analyze review behaviors and perceptions of the dashboard.</div></div><div><h3>Findings</h3><div>Students with dashboard access demonstrated significantly improved engagement and self-awareness in the peer code review activity, along with measurable performance gains. Instructors benefited from more efficient monitoring capabilities across peer code review activities.</div></div><div><h3>Implications</h3><div>Dashboard systems enhance metacognitive awareness through self-reflection and interaction monitoring, showing particular promise for programming education. These systems improve learning outcomes and instructional effectiveness by providing visual feedback that helps students track progress and identify improvement areas while giving instructors valuable insights into engagement patterns and learning behaviors.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"249 ","pages":"Article 103394"},"PeriodicalIF":1.4,"publicationDate":"2025-09-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145236532","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Systematicity and generalizability in business process redesign methodologies: A systematic literature review","authors":"George Tsakalidis, Kostas Vergidis","doi":"10.1016/j.scico.2025.103392","DOIUrl":"10.1016/j.scico.2025.103392","url":null,"abstract":"<div><h3>Context</h3><div>Business Process Management (BPM) plays a central role in helping organizations improve efficiency and service delivery, particularly in environments with rising demands and limited resources. Within this field, Business Process Redesign (BPR) has emerged as a way to rethink and restructure processes in response to continuous change. However, many existing BPR methodologies fall short—they lack methodological rigor and are often too narrowly tailored to specific industries or use cases.</div></div><div><h3>Objectives</h3><div>This study explores whether BPR methodologies are both systematically structured and broadly applicable across domains. It addresses three key questions: whether current approaches are methodologically grounded, whether they can be applied across diverse contexts, and what core elements are necessary to support both structure and generalizability in BPR design.</div></div><div><h3>Methods</h3><div>A systematic literature review (SLR) was conducted, applying an eight-step protocol to assess sixty-four primary BPR methodologies drawn from academic databases. Each methodology was evaluated against two sets of criteria: five indicators of systematic design (e.g., defined phases, interdependencies, evaluation checkpoints), and five indicators of generalizability (e.g., cross-domain adaptability, notation flexibility, heuristic support). A concept-centric synthesis was used to analyze the findings.</div></div><div><h3>Results</h3><div>Of the methodologies reviewed, thirty-eight demonstrated systematic features, while only eight met broader applicability standards. Only one methodology satisfied all ten criteria, revealing a notable gap in the field and a need for more balanced, reusable frameworks.</div></div><div><h3>Conclusion</h3><div>The study highlights a significant gap in the current BPR methodologies and presents the BPR Application Framework —a structured yet adaptable methodology that combines phase-based design with heuristic integration and notation-aware modeling. Compared with established references like BPM CBOK and Lean Six Sigma, it offers a clearer, more actionable path for practitioners and researchers seeking both rigor and flexibility in BPR.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"248 ","pages":"Article 103392"},"PeriodicalIF":1.4,"publicationDate":"2025-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145157612","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"PANTHER: Pluginizable testing environment for network protocols","authors":"Christophe Crochet , John Aoga , Axel Legay","doi":"10.1016/j.scico.2025.103389","DOIUrl":"10.1016/j.scico.2025.103389","url":null,"abstract":"<div><div>We propose PANTHER, a modular and extensible framework for automated testing and verification of network protocols. PANTHER lets researchers plug in arbitrary protocol implementations, tester scripts, and network topologies to conduct experiments. Internally, it combines Microsoft’s Ivy tool for formal specification with the Shadow network simulator to handle time-varying behavior and real network conditions with reproducibility. Experiments are configured via simple YAML files and executed in Docker containers, ensuring easy deployment. We demonstrate PANTHER with a case study on the Quick UDP Internet Connections (QUIC) protocol. All code and experiment setups are publicly available for replication.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"248 ","pages":"Article 103389"},"PeriodicalIF":1.4,"publicationDate":"2025-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145219184","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Profit-aware scheduling for time-sensitive applications in heterogeneous multi-server systems","authors":"Rezvan Salimi, Sadoon Azizi, Amir Rastegari","doi":"10.1016/j.scico.2025.103390","DOIUrl":"10.1016/j.scico.2025.103390","url":null,"abstract":"<div><div>The continuous evolution of Cyber-Physical Systems (CPS), particularly those empowered by the Internet of Things (IoT), has led to the generation of massive volumes of data and a growing demand for intelligent, real-time decision-making. Within such systems, efficient software-based task scheduling is vital to ensure timely responsiveness, optimal resource utilization, and sustained Quality of Service (QoS). Heterogeneous multi-server architectures offer a promising platform by enabling parallel processing and adaptive workload distribution. However, the inherent heterogeneity of computational nodes, coupled with the stringent temporal requirements of time-sensitive applications, imposes substantial challenges on software-level scheduling mechanisms. To address these challenges, this paper introduces a profit-aware and adaptive scheduling algorithm specifically designed for CPS environments comprising multiple input queues and heterogeneous servers. The proposed algorithm utilizes a greedy heuristic and a utility-based task modeling approach to dynamically allocate resources in accordance with current system state and task deadlines. Tasks that are completed within their deadline thresholds contribute positively to system profit, whereas delayed tasks incur penalties or are rejected. Extensive simulation experiments demonstrate that the proposed algorithm significantly enhances system responsiveness and improves overall system utility. In comparative evaluations against baseline and well-established scheduling strategies—including Random, Round Robin, MaxWeight, and MaxWeight with Discounted UCB—the proposed method achieves up to 30% reduction in average response time, 31% increase in total profit, and 50% improvement in deadline satisfaction rate. These results highlight the effectiveness of the proposed software-level scheduling approach in enhancing the operational efficiency of CPS in time-sensitive contexts.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"248 ","pages":"Article 103390"},"PeriodicalIF":1.4,"publicationDate":"2025-09-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145095329","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"An overview of research with Slco on seamless integration of formal verification into model-driven software engineering","authors":"Anton Wijs","doi":"10.1016/j.scico.2025.103386","DOIUrl":"10.1016/j.scico.2025.103386","url":null,"abstract":"<div><div>In 2009, the Simple Language of Communicating Objects (<span>Slco</span>) Domain-Specific Language was designed. Since then, a range of tools have been developed around this language to conduct research on a wide range of topics, all related to the construction of complex, component-based software, with formal verification being applied in every development step. This addresses our vision that formal verification should be seamlessly integrated into Model-Driven Software Engineering, to effectively develop correct software. In this article, we present this range of topics, and draw connections between the various, at first glance disparate, research results. We discuss the current status of the <span>Slco</span> framework, i.e., the language in combination with the tools, related work w.r.t. each of the topics, and plans for future work.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"248 ","pages":"Article 103386"},"PeriodicalIF":1.4,"publicationDate":"2025-09-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"145048851","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Ruibang Liu, Minyu Chen, Ling-I Wu, Jingyu Ke, Guoqiang Li
{"title":"Enhancing automated loop invariant generation for complex programs with large language models","authors":"Ruibang Liu, Minyu Chen, Ling-I Wu, Jingyu Ke, Guoqiang Li","doi":"10.1016/j.scico.2025.103387","DOIUrl":"10.1016/j.scico.2025.103387","url":null,"abstract":"<div><div>Automated program verification has always been an important component of building trustworthy software. While the analysis of loops remains a theoretical challenge, the automation of loop invariant analysis has effectively resolved the problem. However, existing invariant generation tools are predominantly effective for programs with purely numerical or purely pointer-based structures. Real-world programs often mix complex data structures and control flows. These structures can include arrays, pointers, and recursive definitions, while control flows may involve multiple nested or concurrent loops. Traditional methods generally only generate invariants for simple numerical programs or specific segments, lacking broad applicability. In order to automatically generate loop invariants for real-world programs, we proposed <em>ACInv</em>, an Automated Complex program loop Invariant generation tool, which combines static analysis with prompting with Large Language Models (LLM) to generate the proper loop invariants. We employ static analysis to systematically decompose the program's data structures and loops. This involves layer-by-layer transmission of structural information about variables, numerical data, and the complete loop structure to the LLM, enabling the generation of corresponding invariants. In comparison to prior work on AutoSpec, we delve deeper into the variable information within each loop. We conducted experiments on ACInv, which showed that ACInv outperformed previous tools on data sets with data structures and maintained similar performance to the state-of-the-art tool AutoSpec on numerical programs without data structures. For the total data set, ACInv can solve 21% more examples than AutoSpec, and can generate reference data structure templates.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"248 ","pages":"Article 103387"},"PeriodicalIF":1.4,"publicationDate":"2025-08-29","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144922168","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Machine learning models for predicting software design effort","authors":"Cuauhtémoc López-Martín","doi":"10.1016/j.scico.2025.103385","DOIUrl":"10.1016/j.scico.2025.103385","url":null,"abstract":"<div><div>Software design is a distinctive activity within the software development life cycle (SDLC). It is typically undertaken by an independent, specialized team, whose budget relies on the required person-hours prediction (i.e., effort). An over-prediction could cause project rejection before starting, whereas an under-prediction may result project cancellation before completion. A common practice for predicting the effort percentage by activity involves calculating it from the total SDLC effort. However, the reported design effort using this method varies widely from 0.62% to 50.35%. Another practice involves using prediction models; however, systematic literature reviews published up to 2025 indicate the absence of models specifically applied for software design effort prediction (SDEP) by existing only models addressing the total SDLC effort. Thus, the present study applies two models to SDEP reported as most accurate in the effort prediction field: support vector regression (SVR), and Multi-layer perceptron (MLP) neural network. Their parameters are optimized through genetic algorithms, and their performance is compared to that of a statistical regression model (SRM). All models were trained on seven data sets selected from an international public repository of software projects used in dozens of studies on software effort prediction. Results show that SVR performed statistically better than SRM in five data sets and equally on the remaining two. MLP outperformed SRM on three data sets and equally on the resting four. Consequently, both MLP and SVR can be used to SDEP.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"248 ","pages":"Article 103385"},"PeriodicalIF":1.4,"publicationDate":"2025-08-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144913043","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Enhancing decision-making for software architects: selecting appropriate architectural patterns based on quality attribute requirements","authors":"Maryam Gholami , Jafar Habibi , Maziar Goudarzi","doi":"10.1016/j.scico.2025.103383","DOIUrl":"10.1016/j.scico.2025.103383","url":null,"abstract":"<div><div>Decision-making in software architecture is complex and requires expertise across domains. A key challenge is balancing software quality attributes. Architectural patterns, as knowledge repositories, offer solutions to recurring design problems. Thus, a structured approach to selecting patterns based on quality requirements is essential.</div><div>This paper presents an approach to improve decision-making in selecting architectural patterns concerning software quality attributes. Our method helps architects choose suitable patterns to achieve desired quality outcomes. For new or evolving systems, it recommends patterns aligned with target attributes, while for existing systems, it suggests improvements to enhance architecture.</div><div>We use Case-Based Reasoning (CBR) to achieve this goal. Eight architectural patterns were selected as cases, and relevant features were identified using the Repertory Grid Technique (RGT), with feature extraction performed by five experts. By computing similarity between RGT vectors and CBR cases, our method predicts the most appropriate pattern. The proposed approach achieves 83 % accuracy, demonstrating its effectiveness.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"248 ","pages":"Article 103383"},"PeriodicalIF":1.4,"publicationDate":"2025-08-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144895138","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Type soundness of functional languages with subtyping in Lang-n-Prove","authors":"Matteo Cimini, Joan Montas","doi":"10.1016/j.scico.2025.103380","DOIUrl":"10.1016/j.scico.2025.103380","url":null,"abstract":"<div><div>Language verification is an important aspect in the cycle of programming language development, especially when such endeavor establishes properties of programming languages with mathematical proofs. Prior work proposed <figure><img></figure>, which is a domain-specific language for expressing language-parameterized proofs, that is, proofs that apply to classes of languages rather than a single language. Such work developed the language-parameterized proofs of type soundness (excluding the substitution lemmas) for a certain class of functional languages. In this paper, we extend that work to include subtyping. We have added new operations to <figure><img></figure> for expressing the proofs that are related to subtyping more naturally. We provide a semantics of our new system based on a compilation into proofs of the Abella proof assistant. Next, we develop language-parameterized proofs of type soundness (excluding the substitution lemmas) for the class of functional languages mentioned above, and of the equivalence between algorithmic and declarative subtyping. Our extended <figure><img></figure> generates Abella proofs that machine-check the type soundness of a nontrivial class of functional languages with declarative and algorithmic subtyping, when just a few simple lemmas are admitted.</div></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"248 ","pages":"Article 103380"},"PeriodicalIF":1.4,"publicationDate":"2025-08-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"144867123","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}