Carianne Pretorius, Maryam Razavian, Katrin Eling, Fred Langerak
As society's reliance on software systems escalates over time, so too does the cost of failure of these systems. Meanwhile, the complexity of software systems, as well as of their designs, is also ever-increasing, influenced by the proliferation of new tools and technologies to address intended societal needs. The traditional response to this complexity in software engineering and software architecture has been to apply rationalistic approaches to software design through methods and tools for capturing design rationale and evaluating various design options against a set of criteria. However, research from other fields demonstrates that intuition may also hold benefits for making complex design decisions. All humans, including software designers, use intuition and rationality in varying combinations. The aim of this article is to provide a comprehensive overview of what is known and unknown from existing research regarding the use and performance consequences of using intuition and rationality in software design decision-making. To this end, a systematic literature review has been conducted, with an initial sample of 3909 unique publications and a final sample of 26 primary studies. We present an overview of existing research, based on the literature concerning intuition and rationality use in software design decision-making and propose a research agenda with 14 questions that should encourage researchers to fill identified research gaps. This research agenda emphasizes what should be investigated to be able to develop support for the application of the two cognitive processes in software design decision-making.
{"title":"When rationality meets intuition: A research agenda for software design decision-making","authors":"Carianne Pretorius, Maryam Razavian, Katrin Eling, Fred Langerak","doi":"10.1002/smr.2664","DOIUrl":"10.1002/smr.2664","url":null,"abstract":"<p>As society's reliance on software systems escalates over time, so too does the cost of failure of these systems. Meanwhile, the complexity of software systems, as well as of their designs, is also ever-increasing, influenced by the proliferation of new tools and technologies to address intended societal needs. The traditional response to this complexity in software engineering and software architecture has been to apply rationalistic approaches to software design through methods and tools for capturing design rationale and evaluating various design options against a set of criteria. However, research from other fields demonstrates that intuition may also hold benefits for making complex design decisions. All humans, including software designers, use intuition and rationality in varying combinations. The aim of this article is to provide a comprehensive overview of what is known and unknown from existing research regarding the use and performance consequences of using intuition and rationality in software design decision-making. To this end, a systematic literature review has been conducted, with an initial sample of 3909 unique publications and a final sample of 26 primary studies. We present an overview of existing research, based on the literature concerning intuition and rationality use in software design decision-making and propose a research agenda with 14 questions that should encourage researchers to fill identified research gaps. This research agenda emphasizes what should be investigated to be able to develop support for the application of the two cognitive processes in software design decision-making.</p>","PeriodicalId":48898,"journal":{"name":"Journal of Software-Evolution and Process","volume":"36 9","pages":""},"PeriodicalIF":1.7,"publicationDate":"2024-03-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://onlinelibrary.wiley.com/doi/epdf/10.1002/smr.2664","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140360862","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}
Developers are encouraged to adopt good design practices to maintain good software quality during the system's evolution. However, some modifications and changes to the system could cause code smells and pattern grime, which might incur more maintenance effort. As the presence of both code smells and pattern grime is considered a bad sign and raises a flag at code segments that need more careful examination, a potential connection between them may exist. Therefore, the main objective of this paper is to (1) empirically investigate the potential relationship between the accumulation of pattern grime and the presence of code smells and (2) evaluate the significance of individual code smells when they appear in a specific pattern grime category. To achieve this goal, we performed an empirical study using six-grime metrics and 10 code smells on five Java open-source projects ranging from 217 to 563 classes. Our statistical results indicate that, in general, the growth of grime is more likely to co-occur with code smells using Spearman's correlation and Odd Ratio test. Specifically, there is a strong positive association between the growth of pattern grime at the class level and the presence of Shotgun Surgery smell according to the result of applying the Apriori algorithm, which gives conviction values equal to 1.66. The findings in this paper are helpful for developers and researchers as the presence of pattern grime could be considered a factor in improving the performance of existing smell detection methods. Furthermore, the link between grime and smells can be exploited as a hint for smell distribution in the system.
{"title":"An empirical investigation of the relationship between pattern grime and code smells","authors":"Maha Alharbi, Mohammad Alshayeb","doi":"10.1002/smr.2666","DOIUrl":"10.1002/smr.2666","url":null,"abstract":"<p>Developers are encouraged to adopt good design practices to maintain good software quality during the system's evolution. However, some modifications and changes to the system could cause code smells and pattern grime, which might incur more maintenance effort. As the presence of both code smells and pattern grime is considered a bad sign and raises a flag at code segments that need more careful examination, a potential connection between them may exist. Therefore, the main objective of this paper is to (1) empirically investigate the potential relationship between the accumulation of pattern grime and the presence of code smells and (2) evaluate the significance of individual code smells when they appear in a specific pattern grime category. To achieve this goal, we performed an empirical study using six-grime metrics and 10 code smells on five Java open-source projects ranging from 217 to 563 classes. Our statistical results indicate that, in general, the growth of grime is more likely to co-occur with code smells using Spearman's correlation and Odd Ratio test. Specifically, there is a strong positive association between the growth of pattern grime at the class level and the presence of Shotgun Surgery smell according to the result of applying the Apriori algorithm, which gives conviction values equal to 1.66. The findings in this paper are helpful for developers and researchers as the presence of pattern grime could be considered a factor in improving the performance of existing smell detection methods. Furthermore, the link between grime and smells can be exploited as a hint for smell distribution in the system.</p>","PeriodicalId":48898,"journal":{"name":"Journal of Software-Evolution and Process","volume":"36 9","pages":""},"PeriodicalIF":1.7,"publicationDate":"2024-03-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140196261","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}
As the predominant modern version control system, Git has become an indispensable tool for both commercial and open-source software projects. It substantially improves software development effectiveness and efficiency through its distributed version control system, fostering seamless collaboration among teams and across locations. However, research has found that many developers have doubts about using Git commands, while the official Git documentation is rather scanty, that is, lacking sufficient explanations and examples. To help developers learn and use Git commands, we propose the first approach (Richen) for enriching Git documentation with usage examples and scenarios by leveraging crowd knowledge from Stack Overflow. Richen retrieves Git-related posts from Stack Overflow, extracts relevant Q&A pairs, and selects representative command usages, including usage examples and scenarios, for different Git commands. Experimental results have shown that Richen can extract informative and concise command usages for Git commands. Compared with alternative methods adapted from API usage mining, the command usages obtained by Richen have significant advantages in terms of relevance, readability, and usability. Furthermore, we have shown through an empirical study that the command usages extracted by Richen can better help developers complete Git command-related tasks.
{"title":"Richen: Automated enrichment of Git documentation with usage examples and scenarios","authors":"Chaochao Shen, Wenhua Yang, Haitao Jia, Minxue Pan, Yu Zhou","doi":"10.1002/smr.2662","DOIUrl":"10.1002/smr.2662","url":null,"abstract":"<p>As the predominant modern version control system, Git has become an indispensable tool for both commercial and open-source software projects. It substantially improves software development effectiveness and efficiency through its distributed version control system, fostering seamless collaboration among teams and across locations. However, research has found that many developers have doubts about using Git commands, while the official Git documentation is rather scanty, that is, lacking sufficient explanations and examples. To help developers learn and use Git commands, we propose the first approach (Richen) for enriching Git documentation with usage examples and scenarios by leveraging crowd knowledge from Stack Overflow. Richen retrieves Git-related posts from Stack Overflow, extracts relevant Q&A pairs, and selects representative command usages, including usage examples and scenarios, for different Git commands. Experimental results have shown that Richen can extract informative and concise command usages for Git commands. Compared with alternative methods adapted from API usage mining, the command usages obtained by Richen have significant advantages in terms of relevance, readability, and usability. Furthermore, we have shown through an empirical study that the command usages extracted by Richen can better help developers complete Git command-related tasks.</p>","PeriodicalId":48898,"journal":{"name":"Journal of Software-Evolution and Process","volume":"36 8","pages":""},"PeriodicalIF":1.7,"publicationDate":"2024-03-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140152248","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}
The instanceof pattern matching can improve the code quality and readability by removing the redundant typecasting and simplifying the design in different scenarios. However, existing works do not provide sufficient support for refactoring instanceof pattern matching. This paper first identifies several cases that cannot be well handled by existing IDEs. Based on these observations, we propose a novel approach called ReInstancer to refactor instanceof pattern matching automatically. ReInstancer conducts program analysis for multi-branch statements to obtain pattern variables. After analyzing these patterns, the multi-branch statements are optimized and finally refactored into switch statements or expressions. ReInstancer is evaluated by 20 real-world projects with more than 7,700 instanceof pattern matching. The experimental results demonstrate that a total of 3,558 instanceof expressions and 228 multi-branch statements are refactored within 10.8 s on average for each project. ReInstancer improves the code quality by reducing redundant typecasting, demonstrating its effectiveness.
{"title":"ReInstancer: An automatic refactoring approach for Instanceof pattern matching","authors":"Yang Zhang, Shuai Hong","doi":"10.1002/smr.2661","DOIUrl":"10.1002/smr.2661","url":null,"abstract":"<p>The <i>instanceof</i> pattern matching can improve the code quality and readability by removing the redundant typecasting and simplifying the design in different scenarios. However, existing works do not provide sufficient support for refactoring <i>instanceof</i> pattern matching. This paper first identifies several cases that cannot be well handled by existing IDEs. Based on these observations, we propose a novel approach called <i>ReInstancer</i> to refactor <i>instanceof</i> pattern matching automatically. <i>ReInstancer</i> conducts program analysis for multi-branch statements to obtain pattern variables. After analyzing these patterns, the multi-branch statements are optimized and finally refactored into <i>switch</i> statements or expressions. <i>ReInstancer</i> is evaluated by 20 real-world projects with more than 7,700 <i>instanceof</i> pattern matching. The experimental results demonstrate that a total of 3,558 <i>instanceof</i> expressions and 228 multi-branch statements are refactored within 10.8 s on average for each project. <i>ReInstancer</i> improves the code quality by reducing redundant typecasting, demonstrating its effectiveness.</p>","PeriodicalId":48898,"journal":{"name":"Journal of Software-Evolution and Process","volume":"36 8","pages":""},"PeriodicalIF":1.7,"publicationDate":"2024-03-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140124595","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}
<p>It is with a great pleasure that we, as the Guest Editors, can finally present the Special Issue on “Software Quality for Modern Systems” for the <i>Journal of Software: Evolution and Process</i>.</p><p>Software pervasiveness in modern systems strongly affects both industry and digital society. As a notable recent example, the proliferation of artificial intelligence (AI) technologies is continuously leading to emerging needs and expectations from both software producers and consumers. At the same time, infrastructures, software components, and applications aim to hide their increasing complexity in order to appear more human-centric. However, the potential risk from design errors, poor integration, and time-consuming engineering phases can result in unreliable solutions that can barely meet their intended objectives. In this context, software engineering processes keep demanding for the investigation of novel and further refined approaches to software quality assurance (SQA).</p><p>Software testing automation is a discipline that has produced noteworthy research in the last decades. The search for solutions to automatically test any concept of software is critical, and it encompasses several areas. These include generating test cases, test oracles, and test doubles (e.g., dummies, stubs, mocks, and fakes); defining test selection and prioritization criteria; engineering infrastructures governing; and optimizing the execution of testing sessions locally or remotely in the cloud.</p><p>In this sense, we launched this special issue in order to explore current research methods, empirical evaluations, or industrial case studies involving software test automation for modern software systems such as AI solutions or applications, mobile applications, adaptive systems, or distributed and cloud platforms. Accordingly, we crafted a dedicated call for papers, inviting both the research and industrial communities to submit research papers in test automation focusing on improving various software quality attributes.</p><p>The Special Issue has been originally conceived within the context of the 3rd International Conference on Automation of Software Test (AST 2022). The authors of the best papers accepted at AST 2022 have been invited to submit an extended version of their previous work. In addition, the editors have decided to keep the submissions open for any other contributions aligned with the objectives of the Special Issue.</p><p>The Special Issue attracted the interest of researchers from all over the world: mostly from Europe, but also from Asia, Australia, Middle East, North Africa, and North America. The Special Issue received 7 scientific papers during the submission period between August and December 2022. Among these, 4 submissions were finally accepted for publication, and an article is an extended version of a work presented at AST 2022. In the following, we report a brief resume of the accepted papers, but we also invite the reader to consul
作为特邀编辑,我们非常荣幸地为《软件学报》推出 "现代系统的软件质量 "特刊:现代系统中软件的普遍性对工业和数字社会都产生了重大影响。最近的一个显著例子是,人工智能(AI)技术的普及正不断引发软件生产商和消费者的新需求和新期望。与此同时,基础设施、软件组件和应用程序也在努力掩盖其日益增加的复杂性,以便显得更加以人为本。然而,设计错误、集成不佳和工程阶段耗时所带来的潜在风险可能会导致解决方案不可靠,难以达到预期目标。在这种情况下,软件工程过程需要不断研究新的和进一步完善的软件质量保证(SQA)方法。软件测试自动化是一门学科,在过去几十年中产生了值得关注的研究成果。寻找自动测试任何软件概念的解决方案至关重要,它包括多个领域。这些领域包括生成测试用例、测试谕令和测试替身(例如,假人、存根、模拟和伪造);定义测试选择和优先级标准;工程基础设施管理;以及优化本地或远程云测试会话的执行。从这个意义上说,我们推出本特刊的目的是为了探索当前的研究方法、经验评估或工业案例研究,这些研究涉及现代软件系统的软件测试自动化,如人工智能解决方案或应用程序、移动应用程序、自适应系统或分布式和云平台。因此,我们精心设计了一个专门的论文征集活动,邀请研究界和工业界提交测试自动化方面的研究论文,重点关注改进各种软件质量属性。本特刊最初是在第三届软件测试自动化国际会议(AST 2022)的背景下构思的。AST 2022 会议接受的优秀论文的作者受邀提交其以前工作的扩展版本。此外,编辑们还决定对符合本特刊目标的任何其他投稿保持开放。本特刊吸引了世界各地研究人员的兴趣:主要来自欧洲,也有来自亚洲、澳大利亚、中东、北非和北美的研究人员。在 2022 年 8 月至 12 月的投稿期间,特刊共收到 7 篇科学论文。其中,4 篇最终被接受发表,还有一篇文章是在 AST 2022 上发表的作品的扩展版本。在下文中,我们将简要报告录用论文的简历,同时也邀请读者查阅全部稿件。在论文《了解安卓应用程序构建系统的质量和演进》1 中,刘培等人介绍了挖掘软件仓库研究中关于开源安卓仓库中构建系统使用情况的方法和结果。作者研究了从 7 万多个 AndroZooOpen 项目中选取的 6960 个项目组成的大型数据集。这项研究的结果为研究人员和从业人员提供了一些有趣的经验见解,包括安卓项目最常用的构建系统及其原因;这些项目中的依赖关系通常是如何演变和管理的。这些见解对于了解当今现代软件是如何构建和维护的非常重要:Klein 等人在论文《探索语音用户界面的使用环境:用户体验质量测试的情境依赖性》2 中对语音用户界面(VUI)系统的使用环境进行了全面研究。研究结果为现代应用程序用户界面的设计提供了许多有益的启示,而不局限于传统的命令行和图形界面。在题为 "比较三种网络测试自动化方法的实证研究"(An empirical study to compare three web test automation approaches:在题为 "比较三种网络测试自动化方法的实证研究:基于 NLP、可编程和捕获&重放 "3 中,M. Leotta 等人在网络环境中提出了一种基于 NLP 的测试自动化方法,并进行了一系列案例研究,将所提出的方法与两种传统方法进行了比较。研究结果表明,对于中小型测试套件而言,基于 NLP 的测试自动化方法更具竞争力,而且还能降低总累积成本(以测试用例开发和测试用例演化为衡量标准)。
{"title":"Introduction to the special issue: “Software Quality for Modern Systems”","authors":"Guglielmo De Angelis, Hyunsook Do, Bao N. Nguyen","doi":"10.1002/smr.2663","DOIUrl":"10.1002/smr.2663","url":null,"abstract":"<p>It is with a great pleasure that we, as the Guest Editors, can finally present the Special Issue on “Software Quality for Modern Systems” for the <i>Journal of Software: Evolution and Process</i>.</p><p>Software pervasiveness in modern systems strongly affects both industry and digital society. As a notable recent example, the proliferation of artificial intelligence (AI) technologies is continuously leading to emerging needs and expectations from both software producers and consumers. At the same time, infrastructures, software components, and applications aim to hide their increasing complexity in order to appear more human-centric. However, the potential risk from design errors, poor integration, and time-consuming engineering phases can result in unreliable solutions that can barely meet their intended objectives. In this context, software engineering processes keep demanding for the investigation of novel and further refined approaches to software quality assurance (SQA).</p><p>Software testing automation is a discipline that has produced noteworthy research in the last decades. The search for solutions to automatically test any concept of software is critical, and it encompasses several areas. These include generating test cases, test oracles, and test doubles (e.g., dummies, stubs, mocks, and fakes); defining test selection and prioritization criteria; engineering infrastructures governing; and optimizing the execution of testing sessions locally or remotely in the cloud.</p><p>In this sense, we launched this special issue in order to explore current research methods, empirical evaluations, or industrial case studies involving software test automation for modern software systems such as AI solutions or applications, mobile applications, adaptive systems, or distributed and cloud platforms. Accordingly, we crafted a dedicated call for papers, inviting both the research and industrial communities to submit research papers in test automation focusing on improving various software quality attributes.</p><p>The Special Issue has been originally conceived within the context of the 3rd International Conference on Automation of Software Test (AST 2022). The authors of the best papers accepted at AST 2022 have been invited to submit an extended version of their previous work. In addition, the editors have decided to keep the submissions open for any other contributions aligned with the objectives of the Special Issue.</p><p>The Special Issue attracted the interest of researchers from all over the world: mostly from Europe, but also from Asia, Australia, Middle East, North Africa, and North America. The Special Issue received 7 scientific papers during the submission period between August and December 2022. Among these, 4 submissions were finally accepted for publication, and an article is an extended version of a work presented at AST 2022. In the following, we report a brief resume of the accepted papers, but we also invite the reader to consul","PeriodicalId":48898,"journal":{"name":"Journal of Software-Evolution and Process","volume":"36 8","pages":""},"PeriodicalIF":1.7,"publicationDate":"2024-03-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://onlinelibrary.wiley.com/doi/epdf/10.1002/smr.2663","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140074740","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}
Jie Cai, Qian Cai, Bin Li, Jiale Zhang, Xiaobing Sun
Application programming interface (API) recommendation plays a crucial role in facilitating smart contract development by providing developers with a ranked list of candidate APIs for specific recommendation points. Deep learning-based approaches have shown promising results in this field. However, existing approaches mainly rely on token sequences or abstract syntax trees (ASTs) for learning recommendation point-related features, which may overlook the essential knowledge implied in the relations between or within statements and may include task-irrelevant components during feature learning. To address these limitations, we propose a novel code graph called pruned and augmented AST (pa-AST). Our approach enhances the AST by incorporating additional knowledge derived from the control and data flow relations between and within statements in the smart contract code. Through this augmentation, the pa-AST can better represent the semantic features of the code. Furthermore, we conduct AST pruning to eliminate task-irrelevant components based on the identified flow relations. This step helps mitigate the interference caused by these irrelevant parts during the model feature learning process. Additionally, we extract the API sequence surrounding the recommendation point to provide supplementary knowledge for the model learning. The experimental results demonstrate our proposed approach achieving an average mean reciprocal rank (MRR) of 68.02%, outperforming the baselines' performance. Furthermore, through ablation experiments, we explore the effectiveness of our proposed code representation approach. The results indicate that combining pa-AST with the API sequence yields improved performance compared with using them individually. Moreover, our AST augmentation and pruning techniques significantly contribute to the overall results.
应用编程接口(API)推荐通过为开发人员提供特定推荐点的候选 API 排名列表,在促进智能合约开发方面发挥着至关重要的作用。基于深度学习的方法在这一领域取得了可喜的成果。然而,现有方法主要依靠标记序列或抽象语法树(AST)来学习推荐点相关特征,这可能会忽略语句之间或语句内部关系中隐含的基本知识,并可能在特征学习过程中包含与任务无关的成分。为了解决这些局限性,我们提出了一种名为 "剪枝增强语法树"(pa-AST)的新型代码图。我们的方法通过纳入从智能合约代码中语句之间和语句内部的控制和数据流关系中获得的额外知识来增强 AST。通过这种增强,pa-AST 可以更好地表示代码的语义特征。此外,我们还根据确定的流程关系进行 AST 修剪,以消除与任务无关的组件。这一步骤有助于减轻模型特征学习过程中这些无关部分造成的干扰。此外,我们还提取了推荐点周围的 API 序列,为模型学习提供补充知识。实验结果表明,我们提出的方法实现了 68.02% 的平均倒数等级 (MRR),优于基准性能。此外,通过消融实验,我们探索了我们提出的代码表示方法的有效性。结果表明,将 pa-AST 与 API 序列相结合比单独使用它们性能更高。此外,我们的 AST 增强和剪枝技术也为整体结果做出了重大贡献。
{"title":"Application programming interface recommendation for smart contract using deep learning from augmented code representation","authors":"Jie Cai, Qian Cai, Bin Li, Jiale Zhang, Xiaobing Sun","doi":"10.1002/smr.2658","DOIUrl":"10.1002/smr.2658","url":null,"abstract":"<p>Application programming interface (API) recommendation plays a crucial role in facilitating smart contract development by providing developers with a ranked list of candidate APIs for specific recommendation points. Deep learning-based approaches have shown promising results in this field. However, existing approaches mainly rely on token sequences or abstract syntax trees (ASTs) for learning recommendation point-related features, which may overlook the essential knowledge implied in the relations between or within statements and may include task-irrelevant components during feature learning. To address these limitations, we propose a novel code graph called pruned and augmented AST (pa-AST). Our approach enhances the AST by incorporating additional knowledge derived from the control and data flow relations between and within statements in the smart contract code. Through this augmentation, the pa-AST can better represent the semantic features of the code. Furthermore, we conduct AST pruning to eliminate task-irrelevant components based on the identified flow relations. This step helps mitigate the interference caused by these irrelevant parts during the model feature learning process. Additionally, we extract the API sequence surrounding the recommendation point to provide supplementary knowledge for the model learning. The experimental results demonstrate our proposed approach achieving an average mean reciprocal rank (MRR) of 68.02%, outperforming the baselines' performance. Furthermore, through ablation experiments, we explore the effectiveness of our proposed code representation approach. The results indicate that combining pa-AST with the API sequence yields improved performance compared with using them individually. Moreover, our AST augmentation and pruning techniques significantly contribute to the overall results.</p>","PeriodicalId":48898,"journal":{"name":"Journal of Software-Evolution and Process","volume":"36 8","pages":""},"PeriodicalIF":1.7,"publicationDate":"2024-03-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140026312","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}
The precise evaluation of predicting software development effort is a serious process in software engineering. The underestimates require more time, which seems to be the negotiation of complete efficient design and complete software testing. Thus, this paper devises a novel model for inspecting the effort taken for the design of software. The Mayfly Lion Optimization (MFLion) algorithm is devised, which ensembles the Mayfly Algorithm (MA) with the Lion Optimization Algorithm (LOA) for precise estimation. The deep maxout network (DMN) is adapted wherein the different weights are produced out of which the most suitable is infused considering the MFLion during model training. The optimal features are selected using recursive feature elimination (RFE) wherein the best features are selected and the remaining irrelevant features are eliminated from the list. The proposed MFLion obtained better performance with the smallest mean magnitude of relative error (MMRE) of 5.909 and the smallest root mean square error (RMSE) of 75.505, respectively. Each technique is produced using a separate database generated using the Promise software engineering repository. The outcomes produced from the assessment of the accuracies of models suggested that the MFLion-DMN is a substitute to forecast software effort, which is extensively devised in engineering platforms.
{"title":"MFLion-DMN: Mayfly Lion-optimized deep maxout network for prediction of software development effort","authors":"Swapna R., Niranjan Polala","doi":"10.1002/smr.2659","DOIUrl":"10.1002/smr.2659","url":null,"abstract":"<p>The precise evaluation of predicting software development effort is a serious process in software engineering. The underestimates require more time, which seems to be the negotiation of complete efficient design and complete software testing. Thus, this paper devises a novel model for inspecting the effort taken for the design of software. The Mayfly Lion Optimization (MFLion) algorithm is devised, which ensembles the Mayfly Algorithm (MA) with the Lion Optimization Algorithm (LOA) for precise estimation. The deep maxout network (DMN) is adapted wherein the different weights are produced out of which the most suitable is infused considering the MFLion during model training. The optimal features are selected using recursive feature elimination (RFE) wherein the best features are selected and the remaining irrelevant features are eliminated from the list. The proposed MFLion obtained better performance with the smallest mean magnitude of relative error (MMRE) of 5.909 and the smallest root mean square error (RMSE) of 75.505, respectively. Each technique is produced using a separate database generated using the Promise software engineering repository. The outcomes produced from the assessment of the accuracies of models suggested that the MFLion-DMN is a substitute to forecast software effort, which is extensively devised in engineering platforms.</p>","PeriodicalId":48898,"journal":{"name":"Journal of Software-Evolution and Process","volume":"36 8","pages":""},"PeriodicalIF":1.7,"publicationDate":"2024-02-28","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140007057","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}
Eduardo Sanjurjo, Oscar Pedreira, Félix García, Mario Piattini
DevOps has emerged as a practical approach to the interaction between development and operations. This approach has been extended to the interaction with business functions, generating the term BizDevOps. Although many proposals and tools support BizDevOps from a technical viewpoint, there has been no significant improvement in management aspects, such as evaluating the practices and processes involved in the area. This paper presents two case studies on the assessment of BizDevOps practices using MMBDO (Maturity Model for BizDevOps), a maturity model for BizDevOps based on international ICT standards. The case studies were conducted in two organizations with different profiles: a large multinational ICT company with a unit specialized in providing DevOps to the rest of the company and a small software development company that implements DevOps practices as part of its development system. The evidence we obtained in the case studies supports the adequacy of MMBDO for assessing the maturity of BizDevOps in real companies. Also, the combination of the two case studies supports the adequacy of the model for being used in companies with different sizes and levels of maturity. MMBDO is an adequate proposal for assessing the maturity of BizDevOps in software organizations and a suitable tool for process improvement.
{"title":"Assessing BizDevOps maturity using international standards: Case studies and lessons learned","authors":"Eduardo Sanjurjo, Oscar Pedreira, Félix García, Mario Piattini","doi":"10.1002/smr.2646","DOIUrl":"10.1002/smr.2646","url":null,"abstract":"<p>DevOps has emerged as a practical approach to the interaction between development and operations. This approach has been extended to the interaction with business functions, generating the term BizDevOps. Although many proposals and tools support BizDevOps from a technical viewpoint, there has been no significant improvement in management aspects, such as evaluating the practices and processes involved in the area. This paper presents two case studies on the assessment of BizDevOps practices using MMBDO (Maturity Model for BizDevOps), a maturity model for BizDevOps based on international ICT standards. The case studies were conducted in two organizations with different profiles: a large multinational ICT company with a unit specialized in providing DevOps to the rest of the company and a small software development company that implements DevOps practices as part of its development system. The evidence we obtained in the case studies supports the adequacy of MMBDO for assessing the maturity of BizDevOps in real companies. Also, the combination of the two case studies supports the adequacy of the model for being used in companies with different sizes and levels of maturity. MMBDO is an adequate proposal for assessing the maturity of BizDevOps in software organizations and a suitable tool for process improvement.</p>","PeriodicalId":48898,"journal":{"name":"Journal of Software-Evolution and Process","volume":"36 8","pages":""},"PeriodicalIF":1.7,"publicationDate":"2024-02-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139977747","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}
An automated task for finding the essential buggy files among software projects with the help of a given bug report is termed bug localization. The conventional approaches suffer from the challenges of performing lexical matching. Particularly, the terms utilized for describing the bugs in the bug reports are observed to be irrelevant to the terms used in the source code files. To resolve these problems, we propose an optimized and ensemble deep learning model for software bug localization. These features are reduced by the principle component analysis (PCA). Then, they are selected by the weighted convolutional neural network (CNN) model with the support of the Modified Scatter Probability-based Coyote Optimization Algorithm (MSP-COA). Finally, the optimal features are subjected to the ensemble deep neural network and long short-term memory (DNN-LSTM), with parameter tuning by the MSP-COA. Experimental results show that the proposed approach can achieve higher bug localization accuracy than individual models.
{"title":"Software bug localization based on optimized and ensembled deep learning models","authors":"Waqas Ali, Lili Bo, Xiaobing Sun, Xiaoxue Wu, Aakash Ali, Ying Wei","doi":"10.1002/smr.2654","DOIUrl":"10.1002/smr.2654","url":null,"abstract":"<p>An automated task for finding the essential buggy files among software projects with the help of a given bug report is termed bug localization. The conventional approaches suffer from the challenges of performing lexical matching. Particularly, the terms utilized for describing the bugs in the bug reports are observed to be irrelevant to the terms used in the source code files. To resolve these problems, we propose an optimized and ensemble deep learning model for software bug localization. These features are reduced by the principle component analysis (PCA). Then, they are selected by the weighted convolutional neural network (CNN) model with the support of the Modified Scatter Probability-based Coyote Optimization Algorithm (MSP-COA). Finally, the optimal features are subjected to the ensemble deep neural network and long short-term memory (DNN-LSTM), with parameter tuning by the MSP-COA. Experimental results show that the proposed approach can achieve higher bug localization accuracy than individual models.</p>","PeriodicalId":48898,"journal":{"name":"Journal of Software-Evolution and Process","volume":"36 8","pages":""},"PeriodicalIF":1.7,"publicationDate":"2024-02-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139977670","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}
Software managers constantly look out for methods that ensure cost effective development of good quality software products. An important means of accomplishing this is by allocating more resources to weak classes of a software product, which are prone to changes. Therefore, correct prediction of these change-prone classes is critical. Though various researchers have investigated the performance of several algorithms for identifying them, the search for an optimum classifier still persists. To this end, this study critically investigates the use of six Heterogenous Ensemble Classifiers (HEC) for Software Change Prediction (SCP) by empirically validating datasets obtained from 12 open-source software systems. The results of the study are statistically assessed using three robust performance indicators (AUC, F-measure and Mathew Correlation Coefficient) in two different validation scenarios (within project and cross-project). They indicate the superiority of Average Probability Voting Ensemble, a heterogenous classifier for determining change-proneness in the investigated systems. The average AUC values of software change prediction models developed using this ensemble classifier exhibited an improvement of 3%-9% and 3%-11% respectively when compared with its base learners and homogeneous counter parts. Similar observations were inferred using other investigated performance measures. Furthermore, the evidence obtained from the results suggests that the change in number of base learners or type of meta-learner does not exhibit significant change in the performance of corresponding heterogenous ensemble classifiers.
{"title":"An assessment of heterogenous ensemble classifiers for analyzing change-proneness in open-source software systems","authors":"Megha Khanna, Ankita Bansal","doi":"10.1002/smr.2660","DOIUrl":"10.1002/smr.2660","url":null,"abstract":"<p>Software managers constantly look out for methods that ensure cost effective development of good quality software products. An important means of accomplishing this is by allocating more resources to weak classes of a software product, which are prone to changes. Therefore, correct prediction of these change-prone classes is critical. Though various researchers have investigated the performance of several algorithms for identifying them, the search for an optimum classifier still persists. To this end, this study critically investigates the use of six Heterogenous Ensemble Classifiers (HEC) for Software Change Prediction (SCP) by empirically validating datasets obtained from 12 open-source software systems. The results of the study are statistically assessed using three robust performance indicators (AUC, F-measure and Mathew Correlation Coefficient) in two different validation scenarios (within project and cross-project). They indicate the superiority of Average Probability Voting Ensemble, a heterogenous classifier for determining change-proneness in the investigated systems. The average AUC values of software change prediction models developed using this ensemble classifier exhibited an improvement of 3%-9% and 3%-11% respectively when compared with its base learners and homogeneous counter parts. Similar observations were inferred using other investigated performance measures. Furthermore, the evidence obtained from the results suggests that the change in number of base learners or type of meta-learner does not exhibit significant change in the performance of corresponding heterogenous ensemble classifiers.</p>","PeriodicalId":48898,"journal":{"name":"Journal of Software-Evolution and Process","volume":"36 8","pages":""},"PeriodicalIF":1.7,"publicationDate":"2024-02-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139957043","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}