首页 > 最新文献

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

英文 中文
Mainframe Migration Based on Screen Scraping 基于屏幕抓取的大型机迁移
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00077
Sergio Flores-Ruiz, Ricardo Pérez-Castillo, Christoph Domann, Simona Puica
Companies possess a history and large array of legacy information systems that consume a great part of their IT budget in operations and maintenance. These systems are mission-critical, and they cannot be fully discarded since they retain business rules and provide information that is not available anywhere else. Unfortunately, decades-old legacy systems cannot easily withstand modification. Mainframes specifically conglomerate most of these legacy systems. Although there are some white-box solutions for migrating mainframe systems, such solutions lack systematicity and do not provide mechanisms for verifying business rules preservation. Hence, this paper presents a black-box solution (ignoring the internal structure of COBOL programs) which uses a screen scraping technique for migrating mainframe systems toward JavaFX and relational databases. Together with this solution, this paper provides an automatic verification technique to check if the recreated system reflects all the embedded business logic. This proposal has been designed and developed in the context of an industrial project, in which the solution has already migrated 43,000,000 mainframe screens from four systems. The main implication for researchers and practitioners is that screen scraping has proved to be feasible for migrating mainframe systems in large-scale projects within a manageable time-frame while preserving business.
公司拥有大量的遗留信息系统,这些系统在操作和维护中消耗了很大一部分IT预算。这些系统对任务至关重要,不能完全丢弃它们,因为它们保留了业务规则并提供了在其他任何地方都不可用的信息。不幸的是,有几十年历史的遗留系统不能轻易经受修改。大型机特别集中了这些遗留系统中的大多数。尽管有一些用于迁移大型机系统的白盒解决方案,但这些解决方案缺乏系统性,并且不提供验证业务规则保存的机制。因此,本文提出了一个黑盒解决方案(忽略COBOL程序的内部结构),它使用屏幕抓取技术将大型机系统迁移到JavaFX和关系数据库。与此解决方案一起,本文提供了一种自动验证技术来检查重新创建的系统是否反映了所有嵌入的业务逻辑。该提案是在一个工业项目的背景下设计和开发的,该解决方案已经从四个系统迁移了43,000,000个主机屏幕。研究人员和实践者的主要含义是,屏幕抓取已被证明对于在可管理的时间框架内迁移大型项目中的大型机系统是可行的,同时保留业务。
{"title":"Mainframe Migration Based on Screen Scraping","authors":"Sergio Flores-Ruiz, Ricardo Pérez-Castillo, Christoph Domann, Simona Puica","doi":"10.1109/ICSME.2018.00077","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00077","url":null,"abstract":"Companies possess a history and large array of legacy information systems that consume a great part of their IT budget in operations and maintenance. These systems are mission-critical, and they cannot be fully discarded since they retain business rules and provide information that is not available anywhere else. Unfortunately, decades-old legacy systems cannot easily withstand modification. Mainframes specifically conglomerate most of these legacy systems. Although there are some white-box solutions for migrating mainframe systems, such solutions lack systematicity and do not provide mechanisms for verifying business rules preservation. Hence, this paper presents a black-box solution (ignoring the internal structure of COBOL programs) which uses a screen scraping technique for migrating mainframe systems toward JavaFX and relational databases. Together with this solution, this paper provides an automatic verification technique to check if the recreated system reflects all the embedded business logic. This proposal has been designed and developed in the context of an industrial project, in which the solution has already migrated 43,000,000 mainframe screens from four systems. The main implication for researchers and practitioners is that screen scraping has proved to be feasible for migrating mainframe systems in large-scale projects within a manageable time-frame while preserving business.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"282 4 1","pages":"675-684"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86589147","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
Change-Aware Dynamic Program Analysis for JavaScript JavaScript的变化感知动态程序分析
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00023
Dileep Ramachandrarao Krishna Murthy, Michael Pradel
Dynamic analysis is a powerful technique to detect correctness, performance, and security problems, in particular for programs written in dynamic languages, such as JavaScript. To catch mistakes as early as possible, developers should run such analyses regularly, e.g., by analyzing the execution of a regression test suite before each commit. Unfortunately, the high overhead of these analyses make this approach prohibitively expensive, hindering developers from benefiting from the power of heavyweight dynamic analysis. This paper presents change-aware dynamic program analysis, an approach to make a common class of dynamic analyses change-aware. The key idea is to identify parts of the code affected by a change through a lightweight static change impact analysis, and to focus the dynamic analysis on these affected parts. We implement the idea based on the dynamic analysis framework Jalangi and evaluate it with 46 checkers from the DLint and JITProf tools. Our results show that change-aware dynamic analysis reduces the overall analysis time by 40%, on average, and by at least 80% for 31% of all commits.
动态分析是一种检测正确性、性能和安全性问题的强大技术,特别是对于用动态语言(如JavaScript)编写的程序。为了尽早发现错误,开发人员应该定期运行这样的分析,例如,在每次提交之前分析回归测试套件的执行情况。不幸的是,这些分析的高开销使得这种方法非常昂贵,阻碍了开发人员从重量级动态分析的强大功能中获益。本文提出了变化感知动态程序分析,这是一种使一类常见的动态分析实现变化感知的方法。关键思想是通过轻量级的静态更改影响分析来识别受更改影响的代码部分,并将动态分析的重点放在这些受影响的部分上。我们基于动态分析框架Jalangi实现了这个想法,并使用来自DLint和JITProf工具的46个检查器对其进行了评估。我们的结果表明,变化感知动态分析平均减少了40%的总体分析时间,并且在31%的提交中至少减少了80%的分析时间。
{"title":"Change-Aware Dynamic Program Analysis for JavaScript","authors":"Dileep Ramachandrarao Krishna Murthy, Michael Pradel","doi":"10.1109/ICSME.2018.00023","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00023","url":null,"abstract":"Dynamic analysis is a powerful technique to detect correctness, performance, and security problems, in particular for programs written in dynamic languages, such as JavaScript. To catch mistakes as early as possible, developers should run such analyses regularly, e.g., by analyzing the execution of a regression test suite before each commit. Unfortunately, the high overhead of these analyses make this approach prohibitively expensive, hindering developers from benefiting from the power of heavyweight dynamic analysis. This paper presents change-aware dynamic program analysis, an approach to make a common class of dynamic analyses change-aware. The key idea is to identify parts of the code affected by a change through a lightweight static change impact analysis, and to focus the dynamic analysis on these affected parts. We implement the idea based on the dynamic analysis framework Jalangi and evaluate it with 46 checkers from the DLint and JITProf tools. Our results show that change-aware dynamic analysis reduces the overall analysis time by 40%, on average, and by at least 80% for 31% of all commits.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"239 1","pages":"127-137"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80433576","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}
引用次数: 2
Comparing Multiple MATLAB/Simulink Models Using Static Connectivity Matrix Analysis 使用静态连通性矩阵分析比较多个MATLAB/Simulink模型
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00026
Alexander Schlie, Sandro Schulze, Ina Schaefer
Model-based languages such as MATLAB/Simulink are crucial for the development of embedded software systems. To adapt to changing requirements, engineers commonly copy and modify existing systems to create new variants. Commonly referred to as clone-and-own, this reuse strategy is easy to apply and beneficial in the short term, but it entails severe maintenance and consistency issues in the long term, leading to a huge amount of redundant and similar assets. Moreover, a later transition towards structured reuse such as with software product lines inevitably requires the comparison of all existing variants prior to the actual migration. However, current work mostly revolves around the comparison of only two systems and despite approaches proposed that can cope with more, such are not applicable to embedded software systems such as MATLAB/Simulink. In this paper, we bridge this gap and propose Static Connectivity Matrix Analysis (SCMA), a novel comparison procedure that allows for the evaluation of multiple MATLAB/Simulink model variants at once. In particular, we transform models into a matrix form which is used to compare all models and to identify all similar structures between them, even with model parts being completely relocated during clone-and-own. We allow engineers to tailor results and to focus on any arbitrary variant subset, enabling individual reasoning prior to migration. We provide a feasibility study from the automotive domain, showing our matrix representation to be suitable and our technique to be fast and precise.
基于模型的语言如MATLAB/Simulink对于嵌入式软件系统的开发至关重要。为了适应不断变化的需求,工程师通常会复制和修改现有系统以创建新的变体。这种重用策略通常被称为“克隆并拥有”,它易于应用并且在短期内是有益的,但是从长期来看,它会带来严重的维护和一致性问题,从而导致大量冗余和类似的资产。此外,在向结构化重用(例如软件产品线)的后期过渡时,不可避免地需要在实际迁移之前比较所有现有的变体。然而,目前的工作主要围绕着两个系统的比较,尽管提出了可以处理更多系统的方法,但这些方法不适用于嵌入式软件系统,如MATLAB/Simulink。在本文中,我们弥合了这一差距,并提出了静态连通性矩阵分析(SCMA),这是一种新的比较程序,允许一次评估多个MATLAB/Simulink模型变体。特别是,我们将模型转换为矩阵形式,用于比较所有模型并识别它们之间的所有相似结构,即使在克隆和拥有过程中模型部分完全重新定位。我们允许工程师裁剪结果,并关注任意的变体子集,在迁移之前进行个人推理。我们从汽车领域提供了可行性研究,表明我们的矩阵表示是合适的,我们的技术是快速和精确的。
{"title":"Comparing Multiple MATLAB/Simulink Models Using Static Connectivity Matrix Analysis","authors":"Alexander Schlie, Sandro Schulze, Ina Schaefer","doi":"10.1109/ICSME.2018.00026","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00026","url":null,"abstract":"Model-based languages such as MATLAB/Simulink are crucial for the development of embedded software systems. To adapt to changing requirements, engineers commonly copy and modify existing systems to create new variants. Commonly referred to as clone-and-own, this reuse strategy is easy to apply and beneficial in the short term, but it entails severe maintenance and consistency issues in the long term, leading to a huge amount of redundant and similar assets. Moreover, a later transition towards structured reuse such as with software product lines inevitably requires the comparison of all existing variants prior to the actual migration. However, current work mostly revolves around the comparison of only two systems and despite approaches proposed that can cope with more, such are not applicable to embedded software systems such as MATLAB/Simulink. In this paper, we bridge this gap and propose Static Connectivity Matrix Analysis (SCMA), a novel comparison procedure that allows for the evaluation of multiple MATLAB/Simulink model variants at once. In particular, we transform models into a matrix form which is used to compare all models and to identify all similar structures between them, even with model parts being completely relocated during clone-and-own. We allow engineers to tailor results and to focus on any arbitrary variant subset, enabling individual reasoning prior to migration. We provide a feasibility study from the automotive domain, showing our matrix representation to be suitable and our technique to be fast and precise.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"57 1","pages":"160-171"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80436343","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}
引用次数: 6
Generating Accurate and Compact Edit Scripts Using Tree Differencing 生成准确和紧凑的编辑脚本使用树的差异
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00036
Veit Frick, Thomas Grassauer, Fabian Beck, M. Pinzger
For analyzing changes in source code, edit scriptsare used to describe the differences between two versions of afile. These scripts consist of a list of actions that, applied to thesource file, result in the new version of the file. In contrast toline-based source code differencing, tree-based approaches suchas GumTree, MTDIFF, or ChangeDistiller extract changes bycomparing the abstract syntax trees (AST) of two versions of asource file. One benefit of tree-based approaches is their abilityto capture moved (sub) trees in the AST. Our approach, theIterative Java Matcher (IJM), builds upon GumTree and aims atgenerating more accurate and compact edit scripts that capturethe developer's intent. This is achieved by improving the qualityof the generated move and update actions, which are the mainsource of inaccurate actions generated by previous approaches. To evaluate our approach, we conducted a study with 11 external experts and manually analyzed the accuracy of 2400 randomly selected editactions. Comparing IJM to GumTree and MTDIFF, the resultsshow that IJM provides better accuracy for move and updateactions and is more beneficial to understanding the changes.
为了分析源代码中的更改,编辑脚本用于描述文件的两个版本之间的差异。这些脚本由一系列操作组成,这些操作应用于源文件,产生新版本的文件。与基于行代码的源代码区分不同,基于树的方法(如GumTree、MTDIFF或ChangeDistiller)通过比较源文件的两个版本的抽象语法树(AST)来提取更改。基于树的方法的一个好处是它们能够捕获AST中移动的(子)树。我们的方法,迭代Java匹配器(IJM),建立在GumTree之上,旨在生成更准确、更紧凑的编辑脚本,以捕获开发人员的意图。这是通过提高生成的移动和更新动作的质量来实现的,这是以前方法生成的不准确动作的主要来源。为了评估我们的方法,我们与11名外部专家进行了一项研究,并人工分析了2400个随机选择的编辑的准确性。将IJM与GumTree和MTDIFF进行比较,结果表明IJM对移动和更新反应提供了更好的准确性,并且更有利于理解变化。
{"title":"Generating Accurate and Compact Edit Scripts Using Tree Differencing","authors":"Veit Frick, Thomas Grassauer, Fabian Beck, M. Pinzger","doi":"10.1109/ICSME.2018.00036","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00036","url":null,"abstract":"For analyzing changes in source code, edit scriptsare used to describe the differences between two versions of afile. These scripts consist of a list of actions that, applied to thesource file, result in the new version of the file. In contrast toline-based source code differencing, tree-based approaches suchas GumTree, MTDIFF, or ChangeDistiller extract changes bycomparing the abstract syntax trees (AST) of two versions of asource file. One benefit of tree-based approaches is their abilityto capture moved (sub) trees in the AST. Our approach, theIterative Java Matcher (IJM), builds upon GumTree and aims atgenerating more accurate and compact edit scripts that capturethe developer's intent. This is achieved by improving the qualityof the generated move and update actions, which are the mainsource of inaccurate actions generated by previous approaches. To evaluate our approach, we conducted a study with 11 external experts and manually analyzed the accuracy of 2400 randomly selected editactions. Comparing IJM to GumTree and MTDIFF, the resultsshow that IJM provides better accuracy for move and updateactions and is more beneficial to understanding the changes.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"40 1","pages":"264-274"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80358409","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}
引用次数: 25
Automated Extraction of Augmented Models for Android Apps Android应用增强模型的自动提取
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00065
Santiago Linan, Laura Bello-Jiménez, Maria Arevalo, M. Linares-Vásquez
Mobile software development involves significant challenges to developers such as device fragmentation (i.e., enormous hardware and software diversity), event-driven programming (i.e., programming based on user interactions, sensor readings and other events where the program must react) and continuous evolving platforms (i.e., fast changing mobile frameworks and technologies). This can lead programmers to error-prone code, because of the multiple combinations of external variables that must be taken into account in an app development process. Thus, testing is an underlying necessity in mobile applications to deliver high quality apps. However, defining tests suites for app development is a difficult task that requires a lot of effort, because it must consider all the possible states of an app, its context (e.g., device in which is running, sensors, touch gestures, screen proportions, connectivity), and a large combination of mobile devices and operating systems. Previous efforts have been done to extract models that support automated testing. However, as of today there is not a single model that synthesizes different aspects in mobile apps such as domain, usage, context and GUI-related information. These aspects represent complementary information that can be mixed into a single and enriched model. In this paper, we propose a multi-model representation that combines information extracted statically and dynamically from Android apps. Our approach allows practitioners to automatically extract augmented models that combine different types of information, and could help them during comprehension and testing tasks.
移动软件开发给开发者带来了巨大的挑战,如设备碎片化(即巨大的硬件和软件多样性)、事件驱动编程(即基于用户交互、传感器读数和程序必须做出反应的其他事件的编程)和不断发展的平台(即快速变化的移动框架和技术)。这可能会导致程序员编写出容易出错的代码,因为在应用开发过程中必须考虑到外部变量的多种组合。因此,在移动应用程序中,测试是交付高质量应用程序的基本必要条件。然而,为应用程序开发定义测试套件是一项艰巨的任务,需要大量的努力,因为它必须考虑应用程序的所有可能状态,它的上下文(例如,正在运行的设备,传感器,触摸手势,屏幕比例,连接),以及移动设备和操作系统的大组合。以前的工作已经完成,以提取支持自动化测试的模型。然而,到目前为止,还没有一个单一的模型可以综合手机应用中的不同方面,如领域、使用情况、上下文和gui相关信息。这些方面表示互补的信息,这些信息可以混合到单个丰富的模型中。在本文中,我们提出了一种多模型表示,将从Android应用程序中静态和动态提取的信息相结合。我们的方法允许从业者自动提取结合不同类型信息的增强模型,并且可以在理解和测试任务期间帮助他们。
{"title":"Automated Extraction of Augmented Models for Android Apps","authors":"Santiago Linan, Laura Bello-Jiménez, Maria Arevalo, M. Linares-Vásquez","doi":"10.1109/ICSME.2018.00065","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00065","url":null,"abstract":"Mobile software development involves significant challenges to developers such as device fragmentation (i.e., enormous hardware and software diversity), event-driven programming (i.e., programming based on user interactions, sensor readings and other events where the program must react) and continuous evolving platforms (i.e., fast changing mobile frameworks and technologies). This can lead programmers to error-prone code, because of the multiple combinations of external variables that must be taken into account in an app development process. Thus, testing is an underlying necessity in mobile applications to deliver high quality apps. However, defining tests suites for app development is a difficult task that requires a lot of effort, because it must consider all the possible states of an app, its context (e.g., device in which is running, sensors, touch gestures, screen proportions, connectivity), and a large combination of mobile devices and operating systems. Previous efforts have been done to extract models that support automated testing. However, as of today there is not a single model that synthesizes different aspects in mobile apps such as domain, usage, context and GUI-related information. These aspects represent complementary information that can be mixed into a single and enriched model. In this paper, we propose a multi-model representation that combines information extracted statically and dynamically from Android apps. Our approach allows practitioners to automatically extract augmented models that combine different types of information, and could help them during comprehension and testing tasks.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"17 1","pages":"549-553"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78385529","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}
引用次数: 9
On the Value of Bug Reports for Retrieval-Based Bug Localization 基于检索的Bug定位中Bug报告的价值
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00048
Dawn J Lawrie, D. Binkley
Software engineering researchers have been applying tools and techniques from information retrieval (IR) to problems such as bug localization to lower the manual effort required to perform maintenance tasks. The central challenge when using an IR-based tool is the formation of a high-quality query. When performing bug localization, one easily accessible source of query words is the bug report. A recent paper investigated the sufficiency of this source by using a genetic algorithm (GA) to build high quality queries. Unfortunately, the GA in essence "cheats" as it makes use of query performance when evolving a good query. This raises the question, is it feasible to attain similar results without "cheating?" One approach to providing cheat-free queries is to employ automatic summarization. The performance of the resulting summaries calls into question the sufficiency of the bug reports as a source of query words. To better understand the situation, Information Need Analysis (INA) is applied to quantify both how well the GA is performing and, perhaps more importantly, how well a bug report captures the vocabulary needed to perform IR-based bug localization. The results find that summarization shows potential to produce high-quality queries, but it requires more training data. Furthermore, while bug reports provide a useful source of query words, they are rather limited and thus query expansion techniques, perhaps in combination with summarization, will likely produce higher-quality queries.
软件工程研究人员一直在将信息检索(IR)中的工具和技术应用于诸如bug定位之类的问题,以降低执行维护任务所需的人工工作量。使用基于ir的工具时的主要挑战是形成高质量的查询。在执行bug本地化时,一个容易访问的查询词来源是bug报告。最近的一篇论文通过使用遗传算法(GA)来构建高质量查询来研究该来源的充分性。不幸的是,遗传算法在本质上“作弊”,因为它在进化一个好的查询时利用了查询性能。这就提出了一个问题,在没有“作弊”的情况下获得类似的结果是否可行?提供无作弊查询的一种方法是使用自动摘要。结果摘要的性能使人们对bug报告作为查询词来源的充分性产生疑问。为了更好地理解这种情况,应用信息需求分析(Information Need Analysis, INA)来量化遗传算法的执行情况,以及(可能更重要的)bug报告捕获执行基于ir的bug本地化所需词汇表的程度。结果发现,摘要显示出产生高质量查询的潜力,但它需要更多的训练数据。此外,虽然bug报告提供了有用的查询词来源,但它们相当有限,因此查询扩展技术(也许与摘要结合使用)可能会产生更高质量的查询。
{"title":"On the Value of Bug Reports for Retrieval-Based Bug Localization","authors":"Dawn J Lawrie, D. Binkley","doi":"10.1109/ICSME.2018.00048","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00048","url":null,"abstract":"Software engineering researchers have been applying tools and techniques from information retrieval (IR) to problems such as bug localization to lower the manual effort required to perform maintenance tasks. The central challenge when using an IR-based tool is the formation of a high-quality query. When performing bug localization, one easily accessible source of query words is the bug report. A recent paper investigated the sufficiency of this source by using a genetic algorithm (GA) to build high quality queries. Unfortunately, the GA in essence \"cheats\" as it makes use of query performance when evolving a good query. This raises the question, is it feasible to attain similar results without \"cheating?\" One approach to providing cheat-free queries is to employ automatic summarization. The performance of the resulting summaries calls into question the sufficiency of the bug reports as a source of query words. To better understand the situation, Information Need Analysis (INA) is applied to quantify both how well the GA is performing and, perhaps more importantly, how well a bug report captures the vocabulary needed to perform IR-based bug localization. The results find that summarization shows potential to produce high-quality queries, but it requires more training data. Furthermore, while bug reports provide a useful source of query words, they are rather limited and thus query expansion techniques, perhaps in combination with summarization, will likely produce higher-quality queries.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"9 1","pages":"524-528"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78796752","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}
引用次数: 6
Embracing Technical Debt, from a Startup Company Perspective 从创业公司的角度看待技术债务
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00051
Terese Besker, A. Martini, Rumesh Edirisooriya Lokuge, Kelly Blincoe, J. Bosch
Software startups are typically under extreme pressure to get to market quickly with limited resources and high uncertainty. This pressure and uncertainty is likely to cause startups to accumulate technical debt as they make decisions that are more focused on the short-term than the long-term health of the codebase. However, most research on technical debt has been focused on more mature software teams, who may have less pressure and, therefore, reason about technical debt very differently than software startups. In this study, we seek to understand the organizational factors that lead to and the benefits and challenges associated with the intentional accumulation of technical debt in software startups. We interviewed 16 professionals involved in seven different software startups. We find that the startup phase, the experience of the developers, software knowledge of the founders, and level of employee growth are some of the organizational factors that influence the intentional accumulation of technical debt. In addition, we find the software startups are typically driven to achieve a "good enough level," and this guides the amount of technical debt that they intentionally accumulate to balance the benefits of speed to market and reduced resources with the challenges of later addressing technical debt.
软件初创公司通常面临着巨大的压力,要在有限的资源和高度不确定性的情况下快速进入市场。这种压力和不确定性很可能导致初创公司积累技术债务,因为他们做出的决定更关注短期而不是代码库的长期健康。然而,大多数关于技术债务的研究都集中在更成熟的软件团队上,他们可能压力更小,因此,对技术债务的解释与软件初创公司非常不同。在这项研究中,我们试图了解导致软件创业公司故意积累技术债务的组织因素以及与之相关的利益和挑战。我们采访了来自7家不同软件创业公司的16位专业人士。我们发现,启动阶段、开发人员的经验、创始人的软件知识和员工成长水平是影响有意积累技术债务的一些组织因素。此外,我们发现软件初创公司通常被驱使去达到一个“足够好的水平”,这引导了他们有意积累的技术债务的数量,以平衡市场速度和减少资源的好处,以及后来解决技术债务的挑战。
{"title":"Embracing Technical Debt, from a Startup Company Perspective","authors":"Terese Besker, A. Martini, Rumesh Edirisooriya Lokuge, Kelly Blincoe, J. Bosch","doi":"10.1109/ICSME.2018.00051","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00051","url":null,"abstract":"Software startups are typically under extreme pressure to get to market quickly with limited resources and high uncertainty. This pressure and uncertainty is likely to cause startups to accumulate technical debt as they make decisions that are more focused on the short-term than the long-term health of the codebase. However, most research on technical debt has been focused on more mature software teams, who may have less pressure and, therefore, reason about technical debt very differently than software startups. In this study, we seek to understand the organizational factors that lead to and the benefits and challenges associated with the intentional accumulation of technical debt in software startups. We interviewed 16 professionals involved in seven different software startups. We find that the startup phase, the experience of the developers, software knowledge of the founders, and level of employee growth are some of the organizational factors that influence the intentional accumulation of technical debt. In addition, we find the software startups are typically driven to achieve a \"good enough level,\" and this guides the amount of technical debt that they intentionally accumulate to balance the benefits of speed to market and reduced resources with the challenges of later addressing technical debt.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"215 1","pages":"415-425"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76669390","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}
引用次数: 40
Toward Automatic Summarization of Arbitrary Java Statements for Novice Programmers 面向新手程序员的任意Java语句的自动摘要
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00063
Mohammed Hassan, Emily Hill
Novice programmers sometimes need to understand code written by others. Unfortunately, most software projects lack comments suitable for novices. The lack of comments have been addressed through automated techniques of generating comments based on program statements. However, these techniques lacked the context of how these statements function since they were aimed toward experienced programmers. In this paper, we present a novel technique towards automatically generating comments for Java statements suitable for novice programmers. Our technique not only goes beyond existing approaches to method summarization to meet the needs of novices, it also leverages API documentation when available. In an experimental study of 30 computer science undergraduate students, we observed explanations based on our technique to be preferred over an existing approach.
新手程序员有时需要理解别人写的代码。不幸的是,大多数软件项目缺乏适合新手的注释。通过基于程序语句生成注释的自动化技术解决了缺少注释的问题。然而,这些技术缺乏这些语句如何运行的上下文,因为它们是针对有经验的程序员的。在本文中,我们提出了一种新的技术来自动生成Java语句的注释,适合新手程序员。我们的技术不仅超越了现有的方法总结方法来满足新手的需求,而且还利用了可用的API文档。在一项针对30名计算机科学本科生的实验研究中,我们发现基于我们的技术的解释比现有的方法更受欢迎。
{"title":"Toward Automatic Summarization of Arbitrary Java Statements for Novice Programmers","authors":"Mohammed Hassan, Emily Hill","doi":"10.1109/ICSME.2018.00063","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00063","url":null,"abstract":"Novice programmers sometimes need to understand code written by others. Unfortunately, most software projects lack comments suitable for novices. The lack of comments have been addressed through automated techniques of generating comments based on program statements. However, these techniques lacked the context of how these statements function since they were aimed toward experienced programmers. In this paper, we present a novel technique towards automatically generating comments for Java statements suitable for novice programmers. Our technique not only goes beyond existing approaches to method summarization to meet the needs of novices, it also leverages API documentation when available. In an experimental study of 30 computer science undergraduate students, we observed explanations based on our technique to be preferred over an existing approach.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"55 1","pages":"539-543"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90971590","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
A Closer Look at Real-World Patches 仔细看看真实世界的补丁
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00037
Kui Liu, Dongsun Kim, Anil Koyuncu, Li Li, Tegawendé F. Bissyandé, Yves Le Traon
Bug fixing is a time-consuming and tedious task. To reduce the manual efforts in bug fixing, researchers have presented automated approaches to software repair. Unfortunately, recent studies have shown that the state-of-the-art techniques in automated repair tend to generate patches only for a small number of bugs even with quality issues (e.g., incorrect behavior and nonsensical changes). To improve automated program repair (APR) techniques, the community should deepen its knowledge on repair actions from real-world patches since most of the techniques rely on patches written by human developers. Previous investigations on real-world patches are limited to statement level that is not sufficiently fine-grained to build this knowledge. In this work, we contribute to building this knowledge via a systematic and fine-grained study of 16,450 bug fix commits from seven Java open-source projects. We find that there are opportunities for APR techniques to improve their effectiveness by looking at code elements that have not yet been investigated. We also discuss nine insights into tuning automated repair tools. For example, a small number of statement and expression types are recurrently impacted by real-world patches, and expression-level granularity could reduce search space of finding fix ingredients, where previous studies never explored.
Bug修复是一项耗时且乏味的任务。为了减少修复错误的手工工作,研究人员提出了软件修复的自动化方法。不幸的是,最近的研究表明,自动修复中的最先进技术倾向于仅为少量错误生成补丁,即使存在质量问题(例如,不正确的行为和无意义的更改)。为了改进自动程序修复(APR)技术,社区应该加深对现实世界补丁修复行为的了解,因为大多数技术依赖于人类开发人员编写的补丁。以前对现实世界补丁的调查仅限于语句级别,没有足够的细粒度来构建这种知识。在这项工作中,我们通过对来自7个Java开源项目的16,450个bug修复提交进行系统和细粒度的研究来构建这些知识。我们发现APR技术有机会通过查看尚未研究的代码元素来提高其有效性。我们还讨论了调优自动修复工具的九个见解。例如,少数语句和表达式类型经常受到现实世界补丁的影响,表达式级粒度可以减少寻找修复成分的搜索空间,这是以前的研究从未探索过的。
{"title":"A Closer Look at Real-World Patches","authors":"Kui Liu, Dongsun Kim, Anil Koyuncu, Li Li, Tegawendé F. Bissyandé, Yves Le Traon","doi":"10.1109/ICSME.2018.00037","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00037","url":null,"abstract":"Bug fixing is a time-consuming and tedious task. To reduce the manual efforts in bug fixing, researchers have presented automated approaches to software repair. Unfortunately, recent studies have shown that the state-of-the-art techniques in automated repair tend to generate patches only for a small number of bugs even with quality issues (e.g., incorrect behavior and nonsensical changes). To improve automated program repair (APR) techniques, the community should deepen its knowledge on repair actions from real-world patches since most of the techniques rely on patches written by human developers. Previous investigations on real-world patches are limited to statement level that is not sufficiently fine-grained to build this knowledge. In this work, we contribute to building this knowledge via a systematic and fine-grained study of 16,450 bug fix commits from seven Java open-source projects. We find that there are opportunities for APR techniques to improve their effectiveness by looking at code elements that have not yet been investigated. We also discuss nine insights into tuning automated repair tools. For example, a small number of statement and expression types are recurrently impacted by real-world patches, and expression-level granularity could reduce search space of finding fix ingredients, where previous studies never explored.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"56 1","pages":"275-286"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90991495","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}
引用次数: 48
A Conceptual Replication Study on Bugs that Get Fixed in Open Source Software 开源软件中bug修复的概念复制研究
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00039
Haoren Wang, Huzefa H. Kagdi
Bugs dominate the corrective maintenance and evolutionary changes in large-scale software systems. The topic of bugs has been extensively investigated and reported in the literature. Unfortunately, the existential question of all "whether a reported bug will be fixed or not" has not received much attention. The paper presents an empirical study on four open source projects to examine the factors that influence the likelihood of a bug getting fixed or not. Overall, our study can be contextualized as a conceptual replication of a previous study on Microsoft systems from a commercial domain. The similarities and differences in terms of the design, execution, and results between the two studies are discussed. It was observed from these systems that the reputations of the reporter and assigned developer to fix it, and the number of comments on a bug have the most substantial impact on its probability to get fixed. Moreover, we formulated a predictive model from features available as soon as a bug is reported to estimate whether it will be fixed or not. Intra and inter (cross) project validations were performed. Precision and Recall metrics were used to assess the predictive model. Their values were recorded in the 60% to 70% range.
在大型软件系统中,bug主导着纠正性维护和进化性更改。关于bug的话题已经在文献中进行了广泛的调查和报道。不幸的是,“报告的错误是否会被修复”的存在性问题并没有得到太多的关注。本文对四个开源项目进行了实证研究,以检验影响bug修复可能性的因素。总的来说,我们的研究可以看作是对先前商业领域的微软系统研究的概念复制。讨论了两项研究在设计、执行和结果方面的异同。从这些系统中可以观察到,报告者和指定的开发人员修复它的声誉,以及对错误的评论数量对修复它的可能性有最实质性的影响。此外,我们根据可用的特性制定了一个预测模型,一旦报告了错误,就可以估计它是否会被修复。执行了项目内部和项目间(交叉)验证。精确度和召回率指标被用来评估预测模型。它们的值记录在60%到70%的范围内。
{"title":"A Conceptual Replication Study on Bugs that Get Fixed in Open Source Software","authors":"Haoren Wang, Huzefa H. Kagdi","doi":"10.1109/ICSME.2018.00039","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00039","url":null,"abstract":"Bugs dominate the corrective maintenance and evolutionary changes in large-scale software systems. The topic of bugs has been extensively investigated and reported in the literature. Unfortunately, the existential question of all \"whether a reported bug will be fixed or not\" has not received much attention. The paper presents an empirical study on four open source projects to examine the factors that influence the likelihood of a bug getting fixed or not. Overall, our study can be contextualized as a conceptual replication of a previous study on Microsoft systems from a commercial domain. The similarities and differences in terms of the design, execution, and results between the two studies are discussed. It was observed from these systems that the reputations of the reporter and assigned developer to fix it, and the number of comments on a bug have the most substantial impact on its probability to get fixed. Moreover, we formulated a predictive model from features available as soon as a bug is reported to estimate whether it will be fixed or not. Intra and inter (cross) project validations were performed. Precision and Recall metrics were used to assess the predictive model. Their values were recorded in the 60% to 70% range.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"127 1","pages":"299-310"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85713468","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
期刊
2018 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