首页 > 最新文献

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

英文 中文
Lib Metamorphosis: A Performance Analysis Framework for Exchanging Data Structures in Performance Sensitive Applications Lib Metamorphosis:在性能敏感应用程序中交换数据结构的性能分析框架
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00063
Michael D. Shah
When software does not meet performance requirements, difficult decisions are made to change central data structures which may be costly financially and increase development time. In addition, monitoring how these data structures are used, and trying to understand performance implications of any change may prevent any evolution of the original infrastructure. Thus, radical revisions to software may be avoided due to the barriers of time and engineering complexity costs. Our solution to helping developers make infrastructure changes to improve performance is to provide a refactoring tool where developers may swap data structures. Our tool preserves correctness by utilizing the software's test suite and also measures performance automatically of the swapped data structure. We believe there is need for such a tool to help encourage more radical revisions and experimentation in large software projects to improve performance. Our frameworks success will be evaluated based on preserving the correctness of the software within a developer created test suite while providing performance information based on modified data structures.
当软件不能满足性能要求时,更改中心数据结构的决定就会变得困难,这可能会带来高昂的财务成本,并增加开发时间。此外,监视这些数据结构的使用方式,并试图了解任何更改的性能影响,可能会阻止原始基础设施的任何发展。因此,由于时间和工程复杂性成本的障碍,可以避免对软件进行彻底的修改。我们帮助开发人员更改基础设施以提高性能的解决方案是提供一个重构工具,开发人员可以在其中交换数据结构。我们的工具通过使用软件的测试套件来保持正确性,并且还自动测量交换数据结构的性能。我们相信需要这样的工具来帮助鼓励在大型软件项目中进行更激进的修订和实验,以提高性能。我们的框架的成功将基于在开发人员创建的测试套件中保留软件的正确性来评估,同时提供基于修改数据结构的性能信息。
{"title":"Lib Metamorphosis: A Performance Analysis Framework for Exchanging Data Structures in Performance Sensitive Applications","authors":"Michael D. Shah","doi":"10.1109/ICSME.2019.00063","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00063","url":null,"abstract":"When software does not meet performance requirements, difficult decisions are made to change central data structures which may be costly financially and increase development time. In addition, monitoring how these data structures are used, and trying to understand performance implications of any change may prevent any evolution of the original infrastructure. Thus, radical revisions to software may be avoided due to the barriers of time and engineering complexity costs. Our solution to helping developers make infrastructure changes to improve performance is to provide a refactoring tool where developers may swap data structures. Our tool preserves correctness by utilizing the software's test suite and also measures performance automatically of the swapped data structure. We believe there is need for such a tool to help encourage more radical revisions and experimentation in large software projects to improve performance. Our frameworks success will be evaluated based on preserving the correctness of the software within a developer created test suite while providing performance information based on modified data structures.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127223374","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
SmartEmbed: A Tool for Clone and Bug Detection in Smart Contracts through Structural Code Embedding SmartEmbed:通过结构代码嵌入在智能合约中进行克隆和错误检测的工具
Pub Date : 2019-08-22 DOI: 10.1109/ICSME.2019.00067
Zhipeng Gao, Vinoj Jayasundara, Lingxiao Jiang, Xin Xia, D. Lo, J. Grundy
Ethereum has become a widely used platform to enable secure, Blockchain-based financial and business transactions. However, a major concern in Ethereum is the security of its smart contracts. Many identified bugs and vulnerabilities in smart contracts not only present challenges to the maintenance of blockchain, but also lead to serious financial loses. There is a significant need to better assist developers in checking smart contracts and ensuring their reliability. In this paper, we propose a web service tool, named SmartEmbed, which can help Solidity developers to find repetitive contract code and clone-related bugs in smart contracts. Our tool is based on code embeddings and similarity checking techniques. By comparing the similarities among the code embedding vectors for existing solidity code in the Ethereum blockchain and known bugs, we are able to efficiently identify code clones and clone-related bugs for any solidity code given by users, which can help to improve the users' confidence in the reliability of their code. In addition to the uses by individual developers, SmartEmbed can also be applied to studies of smart contracts in a large scale. When applied to more than 22K solidity contracts collected from the Ethereum blockchain, we found that the clone ratio of solidity code is close to 90%, much higher than traditional software, and 194 clone-related bugs can be identified efficiently and accurately based on our small bug database with a precision of 96%.
以太坊已经成为一个广泛使用的平台,可以实现安全的、基于区块链的金融和商业交易。然而,以太坊的一个主要问题是其智能合约的安全性。智能合约中许多已发现的bug和漏洞不仅给区块链的维护带来了挑战,而且还会导致严重的财务损失。有必要更好地帮助开发人员检查智能合约并确保其可靠性。在本文中,我们提出了一个名为SmartEmbed的web服务工具,它可以帮助Solidity开发人员在智能合约中找到重复的合约代码和与克隆相关的错误。我们的工具基于代码嵌入和相似性检查技术。通过比较以太坊区块链中现有稳固性代码的代码嵌入向量与已知bug的相似性,我们能够有效地识别用户给出的任何稳固性代码的代码克隆和克隆相关bug,从而有助于提高用户对其代码可靠性的信心。除了个人开发人员的使用外,SmartEmbed还可以应用于大规模的智能合约研究。应用于以太坊区块链收集的22K多份solid合约,我们发现solid代码的克隆率接近90%,远高于传统软件,并且基于我们的小bug数据库,可以高效准确地识别出194个与克隆相关的bug,准确率达到96%。
{"title":"SmartEmbed: A Tool for Clone and Bug Detection in Smart Contracts through Structural Code Embedding","authors":"Zhipeng Gao, Vinoj Jayasundara, Lingxiao Jiang, Xin Xia, D. Lo, J. Grundy","doi":"10.1109/ICSME.2019.00067","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00067","url":null,"abstract":"Ethereum has become a widely used platform to enable secure, Blockchain-based financial and business transactions. However, a major concern in Ethereum is the security of its smart contracts. Many identified bugs and vulnerabilities in smart contracts not only present challenges to the maintenance of blockchain, but also lead to serious financial loses. There is a significant need to better assist developers in checking smart contracts and ensuring their reliability. In this paper, we propose a web service tool, named SmartEmbed, which can help Solidity developers to find repetitive contract code and clone-related bugs in smart contracts. Our tool is based on code embeddings and similarity checking techniques. By comparing the similarities among the code embedding vectors for existing solidity code in the Ethereum blockchain and known bugs, we are able to efficiently identify code clones and clone-related bugs for any solidity code given by users, which can help to improve the users' confidence in the reliability of their code. In addition to the uses by individual developers, SmartEmbed can also be applied to studies of smart contracts in a large scale. When applied to more than 22K solidity contracts collected from the Ethereum blockchain, we found that the clone ratio of solidity code is close to 90%, much higher than traditional software, and 194 clone-related bugs can be identified efficiently and accurately based on our small bug database with a precision of 96%.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-08-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114545937","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}
引用次数: 37
Do Energy-Oriented Changes Hinder Maintainability? 以能源为导向的改变会阻碍可维护性吗?
Pub Date : 2019-08-22 DOI: 10.1109/ICSME.2019.00013
Luis Cruz, R. Abreu, J. Grundy, Li Li, Xin Xia
Energy efficiency is a crucial quality requirement for mobile applications. However, improving energy efficiency is far from trivial as developers lack the knowledge and tools to aid in this activity. In this paper we study the impact of changes to improve energy efficiency on the maintainability of Android applications. Using a dataset containing 539 energy efficiency-oriented commits, we measure maintainability – as computed by the Software Improvement Group's web-based source code analysis service Better Code Hub (BCH) – before and after energy efficiency-related code changes. Results show that in general improving energy efficiency comes with a significant decrease in maintainability. This is particularly evident in code changes to accommodate the Power Save Mode and Wakelock Addition energy patterns. In addition, we perform manual analysis to assess how real examples of energy-oriented changes affect maintainability. Our results help mobile app developers to 1) avoid common maintainability issues when improving the energy efficiency of their apps; and 2) adopt development processes to build maintainable and energy-efficient code. We also support researchers by identifying challenges in mobile app development that still need to be addressed.
能源效率是移动应用程序的关键质量要求。然而,提高能源效率远非微不足道,因为开发人员缺乏知识和工具来帮助开展这项活动。在本文中,我们研究了提高能源效率的变化对Android应用程序的可维护性的影响。使用包含539个面向能效的提交的数据集,我们测量了与能效相关的代码更改前后的可维护性——由软件改进组基于web的源代码分析服务Better code Hub (BCH)计算得出。结果表明,总体而言,能源效率的提高伴随着可维护性的显著降低。这在代码更改中尤其明显,以适应省电模式和Wakelock附加能量模式。此外,我们执行手动分析,以评估面向能源的更改的实际示例如何影响可维护性。我们的研究结果可以帮助移动应用开发者:1)在提高应用的能效时避免常见的可维护性问题;2)采用开发流程来构建可维护和节能的代码。我们还通过识别移动应用开发中仍需解决的挑战来支持研究人员。
{"title":"Do Energy-Oriented Changes Hinder Maintainability?","authors":"Luis Cruz, R. Abreu, J. Grundy, Li Li, Xin Xia","doi":"10.1109/ICSME.2019.00013","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00013","url":null,"abstract":"Energy efficiency is a crucial quality requirement for mobile applications. However, improving energy efficiency is far from trivial as developers lack the knowledge and tools to aid in this activity. In this paper we study the impact of changes to improve energy efficiency on the maintainability of Android applications. Using a dataset containing 539 energy efficiency-oriented commits, we measure maintainability – as computed by the Software Improvement Group's web-based source code analysis service Better Code Hub (BCH) – before and after energy efficiency-related code changes. Results show that in general improving energy efficiency comes with a significant decrease in maintainability. This is particularly evident in code changes to accommodate the Power Save Mode and Wakelock Addition energy patterns. In addition, we perform manual analysis to assess how real examples of energy-oriented changes affect maintainability. Our results help mobile app developers to 1) avoid common maintainability issues when improving the energy efficiency of their apps; and 2) adopt development processes to build maintainable and energy-efficient code. We also support researchers by identifying challenges in mobile app development that still need to be addressed.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":" 20","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-08-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133019836","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}
引用次数: 23
Do as I Do, Not as I Say: Do Contribution Guidelines Match the GitHub Contribution Process? 做我所做的,而不是我所说的:贡献指南是否与GitHub贡献流程相匹配?
Pub Date : 2019-08-06 DOI: 10.1109/ICSME.2019.00043
Omar Elazhary, M. Storey, Neil A. Ernst, A. Zaidman
Developer contribution guidelines are used in social coding sites like GitHub to explain and shape the process a project expects contributors to follow. They set standards for all participants and "save time and hassle caused by improperly created pull requests or issues that have to be rejected and re-submitted" (GitHub). Yet, we lack a systematic understanding of the content of a typical contribution guideline, as well as the extent to which these guidelines are followed in practice. Additionally, understanding how guidelines may impact projects that use Continuous Integration as part of the contribution process is of particular interest. To address this knowledge gap, we conducted a mixed-methods study of 53 GitHub projects with explicit contribution guidelines and coded the guidelines to extract key themes. We then created a process model using GitHub activity data (e.g., commit, new issue, new pull request) to compare the actual activity with the prescribed contribution guidelines. We show that approximately 68% of these projects diverge significantly from the expected process.
像GitHub这样的社交编码网站使用开发者贡献指南来解释和塑造项目期望贡献者遵循的过程。他们为所有参与者设定了标准,并“节省了因不正确创建的拉取请求或必须被拒绝和重新提交的问题而造成的时间和麻烦”(GitHub)。然而,我们缺乏对典型贡献指南内容的系统理解,以及这些指南在实践中被遵循的程度。此外,理解指导方针如何影响使用持续集成作为贡献过程一部分的项目是特别有趣的。为了解决这一知识差距,我们对53个GitHub项目进行了混合方法研究,并提供了明确的贡献指导方针,并对指导方针进行了编码,以提取关键主题。然后,我们使用GitHub活动数据(例如,提交、新问题、新拉取请求)创建了一个流程模型,将实际活动与规定的贡献指南进行比较。我们表明,这些项目中大约有68%与预期的过程存在显著差异。
{"title":"Do as I Do, Not as I Say: Do Contribution Guidelines Match the GitHub Contribution Process?","authors":"Omar Elazhary, M. Storey, Neil A. Ernst, A. Zaidman","doi":"10.1109/ICSME.2019.00043","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00043","url":null,"abstract":"Developer contribution guidelines are used in social coding sites like GitHub to explain and shape the process a project expects contributors to follow. They set standards for all participants and \"save time and hassle caused by improperly created pull requests or issues that have to be rejected and re-submitted\" (GitHub). Yet, we lack a systematic understanding of the content of a typical contribution guideline, as well as the extent to which these guidelines are followed in practice. Additionally, understanding how guidelines may impact projects that use Continuous Integration as part of the contribution process is of particular interest. To address this knowledge gap, we conducted a mixed-methods study of 53 GitHub projects with explicit contribution guidelines and coded the guidelines to extract key themes. We then created a process model using GitHub activity data (e.g., commit, new issue, new pull request) to compare the actual activity with the prescribed contribution guidelines. We show that approximately 68% of these projects diverge significantly from the expected process.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"08 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-08-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133066784","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}
引用次数: 22
Business-Driven Technical Debt Prioritization 业务驱动的技术债务优先级
Pub Date : 2019-08-01 DOI: 10.1109/ICSME.2019.00096
R. R. Almeida
Technical debt happens when teams take shortcuts on software development to gain short-term benefits at the cost of making future changes more expensive. Previous results show that there is a misalignment between the prioritization done by technical professionals and the prioritization expected by business ones. This paper presents a business-driven approach to prioritize technical debt items. The research is organized into four phases: exploratory, to identify the research focus; concept verification, where the proposed approach was evaluated on a multi-case study; solution, where a design science research was conducted to develop Tracy, a framework for technical debt prioritization; and validation. Results so far show that the business-driven prioritization of technical debt items can improve the alignment and communication between the technical and business stakeholders.
当团队在软件开发中走捷径以获取短期利益为代价,使未来的更改变得更加昂贵时,就会出现技术债务。先前的结果表明,由技术专业人员完成的优先级排序与业务人员期望的优先级排序之间存在不一致。本文提出了一种业务驱动的方法来确定技术债务项目的优先级。本研究分为四个阶段:探索性阶段,确定研究重点;概念验证,在多案例研究中评估拟议的方法;解决方案,其中进行了设计科学研究,以开发Tracy,技术债务优先排序框架;和验证。到目前为止的结果表明,业务驱动的技术债务项目优先级可以改善技术和业务涉众之间的一致性和沟通。
{"title":"Business-Driven Technical Debt Prioritization","authors":"R. R. Almeida","doi":"10.1109/ICSME.2019.00096","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00096","url":null,"abstract":"Technical debt happens when teams take shortcuts on software development to gain short-term benefits at the cost of making future changes more expensive. Previous results show that there is a misalignment between the prioritization done by technical professionals and the prioritization expected by business ones. This paper presents a business-driven approach to prioritize technical debt items. The research is organized into four phases: exploratory, to identify the research focus; concept verification, where the proposed approach was evaluated on a multi-case study; solution, where a design science research was conducted to develop Tracy, a framework for technical debt prioritization; and validation. Results so far show that the business-driven prioritization of technical debt items can improve the alignment and communication between the technical and business stakeholders.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127779758","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}
引用次数: 4
Learning to Identify Security-Related Issues Using Convolutional Neural Networks 学习使用卷积神经网络识别安全相关问题
Pub Date : 2019-08-01 DOI: 10.1109/ICSME.2019.00024
David N. Palacio, Daniel McCrystal, Kevin Moran, Carlos Bernal-Cárdenas, D. Poshyvanyk, Chris Shenefiel
Software security is becoming a high priority for both large companies and start-ups alike due to the increasing potential for harm that vulnerabilities and breaches carry with them. However, attaining robust security assurance while delivering features requires a precarious balancing act in the context of agile development practices. One path forward to help aid development teams in securing their software products is through the design and development of security-focused automation. Ergo, we present a novel approach, called SecureReqNet, for automatically identifying whether issues in software issue tracking systems describe security-related content. Our approach consists of a two-phase neural net architecture that operates purely on the natural language descriptions of issues. The first phase of our approach learns high dimensional word embeddings from hundreds of thousands of vulnerability descriptions listed in the CVE database and issue descriptions extracted from open source projects. The second phase then utilizes the semantic ontology represented by these embeddings to train a convolutional neural network capable of predicting whether a given issue is security-related. We evaluated SecureReqNet by applying it to identify security-related issues from a dataset of thousands of issues mined from popular projects on GitLab and GitHub. In addition, we also applied our approach to identify security-related requirements from a commercial software project developed by a major telecommunication company. Our preliminary results are encouraging, with SecureReqNet achieving an accuracy of 96% on open source issues and 71.6% on industrial requirements.
软件安全正成为大公司和初创公司的首要任务,因为漏洞和破坏带来的危害越来越大。然而,在交付特性的同时获得健壮的安全保证需要在敏捷开发实践的上下文中进行不稳定的平衡。帮助开发团队保护其软件产品的一个途径是通过设计和开发以安全为重点的自动化。因此,我们提出了一种新的方法,称为SecureReqNet,用于自动识别软件问题跟踪系统中的问题是否描述了与安全相关的内容。我们的方法由一个两阶段的神经网络架构组成,该架构纯粹基于问题的自然语言描述。我们方法的第一阶段从CVE数据库中列出的数十万个漏洞描述和从开源项目中提取的问题描述中学习高维词嵌入。然后,第二阶段利用这些嵌入表示的语义本体来训练卷积神经网络,该网络能够预测给定问题是否与安全相关。我们通过将SecureReqNet应用于从GitLab和GitHub上的热门项目中挖掘的数千个问题的数据集中识别与安全相关的问题来评估它。此外,我们还应用我们的方法来识别由一家大型电信公司开发的商业软件项目的安全相关需求。我们的初步结果令人鼓舞,SecureReqNet在开源问题上达到了96%的准确率,在工业需求上达到了71.6%。
{"title":"Learning to Identify Security-Related Issues Using Convolutional Neural Networks","authors":"David N. Palacio, Daniel McCrystal, Kevin Moran, Carlos Bernal-Cárdenas, D. Poshyvanyk, Chris Shenefiel","doi":"10.1109/ICSME.2019.00024","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00024","url":null,"abstract":"Software security is becoming a high priority for both large companies and start-ups alike due to the increasing potential for harm that vulnerabilities and breaches carry with them. However, attaining robust security assurance while delivering features requires a precarious balancing act in the context of agile development practices. One path forward to help aid development teams in securing their software products is through the design and development of security-focused automation. Ergo, we present a novel approach, called SecureReqNet, for automatically identifying whether issues in software issue tracking systems describe security-related content. Our approach consists of a two-phase neural net architecture that operates purely on the natural language descriptions of issues. The first phase of our approach learns high dimensional word embeddings from hundreds of thousands of vulnerability descriptions listed in the CVE database and issue descriptions extracted from open source projects. The second phase then utilizes the semantic ontology represented by these embeddings to train a convolutional neural network capable of predicting whether a given issue is security-related. We evaluated SecureReqNet by applying it to identify security-related issues from a dataset of thousands of issues mined from popular projects on GitLab and GitHub. In addition, we also applied our approach to identify security-related requirements from a commercial software project developed by a major telecommunication company. Our preliminary results are encouraging, with SecureReqNet achieving an accuracy of 96% on open source issues and 71.6% on industrial requirements.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-08-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128967693","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}
引用次数: 12
Tracy: A Business-Driven Technical Debt Prioritization Framework Tracy:业务驱动的技术债务优先级框架
Pub Date : 2019-07-31 DOI: 10.1109/ICSME.2019.00028
R. R. Almeida, Christoph Treude, U. Kulesza
Technical debt is a pervasive problem in software development. Software development teams have to prioritize debt items and determine whether they should address debt or develop new features at any point in time. This paper presents "Tracy", a framework for the prioritization of technical debt using a business-driven approach built on top of business processes. The current stage of the proposed framework is at the beginning of the third phase of Design Science Research, which is usually divided into the phases of exploration, engineering, and evaluation. The exploration and engineering phases involved the participation of 49 professionals from 12 different groups of three companies. The initial evaluation shows that the presented framework is coherent in its structure and that its results contribute to business-driven decision making on technical debt prioritization.
技术债务是软件开发中普遍存在的问题。软件开发团队必须确定债务项目的优先级,并确定他们是应该在任何时间点处理债务还是开发新功能。本文介绍了“Tracy”,这是一个使用构建在业务流程之上的业务驱动方法对技术债务进行优先级排序的框架。所提出的框架的当前阶段处于设计科学研究的第三阶段的开始,该阶段通常分为探索、工程和评估三个阶段。勘探和工程阶段涉及来自三家公司的12个不同小组的49名专业人员的参与。最初的评估表明,所提出的框架在其结构上是一致的,并且其结果有助于对技术债务优先级进行业务驱动的决策制定。
{"title":"Tracy: A Business-Driven Technical Debt Prioritization Framework","authors":"R. R. Almeida, Christoph Treude, U. Kulesza","doi":"10.1109/ICSME.2019.00028","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00028","url":null,"abstract":"Technical debt is a pervasive problem in software development. Software development teams have to prioritize debt items and determine whether they should address debt or develop new features at any point in time. This paper presents \"Tracy\", a framework for the prioritization of technical debt using a business-driven approach built on top of business processes. The current stage of the proposed framework is at the beginning of the third phase of Design Science Research, which is usually divided into the phases of exploration, engineering, and evaluation. The exploration and engineering phases involved the participation of 49 professionals from 12 different groups of three companies. The initial evaluation shows that the presented framework is coherent in its structure and that its results contribute to business-driven decision making on technical debt prioritization.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120995613","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}
引用次数: 14
Comprehending Test Code: An Empirical Study 理解测试代码:一个实证研究
Pub Date : 2019-07-31 DOI: 10.1109/ICSME.2019.00084
C. S. Yu, Christoph Treude, M. Aniche
Developers spend a large portion of their time and effort on comprehending source code. While many studies have investigated how developers approach these comprehension tasks and what factors influence their success, less is known about how developers comprehend test code specifically, despite the undisputed importance of testing. In this paper, we report on the results of an empirical study with 44 developers to understand which factors influence developers when comprehending Java test code. We measured three dependent variables: the total time spent reading a test suite, the ability to identify the overall purpose of a test suite, and the ability to produce additional test cases to extend a test suite. The main findings of our study, with several implications for future research and practitioners, are that (i) prior knowledge of the software project decreases the total reading time, (ii) experience with Java affects the proportion of time spent on the Arrange and Assert sections of test cases, (iii) experience with Java and prior knowledge of the software project positively influence the ability to produce additional test cases of certain categories, and (iv) experience with automated tests is an influential factor towards understanding and extending an automated test suite.
开发人员在理解源代码上花费了大量的时间和精力。虽然许多研究已经调查了开发人员如何处理这些理解任务以及影响他们成功的因素,但是对于开发人员如何具体理解测试代码知之甚少,尽管测试的重要性是无可争议的。在本文中,我们报告了对44名开发人员进行的实证研究的结果,以了解在理解Java测试代码时哪些因素会影响开发人员。我们测量了三个相关变量:阅读测试套件所花费的总时间,确定测试套件总体目的的能力,以及生成额外测试用例以扩展测试套件的能力。我们研究的主要发现,对未来的研究和从业者有一些启示,是(i)软件项目的先验知识减少了总阅读时间,(ii) Java的经验影响了花在测试用例的安排和断言部分的时间比例,(iii) Java的经验和软件项目的先验知识积极地影响了产生特定类别的额外测试用例的能力。(iv)自动化测试的经验是理解和扩展自动化测试套件的一个有影响的因素。
{"title":"Comprehending Test Code: An Empirical Study","authors":"C. S. Yu, Christoph Treude, M. Aniche","doi":"10.1109/ICSME.2019.00084","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00084","url":null,"abstract":"Developers spend a large portion of their time and effort on comprehending source code. While many studies have investigated how developers approach these comprehension tasks and what factors influence their success, less is known about how developers comprehend test code specifically, despite the undisputed importance of testing. In this paper, we report on the results of an empirical study with 44 developers to understand which factors influence developers when comprehending Java test code. We measured three dependent variables: the total time spent reading a test suite, the ability to identify the overall purpose of a test suite, and the ability to produce additional test cases to extend a test suite. The main findings of our study, with several implications for future research and practitioners, are that (i) prior knowledge of the software project decreases the total reading time, (ii) experience with Java affects the proportion of time spent on the Arrange and Assert sections of test cases, (iii) experience with Java and prior knowledge of the software project positively influence the ability to produce additional test cases of certain categories, and (iv) experience with automated tests is an influential factor towards understanding and extending an automated test suite.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123509309","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}
引用次数: 12
Syntax and Stack Overflow: A Methodology for Extracting a Corpus of Syntax Errors and Fixes 语法和堆栈溢出:一种提取语法错误语料库和修复的方法
Pub Date : 2019-07-17 DOI: 10.1109/ICSME.2019.00048
A. W. Wong, Amir Salimi, S. Chowdhury, Abram Hindle
One problem when studying how to find and fix syntax errors is how to get natural and representative examples of syntax errors. Most syntax error datasets are not free, open, and public, or they are extracted from novice programmers and do not represent syntax errors that the general population of developers would make. Programmers of all skill levels post questions and answers to Stack Overflow which may contain snippets of source code along with corresponding text and tags. Many snippets do not parse, thus they are ripe for forming a corpus of syntax errors and corrections. Our primary contribution is an approach for extracting natural syntax errors and their corresponding human made fixes to help syntax error research. A Python abstract syntax tree parser is used to determine preliminary errors and corrections on code blocks extracted from the SOTorrent data set. We further analyzed our code by executing the corrections in a Python interpreter. We applied our methodology to produce a public data set of 62,965 Python Stack Overflow code snippets with corresponding tags, errors, and stack traces. We found that errors made by Stack Overflow users do not match errors made by student developers or random mutations, implying there is a serious representativeness risk within the field. Finally we share our dataset openly so that future researchers can re-use and extend our syntax errors and fixes.
在研究如何发现和修复语法错误时,一个问题是如何获得自然的、有代表性的语法错误示例。大多数语法错误数据集不是免费的、开放的和公开的,或者它们是从新手程序员那里提取出来的,不代表一般开发人员会犯的语法错误。所有技能水平的程序员都会在Stack Overflow上发布问题和答案,其中可能包含源代码片段以及相应的文本和标签。许多代码片段不进行解析,因此它们可以形成语法错误和更正的语料库。我们的主要贡献是一种提取自然语法错误和相应的人为修复的方法,以帮助语法错误的研究。Python抽象语法树解析器用于确定从SOTorrent数据集中提取的代码块的初步错误和更正。通过在Python解释器中执行更正,我们进一步分析了代码。我们应用我们的方法生成了一个包含62965个Python Stack Overflow代码片段的公共数据集,这些代码片段带有相应的标签、错误和堆栈跟踪。我们发现Stack Overflow用户所犯的错误与学生开发人员或随机突变所犯的错误不匹配,这意味着该领域存在严重的代表性风险。最后,我们公开分享我们的数据集,以便未来的研究人员可以重用和扩展我们的语法错误和修复。
{"title":"Syntax and Stack Overflow: A Methodology for Extracting a Corpus of Syntax Errors and Fixes","authors":"A. W. Wong, Amir Salimi, S. Chowdhury, Abram Hindle","doi":"10.1109/ICSME.2019.00048","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00048","url":null,"abstract":"One problem when studying how to find and fix syntax errors is how to get natural and representative examples of syntax errors. Most syntax error datasets are not free, open, and public, or they are extracted from novice programmers and do not represent syntax errors that the general population of developers would make. Programmers of all skill levels post questions and answers to Stack Overflow which may contain snippets of source code along with corresponding text and tags. Many snippets do not parse, thus they are ripe for forming a corpus of syntax errors and corrections. Our primary contribution is an approach for extracting natural syntax errors and their corresponding human made fixes to help syntax error research. A Python abstract syntax tree parser is used to determine preliminary errors and corrections on code blocks extracted from the SOTorrent data set. We further analyzed our code by executing the corrections in a Python interpreter. We applied our methodology to produce a public data set of 62,965 Python Stack Overflow code snippets with corresponding tags, errors, and stack traces. We found that errors made by Stack Overflow users do not match errors made by student developers or random mutations, implying there is a serious representativeness risk within the field. Finally we share our dataset openly so that future researchers can re-use and extend our syntax errors and fixes.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-07-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130908645","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}
引用次数: 8
MigrationMiner: An Automated Detection Tool of Third-Party Java Library Migration at the Method Level MigrationMiner:第三方Java库在方法级迁移的自动检测工具
Pub Date : 2019-07-05 DOI: 10.1109/ICSME.2019.00072
Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni
In this paper we introduce, MigrationMiner, an automated tool that detects code migrations performed between Java third-party library. Given a list of open source projects, the tool detects potential library migration code changes and collects the specific code fragments in which the developer replaces methods from the retired library with methods from the new library. To support the migration process, MigrationMiner collects the library documentation that is associated with every method involved in the migration. We evaluate our tool on a benchmark of manually validated library migrations. Results show that MigrationMiner achieves an accuracy of 100%. A demo video of Migration-Miner is available at https://youtu.be/sAlR1HNetXc.
在本文中,我们介绍了MigrationMiner,一个自动检测Java第三方库之间执行的代码迁移的工具。给定一个开源项目列表,该工具会检测潜在的库迁移代码更改,并收集开发人员用新库中的方法替换退役库中的方法的特定代码片段。为了支持迁移过程,MigrationMiner收集与迁移中涉及的每个方法相关联的库文档。我们在手动验证库迁移的基准上评估我们的工具。结果表明,MigrationMiner实现了100%的准确率。Migration-Miner的演示视频可在https://youtu.be/sAlR1HNetXc上获得。
{"title":"MigrationMiner: An Automated Detection Tool of Third-Party Java Library Migration at the Method Level","authors":"Hussein Alrubaye, Mohamed Wiem Mkaouer, Ali Ouni","doi":"10.1109/ICSME.2019.00072","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00072","url":null,"abstract":"In this paper we introduce, MigrationMiner, an automated tool that detects code migrations performed between Java third-party library. Given a list of open source projects, the tool detects potential library migration code changes and collects the specific code fragments in which the developer replaces methods from the retired library with methods from the new library. To support the migration process, MigrationMiner collects the library documentation that is associated with every method involved in the migration. We evaluate our tool on a benchmark of manually validated library migrations. Results show that MigrationMiner achieves an accuracy of 100%. A demo video of Migration-Miner is available at https://youtu.be/sAlR1HNetXc.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-07-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134509847","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}
引用次数: 21
期刊
2019 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