首页 > 最新文献

2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)最新文献

英文 中文
COBREX: A Tool for Extracting Business Rules from COBOL COBREX:从COBOL中提取业务规则的工具
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00060
Mir Sameed Ali, Nikhil Manjunath, S. Chimalakonda
COBOL (Common Business-Oriented Language) has had a strong presence for the last five decades and is still prevalent in the finance and banking sectors and other organizations. The systems which were earlier written in COBOL have now become legacy systems. Therefore, it has become essential to maintain and migrate these legacy COBOL systems. These legacy systems on which companies rely consist of embedded logic to run their business rules and day-to-day operations. Due to ever-changing requirements, these business rules need to be revisited and updated regularly. Understanding the code that enforces the business rules is critical for system evolution. However, this is time-consuming, laborious, and error-prone. Also, the documentation of these systems is sometimes inadequate and may be inconsistent with current organizational policies. Furthermore, the number of current-age developers working on COBOL has been drastically reduced, and they are mainly unfamiliar with legacy systems. To aid this, we propose a tool called COBREX to extract COBOL business rules using a CFG-based approach. The tool’s main aim is to help the researchers and practitioners to understand COBOL source code by extracting and comprehending the business rules. The demo of the tool can be found here - https://youtu.be/3QODmOkISL0 and the details of the tool can be found here -https://rishalab.github.io/COBREXdoc/.
COBOL(面向公共业务的语言)在过去的五十年中占有重要地位,并且在金融和银行部门以及其他组织中仍然很流行。以前用COBOL编写的系统现在已经成为遗留系统。因此,维护和迁移这些遗留COBOL系统变得至关重要。公司所依赖的这些遗留系统由嵌入式逻辑组成,以运行其业务规则和日常操作。由于需求不断变化,需要定期重新访问和更新这些业务规则。理解执行业务规则的代码对于系统发展至关重要。然而,这很耗时、费力且容易出错。此外,这些系统的文件有时是不充分的,可能与目前的组织政策不一致。此外,使用COBOL的当前开发人员的数量已经大大减少,他们主要不熟悉遗留系统。为了帮助实现这一点,我们提出了一个名为COBREX的工具,使用基于cfg的方法提取COBOL业务规则。该工具的主要目的是通过提取和理解业务规则来帮助研究人员和实践者理解COBOL源代码。该工具的演示可以在这里找到- https://youtu.be/3QODmOkISL0,工具的详细信息可以在这里找到-https://rishalab.github.io/COBREXdoc/。
{"title":"COBREX: A Tool for Extracting Business Rules from COBOL","authors":"Mir Sameed Ali, Nikhil Manjunath, S. Chimalakonda","doi":"10.1109/ICSME55016.2022.00060","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00060","url":null,"abstract":"COBOL (Common Business-Oriented Language) has had a strong presence for the last five decades and is still prevalent in the finance and banking sectors and other organizations. The systems which were earlier written in COBOL have now become legacy systems. Therefore, it has become essential to maintain and migrate these legacy COBOL systems. These legacy systems on which companies rely consist of embedded logic to run their business rules and day-to-day operations. Due to ever-changing requirements, these business rules need to be revisited and updated regularly. Understanding the code that enforces the business rules is critical for system evolution. However, this is time-consuming, laborious, and error-prone. Also, the documentation of these systems is sometimes inadequate and may be inconsistent with current organizational policies. Furthermore, the number of current-age developers working on COBOL has been drastically reduced, and they are mainly unfamiliar with legacy systems. To aid this, we propose a tool called COBREX to extract COBOL business rules using a CFG-based approach. The tool’s main aim is to help the researchers and practitioners to understand COBOL source code by extracting and comprehending the business rules. The demo of the tool can be found here - https://youtu.be/3QODmOkISL0 and the details of the tool can be found here -https://rishalab.github.io/COBREXdoc/.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114096206","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Using a Nearest-Neighbour, BERT-Based Approach for Scalable Clone Detection 基于bert的最近邻克隆检测方法
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00080
Muslim Chochlov, Gul Aftab Ahmed, James Patten, Guoxian Lu, Wei Hou, David Gregg, J. Buckley
Code clones can detrimentally impact software maintenance and manually detecting them in very large code-bases is impractical. Additionally, automated approaches find detection of Type 3 and Type 4 (inexact) clones very challenging. While the most recent artificial deep neural networks (for ex-ample BERT-based artificial neural networks) seem to be highly effective in detecting such clones, their pairwise comparison of every code pair in the target system(s) is inefficient and scales poorly on large codebases.We therefore introduce SSCD, a BERT-based clone detection approach that targets high recall of Type 3 and Type 4 clones at scale (in line with our industrial partner’s requirements). It does so by computing a representative embedding for each code fragment and finding similar fragments using a nearest neighbour search. SSCD thus avoids the pairwise-comparison bottleneck of other Neural Network approaches while also using parallel, GPU-accelerated search to tackle scalability.This paper details the approach and an empirical assessment towards configuring and evaluating that approach in industrial setting. The configuration analysis suggests that shorter input lengths and text-only based neural network models demonstrate better efficiency in SSCD, while only slightly decreasing effectiveness. The evaluation results suggest that SSCD is more effective than state-of-the-art approaches like SAGA and SourcererCC. It is also highly efficient: in its optimal setting, SSCD effectively locates clones in the entire 320 million LOC BigCloneBench (a standard clone detection benchmark) in just under three hours.
代码克隆会对软件维护产生不利影响,并且在非常大的代码库中手动检测它们是不切实际的。此外,自动化方法发现3型和4型(不精确)克隆的检测非常具有挑战性。虽然最近的人工深度神经网络(例如基于bert的人工神经网络)在检测此类克隆方面似乎非常有效,但它们对目标系统中的每个代码对进行成对比较的效率很低,并且在大型代码库上的可扩展性很差。因此,我们引入了SSCD,这是一种基于bert的克隆检测方法,针对大规模的3型和4型克隆的高召回(符合我们的工业合作伙伴的要求)。它通过计算每个代码片段的代表性嵌入并使用最近邻搜索找到相似的片段来实现这一目标。因此,SSCD避免了其他神经网络方法的两两比较瓶颈,同时还使用并行的gpu加速搜索来解决可扩展性问题。本文详细介绍了该方法,并对在工业环境中配置和评估该方法进行了实证评估。配置分析表明,较短的输入长度和基于纯文本的神经网络模型在SSCD中显示出更好的效率,而有效性仅略有下降。评价结果表明,SSCD比SAGA和SourcererCC等最先进的方法更有效。它也非常高效:在最佳设置下,SSCD在不到3小时的时间内有效地在整个3.2亿个LOC BigCloneBench(标准克隆检测基准)中定位克隆。
{"title":"Using a Nearest-Neighbour, BERT-Based Approach for Scalable Clone Detection","authors":"Muslim Chochlov, Gul Aftab Ahmed, James Patten, Guoxian Lu, Wei Hou, David Gregg, J. Buckley","doi":"10.1109/ICSME55016.2022.00080","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00080","url":null,"abstract":"Code clones can detrimentally impact software maintenance and manually detecting them in very large code-bases is impractical. Additionally, automated approaches find detection of Type 3 and Type 4 (inexact) clones very challenging. While the most recent artificial deep neural networks (for ex-ample BERT-based artificial neural networks) seem to be highly effective in detecting such clones, their pairwise comparison of every code pair in the target system(s) is inefficient and scales poorly on large codebases.We therefore introduce SSCD, a BERT-based clone detection approach that targets high recall of Type 3 and Type 4 clones at scale (in line with our industrial partner’s requirements). It does so by computing a representative embedding for each code fragment and finding similar fragments using a nearest neighbour search. SSCD thus avoids the pairwise-comparison bottleneck of other Neural Network approaches while also using parallel, GPU-accelerated search to tackle scalability.This paper details the approach and an empirical assessment towards configuring and evaluating that approach in industrial setting. The configuration analysis suggests that shorter input lengths and text-only based neural network models demonstrate better efficiency in SSCD, while only slightly decreasing effectiveness. The evaluation results suggest that SSCD is more effective than state-of-the-art approaches like SAGA and SourcererCC. It is also highly efficient: in its optimal setting, SSCD effectively locates clones in the entire 320 million LOC BigCloneBench (a standard clone detection benchmark) in just under three hours.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"108 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124061824","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Inferring Fine-grained Traceability Links between Javadoc Comment and JUnit Test Code 推断Javadoc注释和JUnit测试代码之间的细粒度可追溯性链接
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00052
Jeewoong Kim, Shin Hong
This work presents DOTELINK, a technique that infers fine-grained traceability links between Javadoc comments and JUnit test code. To resolve the limitation of method-level traceability links, DOTELINK establishes links in sentence-level for Javadoc comments and code region-level for JUnit test methods. DOTELINK first segregates each Javadoc comment into multiple sentences, and each JUnit test method into coherent code snippets. And then, DOTELINK associates a Javadoc sentence with a code snippet if their lexical similarity is high. DOTELINK identifies 62.4% of the true fine-grained traceability links in the experiments with 5 real-world projects. We believe that DOTELINK effectively helps developers utilize the duality of the two sorts of requirement representations to improve test quality.
这项工作展示了DOTELINK,一种推断Javadoc注释和JUnit测试代码之间细粒度可追溯性链接的技术。为了解决方法级可跟踪性链接的限制,DOTELINK为Javadoc注释建立句子级链接,为JUnit测试方法建立代码区域级链接。DOTELINK首先将每个Javadoc注释分离成多个句子,并将每个JUnit测试方法分离成连贯的代码片段。然后,如果Javadoc句子和代码片段的词法相似度很高,DOTELINK将它们关联起来。DOTELINK在5个真实项目的实验中识别了62.4%的真正细粒度可追溯性链接。我们相信DOTELINK有效地帮助开发人员利用两种需求表示的对偶性来提高测试质量。
{"title":"Inferring Fine-grained Traceability Links between Javadoc Comment and JUnit Test Code","authors":"Jeewoong Kim, Shin Hong","doi":"10.1109/ICSME55016.2022.00052","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00052","url":null,"abstract":"This work presents DOTELINK, a technique that infers fine-grained traceability links between Javadoc comments and JUnit test code. To resolve the limitation of method-level traceability links, DOTELINK establishes links in sentence-level for Javadoc comments and code region-level for JUnit test methods. DOTELINK first segregates each Javadoc comment into multiple sentences, and each JUnit test method into coherent code snippets. And then, DOTELINK associates a Javadoc sentence with a code snippet if their lexical similarity is high. DOTELINK identifies 62.4% of the true fine-grained traceability links in the experiments with 5 real-world projects. We believe that DOTELINK effectively helps developers utilize the duality of the two sorts of requirement representations to improve test quality.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"30 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127707939","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Stronger Together: On Combining Relationships in Architectural Recovery Approaches 更强在一起:论建筑恢复方法中的组合关系
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00035
Evelien Boerstra, J. Ahn, J. Rubin
Architecture recovery is the process of obtaining the intended architecture of a software system by analyzing its implementation. Most existing architectural recovery approaches rely on extracting information about relationships between code entities and then use the extracted information to group closely related entities together. The approaches differ by the type of relationships they consider, e.g., method calls, data dependencies, and class name similarity. Prior work shows that combining multiple types of relationships during the recovery process is often beneficial as it leads to a better result than the one obtained by using the relationships individually. Yet, most, if not all, academic and industrial architecture recovery approaches simply unify the combined relationships to produce a more complete representation of the analyzed systems. In this paper, we propose and evaluate an alternative approach to combining information derived from multiple relationships, which is based on identifying agreements/disagreements between relationship types. We discuss advantages and disadvantages of both approaches and provide suggestions for future research in this area.
体系结构恢复是通过分析软件系统的实现,获得软件系统的预期体系结构的过程。大多数现有的体系结构恢复方法依赖于提取代码实体之间关系的信息,然后使用提取的信息将密切相关的实体分组在一起。这些方法的不同之处在于它们所考虑的关系类型,例如,方法调用、数据依赖性和类名相似性。先前的研究表明,在恢复过程中结合多种类型的关系通常是有益的,因为它比单独使用关系获得的结果更好。然而,大多数(如果不是全部的话)学术和工业架构恢复方法只是简单地将组合的关系统一起来,以产生被分析系统的更完整的表示。在本文中,我们提出并评估了一种基于识别关系类型之间的一致/不一致来组合来自多个关系的信息的替代方法。讨论了两种方法的优缺点,并对今后的研究提出了建议。
{"title":"Stronger Together: On Combining Relationships in Architectural Recovery Approaches","authors":"Evelien Boerstra, J. Ahn, J. Rubin","doi":"10.1109/ICSME55016.2022.00035","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00035","url":null,"abstract":"Architecture recovery is the process of obtaining the intended architecture of a software system by analyzing its implementation. Most existing architectural recovery approaches rely on extracting information about relationships between code entities and then use the extracted information to group closely related entities together. The approaches differ by the type of relationships they consider, e.g., method calls, data dependencies, and class name similarity. Prior work shows that combining multiple types of relationships during the recovery process is often beneficial as it leads to a better result than the one obtained by using the relationships individually. Yet, most, if not all, academic and industrial architecture recovery approaches simply unify the combined relationships to produce a more complete representation of the analyzed systems. In this paper, we propose and evaluate an alternative approach to combining information derived from multiple relationships, which is based on identifying agreements/disagreements between relationship types. We discuss advantages and disadvantages of both approaches and provide suggestions for future research in this area.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126598045","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
The Visual Debugger Tool 可视化调试工具
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00066
Tim Kräuter, H. König, Adrian Rutle, Yngve Lamo
Debugging is an essential part of software maintenance and evolution since it allows software developers to analyze program execution step by step. Understanding a program is required to fix potential flaws, alleviate bottlenecks, and implement new desired features. Thus, software developers spend a large percentage of their time validating and debugging software, resulting in high software maintenance and evolution cost. We aim to reduce this cost by providing a novel visual debugging tool to software developers to foster program comprehension during debugging. Our debugging tool visualizes program execution information graphically as an object diagram and is fully integrated into the popular Java development environment IntelliJ IDEA. Moreover, the object diagram allows interactions to explore program execution information in more detail. A demonstration of our tool is available at https://www.youtube.com/watch?v=lU_OgotweRk.
调试是软件维护和发展的重要组成部分,因为它允许软件开发人员一步一步地分析程序执行。了解程序是修复潜在缺陷、缓解瓶颈和实现新特性所必需的。因此,软件开发人员花费了大量的时间来验证和调试软件,导致了很高的软件维护和发展成本。我们的目标是通过为软件开发人员提供一种新颖的可视化调试工具来减少这种成本,从而在调试过程中促进程序的理解。我们的调试工具将程序执行信息可视化为对象图,并完全集成到流行的Java开发环境IntelliJ IDEA中。此外,对象图允许交互更详细地探索程序执行信息。我们的工具的演示可以在https://www.youtube.com/watch?v=lU_OgotweRk上获得。
{"title":"The Visual Debugger Tool","authors":"Tim Kräuter, H. König, Adrian Rutle, Yngve Lamo","doi":"10.1109/ICSME55016.2022.00066","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00066","url":null,"abstract":"Debugging is an essential part of software maintenance and evolution since it allows software developers to analyze program execution step by step. Understanding a program is required to fix potential flaws, alleviate bottlenecks, and implement new desired features. Thus, software developers spend a large percentage of their time validating and debugging software, resulting in high software maintenance and evolution cost. We aim to reduce this cost by providing a novel visual debugging tool to software developers to foster program comprehension during debugging. Our debugging tool visualizes program execution information graphically as an object diagram and is fully integrated into the popular Java development environment IntelliJ IDEA. Moreover, the object diagram allows interactions to explore program execution information in more detail. A demonstration of our tool is available at https://www.youtube.com/watch?v=lU_OgotweRk.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"97 8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127442034","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Selecting Test Cases based on Similarity of Runtime Information: A Case Study of an Industrial Simulator 基于运行时信息相似性的测试用例选择:一个工业模拟器的案例研究
Pub Date : 2022-10-01 DOI: 10.1109/icsme55016.2022.00077
Kazumasa Shimari, Masahiro Tanaka, T. Ishio, M. Matsushita, Katsuro Inoue, Satoru Takanezawa
Regression testing is required to check the changes in behavior whenever developers make any changes to a software system. The cost of regression testing is a major problem because developers have to frequently update dependent components to minimize security risks and potential bugs. In this paper, we report a current practice in a company that maintains an industrial simulator as a critical component of their business. The simulator automatically records all the users’ requests and the simulation results in storage. The feature provides a huge number of test cases for regression testing to developers; however, their time budget for testing is limited (i.e., at most one night). Hence, the developers need to select a small number of test cases to confirm both the simulation result and execution performance are unaffected by an update of a dependent component. In other words, the test cases should achieve high coverage while keeping diversity of execution time. To solve the problem, we have developed a clustering-based method to select test cases, using the similarity of execution traces produced by them. The developers have used the method for a half year; they recognize that the method is better than the previous rule-based method used in the company.
每当开发人员对软件系统进行任何更改时,都需要进行回归测试来检查行为的更改。回归测试的成本是一个主要问题,因为开发人员必须频繁地更新依赖的组件,以最小化安全风险和潜在的错误。在本文中,我们报告了一家公司的当前实践,该公司将工业模拟器作为其业务的关键组件来维护。模拟器自动记录所有用户的请求和模拟结果在存储器中。该特性为开发人员提供了大量的回归测试用例;然而,他们用于测试的时间预算是有限的(例如,最多一个晚上)。因此,开发人员需要选择少量的测试用例来确认模拟结果和执行性能不受依赖组件更新的影响。换句话说,测试用例应该在保持执行时间多样性的同时实现高覆盖率。为了解决这个问题,我们开发了一种基于聚类的方法来选择测试用例,使用它们产生的执行轨迹的相似性。开发人员已经使用这种方法半年了;他们认识到这种方法比公司以前使用的基于规则的方法要好。
{"title":"Selecting Test Cases based on Similarity of Runtime Information: A Case Study of an Industrial Simulator","authors":"Kazumasa Shimari, Masahiro Tanaka, T. Ishio, M. Matsushita, Katsuro Inoue, Satoru Takanezawa","doi":"10.1109/icsme55016.2022.00077","DOIUrl":"https://doi.org/10.1109/icsme55016.2022.00077","url":null,"abstract":"Regression testing is required to check the changes in behavior whenever developers make any changes to a software system. The cost of regression testing is a major problem because developers have to frequently update dependent components to minimize security risks and potential bugs. In this paper, we report a current practice in a company that maintains an industrial simulator as a critical component of their business. The simulator automatically records all the users’ requests and the simulation results in storage. The feature provides a huge number of test cases for regression testing to developers; however, their time budget for testing is limited (i.e., at most one night). Hence, the developers need to select a small number of test cases to confirm both the simulation result and execution performance are unaffected by an update of a dependent component. In other words, the test cases should achieve high coverage while keeping diversity of execution time. To solve the problem, we have developed a clustering-based method to select test cases, using the similarity of execution traces produced by them. The developers have used the method for a half year; they recognize that the method is better than the previous rule-based method used in the company.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132746610","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
A Conceptual Antifragile Microservice Framework for Reshaping Critical Infrastructures 重塑关键基础设施的概念反脆弱微服务框架
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00040
Hind Bangui, Bruno Rossi, Barbora Buhnova
Recently, microservices have been examined as a solution for reshaping and improving the flexibility, scalability, and maintainability of critical infrastructure systems. However, microservice systems are also suffering from the presence of a substantial number of potentially vulnerable components that may threaten the protection of critical infrastructures. To address the problem, this paper proposes to leverage the concept of antifragility built in a framework for building self-learning microservice systems that could be strengthened by faults and threats instead of being deteriorated by them. To illustrate the approach, we instantiate the proposed approach of autonomous machine learning through an experimental evaluation on a benchmarking dataset of microservice faults.
最近,微服务作为重塑和提高关键基础设施系统的灵活性、可扩展性和可维护性的解决方案被研究。然而,微服务系统也受到大量潜在脆弱组件的影响,这些组件可能威胁到关键基础设施的保护。为了解决这个问题,本文建议利用构建自学习微服务系统框架中的反脆弱性概念,该系统可以通过故障和威胁得到加强,而不是被它们恶化。为了说明该方法,我们通过对微服务故障基准数据集的实验评估来实例化所提出的自主机器学习方法。
{"title":"A Conceptual Antifragile Microservice Framework for Reshaping Critical Infrastructures","authors":"Hind Bangui, Bruno Rossi, Barbora Buhnova","doi":"10.1109/ICSME55016.2022.00040","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00040","url":null,"abstract":"Recently, microservices have been examined as a solution for reshaping and improving the flexibility, scalability, and maintainability of critical infrastructure systems. However, microservice systems are also suffering from the presence of a substantial number of potentially vulnerable components that may threaten the protection of critical infrastructures. To address the problem, this paper proposes to leverage the concept of antifragility built in a framework for building self-learning microservice systems that could be strengthened by faults and threats instead of being deteriorated by them. To illustrate the approach, we instantiate the proposed approach of autonomous machine learning through an experimental evaluation on a benchmarking dataset of microservice faults.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"160 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129284641","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Evaluation of Context-Aware Language Models and Experts for Effort Estimation of Software Maintenance Issues 上下文感知语言模型的评估和专家对软件维护问题的工作量评估
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00020
Mohammed Alhamed, Tim Storer
Reflecting upon recent advances in Natural Language Processing (NLP), this paper evaluates the effectiveness of context-aware NLP models for predicting software task effort estimates. Term Frequency–Inverse Document Frequency (TF-IDF) and Bidirectional Encoder Representations from Transformers (BERT) were used as feature extraction methods; Random forest and BERT feed-forward linear neural networks were used as classifiers. Using three datasets drawn from open-source projects and one from a commercial project, the paper evaluates the models and compares the best performing model with expert estimates from both kinds of datasets. The results suggest that BERT as feature extraction and classifier shows slightly better performance than other combinations, but that there is no significant difference between the presented methods. On the other hand, the results show that expert and Machine Learning (ML) estimate performances are similar, with the experts’ performance being slightly better. Both findings confirmed existing literature, but using substantially different experimental settings.
回顾自然语言处理(NLP)的最新进展,本文评估了上下文感知的NLP模型在预测软件任务工作量估计方面的有效性。使用词频-逆文档频率(TF-IDF)和双向编码器表示(BERT)作为特征提取方法;采用随机森林和BERT前馈线性神经网络作为分类器。本文使用来自开源项目的三个数据集和一个来自商业项目的数据集,对模型进行评估,并将表现最佳的模型与来自两种数据集的专家估计进行比较。结果表明,BERT作为特征提取和分类器的性能略好于其他组合,但两种方法之间没有显著差异。另一方面,结果表明专家和机器学习(ML)的估计性能相似,专家的性能略好。这两项发现都证实了现有文献,但采用了截然不同的实验环境。
{"title":"Evaluation of Context-Aware Language Models and Experts for Effort Estimation of Software Maintenance Issues","authors":"Mohammed Alhamed, Tim Storer","doi":"10.1109/ICSME55016.2022.00020","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00020","url":null,"abstract":"Reflecting upon recent advances in Natural Language Processing (NLP), this paper evaluates the effectiveness of context-aware NLP models for predicting software task effort estimates. Term Frequency–Inverse Document Frequency (TF-IDF) and Bidirectional Encoder Representations from Transformers (BERT) were used as feature extraction methods; Random forest and BERT feed-forward linear neural networks were used as classifiers. Using three datasets drawn from open-source projects and one from a commercial project, the paper evaluates the models and compares the best performing model with expert estimates from both kinds of datasets. The results suggest that BERT as feature extraction and classifier shows slightly better performance than other combinations, but that there is no significant difference between the presented methods. On the other hand, the results show that expert and Machine Learning (ML) estimate performances are similar, with the experts’ performance being slightly better. Both findings confirmed existing literature, but using substantially different experimental settings.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"103 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116033744","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
VERJava: Vulnerable Version Identification for Java OSS with a Two-Stage Analysis VERJava:基于两阶段分析的Java OSS漏洞版本识别
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00037
Qing Sun, Lili Xu, Yang Xiao, Feng Li, He Su, Yiming Liu, Hongyun Huang, Wei Huo
The software version information affected by the CVEs (Common Vulnerabilities and Exposures) provided by the National Vulnerability Database (NVD) is not always accurate. This could seriously mislead the repair priority for software users, and greatly hinder the work of security researchers. Bao et al. improved the well-known Sliwerski-Zimmermann-Zeller (SZZ) algorithm for vulnerabilities (called V-SZZ) to precisely refine vulnerable software versions. But V-SZZ only focuses on those CVEs of which patches only have deleted lines.In this study, we target Java Open Source Software (OSS) by virtue of its pervasiveness and ubiquitousness. Due to Java’s object-oriented characteristic, a single security patch often involves modifications of multiple functions. Existing patch code similarity analysis does not consider patch existence from the point of view of an entire patch, which would generate too many false positives for Java CVEs. In this work, we address these limitations by introducing a two-stage approach named VERJava, to systematically assess vulnerable versions for a target vulnerability in Java OSS. Specifically, vulnerable versions are calculated respectively at a function level and an entire patch level, then the results are synthesized to decide the final vulnerable versions. For evaluation, we manually annotated the vulnerable versions of 167 real CVEs from seven popular Java open source projects. The result shows that VERJava achieves the precision of 90.7% on average, significantly outperforming the state-of-the-art work V-SZZ. Furthermore, our study reveals some interesting findings that have not yet been discussed.
NVD (National Vulnerability Database)提供的cve (Common Vulnerabilities and Exposures)漏洞影响的软件版本信息并不总是准确的。这将严重误导软件用户的修复优先级,极大地阻碍了安全研究人员的工作。Bao等人改进了著名的针对漏洞的Sliwerski-Zimmermann-Zeller (SZZ)算法(称为V-SZZ),以精确地提炼出易受攻击的软件版本。但是V-SZZ只关注那些补丁只删除了行的cve。在这项研究中,我们的目标是Java开源软件(OSS),因为它的普遍性和普遍性。由于Java的面向对象特性,单个安全补丁通常涉及对多个函数的修改。现有的补丁代码相似度分析没有从整个补丁的角度考虑补丁的存在,这会为Java cve产生太多的误报。在这项工作中,我们通过引入名为VERJava的两阶段方法来解决这些限制,以系统地评估Java OSS中目标漏洞的易受攻击版本。具体而言,分别在功能级和整个补丁级计算漏洞版本,然后综合计算结果,确定最终的漏洞版本。为了进行评估,我们手工标注了来自七个流行的Java开源项目的167个真实cve的易受攻击版本。结果表明,VERJava的平均精度达到90.7%,明显优于当前最先进的工作V-SZZ。此外,我们的研究还揭示了一些尚未被讨论的有趣发现。
{"title":"VERJava: Vulnerable Version Identification for Java OSS with a Two-Stage Analysis","authors":"Qing Sun, Lili Xu, Yang Xiao, Feng Li, He Su, Yiming Liu, Hongyun Huang, Wei Huo","doi":"10.1109/ICSME55016.2022.00037","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00037","url":null,"abstract":"The software version information affected by the CVEs (Common Vulnerabilities and Exposures) provided by the National Vulnerability Database (NVD) is not always accurate. This could seriously mislead the repair priority for software users, and greatly hinder the work of security researchers. Bao et al. improved the well-known Sliwerski-Zimmermann-Zeller (SZZ) algorithm for vulnerabilities (called V-SZZ) to precisely refine vulnerable software versions. But V-SZZ only focuses on those CVEs of which patches only have deleted lines.In this study, we target Java Open Source Software (OSS) by virtue of its pervasiveness and ubiquitousness. Due to Java’s object-oriented characteristic, a single security patch often involves modifications of multiple functions. Existing patch code similarity analysis does not consider patch existence from the point of view of an entire patch, which would generate too many false positives for Java CVEs. In this work, we address these limitations by introducing a two-stage approach named VERJava, to systematically assess vulnerable versions for a target vulnerability in Java OSS. Specifically, vulnerable versions are calculated respectively at a function level and an entire patch level, then the results are synthesized to decide the final vulnerable versions. For evaluation, we manually annotated the vulnerable versions of 167 real CVEs from seven popular Java open source projects. The result shows that VERJava achieves the precision of 90.7% on average, significantly outperforming the state-of-the-art work V-SZZ. Furthermore, our study reveals some interesting findings that have not yet been discussed.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128629634","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
On the Security of Python Virtual Machines: An Empirical Study 论Python虚拟机的安全性:一个实证研究
Pub Date : 2022-10-01 DOI: 10.1109/ICSME55016.2022.00028
Xinrong Lin, Baojian Hua, Qiliang Fan
Python continues to be one of the most popular programming languages and has been used in many safety-critical fields such as medical treatment, autonomous driving systems, and data science. These fields put forward higher security requirements to Python ecosystems. However, existing studies on machine learning systems in Python concentrate on data security, model security and model privacy, and just assume the underlying Python virtual machines (PVMs) are secure and trustworthy. Unfortunately, whether such an assumption really holds is still unknown.This paper presents, to the best of our knowledge, the first and most comprehensive empirical study on the security of CPython, the official and most deployed Python virtual machine. To this end, we first designed and implemented a software prototype dubbed PVMSCAN, then use it to scan the source code of the latest CPython (version 3.10) and other 10 versions (3.0 to 3.9), which consists of 3,838,606 lines of source code. Empirical results give relevant findings and insights towards the security of Python virtual machines, such as: 1) CPython virtual machines are still vulnerable, for example, PVMSCAN detected 239 vulnerabilities in version 3.10, including 55 null dereferences, 86 uninitialized variables and 98 dead stores; Python/C API-related vulnerabilities are very common and have become one of the most severe threats to the security of PVMs: for example, 70 Python/C API-related vulnerabilities are identified in CPython 3.10; 3) the overall quality of the code remained stable during the evolution of Python VMs with vulnerabilities per thousand line (VPTL) to be 0.50; and 4) automatic vulnerability rectification is effective: 166 out of 239 (69.46%) vulnerabilities can be rectified by a simple yet effective syntax-directed heuristics.We have reported our empirical results to the developers of CPython, and they have acknowledged us and already confirmed and fixed 2 bugs (as of this writing) while others are still being analyzed. This study not only demonstrates the effectiveness of our approach, but also highlights the need to improve the reliability of infrastructures like Python virtual machines by leveraging state-of-the-art security techniques and tools.
Python仍然是最流行的编程语言之一,并已被用于许多安全关键领域,如医疗、自动驾驶系统和数据科学。这些领域对Python生态系统提出了更高的安全性要求。然而,现有的关于Python机器学习系统的研究主要集中在数据安全、模型安全和模型隐私上,并且仅仅假设底层的Python虚拟机(pvm)是安全可信的。不幸的是,这种假设是否真的成立仍然未知。据我们所知,本文首次对CPython(官方和部署最多的Python虚拟机)的安全性进行了最全面的实证研究。为此,我们首先设计并实现了一个名为PVMSCAN的软件原型,然后使用它扫描最新的CPython(3.10版本)和其他10个版本(3.0到3.9)的源代码,共3838606行源代码。实证结果对Python虚拟机的安全性给出了相关的发现和见解,例如:1)CPython虚拟机仍然存在漏洞,例如,PVMSCAN在3.10版本中检测到239个漏洞,包括55个null解引用,86个未初始化变量和98个死存储;Python/C api相关漏洞非常普遍,已经成为pvm安全最严重的威胁之一:例如,在CPython 3.10中识别了70个Python/C api相关漏洞;3)在Python vm的演进过程中,代码的整体质量保持稳定,每千行漏洞数(VPTL)为0.50;4)漏洞自动修正是有效的:239个漏洞中有166个(69.46%)可以通过简单而有效的语法导向启发式修正。我们已经向CPython的开发人员报告了我们的经验结果,他们已经承认了我们,并且已经确认并修复了2个错误(在撰写本文时),而其他错误仍在分析中。这项研究不仅证明了我们方法的有效性,而且还强调了通过利用最先进的安全技术和工具来提高基础设施(如Python虚拟机)可靠性的必要性。
{"title":"On the Security of Python Virtual Machines: An Empirical Study","authors":"Xinrong Lin, Baojian Hua, Qiliang Fan","doi":"10.1109/ICSME55016.2022.00028","DOIUrl":"https://doi.org/10.1109/ICSME55016.2022.00028","url":null,"abstract":"Python continues to be one of the most popular programming languages and has been used in many safety-critical fields such as medical treatment, autonomous driving systems, and data science. These fields put forward higher security requirements to Python ecosystems. However, existing studies on machine learning systems in Python concentrate on data security, model security and model privacy, and just assume the underlying Python virtual machines (PVMs) are secure and trustworthy. Unfortunately, whether such an assumption really holds is still unknown.This paper presents, to the best of our knowledge, the first and most comprehensive empirical study on the security of CPython, the official and most deployed Python virtual machine. To this end, we first designed and implemented a software prototype dubbed PVMSCAN, then use it to scan the source code of the latest CPython (version 3.10) and other 10 versions (3.0 to 3.9), which consists of 3,838,606 lines of source code. Empirical results give relevant findings and insights towards the security of Python virtual machines, such as: 1) CPython virtual machines are still vulnerable, for example, PVMSCAN detected 239 vulnerabilities in version 3.10, including 55 null dereferences, 86 uninitialized variables and 98 dead stores; Python/C API-related vulnerabilities are very common and have become one of the most severe threats to the security of PVMs: for example, 70 Python/C API-related vulnerabilities are identified in CPython 3.10; 3) the overall quality of the code remained stable during the evolution of Python VMs with vulnerabilities per thousand line (VPTL) to be 0.50; and 4) automatic vulnerability rectification is effective: 166 out of 239 (69.46%) vulnerabilities can be rectified by a simple yet effective syntax-directed heuristics.We have reported our empirical results to the developers of CPython, and they have acknowledged us and already confirmed and fixed 2 bugs (as of this writing) while others are still being analyzed. This study not only demonstrates the effectiveness of our approach, but also highlights the need to improve the reliability of infrastructures like Python virtual machines by leveraging state-of-the-art security techniques and tools.","PeriodicalId":300084,"journal":{"name":"2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"69 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114254224","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
2022 IEEE International Conference on Software Maintenance and Evolution (ICSME)
全部 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