首页 > 最新文献

Science of Computer Programming最新文献

英文 中文
Functional and logic programming: Selected papers of FLOPS 2022 函数和逻辑编程:2022 年 FLOPS 会议论文选
IF 1.5 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-04-12 DOI: 10.1016/j.scico.2024.103129
Michael Hanus, Atsushi Igarashi
{"title":"Functional and logic programming: Selected papers of FLOPS 2022","authors":"Michael Hanus, Atsushi Igarashi","doi":"10.1016/j.scico.2024.103129","DOIUrl":"10.1016/j.scico.2024.103129","url":null,"abstract":"","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"238 ","pages":"Article 103129"},"PeriodicalIF":1.5,"publicationDate":"2024-04-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140797202","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}
引用次数: 0
A pragma based C++ framework for hybrid quantum/classical computation 基于实用程序的量子/经典混合计算 C++ 框架
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-04-10 DOI: 10.1016/j.scico.2024.103119
Arnaud Gazda , Océane Koska

Quantum computers promise exponential speed ups over classical computers for various tasks. This emerging technology is expected to have its first huge impact in High Performance Computing (HPC), as it can solve problems beyond the reach of HPC. To that end, HPC will require quantum accelerators, which will enable applications to run on both classical and quantum devices, via hybrid quantum-classical nodes. Hybrid quantum-HPC applications should be scalable, executable on Quantum Error Corrected (QEC) devices, and could use quantum-classical primitives. However, the lack of scalability, poor performances, and inability to insert classical schemes within quantum applications has prevented current quantum frameworks from being adopted by the HPC community.

This paper specifies the requirements of a hybrid quantum-classical framework compatible with HPC environments, and introduces a novel hardware-agnostic framework called Q-Pragma. This framework extends the classical programming language C++ heavily used in HPC via the addition of pragma directives to manage quantum computations.

量子计算机有望在各种任务中以指数级速度超越传统计算机。这项新兴技术有望首次对高性能计算(HPC)产生巨大影响,因为它可以解决 HPC 无法解决的问题。为此,高性能计算将需要量子加速器,通过量子-经典混合节点,使应用既能在经典设备上运行,也能在量子设备上运行。混合量子高性能计算应用应具有可扩展性,可在量子纠错(QEC)设备上执行,并可使用量子经典基元。然而,由于缺乏可扩展性、性能不佳以及无法在量子应用中插入经典方案,目前的量子框架无法被 HPC 社区采用。本文明确了与 HPC 环境兼容的混合量子-经典框架的要求,并介绍了一种名为 Q-Pragma 的新型硬件无关框架。该框架通过添加pragma指令来管理量子计算,从而扩展了HPC中大量使用的经典编程语言C++。
{"title":"A pragma based C++ framework for hybrid quantum/classical computation","authors":"Arnaud Gazda ,&nbsp;Océane Koska","doi":"10.1016/j.scico.2024.103119","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103119","url":null,"abstract":"<div><p>Quantum computers promise exponential speed ups over classical computers for various tasks. This emerging technology is expected to have its first huge impact in High Performance Computing (HPC), as it can solve problems beyond the reach of HPC. To that end, HPC will require quantum accelerators, which will enable applications to run on both classical and quantum devices, via hybrid quantum-classical nodes. Hybrid quantum-HPC applications should be scalable, executable on Quantum Error Corrected (QEC) devices, and could use quantum-classical primitives. However, the lack of scalability, poor performances, and inability to insert classical schemes within quantum applications has prevented current quantum frameworks from being adopted by the HPC community.</p><p>This paper specifies the requirements of a hybrid quantum-classical framework compatible with HPC environments, and introduces a novel hardware-agnostic framework called Q-Pragma. This framework extends the classical programming language C++ heavily used in HPC via the addition of pragma directives to manage quantum computations.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103119"},"PeriodicalIF":1.3,"publicationDate":"2024-04-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140619358","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}
引用次数: 0
Toolkit for specification, validation and verification of social, legal, ethical, empathetic and cultural requirements for autonomous agents 自主代理的社会、法律、伦理、移情和文化要求的规范、验证和核查工具包
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-04-09 DOI: 10.1016/j.scico.2024.103118
Sinem Getir Yaman, Pedro Ribeiro, Charlie Burholt, Maddie Jones, Ana Cavalcanti, Radu Calinescu

A growing range of applications use AI and other autonomous agents to perform tasks that raise social, legal, ethical, empathetic, and cultural (SLEEC) concerns. To support a framework for the consideration of these concerns, we introduce SLEEC-TK, a toolkit for specification, validation, and verification of SLEEC requirements. SLEEC-TK is an Eclipse-based environment for defining SLEEC rules in a domain-specific language with a timed process algebraic semantics. SLEEC-TK uses model checking to identify redundant and conflicting rules, and to verify conformance of design models with SLEEC rules. We illustrate the use of SLEEC-TK for an assistive-care robot.

越来越多的应用使用人工智能和其他自主代理来执行任务,这些任务会引发社会、法律、伦理、移情和文化(SLEEC)方面的问题。为了支持考虑这些问题的框架,我们引入了 SLEEC-TK,这是一个用于规范、验证和核实 SLEEC 需求的工具包。SLEEC-TK 是一个基于 Eclipse 的环境,可用于在具有定时过程代数语义的特定领域语言中定义 SLEEC 规则。SLEEC-TK 使用模型检查来识别冗余和冲突规则,并验证设计模型与 SLEEC 规则的一致性。我们举例说明了 SLEEC-TK 在辅助护理机器人中的应用。
{"title":"Toolkit for specification, validation and verification of social, legal, ethical, empathetic and cultural requirements for autonomous agents","authors":"Sinem Getir Yaman,&nbsp;Pedro Ribeiro,&nbsp;Charlie Burholt,&nbsp;Maddie Jones,&nbsp;Ana Cavalcanti,&nbsp;Radu Calinescu","doi":"10.1016/j.scico.2024.103118","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103118","url":null,"abstract":"<div><p>A growing range of applications use AI and other autonomous agents to perform tasks that raise social, legal, ethical, empathetic, and cultural (SLEEC) concerns. To support a framework for the consideration of these concerns, we introduce SLEEC-TK, a toolkit for specification, validation, and verification of SLEEC requirements. SLEEC-TK is an Eclipse-based environment for defining SLEEC rules in a domain-specific language with a timed process algebraic semantics. SLEEC-TK uses model checking to identify redundant and conflicting rules, and to verify conformance of design models with SLEEC rules. We illustrate the use of SLEEC-TK for an assistive-care robot.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103118"},"PeriodicalIF":1.3,"publicationDate":"2024-04-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0167642324000418/pdfft?md5=1e0757675f1d24ba2e0aab1f46570401&pid=1-s2.0-S0167642324000418-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140558575","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Toward a novel taxonomy to capture code smells caused by refactoring 采用新型分类法捕捉重构引起的代码气味
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-04-09 DOI: 10.1016/j.scico.2024.103120
Mashail N. Alkhomsan , Mohammad Alshayeb , Malak Baslyman

Code smells tend to have an impact on software quality attributes such as reusability, maintainability, and understandability. These are code flaws that do not necessarily prevent the system from operating; rather, they increase the possibility of defects occurring in the future. Hence, to maintain code quality, code smells should be detected and corrected through refactoring. The objective of this paper is to investigate the associated risk of applying refactoring techniques and reveal the bad smells that may appear when fixing other bad smells. We conducted several controlled experiments to identify the smells that emerge after refactoring. The experiments resulted in a novel taxonomy revealing 9 bad smells that may appear as a result of fixing other bad smells. This represents the first study attempting to systematically identify and organize such refactoring-smell relationships into a taxonomy. The research results can assist developers in relating different bad smells to each other and helping them determine the refactoring technique that should be applied when certain smells are present. Moreover, the results can be beneficial in breaking the cycle of bad smells. Such knowledge tends to enhance code refactoring, which in turn will improve software quality and avoid technical debt.

代码缺陷往往会影响软件质量属性,如可重复性、可维护性和可理解性。这些代码缺陷并不一定会妨碍系统运行,相反,它们会增加将来出现缺陷的可能性。因此,为了保持代码质量,应通过重构来检测和纠正代码缺陷。本文旨在研究应用重构技术的相关风险,并揭示在修复其他不良气味时可能出现的不良气味。我们进行了几项对照实验,以确定重构后出现的异味。实验得出了一种新的分类法,揭示了在修复其他不良气味时可能出现的 9 种不良气味。这是首次尝试系统性地识别和整理此类重构气味关系并将其分类的研究。研究成果可以帮助开发人员将不同的不良气味相互联系起来,并帮助他们确定在出现某些气味时应采用的重构技术。此外,研究成果还有助于打破坏味道的循环。这些知识往往能加强代码重构,进而提高软件质量,避免技术债务。
{"title":"Toward a novel taxonomy to capture code smells caused by refactoring","authors":"Mashail N. Alkhomsan ,&nbsp;Mohammad Alshayeb ,&nbsp;Malak Baslyman","doi":"10.1016/j.scico.2024.103120","DOIUrl":"10.1016/j.scico.2024.103120","url":null,"abstract":"<div><p>Code smells tend to have an impact on software quality attributes such as reusability, maintainability, and understandability. These are code flaws that do not necessarily prevent the system from operating; rather, they increase the possibility of defects occurring in the future. Hence, to maintain code quality, code smells should be detected and corrected through refactoring. The objective of this paper is to investigate the associated risk of applying refactoring techniques and reveal the bad smells that may appear when fixing other bad smells. We conducted several controlled experiments to identify the smells that emerge after refactoring. The experiments resulted in a novel taxonomy revealing 9 bad smells that may appear as a result of fixing other bad smells. This represents the first study attempting to systematically identify and organize such refactoring-smell relationships into a taxonomy. The research results can assist developers in relating different bad smells to each other and helping them determine the refactoring technique that should be applied when certain smells are present. Moreover, the results can be beneficial in breaking the cycle of bad smells. Such knowledge tends to enhance code refactoring, which in turn will improve software quality and avoid technical debt.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103120"},"PeriodicalIF":1.3,"publicationDate":"2024-04-09","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140613276","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}
引用次数: 0
Agile effort estimation in Colombia: An assessment and opportunities for improvement 哥伦比亚的敏捷努力估算:评估与改进机会
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-04-05 DOI: 10.1016/j.scico.2024.103115
Juan Cubillos, Jairo Aponte, Diana Gomez, Edwar Rojas

Effort estimation is fundamental for the development of software projects and critical to their success. The objective of this paper is to understand how Colombian agile practitioners perform effort estimates and to identify opportunities for improvement based on these results. For this purpose, we conducted an exploratory survey study using as instrument an on-line questionnaire answered by agile practitioners with experience in effort estimation. Data was collected from 60 agile practitioners and the main findings are: (1) Agile practitioners prefer non-algorithmic estimation techniques, mainly those based on Expert Judgment. (2) Most of the respondents perceive that their estimates have a medium accuracy level; however, in most cases, no formal analysis of the accuracy level is carried out. (3) The determining effort predictors/cost drivers are characteristics of the project team (size, experience, and skills) and attributes of the software to be built (complexity, type, and domain). (4) The use of datasets for estimation is not common; proprietary datasets predominate and are used for productivity comparisons within the company. (5) Most of the results of related studies are comparable with ours; however, there are significant differences in terms of the roles involved and the techniques used in the effort estimation process. Based on the results and findings of the survey, we identified key opportunities to improve estimation accuracy through (1) software measurement standardization, (2) use of effort datasets, (3) implementation of techniques for measuring accuracy levels, and (4) knowledge management in effort estimation.

努力估算是软件项目开发的基础,也是项目成功的关键。本文旨在了解哥伦比亚敏捷实践者是如何进行努力估算的,并在此基础上找出改进的机会。为此,我们开展了一项探索性调查研究,使用的工具是一份在线问卷,由具有努力估算经验的敏捷实践者回答。我们收集了 60 位敏捷实践者的数据,主要发现有(1) 敏捷实践者更喜欢非算法估算技术,主要是基于专家判断的估算技术。(2) 大多数受访者认为他们的估算具有中等准确度;但在大多数情况下,没有对准确度进行正式分析。(3) 决定工作量的预测因素/成本驱动因素是项目团队的特点(规模、经验和技能)以及要构建的软件的属性(复杂性、类型和领域)。(4) 使用数据集进行估算并不常见;专有数据集占主导地位,用于公司内部的生产率比较。(5) 相关研究的大部分结果与我们的研究结果具有可比性;但是,在工作量估算过程中所涉及的角色和使用的技术方面存在显著差异。根据调查结果和发现,我们确定了通过以下途径提高估算准确性的关键机会:(1) 软件测量标准化;(2) 使用工作量数据集;(3) 实施测量准确性水平的技术;(4) 工作量估算中的知识管理。
{"title":"Agile effort estimation in Colombia: An assessment and opportunities for improvement","authors":"Juan Cubillos,&nbsp;Jairo Aponte,&nbsp;Diana Gomez,&nbsp;Edwar Rojas","doi":"10.1016/j.scico.2024.103115","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103115","url":null,"abstract":"<div><p>Effort estimation is fundamental for the development of software projects and critical to their success. The objective of this paper is to understand how Colombian agile practitioners perform effort estimates and to identify opportunities for improvement based on these results. For this purpose, we conducted an exploratory survey study using as instrument an on-line questionnaire answered by agile practitioners with experience in effort estimation. Data was collected from 60 agile practitioners and the main findings are: (1) Agile practitioners prefer non-algorithmic estimation techniques, mainly those based on Expert Judgment. (2) Most of the respondents perceive that their estimates have a medium accuracy level; however, in most cases, no formal analysis of the accuracy level is carried out. (3) The determining effort predictors/cost drivers are characteristics of the project team (size, experience, and skills) and attributes of the software to be built (complexity, type, and domain). (4) The use of datasets for estimation is not common; proprietary datasets predominate and are used for productivity comparisons within the company. (5) Most of the results of related studies are comparable with ours; however, there are significant differences in terms of the roles involved and the techniques used in the effort estimation process. Based on the results and findings of the survey, we identified key opportunities to improve estimation accuracy through (1) software measurement standardization, (2) use of effort datasets, (3) implementation of techniques for measuring accuracy levels, and (4) knowledge management in effort estimation.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103115"},"PeriodicalIF":1.3,"publicationDate":"2024-04-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0167642324000388/pdfft?md5=0a9a63d8e5cc7906e0bea58e9ee7adc6&pid=1-s2.0-S0167642324000388-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140535893","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Synthesizing LTL contracts from component libraries using rich counterexamples 利用丰富的反例从组件库中合成 LTL 合约
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-04-05 DOI: 10.1016/j.scico.2024.103116
Antonio Iannopollo , Inigo Incer , Alberto L. Sangiovanni-Vincentelli

We provide a method to synthesize an LTL Assume/Guarantee (A/G) specification, or contract, as an interconnection of elements from a library, each of which is also represented by an LTL A/G contract. Our approach, based on counterexample-guided inductive synthesis, leverages an off-the-shelf model checker to reason about infinite-length counterexamples and guarantee correctness. To increase scalability, we also introduce a novel concept of specification decomposition, based on contract projections; we show how it can be used to break down our synthesis problem into several simpler tasks, without reducing the size of the solution space. We test our technique on three industry-relevant case studies.

我们提供了一种方法,将 LTL 假设/保证(A/G)规范或合约合成为库中元素的互连,每个元素也由 LTL A/G 合约表示。我们的方法以反例引导归纳综合为基础,利用现成的模型检查器来推理无限长的反例并保证正确性。为了提高可扩展性,我们还引入了一个基于合约投影的新概念--规范分解;我们展示了如何利用这一概念将我们的综合问题分解为多个更简单的任务,而不会减小求解空间的大小。我们在三个与行业相关的案例研究中测试了我们的技术。
{"title":"Synthesizing LTL contracts from component libraries using rich counterexamples","authors":"Antonio Iannopollo ,&nbsp;Inigo Incer ,&nbsp;Alberto L. Sangiovanni-Vincentelli","doi":"10.1016/j.scico.2024.103116","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103116","url":null,"abstract":"<div><p>We provide a method to synthesize an LTL Assume/Guarantee (A/G) specification, or contract, as an interconnection of elements from a library, each of which is also represented by an LTL A/G contract. Our approach, based on counterexample-guided inductive synthesis, leverages an off-the-shelf model checker to reason about infinite-length counterexamples and guarantee correctness. To increase scalability, we also introduce a novel concept of specification decomposition, based on contract projections; we show how it can be used to break down our synthesis problem into several simpler tasks, without reducing the size of the solution space. We test our technique on three industry-relevant case studies.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103116"},"PeriodicalIF":1.3,"publicationDate":"2024-04-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S016764232400039X/pdfft?md5=045427a44a22a0758d49ce6073f362eb&pid=1-s2.0-S016764232400039X-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140640999","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Evaluating the effectiveness of size-limited execution trace with near-omniscient debugging 评估大小受限的执行跟踪与近乎无知调试的有效性
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-04-05 DOI: 10.1016/j.scico.2024.103117
Kazumasa Shimari , Takashi Ishio , Tetsuya Kanda , Katsuro Inoue

Debugging is an important task to identify the defects in the software. Especially, logging is an important feature of a software system to record runtime information. Detailed logging allows developers to collect run-time information when they cannot use an interactive debugger, such as continuous integration and web application server cases. However, extensive logging leads to larger execution traces because few instructions can be repeated many times. In our previous work, to record detailed program behavior within limited storage space constraints, we proposed near-omniscient debugging, which is a methodology that records and visualizes an execution trace using fixed size buffers for each observed instruction. In this paper, we evaluate the effectiveness of near-omniscient debugging in recording infected states while reducing the size of execution traces. We conduct experiments on the Defects4J dataset and evaluate the effectiveness based on the completeness, trace size and runtime overhead. The result shows that near-omniscient debugging can completely record infected states for nearly 80 percent of bugs (with a buffer size of 1024 events). The size of execution traces can be reduced by a factor of one thousand for large repetitive executions.

调试是发现软件缺陷的一项重要任务。特别是,日志是软件系统记录运行时信息的重要功能。当开发人员无法使用交互式调试器时,详细的日志记录允许他们收集运行时信息,例如持续集成和网络应用程序服务器案例。然而,大量日志记录会导致较大的执行痕迹,因为很少的指令会重复多次。在我们之前的工作中,为了在有限的存储空间限制内记录详细的程序行为,我们提出了近乎无知调试(near-omniscient debugging)的方法,即使用固定大小的缓冲区记录并可视化每个观察到的指令的执行轨迹。在本文中,我们评估了近乎无知调试在记录受感染状态的同时减少执行轨迹大小方面的有效性。我们在 Defects4J 数据集上进行了实验,并根据完整性、跟踪大小和运行时开销评估了效果。结果表明,近乎无知的调试能完整记录近 80% 的错误的感染状态(缓冲区大小为 1024 个事件)。对于大型重复执行,执行跟踪的大小可减少一千倍。
{"title":"Evaluating the effectiveness of size-limited execution trace with near-omniscient debugging","authors":"Kazumasa Shimari ,&nbsp;Takashi Ishio ,&nbsp;Tetsuya Kanda ,&nbsp;Katsuro Inoue","doi":"10.1016/j.scico.2024.103117","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103117","url":null,"abstract":"<div><p>Debugging is an important task to identify the defects in the software. Especially, logging is an important feature of a software system to record runtime information. Detailed logging allows developers to collect run-time information when they cannot use an interactive debugger, such as continuous integration and web application server cases. However, extensive logging leads to larger execution traces because few instructions can be repeated many times. In our previous work, to record detailed program behavior within limited storage space constraints, we proposed near-omniscient debugging, which is a methodology that records and visualizes an execution trace using fixed size buffers for each observed instruction. In this paper, we evaluate the effectiveness of near-omniscient debugging in recording infected states while reducing the size of execution traces. We conduct experiments on the Defects4J dataset and evaluate the effectiveness based on the completeness, trace size and runtime overhead. The result shows that near-omniscient debugging can completely record infected states for nearly 80 percent of bugs (with a buffer size of 1024 events). The size of execution traces can be reduced by a factor of one thousand for large repetitive executions.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103117"},"PeriodicalIF":1.3,"publicationDate":"2024-04-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140544006","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}
引用次数: 0
Out of step: Code clone detection for mobile apps across different language codebases 脱节:跨不同语言代码库的移动应用程序代码克隆检测
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-04-03 DOI: 10.1016/j.scico.2024.103112
Stephannie Jimenez , Gordana Rakić , Silvia Takahashi , Nicolás Cardozo

Clone detection provides insight about replicated fragments in a code base. With the rise of multi-language code bases, new techniques addressing cross-language code clone detection enable the analysis of polyglot systems. Such techniques have not yet been applied to the mobile apps' domain, which are naturally polyglot. Native mobile app developers must synchronize their code base in at least two different programming languages. App synchronization is a difficult and time-consuming maintenance task, as features can rapidly diverge between platforms, and feature identification must be performed manually. The end goal of this work is to provide an analysis framework to reduce the impact of app synchronization. A first step in this direction consists in a structural algorithm for cross-language clone detection, called Out of Step, exploiting the idea behind enriched concrete syntax trees. Such trees are used as a common intermediate representation built from programming languages' grammars, to detect similarities between app code bases. Our technique finds code similarities with over 80% for the evaluation of language features, where Type 1-3 clones are manually injected for the analysis of both single- and cross-language cases for Kotlin and Dart. We validate the feasibility and correctness of our approach through the evaluation of the main language constructs for Kotlin and Dart. To validate the effectiveness we use a first case study detecting clones between 12 sorting algorithms across Kotlin and Dart, identifying clone similarities with a precision between 67% and 95%. Finally, we use a corpus of 144 mobile apps implemented in Kotlin and Dart, correctly identifying code similarities for the full application logic.

克隆检测可以深入了解代码库中的复制片段。随着多语言代码库的兴起,解决跨语言代码克隆检测的新技术使分析多语言系统成为可能。此类技术尚未应用于移动应用程序领域,而移动应用程序天生就是多语言的。本地移动应用程序开发人员必须同步至少两种不同编程语言的代码库。应用程序同步是一项艰巨而耗时的维护任务,因为不同平台之间的功能可能会迅速出现差异,而且功能识别必须手动进行。这项工作的最终目标是提供一个分析框架,以减少应用程序同步的影响。在这个方向上迈出的第一步是利用丰富的具体语法树背后的理念,开发出一种用于跨语言克隆检测的结构性算法,称为 "失步"(Out of Step)。语法树是由编程语言语法构建的通用中间表示法,用于检测应用程序代码库之间的相似性。在评估语言特征时,我们的技术能发现 80% 以上的代码相似性,其中 1-3 类克隆是手动注入的,用于分析 Kotlin 和 Dart 的单语言和跨语言案例。我们通过评估 Kotlin 和 Dart 的主要语言结构验证了我们方法的可行性和正确性。为了验证其有效性,我们使用了第一个案例研究,检测 Kotlin 和 Dart 中 12 种排序算法之间的克隆,识别克隆相似性的精度在 67% 和 95% 之间。最后,我们使用了由 144 个使用 Kotlin 和 Dart 实现的移动应用程序组成的语料库,正确识别了完整应用逻辑的代码相似性。
{"title":"Out of step: Code clone detection for mobile apps across different language codebases","authors":"Stephannie Jimenez ,&nbsp;Gordana Rakić ,&nbsp;Silvia Takahashi ,&nbsp;Nicolás Cardozo","doi":"10.1016/j.scico.2024.103112","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103112","url":null,"abstract":"<div><p>Clone detection provides insight about replicated fragments in a code base. With the rise of multi-language code bases, new techniques addressing cross-language code clone detection enable the analysis of polyglot systems. Such techniques have not yet been applied to the mobile apps' domain, which are naturally polyglot. Native mobile app developers must synchronize their code base in at least two different programming languages. App synchronization is a difficult and time-consuming maintenance task, as features can rapidly diverge between platforms, and feature identification must be performed manually. The end goal of this work is to provide an analysis framework to reduce the impact of app synchronization. A first step in this direction consists in a structural algorithm for cross-language clone detection, called <span>Out of Step</span>, exploiting the idea behind enriched concrete syntax trees. Such trees are used as a common intermediate representation built from programming languages' grammars, to detect similarities between app code bases. Our technique finds code similarities with over 80% for the evaluation of language features, where Type 1-3 clones are manually injected for the analysis of both single- and cross-language cases for Kotlin and Dart. We validate the feasibility and correctness of our approach through the evaluation of the main language constructs for Kotlin and Dart. To validate the effectiveness we use a first case study detecting clones between 12 sorting algorithms across Kotlin and Dart, identifying clone similarities with a precision between 67% and 95%. Finally, we use a corpus of 144 mobile apps implemented in Kotlin and Dart, correctly identifying code similarities for the full application logic.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103112"},"PeriodicalIF":1.3,"publicationDate":"2024-04-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://www.sciencedirect.com/science/article/pii/S0167642324000352/pdfft?md5=9fb4baf02297c135f2162257609c5f70&pid=1-s2.0-S0167642324000352-main.pdf","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140540127","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Local deadlock analysis of Simulink models based on timed behavioural patterns and theorem proving 基于定时行为模式和定理证明的 Simulink 模型局部死锁分析
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-04-03 DOI: 10.1016/j.scico.2024.103113
Joabe Jesus, Augusto Sampaio

Compositional deadlock analysis of process networks is a well-known challenge. We propose a compositional deadlock analysis strategy for timed process networks, more specifically, those obtained from Simulink multi-rate block diagrams. We handle models with both acyclic and cyclic communication graphs. Particularly, the latter naturally happens in Simulink models with feedback, among other kinds of cycles. Since there is no general solution to analyse cyclic models in a compositional way, we explore the use of behavioural patterns that allow the verification to be carried out in a compositional fashion. We represent process networks in tock-CSP, a dialect of CSP that allows modelling time aspects using a special tock event. The verification approach is implemented as a new package in CSP-Prover, a theorem prover for CSP which is itself implemented in Isabelle/HOL. To illustrate the overall approach and, particularly, how it can scale, we consider several variations of an actuation system with increasing complexity. We show that the examples are instances of the client/server and the asynchronous dynamic timed behaviour patterns. These patterns and all verification steps are formalised using CSP-Prover.

流程网络的组合死锁分析是一项众所周知的挑战。我们提出了一种针对定时流程网络的组合死锁分析策略,更确切地说,是针对从 Simulink 多速率框图中获得的流程网络的组合死锁分析策略。我们既能处理非循环通信图,也能处理循环通信图。特别是,后者自然会出现在带反馈的 Simulink 模型中,以及其他类型的循环中。由于目前还没有以组合方式分析循环模型的通用解决方案,因此我们探索使用行为模式,以组合方式进行验证。我们用 tock-CSP 表示流程网络,这是 CSP 的一种方言,允许使用特殊的 tock 事件对时间方面进行建模。验证方法是作为 CSP-Prover 中的一个新软件包实现的,CSP-Prover 是 CSP 的定理证明器,它本身是在 Isabelle/HOL 中实现的。为了说明整个方法,特别是如何扩展,我们考虑了复杂度不断增加的执行系统的几种变体。我们展示了客户端/服务器和异步动态定时行为模式的实例。我们使用 CSP-Prover 对这些模式和所有验证步骤进行了形式化。
{"title":"Local deadlock analysis of Simulink models based on timed behavioural patterns and theorem proving","authors":"Joabe Jesus,&nbsp;Augusto Sampaio","doi":"10.1016/j.scico.2024.103113","DOIUrl":"https://doi.org/10.1016/j.scico.2024.103113","url":null,"abstract":"<div><p>Compositional deadlock analysis of process networks is a well-known challenge. We propose a compositional deadlock analysis strategy for timed process networks, more specifically, those obtained from <span>Simulink</span> multi-rate block diagrams. We handle models with both acyclic and cyclic communication graphs. Particularly, the latter naturally happens in <span>Simulink</span> models with feedback, among other kinds of cycles. Since there is no general solution to analyse cyclic models in a compositional way, we explore the use of behavioural patterns that allow the verification to be carried out in a compositional fashion. We represent process networks in <em><span>tock</span></em>-<em>CSP</em>, a dialect of <em>CSP</em> that allows modelling time aspects using a special tock event. The verification approach is implemented as a new package in <em>CSP</em>-<em>Prover</em>, a theorem prover for <em>CSP</em> which is itself implemented in <em>Isabelle</em>/<em>HOL</em>. To illustrate the overall approach and, particularly, how it can scale, we consider several variations of an actuation system with increasing complexity. We show that the examples are instances of the client/server and the asynchronous dynamic timed behaviour patterns. These patterns and all verification steps are formalised using <em>CSP</em>-<em>Prover</em>.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103113"},"PeriodicalIF":1.3,"publicationDate":"2024-04-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140552585","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}
引用次数: 0
Exploring issues of story-based effort estimation in Agile Software Development (ASD) 探讨敏捷软件开发(ASD)中基于故事的努力估算问题
IF 1.3 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-03-31 DOI: 10.1016/j.scico.2024.103114
Muhammad Iqbal , Muhammad Ijaz , Tehseen Mazhar , Tariq Shahzad , Qamar Abbas , YazeedYasin Ghadi , Wasim Ahmad , Habib Hamam

Context

Effort estimation based on user stories plays a pivotal role in agile software development, where accurate predictions of project efforts are vital for success. While various supervised ML tools attempt to estimate effort, the prevalence of estimation errors presents significant challenges, as evidenced by the CHAOS report by the Standish Group, which highlights incorrect estimations contributing to a substantial percentage of failed agile projects.

Objectives

This research delves into the domain of user story-based effort estimation in agile software development, aiming to explore the issues arising from inaccurate estimations. The primary goal is to uncover these issues comprehensively and propose potential solutions, thus enhancing the efficacy of the user story-based estimation method.

Methods

To achieve the research objectives, a systematic literature review (SLR) is conducted, surveying a wide range of sources to gather insights into issues surrounding user story-based effort estimation. The review encompasses diverse estimation methods, user story attributes, and the array of challenges that can result from inaccurate estimations.

Results

The SLR reveals a spectrum of issues undermining the accuracy of user story-based effort estimation. It identifies internal factors like communication, team expertise, and composition as crucial determinants of estimation reliability. Consistency in user stories, technical complexities, and task engineering practices also emerge as significant contributors to estimation inaccuracies. The study underscores the interconnectedness of these issues, emphasizing the need for a standardized protocol to minimize inaccuracies and enhance estimation precision.

Conclusion

In light of the findings, it becomes evident that addressing the multi-dimensional factors influencing user story-based effort estimation is imperative for successful agile software development. The study underscores the interplay of various aspects, such as team dynamics, task complexity, and requirement engineering, in achieving accurate estimations. By recognizing these challenges and implementing recommended solutions, software development processes can avoid failures and enhance their prospects of success in the agile paradigm.

背景基于用户故事的工作量估算在敏捷软件开发中起着举足轻重的作用,准确预测项目工作量对项目的成功至关重要。虽然各种有监督的 ML 工具都在尝试估算工作量,但估算错误的普遍存在带来了巨大的挑战,Standish Group 的 CHAOS 报告就证明了这一点,该报告强调不正确的估算导致了很大比例的敏捷项目失败。方法为实现研究目标,我们进行了系统的文献综述(SLR),调查了广泛的资料来源,以收集有关基于用户故事的工作量估算问题的见解。综述内容包括各种估算方法、用户故事属性以及估算不准确可能导致的一系列挑战。它指出,沟通、团队专业知识和组成等内部因素是估算可靠性的关键决定因素。用户故事的一致性、技术复杂性和任务工程实践也是造成估算不准确的重要因素。研究强调了这些问题之间的相互关联性,并强调有必要制定标准化协议,以最大限度地减少估算误差并提高估算精度。这项研究强调了团队动力、任务复杂性和需求工程等多方面因素在实现精确估算过程中的相互作用。认识到这些挑战并实施建议的解决方案,软件开发过程就能避免失败,并提高在敏捷范例中取得成功的前景。
{"title":"Exploring issues of story-based effort estimation in Agile Software Development (ASD)","authors":"Muhammad Iqbal ,&nbsp;Muhammad Ijaz ,&nbsp;Tehseen Mazhar ,&nbsp;Tariq Shahzad ,&nbsp;Qamar Abbas ,&nbsp;YazeedYasin Ghadi ,&nbsp;Wasim Ahmad ,&nbsp;Habib Hamam","doi":"10.1016/j.scico.2024.103114","DOIUrl":"10.1016/j.scico.2024.103114","url":null,"abstract":"<div><h3>Context</h3><p>Effort estimation based on user stories plays a pivotal role in agile software development, where accurate predictions of project efforts are vital for success. While various supervised ML tools attempt to estimate effort, the prevalence of estimation errors presents significant challenges, as evidenced by the CHAOS report by the Standish Group, which highlights incorrect estimations contributing to a substantial percentage of failed agile projects.</p></div><div><h3>Objectives</h3><p>This research delves into the domain of user story-based effort estimation in agile software development, aiming to explore the issues arising from inaccurate estimations. The primary goal is to uncover these issues comprehensively and propose potential solutions, thus enhancing the efficacy of the user story-based estimation method.</p></div><div><h3>Methods</h3><p>To achieve the research objectives, a systematic literature review (SLR) is conducted, surveying a wide range of sources to gather insights into issues surrounding user story-based effort estimation. The review encompasses diverse estimation methods, user story attributes, and the array of challenges that can result from inaccurate estimations.</p></div><div><h3>Results</h3><p>The SLR reveals a spectrum of issues undermining the accuracy of user story-based effort estimation. It identifies internal factors like communication, team expertise, and composition as crucial determinants of estimation reliability. Consistency in user stories, technical complexities, and task engineering practices also emerge as significant contributors to estimation inaccuracies. The study underscores the interconnectedness of these issues, emphasizing the need for a standardized protocol to minimize inaccuracies and enhance estimation precision.</p></div><div><h3>Conclusion</h3><p>In light of the findings, it becomes evident that addressing the multi-dimensional factors influencing user story-based effort estimation is imperative for successful agile software development. The study underscores the interplay of various aspects, such as team dynamics, task complexity, and requirement engineering, in achieving accurate estimations. By recognizing these challenges and implementing recommended solutions, software development processes can avoid failures and enhance their prospects of success in the agile paradigm.</p></div>","PeriodicalId":49561,"journal":{"name":"Science of Computer Programming","volume":"236 ","pages":"Article 103114"},"PeriodicalIF":1.3,"publicationDate":"2024-03-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140405240","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}
引用次数: 0
期刊
Science of Computer Programming
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1