首页 > 最新文献

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

英文 中文
Near-Omniscient Debugging for Java Using Size-Limited Execution Trace 使用限制大小的执行跟踪的Java近乎全知调试
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00068
Kazumasa Shimari, T. Ishio, Tetsuya Kanda, Katsuro Inoue
Logging is an important feature for a software system to record its run-time information. Detailed logging allows developers to collect information in situations where they cannot use an interactive debugger, such as continuous integration and web application server cases. However, extensive logging leads to larger execution traces because few instructions could be repeated many times. To record detailed program behavior within limited storage space constraints, we propose Near-Omniscient Debugging, a methodology that records an execution trace using fixed size buffers for each observed instruction. Our tool monitors a Java program's execution and annotates source code with observed values in an HTML format. Developers can easily investigate the execution and share the report on a web server. In case of DaCapo benchmark applications, our tool requires fewer than 1% of the complete execution traces to visualize all runtime values used by 66% of instructions that are executed less than 64 times. Developers also can obtain data dependencies with precision 91.8% and recall 79.0% using this tool.
日志记录是软件系统记录运行时信息的重要功能。详细的日志记录允许开发人员在无法使用交互式调试器的情况下收集信息,例如持续集成和web应用程序服务器情况。但是,大量的日志记录会导致更大的执行跟踪,因为很少有指令可以重复多次。为了在有限的存储空间约束下记录详细的程序行为,我们提出了近全知调试,这种方法使用固定大小的缓冲区记录每个观察到的指令的执行跟踪。我们的工具监视Java程序的执行,并用HTML格式的观察值注释源代码。开发人员可以很容易地调查执行情况,并在web服务器上共享报告。在DaCapo基准测试应用程序的情况下,我们的工具只需要不到1%的完整执行跟踪,就可以可视化66%执行次数少于64次的指令所使用的所有运行时值。使用该工具,开发人员还可以获得精度为91.8%和召回率为79.0%的数据依赖关系。
{"title":"Near-Omniscient Debugging for Java Using Size-Limited Execution Trace","authors":"Kazumasa Shimari, T. Ishio, Tetsuya Kanda, Katsuro Inoue","doi":"10.1109/ICSME.2019.00068","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00068","url":null,"abstract":"Logging is an important feature for a software system to record its run-time information. Detailed logging allows developers to collect information in situations where they cannot use an interactive debugger, such as continuous integration and web application server cases. However, extensive logging leads to larger execution traces because few instructions could be repeated many times. To record detailed program behavior within limited storage space constraints, we propose Near-Omniscient Debugging, a methodology that records an execution trace using fixed size buffers for each observed instruction. Our tool monitors a Java program's execution and annotates source code with observed values in an HTML format. Developers can easily investigate the execution and share the report on a web server. In case of DaCapo benchmark applications, our tool requires fewer than 1% of the complete execution traces to visualize all runtime values used by 66% of instructions that are executed less than 64 times. Developers also can obtain data dependencies with precision 91.8% and recall 79.0% using this tool.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128059793","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
Handling Duplicates in Dockerfiles Families: Learning from Experts 处理Dockerfiles族中的副本:向专家学习
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00086
Mohamed A. Oumaziz, Jean-Rémy Falleri, Xavier Blanc, Tegawendé F. Bissyandé, Jacques Klein
Docker is becoming a popular tool used by developers and end-users to deploy and run software applications. Dockerfiles now belong to software projects as any other software artefacts such as source code or configuration files. Many projects are even starting to maintain families of Dockerfiles rather than a single Dockerfile like the Python project who simultaneously maintains a family of 43 Dockerfiles (specific versions/dependencies). In this paper, we wonder if traditional maintenance challenge of handling duplicates arises in such projects since this challenge is classical in software development, even for non-code software artefacts. Our goal is to provide practitioners a clear explanation for why duplicates arise in projects, and what are the different means to handle duplicates with their pros and cons. To do so, we observe the practices of expert Dockerfile maintainers of Official Docker projects (128 projects) and perform a survey on 25 maintainers from our corpus. We show that duplicates in Dockerfiles are frequent in our corpus, that developers are aware of their existence, are frequently facing them and have a split opinion regarding them (error-prone but easy to maintain with the right tools). Finally, we show that some maintainers manage to limit duplicates by using ad-hoc tools. These tools while sometimes hard to set-up can help reduce the amount of duplicates by up-to 85%.
Docker正在成为开发人员和最终用户用来部署和运行软件应用程序的流行工具。Dockerfiles现在属于软件项目,就像源代码或配置文件等任何其他软件工件一样。许多项目甚至开始维护Dockerfile家族,而不是像Python项目那样同时维护43个Dockerfile家族(特定版本/依赖项)。在本文中,我们想知道处理副本的传统维护挑战是否会出现在这样的项目中,因为这个挑战在软件开发中是经典的,甚至对于非代码软件工件也是如此。我们的目标是为从业者提供一个清晰的解释,为什么在项目中会出现重复,以及处理重复的不同方法是什么,以及它们的优缺点。为此,我们观察了官方Docker项目(128个项目)的专家Dockerfile维护者的做法,并对我们语料库中的25名维护者进行了调查。我们表明Dockerfiles中的重复在我们的语料库中很常见,开发人员意识到它们的存在,经常面对它们,并且对它们有不同的看法(容易出错,但使用正确的工具很容易维护)。最后,我们展示了一些维护者通过使用特殊工具来限制重复。这些工具虽然有时很难设置,但可以帮助减少多达85%的重复量。
{"title":"Handling Duplicates in Dockerfiles Families: Learning from Experts","authors":"Mohamed A. Oumaziz, Jean-Rémy Falleri, Xavier Blanc, Tegawendé F. Bissyandé, Jacques Klein","doi":"10.1109/ICSME.2019.00086","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00086","url":null,"abstract":"Docker is becoming a popular tool used by developers and end-users to deploy and run software applications. Dockerfiles now belong to software projects as any other software artefacts such as source code or configuration files. Many projects are even starting to maintain families of Dockerfiles rather than a single Dockerfile like the Python project who simultaneously maintains a family of 43 Dockerfiles (specific versions/dependencies). In this paper, we wonder if traditional maintenance challenge of handling duplicates arises in such projects since this challenge is classical in software development, even for non-code software artefacts. Our goal is to provide practitioners a clear explanation for why duplicates arise in projects, and what are the different means to handle duplicates with their pros and cons. To do so, we observe the practices of expert Dockerfile maintainers of Official Docker projects (128 projects) and perform a survey on 25 maintainers from our corpus. We show that duplicates in Dockerfiles are frequent in our corpus, that developers are aware of their existence, are frequently facing them and have a split opinion regarding them (error-prone but easy to maintain with the right tools). Finally, we show that some maintainers manage to limit duplicates by using ad-hoc tools. These tools while sometimes hard to set-up can help reduce the amount of duplicates by up-to 85%.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132285590","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}
引用次数: 7
OPIA: A Tool for On-Device Testing of Vulnerabilities in Android Applications OPIA: Android应用的设备漏洞测试工具
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00073
Laura Bello-Jiménez, Alejandro Mazuera-Rozo, M. Linares-Vásquez, G. Bavota
Mobile developers constantly have to deal with users pressure for continuous delivery of apps while keeping quality attributes such as confidentiality and data integrity. To better support developers in testing security vulnerabilities during evolution and maintenance of mobile apps, in this demo we present a novel tool, OPIA, for on-device security testing. OPIA allows developers/testers to (i) conduct SQL-injection attacks and collect logs to identify leaks of sensitive information through record-and-replay testing, and (ii) extract data stored in local databases and shared preferences to identify sensitive information that is not properly encrypted, anonymized. OPIA is publicly available at GitHub.
手机开发者必须不断应对用户的压力,在保证保密性和数据完整性等质量属性的同时持续交付应用。为了更好地支持开发人员在移动应用的发展和维护过程中测试安全漏洞,在这个演示中,我们展示了一个用于设备上安全测试的新工具,OPIA。OPIA允许开发人员/测试人员(i)执行sql注入攻击并收集日志,通过记录和重放测试来识别敏感信息泄漏,以及(ii)提取存储在本地数据库和共享首选项中的数据,以识别未正确加密和匿名的敏感信息。OPIA在GitHub上是公开的。
{"title":"OPIA: A Tool for On-Device Testing of Vulnerabilities in Android Applications","authors":"Laura Bello-Jiménez, Alejandro Mazuera-Rozo, M. Linares-Vásquez, G. Bavota","doi":"10.1109/ICSME.2019.00073","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00073","url":null,"abstract":"Mobile developers constantly have to deal with users pressure for continuous delivery of apps while keeping quality attributes such as confidentiality and data integrity. To better support developers in testing security vulnerabilities during evolution and maintenance of mobile apps, in this demo we present a novel tool, OPIA, for on-device security testing. OPIA allows developers/testers to (i) conduct SQL-injection attacks and collect logs to identify leaks of sensitive information through record-and-replay testing, and (ii) extract data stored in local databases and shared preferences to identify sensitive information that is not properly encrypted, anonymized. OPIA is publicly available at GitHub.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133983641","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
EmoD: An End-to-End Approach for Investigating Emotion Dynamics in Software Development EmoD:在软件开发中研究情感动态的端到端方法
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00038
K. Neupane, Kabo Cheung, Yi Wang
Emotions are an integral part of human nature. Emotion awareness is critical to any form of interpersonal communication and collaboration, including these in the software development process. Recently, the SE community starts having growing interests in emotion awareness in software development. While researchers have accomplished many valuable results, most extant research ignores the dynamic nature of emotion. To investigate the emotion dynamics, SE community needs an effective approach to capture and model emotion dynamics rather than focuses on extracting isolated emotion states. In this paper, we proposed such an approach–EmoD. EmoD is able to automatically collect project teams' communication records, identify the emotions and their intensities in them, model the emotion dynamics into time series, and provide efficient data management. We developed a prototype tool that instantiates the EmoD approach by assembling state-of-the-art NLP, SE, and time series techniques. We demonstrate the utility of the tool using the IPython's project data on GitHub and a visualization solution built on EmoD. Thus, we demonstrate that EmoD can provide end-to-end support for various emotion awareness research and practices through automated data collection, modeling, storage, analysis, and presentation.
情感是人性不可分割的一部分。情感意识对于任何形式的人际沟通和协作都是至关重要的,包括在软件开发过程中。最近,SE社区开始对软件开发中的情感意识产生越来越大的兴趣。虽然研究人员已经取得了许多有价值的成果,但大多数现存的研究都忽视了情绪的动态性。为了研究情绪动态,SE社区需要一种有效的方法来捕获和建模情绪动态,而不是专注于提取孤立的情绪状态。在本文中,我们提出了这样一种方法——emod。EmoD能够自动收集项目团队的沟通记录,识别其中的情绪及其强度,将情绪动态建模为时间序列,提供高效的数据管理。我们开发了一个原型工具,通过装配最先进的NLP、SE和时间序列技术来实例化EmoD方法。我们使用GitHub上的IPython项目数据和基于EmoD的可视化解决方案来演示该工具的实用性。因此,我们证明EmoD可以通过自动化数据收集、建模、存储、分析和呈现,为各种情绪意识研究和实践提供端到端的支持。
{"title":"EmoD: An End-to-End Approach for Investigating Emotion Dynamics in Software Development","authors":"K. Neupane, Kabo Cheung, Yi Wang","doi":"10.1109/ICSME.2019.00038","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00038","url":null,"abstract":"Emotions are an integral part of human nature. Emotion awareness is critical to any form of interpersonal communication and collaboration, including these in the software development process. Recently, the SE community starts having growing interests in emotion awareness in software development. While researchers have accomplished many valuable results, most extant research ignores the dynamic nature of emotion. To investigate the emotion dynamics, SE community needs an effective approach to capture and model emotion dynamics rather than focuses on extracting isolated emotion states. In this paper, we proposed such an approach–EmoD. EmoD is able to automatically collect project teams' communication records, identify the emotions and their intensities in them, model the emotion dynamics into time series, and provide efficient data management. We developed a prototype tool that instantiates the EmoD approach by assembling state-of-the-art NLP, SE, and time series techniques. We demonstrate the utility of the tool using the IPython's project data on GitHub and a visualization solution built on EmoD. Thus, we demonstrate that EmoD can provide end-to-end support for various emotion awareness research and practices through automated data collection, modeling, storage, analysis, and presentation.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132683905","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
How Do Code Changes Evolve in Different Platforms? A Mining-Based Investigation 不同平台上的代码变化是如何演变的?基于采矿的调查
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00033
Markos Viggiato, Johnatan Oliveira, Eduardo Figueiredo, Pooyan Jamshidi, Christian Kästner
Code changes are performed differently in the mobile and non-mobile platforms. Prior work has investigated the differences in specific platforms. However, we still lack a deeper understanding of how code changes evolve across different software platforms. In this paper, we present a study aiming at investigating the frequency of changes and how source code, build and test changes co-evolve in mobile and non-mobile platforms. We developed regression models to explain which factors influence the frequency of changes and applied the Apriori algorithm to find types of changes that frequently co-occur. Our findings show that non-mobile repositories have a higher number of commits per month and our regression models suggest that being mobile significantly impacts on the number of commits in a negative direction when controlling for confound factors, such as code size. We also found that developers do not usually change source code files together with build or test files. We argue that our results can provide valuable information for developers on how changes are performed in different platforms so that practices adopted in successful software systems can be followed.
在移动和非移动平台上执行代码更改是不同的。先前的工作调查了特定平台的差异。然而,我们仍然缺乏对代码变化如何在不同软件平台上演变的更深入的理解。在本文中,我们提出了一项研究,旨在调查变化的频率,以及源代码、构建和测试变化如何在移动和非移动平台上共同发展。我们开发了回归模型来解释哪些因素影响变化的频率,并应用Apriori算法来发现经常同时发生的变化类型。我们的研究结果表明,非移动存储库每月的提交数量更高,我们的回归模型表明,在控制混杂因素(如代码大小)时,移动对提交数量的影响是负向的。我们还发现,开发人员通常不会将源代码文件与构建文件或测试文件一起更改。我们认为,我们的结果可以为开发人员提供有价值的信息,说明如何在不同的平台上执行更改,以便在成功的软件系统中采用可以遵循的实践。
{"title":"How Do Code Changes Evolve in Different Platforms? A Mining-Based Investigation","authors":"Markos Viggiato, Johnatan Oliveira, Eduardo Figueiredo, Pooyan Jamshidi, Christian Kästner","doi":"10.1109/ICSME.2019.00033","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00033","url":null,"abstract":"Code changes are performed differently in the mobile and non-mobile platforms. Prior work has investigated the differences in specific platforms. However, we still lack a deeper understanding of how code changes evolve across different software platforms. In this paper, we present a study aiming at investigating the frequency of changes and how source code, build and test changes co-evolve in mobile and non-mobile platforms. We developed regression models to explain which factors influence the frequency of changes and applied the Apriori algorithm to find types of changes that frequently co-occur. Our findings show that non-mobile repositories have a higher number of commits per month and our regression models suggest that being mobile significantly impacts on the number of commits in a negative direction when controlling for confound factors, such as code size. We also found that developers do not usually change source code files together with build or test files. We argue that our results can provide valuable information for developers on how changes are performed in different platforms so that practices adopted in successful software systems can be followed.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126238917","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}
引用次数: 7
Self-Admitted Technical Debt Removal and Refactoring Actions: Co-Occurrence or More? 自我承认的技术债务消除和重构行为:共存还是更多?
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00029
Martina Iammarino, Fiorella Zampetti, Lerina Aversano, M. D. Penta
Technical Debt (TD) concerns the lack of an adequate solution in a software project, from its design to the source code. Its admittance through comments or commit messages is referred to as Self-Admitted Technical Debt (SATD). Previous research has studied SATD from different perspectives, including its distribution, impact on software quality, and removal. In this paper, we investigate the relationship between refactorings and SATD removal. By leveraging a dataset of SATD and their removals in four open-source projects and by using an automated refactoring detection tool, we study the co-occurrence of refactorings and SATD removals. Results of the study indicate that refactorings are more likely to co-occur with SATD removals than with other commits, however, in most cases, they belong to different quality improvement activities performed at the same time.
技术债务(TD)涉及软件项目中从设计到源代码缺乏适当的解决方案。其通过评论或提交消息的准入被称为自我承认的技术债务(SATD)。以前的研究从不同的角度研究了SATD,包括它的分布、对软件质量的影响以及移除。在本文中,我们研究了重构和SATD去除之间的关系。通过利用四个开源项目中的SATD及其移除数据集,并使用自动化重构检测工具,我们研究了重构和SATD移除的共存性。研究结果表明,重构更有可能与SATD删除一起发生,而不是与其他提交一起发生,然而,在大多数情况下,它们属于同时执行的不同质量改进活动。
{"title":"Self-Admitted Technical Debt Removal and Refactoring Actions: Co-Occurrence or More?","authors":"Martina Iammarino, Fiorella Zampetti, Lerina Aversano, M. D. Penta","doi":"10.1109/ICSME.2019.00029","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00029","url":null,"abstract":"Technical Debt (TD) concerns the lack of an adequate solution in a software project, from its design to the source code. Its admittance through comments or commit messages is referred to as Self-Admitted Technical Debt (SATD). Previous research has studied SATD from different perspectives, including its distribution, impact on software quality, and removal. In this paper, we investigate the relationship between refactorings and SATD removal. By leveraging a dataset of SATD and their removals in four open-source projects and by using an automated refactoring detection tool, we study the co-occurrence of refactorings and SATD removals. Results of the study indicate that refactorings are more likely to co-occur with SATD removals than with other commits, however, in most cases, they belong to different quality improvement activities performed at the same time.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114865795","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
Synthesizing Program Execution Time Discrepancies in Julia Used for Scientific Software 用于科学软件的Julia中程序执行时间差异的综合
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00083
Effat Farhana, Nasif Imtiaz, A. Rahman
Scientific software is defined as software that is used to analyze data to investigate unanswered research questions in the scientific community. Developers use programming languages such as Julia to build scientific software. When programming with Julia, developers experience program execution time discrepancy i.e. not obtaining desired program execution time, which hinders them to efficiently complete their tasks. The goal of this paper is to help developers in achieving desired program execution time for Julia by identifying the causes of why program execution time discrepancies happen with an empirical study of Stack Overflow posts. We conduct an empirical study with 263 Julia-related posts collected from Stack Overflow, and apply qualitative analysis on the collected 263 posts. We identify 9 categories of program execution time discrepancies for Julia, which include discrepancies related to data structures usage such as, arrays and dictionaries. We also identify 10 causes that explain why the program execution time discrepancies happen. For example, we identify program execution time discrepancy to happen when developers unnecessarily allocate memory by using array comprehension.
科学软件被定义为用于分析数据以调查科学界未解决的研究问题的软件。开发人员使用诸如Julia之类的编程语言来构建科学软件。当使用Julia编程时,开发人员会遇到程序执行时间差异,即没有获得期望的程序执行时间,这阻碍了他们有效地完成任务。本文的目标是通过对Stack Overflow帖子的实证研究来确定程序执行时间差异发生的原因,从而帮助开发人员实现所需的Julia程序执行时间。我们对从Stack Overflow上收集到的263篇julia相关的文章进行了实证研究,并对收集到的263篇文章进行了定性分析。我们确定了Julia的9类程序执行时间差异,其中包括与数据结构使用相关的差异,如数组和字典。我们还确定了解释程序执行时间差异发生的10个原因。例如,当开发人员使用数组推导来分配不必要的内存时,我们会识别程序执行时间的差异。
{"title":"Synthesizing Program Execution Time Discrepancies in Julia Used for Scientific Software","authors":"Effat Farhana, Nasif Imtiaz, A. Rahman","doi":"10.1109/ICSME.2019.00083","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00083","url":null,"abstract":"Scientific software is defined as software that is used to analyze data to investigate unanswered research questions in the scientific community. Developers use programming languages such as Julia to build scientific software. When programming with Julia, developers experience program execution time discrepancy i.e. not obtaining desired program execution time, which hinders them to efficiently complete their tasks. The goal of this paper is to help developers in achieving desired program execution time for Julia by identifying the causes of why program execution time discrepancies happen with an empirical study of Stack Overflow posts. We conduct an empirical study with 263 Julia-related posts collected from Stack Overflow, and apply qualitative analysis on the collected 263 posts. We identify 9 categories of program execution time discrepancies for Julia, which include discrepancies related to data structures usage such as, arrays and dictionaries. We also identify 10 causes that explain why the program execution time discrepancies happen. For example, we identify program execution time discrepancy to happen when developers unnecessarily allocate memory by using array comprehension.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122305540","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}
引用次数: 5
[Title page i] [标题页i]
Pub Date : 2019-09-01 DOI: 10.1109/icsme.2019.00001
{"title":"[Title page i]","authors":"","doi":"10.1109/icsme.2019.00001","DOIUrl":"https://doi.org/10.1109/icsme.2019.00001","url":null,"abstract":"","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132783059","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
An Exploratory Study of Logging Configuration Practice in Java Java日志配置实践的探索性研究
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00079
Chen Zhi, Jianwei Yin, Shuiguang Deng, Maoxin Ye, Min Fu, Tao Xie
Logging components are an integral element of software systems. These logging components receive the logging requests generated by the logging code and process these requests according to logging configurations. Logging configurations play an important role on the functionality, performance, and reliability of logging. Although recent research has been conducted to understand and improve current practice on logging code, no existing research focuses on logging configurations. To fill this gap, we conduct an exploratory study on logging configuration practice of 10 open-source projects and 10 industrial projects written in Java in various sizes and domains. We quantitatively show how logging configurations are used with respect to logging management, storage, and formatting. We categorize and analyze the change history (1,213 revisions) of logging configurations to understand how the logging configurations evolve. Based on these study results, we reveal 10 findings about current practice of logging configurations. As a proof of concept, we develop a simple detector based on some of our findings. We apply our detector on three popular open-source projects and identify three long-lived issues (more than two years). All these issues are confirmed and two of them have been fixed by the open-source developers.
日志组件是软件系统的一个组成部分。这些日志组件接收由日志代码生成的日志请求,并根据日志配置处理这些请求。日志配置对日志的功能、性能和可靠性起着重要的作用。虽然最近的研究是为了理解和改进当前的日志代码实践,但是没有研究关注日志配置。为了填补这一空白,我们对不同规模和领域的10个开源项目和10个用Java编写的工业项目的日志配置实践进行了探索性研究。我们定量地展示了如何在日志管理、存储和格式化方面使用日志配置。我们对日志配置的变更历史(1213次修订)进行了分类和分析,以了解日志配置是如何演变的。基于这些研究结果,我们揭示了当前测井配置实践的10个发现。作为概念验证,我们根据我们的一些发现开发了一个简单的探测器。我们将检测器应用于三个流行的开源项目,并确定了三个长期存在的问题(超过两年)。所有这些问题都得到了确认,其中两个问题已经被开源开发者修复。
{"title":"An Exploratory Study of Logging Configuration Practice in Java","authors":"Chen Zhi, Jianwei Yin, Shuiguang Deng, Maoxin Ye, Min Fu, Tao Xie","doi":"10.1109/ICSME.2019.00079","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00079","url":null,"abstract":"Logging components are an integral element of software systems. These logging components receive the logging requests generated by the logging code and process these requests according to logging configurations. Logging configurations play an important role on the functionality, performance, and reliability of logging. Although recent research has been conducted to understand and improve current practice on logging code, no existing research focuses on logging configurations. To fill this gap, we conduct an exploratory study on logging configuration practice of 10 open-source projects and 10 industrial projects written in Java in various sizes and domains. We quantitatively show how logging configurations are used with respect to logging management, storage, and formatting. We categorize and analyze the change history (1,213 revisions) of logging configurations to understand how the logging configurations evolve. Based on these study results, we reveal 10 findings about current practice of logging configurations. As a proof of concept, we develop a simple detector based on some of our findings. We apply our detector on three popular open-source projects and identify three long-lived issues (more than two years). All these issues are confirmed and two of them have been fixed by the open-source developers.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133386945","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
Sciit: Aligning Source Control Management and Issue Tracking Architectures 科学:调整源代码控制管理和问题跟踪体系结构
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00069
Nystrom Edwards, Dhitiwat Jongsuebchoke, Tim Storer
This paper presents sciit, a distributed issue tracker. Distributed issue tracking eliminates much of the friction that is otherwise necessitated by separately maintaining source code in a distributed source control management system (SCM) and task information in a centralised issue tracker. Sciit goes beyond the state of the art in distributed issue tracking by treating issues as first class change control items, represented as fragments of text anywhere within the SCM. This approach treats issues as representations of work in progress alongside other project artefacts. This alignment allows much of the meta-data about an issue, such as status, affected components and participants to be inferred directly from the state of the SCM, rather than requiring maintenance of this information by a developer. The paper presents a scenario to illustrate the benefits of sciit and an outline of the tool's architecture.
本文提出了一个分布式问题跟踪器sciit。分布式问题跟踪消除了在分布式源代码控制管理系统(SCM)中单独维护源代码和在集中式问题跟踪器中单独维护任务信息所必需的许多摩擦。Sciit超越了分布式问题跟踪的技术水平,它将问题视为第一类变更控制项,在SCM中的任何地方以文本片段的形式表示。这种方法将问题视为与其他项目工件一起进行中的工作的表示。这种一致性允许直接从SCM的状态中推断出关于一个问题的元数据,例如状态、受影响的组件和参与者,而不需要开发人员维护这些信息。本文给出了一个场景来说明sciit的好处,并概述了该工具的体系结构。
{"title":"Sciit: Aligning Source Control Management and Issue Tracking Architectures","authors":"Nystrom Edwards, Dhitiwat Jongsuebchoke, Tim Storer","doi":"10.1109/ICSME.2019.00069","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00069","url":null,"abstract":"This paper presents sciit, a distributed issue tracker. Distributed issue tracking eliminates much of the friction that is otherwise necessitated by separately maintaining source code in a distributed source control management system (SCM) and task information in a centralised issue tracker. Sciit goes beyond the state of the art in distributed issue tracking by treating issues as first class change control items, represented as fragments of text anywhere within the SCM. This approach treats issues as representations of work in progress alongside other project artefacts. This alignment allows much of the meta-data about an issue, such as status, affected components and participants to be inferred directly from the state of the SCM, rather than requiring maintenance of this information by a developer. The paper presents a scenario to illustrate the benefits of sciit and an outline of the tool's architecture.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126896095","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
期刊
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