首页 > 最新文献

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

英文 中文
Studying the Impact of Policy Changes on Bug Handling Performance 研究策略变化对Bug处理性能的影响
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00093
Zeinab Abou Khalil
The majority of the software development effort is spent on software maintenance. Bug handling constitutes one of the major software maintenance activities. Earlier studies have empirically investigated various aspects of bug handling, such as bug triaging, bug fixing, and bug process analysis. However, results from previous studies may not be applicable to contemporary agile software development practices.Moreover, these studies did not investigate how changes in the development policies and supporting tools impact the bug handling process. Therefore, our main goal is to investigate the impact of such changes on the bug handling process performance. To do so, we are conducting empirical studies on large and long-lived open source software projects. We report on our current research findings and outline the ongoing Ph.D. research project of the first author.
软件开发的大部分工作都花在软件维护上。错误处理是主要的软件维护活动之一。早期的研究经验地调查了错误处理的各个方面,例如错误分类、错误修复和错误过程分析。然而,以前的研究结果可能不适用于当前的敏捷软件开发实践。此外,这些研究没有调查开发策略和支持工具的变化如何影响bug处理过程。因此,我们的主要目标是调查这些更改对bug处理过程性能的影响。为了做到这一点,我们正在对大型和长期存在的开源软件项目进行实证研究。我们报告我们目前的研究成果,并概述第一作者正在进行的博士研究项目。
{"title":"Studying the Impact of Policy Changes on Bug Handling Performance","authors":"Zeinab Abou Khalil","doi":"10.1109/ICSME.2019.00093","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00093","url":null,"abstract":"The majority of the software development effort is spent on software maintenance. Bug handling constitutes one of the major software maintenance activities. Earlier studies have empirically investigated various aspects of bug handling, such as bug triaging, bug fixing, and bug process analysis. However, results from previous studies may not be applicable to contemporary agile software development practices.Moreover, these studies did not investigate how changes in the development policies and supporting tools impact the bug handling process. Therefore, our main goal is to investigate the impact of such changes on the bug handling process performance. To do so, we are conducting empirical studies on large and long-lived open source software projects. We report on our current research findings and outline the ongoing Ph.D. research project of the first author.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"24 1","pages":"590-594"},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86297369","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
Reducing Code Duplication by Identifying Fresh Domain Abstractions 通过识别新的领域抽象来减少代码重复
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00020
A. S. Klusener, A. Mooij, J. Ketema, Hans van Wezep
When software components are developed iteratively, code frequently evolves in an inductive manner: a unit (class, method, etc.) is created and is then copied and modified many times. Such development often happens when variation points and, hence, proper domain abstractions are initially unclear. As a result, there may be substantial amounts of code duplication, and the code may be difficult to understand and maintain, warranting a redesign. We apply a model-based process to semi-automatically redesign an inductively-evolved industrial adapter component written in C++: we use reverse engineering to obtain models of the component, and generate redesigned code from the models. Based on our experience, we propose to use three models to help recover understanding of inductively-evolved components, and transform the components into redesigned implementations. Guided by a reference design, a component's code is analyzed and a legacy model is extracted that captures the component's functionality in a form close to its original structure. The legacy model is then unfolded, creating a flat model which eliminates design decisions by focusing on functionality in terms of external interfaces. Analyzing the variation points of the flat model yields a redesigned model and fresh domain abstractions to be used in the new design of the component.
当迭代地开发软件组件时,代码经常以归纳的方式发展:创建一个单元(类、方法等),然后多次复制和修改。这样的开发经常发生在变化点,因此,适当的领域抽象最初是不清楚的。因此,可能会有大量的代码重复,并且代码可能难以理解和维护,从而需要重新设计。我们应用基于模型的过程来半自动地重新设计用c++编写的感应式发展的工业适配器组件:我们使用逆向工程来获得组件的模型,并从模型中生成重新设计的代码。根据我们的经验,我们建议使用三个模型来帮助恢复对归纳演化组件的理解,并将组件转换为重新设计的实现。在参考设计的指导下,分析组件的代码并提取遗留模型,该模型以接近其原始结构的形式捕获组件的功能。然后展开遗留模型,创建一个平面模型,通过关注外部接口方面的功能来消除设计决策。分析平面模型的变异点可以得到一个重新设计的模型和新的领域抽象,以便在新的组件设计中使用。
{"title":"Reducing Code Duplication by Identifying Fresh Domain Abstractions","authors":"A. S. Klusener, A. Mooij, J. Ketema, Hans van Wezep","doi":"10.1109/ICSME.2018.00020","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00020","url":null,"abstract":"When software components are developed iteratively, code frequently evolves in an inductive manner: a unit (class, method, etc.) is created and is then copied and modified many times. Such development often happens when variation points and, hence, proper domain abstractions are initially unclear. As a result, there may be substantial amounts of code duplication, and the code may be difficult to understand and maintain, warranting a redesign. We apply a model-based process to semi-automatically redesign an inductively-evolved industrial adapter component written in C++: we use reverse engineering to obtain models of the component, and generate redesigned code from the models. Based on our experience, we propose to use three models to help recover understanding of inductively-evolved components, and transform the components into redesigned implementations. Guided by a reference design, a component's code is analyzed and a legacy model is extracted that captures the component's functionality in a form close to its original structure. The legacy model is then unfolded, creating a flat model which eliminates design decisions by focusing on functionality in terms of external interfaces. Analyzing the variation points of the flat model yields a redesigned model and fresh domain abstractions to be used in the new design of the component.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"45 1","pages":"569-578"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"73764437","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
On the Impact of Tokenizer and Parameters on N-Gram Based Code Analysis 标记器和参数对基于N-Gram的代码分析的影响
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00053
Matthieu Jimenez, Maxime Cordy, Yves Le Traon, Mike Papadakis
Recent research shows that language models, such as n-gram models, are useful at a wide variety of software engineering tasks, e.g., code completion, bug identification, code summarisation, etc. However, such models require the appropriate set of numerous parameters. Moreover, the different ways one can read code essentially yield different models (based on the different sequences of tokens). In this paper, we focus on n-gram models and evaluate how the use of tokenizers, smoothing, unknown threshold and n values impact the predicting ability of these models. Thus, we compare the use of multiple tokenizers and sets of different parameters (smoothing, unknown threshold and n values) with the aim of identifying the most appropriate combinations. Our results show that the Modified Kneser-Ney smoothing technique performs best, while n values are depended on the choice of the tokenizer, with values 4 or 5 offering a good trade-off between entropy and computation time. Interestingly, we find that tokenizers treating the code as simple text are the most robust ones. Finally, we demonstrate that the differences between the tokenizers are of practical importance and have the potential of changing the conclusions of a given experiment.
最近的研究表明,语言模型,如n-gram模型,在各种各样的软件工程任务中都很有用,例如,代码完成,错误识别,代码总结等。然而,这样的模型需要一组适当的参数。此外,读取代码的不同方式本质上产生不同的模型(基于不同的令牌序列)。在本文中,我们关注n-gram模型,并评估标记器、平滑、未知阈值和n值的使用如何影响这些模型的预测能力。因此,我们比较了多个标记器和不同参数集(平滑、未知阈值和n值)的使用,目的是确定最合适的组合。我们的结果表明,改进的Kneser-Ney平滑技术表现最好,而n值取决于标记器的选择,值4或5在熵和计算时间之间提供了很好的权衡。有趣的是,我们发现将代码视为简单文本的标记器是最健壮的。最后,我们证明了标记器之间的差异具有实际重要性,并且有可能改变给定实验的结论。
{"title":"On the Impact of Tokenizer and Parameters on N-Gram Based Code Analysis","authors":"Matthieu Jimenez, Maxime Cordy, Yves Le Traon, Mike Papadakis","doi":"10.1109/ICSME.2018.00053","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00053","url":null,"abstract":"Recent research shows that language models, such as n-gram models, are useful at a wide variety of software engineering tasks, e.g., code completion, bug identification, code summarisation, etc. However, such models require the appropriate set of numerous parameters. Moreover, the different ways one can read code essentially yield different models (based on the different sequences of tokens). In this paper, we focus on n-gram models and evaluate how the use of tokenizers, smoothing, unknown threshold and n values impact the predicting ability of these models. Thus, we compare the use of multiple tokenizers and sets of different parameters (smoothing, unknown threshold and n values) with the aim of identifying the most appropriate combinations. Our results show that the Modified Kneser-Ney smoothing technique performs best, while n values are depended on the choice of the tokenizer, with values 4 or 5 offering a good trade-off between entropy and computation time. Interestingly, we find that tokenizers treating the code as simple text are the most robust ones. Finally, we demonstrate that the differences between the tokenizers are of practical importance and have the potential of changing the conclusions of a given experiment.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"65-66 1","pages":"437-448"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77205592","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}
引用次数: 16
Team Maturity in Agile Software Development: The Impact on Productivity 敏捷软件开发中的团队成熟度:对生产力的影响
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00091
Sandra L. Ramirez-Mora, H. Oktaba
A main goal in Agile Software Development (ASD) is the productivity improvement: Organizations want to increase the amount of developed software and reduce the software development costs. Nevertheless, there are many factors impacting productivity in ASD. After conducting a Systematic Mapping Study, it was noted that many of the factors affecting productivity in ASD are related to team aspects. Social science states that mature teams can reach high productivity levels, but in Software Engineering there is a lack of research on that topic. Due to the above, a study was designed to determine the impact of team maturity on productivity in ASD. This work describes the research proposal.
敏捷软件开发(ASD)的主要目标是提高生产力:组织希望增加开发软件的数量并降低软件开发成本。然而,有许多因素影响自闭症患者的生产力。在进行了系统的映射研究之后,我们注意到许多影响ASD生产力的因素都与团队方面有关。社会科学表明,成熟的团队可以达到高生产力水平,但在软件工程中,缺乏对该主题的研究。由于上述原因,我们设计了一项研究来确定团队成熟度对ASD中生产力的影响。本工作描述了研究计划。
{"title":"Team Maturity in Agile Software Development: The Impact on Productivity","authors":"Sandra L. Ramirez-Mora, H. Oktaba","doi":"10.1109/ICSME.2018.00091","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00091","url":null,"abstract":"A main goal in Agile Software Development (ASD) is the productivity improvement: Organizations want to increase the amount of developed software and reduce the software development costs. Nevertheless, there are many factors impacting productivity in ASD. After conducting a Systematic Mapping Study, it was noted that many of the factors affecting productivity in ASD are related to team aspects. Social science states that mature teams can reach high productivity levels, but in Software Engineering there is a lack of research on that topic. Due to the above, a study was designed to determine the impact of team maturity on productivity in ASD. This work describes the research proposal.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"54 1","pages":"732-736"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78837380","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}
引用次数: 19
Communicative Intention in Code Review Questions 代码审查问题中的交际意图
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00061
Felipe Ebert, F. C. Filho, Nicole Novielli, Alexander Serebrenik
During code review, developers request clarifications, suggest improvements, or ask for explanations about the rationale behind the implementation choices. We envision the emergence of tools to support developers during code review based on the automatic analysis of the argumentation structure and communicative intentions conveyed by developers' comments. As a preliminary step towards this goal, we conducted an exploratory case study by manually classifying 499 questions extracted from 399 Android code reviews to understand the real communicative intentions they convey. We observed that the majority of questions actually serve information seeking goals. Still, they represent less than half of the annotated sample, with other questions being used to serve a wider variety of developers' communication goals, including suggestions, request for action, and criticism. Based on our findings we formulate hypotheses on communicative intentions in code reviews that should be confirmed or rejected by follow-up studies.
在代码审查期间,开发人员要求澄清,提出改进建议,或者要求解释实现选择背后的基本原理。我们设想在基于自动分析论证结构和由开发人员注释传达的交流意图的基础上,在代码审查期间支持开发人员的工具的出现。作为实现这一目标的第一步,我们进行了一个探索性案例研究,通过手动分类从399个Android代码审查中提取的499个问题,以了解它们传达的真实交流意图。我们观察到,大多数问题实际上都是为了寻求信息。尽管如此,它们只代表了不到一半的注释样本,其他问题被用来服务于更广泛的开发人员交流目标,包括建议、行动请求和批评。基于我们的发现,我们对代码审查中的交流意图提出了假设,这些假设应该在后续研究中得到证实或拒绝。
{"title":"Communicative Intention in Code Review Questions","authors":"Felipe Ebert, F. C. Filho, Nicole Novielli, Alexander Serebrenik","doi":"10.1109/ICSME.2018.00061","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00061","url":null,"abstract":"During code review, developers request clarifications, suggest improvements, or ask for explanations about the rationale behind the implementation choices. We envision the emergence of tools to support developers during code review based on the automatic analysis of the argumentation structure and communicative intentions conveyed by developers' comments. As a preliminary step towards this goal, we conducted an exploratory case study by manually classifying 499 questions extracted from 399 Android code reviews to understand the real communicative intentions they convey. We observed that the majority of questions actually serve information seeking goals. Still, they represent less than half of the annotated sample, with other questions being used to serve a wider variety of developers' communication goals, including suggestions, request for action, and criticism. Based on our findings we formulate hypotheses on communicative intentions in code reviews that should be confirmed or rejected by follow-up studies.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"42 1","pages":"519-523"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80559905","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}
引用次数: 28
Artefact: An R Implementation of the AutoSpearman Function 人工制品:自动矛兵功能的R实现
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00083
Jirayus Jiarpakdee, C. Tantithamthavorn, Christoph Treude
This artefact is the implementation of AutoSpearman, an automated metric selection approach based on correlation analyses. The goal of AutoSpearman is to automatically mitigate correlated metrics prior to constructing analytical models. This artefact is implemented as an R package and is available in the GitHub repository. We provide descriptions and R code snippets for the installation of AutoSpearman and usage examples.
该工件是AutoSpearman的实现,AutoSpearman是一种基于相关分析的自动度量选择方法。AutoSpearman的目标是在构建分析模型之前自动减轻相关指标。这个工件是作为一个R包实现的,可以在GitHub存储库中获得。我们为AutoSpearman的安装和使用示例提供了描述和R代码片段。
{"title":"Artefact: An R Implementation of the AutoSpearman Function","authors":"Jirayus Jiarpakdee, C. Tantithamthavorn, Christoph Treude","doi":"10.1109/ICSME.2018.00083","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00083","url":null,"abstract":"This artefact is the implementation of AutoSpearman, an automated metric selection approach based on correlation analyses. The goal of AutoSpearman is to automatically mitigate correlated metrics prior to constructing analytical models. This artefact is implemented as an R package and is available in the GitHub repository. We provide descriptions and R code snippets for the installation of AutoSpearman and usage examples.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"18 1","pages":"711-711"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79705962","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}
引用次数: 3
BLIMP Tracer: Integrating Build Impact Analysis with Code Review BLIMP跟踪器:集成构建影响分析和代码审查
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00078
R. Wen, David Gilbert, Michael G. Roche, Shane McIntosh
Code review is an integral part of modern software development, where patch authors invite fellow developers to inspect code changes. While code review boasts technical and non-technical benefits, it is a costly use of developer time, who need to switch contexts away from their current development tasks. Since a careful code review requires even more time, developers often make intuition-based decisions about the patches that they will invest effort in carefully reviewing. Our key intuition in this paper is that patches that impact mission-critical project deliverables or deliverables that cover a broad set of products may require more reviewing effort than others. To help developers identify such patches, we introduce BLIMP Tracer, a build impact analysis system that we developed and integrated with the code review platform used by a globally distributed product team at Dell EMC, a large multinational corporation. BLIMP Tracer operates on a Build Dependency Graph (BDG) that describes how each file in the system is processed to produce the set of intermediate and output deliverables. For a given patch, BLIMP Tracer then traverses the BDG to identify the deliverables that are impacted by the change. Finally, the results are reported directly within the code review interface. To evaluate BLIMP Tracer, we conducted a qualitative study with 45 developers, observing that BLIMP Tracer not only improves the speed and accuracy of identifying the set of deliverables that are impacted by a patch, but also helps the community to better understand the project architecture.
代码审查是现代软件开发的一个组成部分,补丁作者邀请其他开发人员检查代码更改。虽然代码审查拥有技术和非技术方面的好处,但它是对开发人员时间的昂贵使用,开发人员需要从当前的开发任务切换上下文。由于仔细的代码审查需要更多的时间,开发人员经常根据直觉做出决定,他们将投入精力仔细审查补丁。在本文中,我们的主要直觉是,影响关键任务的项目可交付成果或覆盖广泛产品集合的可交付成果的补丁可能需要比其他补丁更多的审查工作。为了帮助开发人员识别这些补丁,我们引入了BLIMP Tracer,这是一个我们开发的构建影响分析系统,并与大型跨国公司Dell EMC的全球分布式产品团队使用的代码审查平台集成在一起。BLIMP Tracer在构建依赖图(BDG)上运行,BDG描述了如何处理系统中的每个文件以产生一组中间和输出可交付成果。对于给定的补丁,BLIMP Tracer然后遍历BDG以确定受更改影响的可交付成果。最后,结果直接在代码审查界面中报告。为了评估BLIMP Tracer,我们对45名开发人员进行了定性研究,观察到BLIMP Tracer不仅提高了识别受补丁影响的交付成果集的速度和准确性,而且还帮助社区更好地理解项目架构。
{"title":"BLIMP Tracer: Integrating Build Impact Analysis with Code Review","authors":"R. Wen, David Gilbert, Michael G. Roche, Shane McIntosh","doi":"10.1109/ICSME.2018.00078","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00078","url":null,"abstract":"Code review is an integral part of modern software development, where patch authors invite fellow developers to inspect code changes. While code review boasts technical and non-technical benefits, it is a costly use of developer time, who need to switch contexts away from their current development tasks. Since a careful code review requires even more time, developers often make intuition-based decisions about the patches that they will invest effort in carefully reviewing. Our key intuition in this paper is that patches that impact mission-critical project deliverables or deliverables that cover a broad set of products may require more reviewing effort than others. To help developers identify such patches, we introduce BLIMP Tracer, a build impact analysis system that we developed and integrated with the code review platform used by a globally distributed product team at Dell EMC, a large multinational corporation. BLIMP Tracer operates on a Build Dependency Graph (BDG) that describes how each file in the system is processed to produce the set of intermediate and output deliverables. For a given patch, BLIMP Tracer then traverses the BDG to identify the deliverables that are impacted by the change. Finally, the results are reported directly within the code review interface. To evaluate BLIMP Tracer, we conducted a qualitative study with 45 developers, observing that BLIMP Tracer not only improves the speed and accuracy of identifying the set of deliverables that are impacted by a patch, but also helps the community to better understand the project architecture.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"1 1","pages":"685-694"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89390075","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}
引用次数: 16
A Qualitative Study of Variability Management of Control Software for Industrial Automation Systems 工业自动化系统控制软件可变性管理的定性研究
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00071
J. Fischer, S. Bougouffa, Alexander Schlie, Ina Schaefer, B. Vogel‐Heuser
Software product line engineering (SPLE) provides a systematic approach to manage variants and versions arising throughout the development of software systems. While SPLE is successfully applied for variant management in the domain of software engineering, the approach is still not widely spread in industrial automated production systems (aPS). Previous studies highlight the interdisciplinary nature of aPS as a reason for not applying SPLE, since control software variants and versions also result from changes in other disciplines such as the mechanical engineering department (i.e. exchange of a sensor). Additionally, the software may evolve over decades at the customer site. In order to gain a better understanding of the challenges in the development of aPS and the constraints hindering the use of SPLE, we conducted several interviews with software development engineers from the domain of aPS. The interviews main aim was to get an overview of the current state of variability management and applied planned and unplanned software reuse strategies. Based on these insights, we summarize the main results useable for a transition from currently deployed variability management concepts in aPS to the SPLE approach.
软件产品线工程(SPLE)提供了一种系统的方法来管理软件系统开发过程中出现的变体和版本。虽然SPLE在软件工程领域成功地应用于变体管理,但该方法在工业自动化生产系统(aPS)中仍未得到广泛推广。先前的研究强调ap的跨学科性质是不应用SPLE的原因,因为控制软件的变体和版本也会导致其他学科的变化,如机械工程部门(即传感器的交换)。此外,软件可能在客户现场发展数十年。为了更好地理解ap开发中的挑战和阻碍使用SPLE的限制,我们对来自ap领域的软件开发工程师进行了几次采访。访谈的主要目的是获得可变性管理的当前状态的概述,以及应用计划的和非计划的软件重用策略。基于这些见解,我们总结了从ap中当前部署的可变性管理概念到SPLE方法转换的主要结果。
{"title":"A Qualitative Study of Variability Management of Control Software for Industrial Automation Systems","authors":"J. Fischer, S. Bougouffa, Alexander Schlie, Ina Schaefer, B. Vogel‐Heuser","doi":"10.1109/ICSME.2018.00071","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00071","url":null,"abstract":"Software product line engineering (SPLE) provides a systematic approach to manage variants and versions arising throughout the development of software systems. While SPLE is successfully applied for variant management in the domain of software engineering, the approach is still not widely spread in industrial automated production systems (aPS). Previous studies highlight the interdisciplinary nature of aPS as a reason for not applying SPLE, since control software variants and versions also result from changes in other disciplines such as the mechanical engineering department (i.e. exchange of a sensor). Additionally, the software may evolve over decades at the customer site. In order to gain a better understanding of the challenges in the development of aPS and the constraints hindering the use of SPLE, we conducted several interviews with software development engineers from the domain of aPS. The interviews main aim was to get an overview of the current state of variability management and applied planned and unplanned software reuse strategies. Based on these insights, we summarize the main results useable for a transition from currently deployed variability management concepts in aPS to the SPLE approach.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"89 1","pages":"615-624"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90582912","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
An Empirical Study of Flaky Tests in Android Apps Android应用中片状测试的实证研究
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00062
S. Thorve, Chandani Sreshtha, Na Meng
A flaky test is a test that may fail or pass for the same code under testing (CUT). Flaky tests could be harmful to developers because the non-deterministic test outcome is not reliable and developers cannot easily debug the code. A prior study characterized the root causes and fixing strategies of flaky tests by analyzing commits of 51 Apache open source projects, without analyzing any Android app. Due to the popular usage of Android devices and the multitude of interactions of Android apps with third-party software libraries, hardware, network, and users, we were curious to find if the Android apps manifested unique flakiness patterns and called for any special resolution for flaky tests as compared to the existing literature. For this paper, we conducted an empirical study to characterize the flaky tests in Android apps. By classifying the root causes and fixing strategies of flakiness, we aimed to investigate how our proposed characterization for flakiness in Android apps varies from prior findings, and whether there are domain-specific flakiness patterns. After mining GitHub, we found 29 Android projects containing 77 commits that were relevant to flakiness. We identified five root causes of Android apps' flakiness. We revealed three novel causes - Dependency, Program Logic, and UI. Five types of resolution strategies were observed to address the flaky behavior. Many of the examined commits show developers' attempt to fix flakiness by changing software implementation in various ways. However, there are still 13% commits that simply skipped or removed the flaky tests. Our observations provide useful insights for future research on flaky tests of Android apps.
片状测试是指在测试(CUT)下的相同代码可能失败或通过的测试。不可靠的测试可能对开发人员有害,因为不确定的测试结果不可靠,开发人员无法轻松调试代码。之前的一项研究通过分析51个Apache开源项目的提交,在没有分析任何Android应用的情况下,描述了不可靠测试的根本原因和修复策略。由于Android设备的广泛使用以及Android应用与第三方软件库、硬件、网络和用户的大量交互,与现有文献相比,我们很想知道Android应用是否表现出独特的片状模式,是否需要针对片状测试的特殊解决方案。在本文中,我们对Android应用中的片状测试进行了实证研究。通过对易碎性的根本原因和修复策略进行分类,我们的目标是调查我们提出的Android应用中易碎性的特征与先前的发现有何不同,以及是否存在特定领域的易碎性模式。在挖掘GitHub后,我们发现了29个Android项目,其中包含77个与flakiness相关的提交。我们确定了Android应用不稳定的五个根本原因。我们揭示了三个新的原因——依赖性、程序逻辑和用户界面。观察到五种类型的解决策略来解决片状行为。许多被检查的提交显示了开发人员试图通过以各种方式更改软件实现来修复漏洞。然而,仍然有13%的提交只是跳过或删除了不稳定的测试。我们的观察结果为未来Android应用的零散测试研究提供了有用的见解。
{"title":"An Empirical Study of Flaky Tests in Android Apps","authors":"S. Thorve, Chandani Sreshtha, Na Meng","doi":"10.1109/ICSME.2018.00062","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00062","url":null,"abstract":"A flaky test is a test that may fail or pass for the same code under testing (CUT). Flaky tests could be harmful to developers because the non-deterministic test outcome is not reliable and developers cannot easily debug the code. A prior study characterized the root causes and fixing strategies of flaky tests by analyzing commits of 51 Apache open source projects, without analyzing any Android app. Due to the popular usage of Android devices and the multitude of interactions of Android apps with third-party software libraries, hardware, network, and users, we were curious to find if the Android apps manifested unique flakiness patterns and called for any special resolution for flaky tests as compared to the existing literature. For this paper, we conducted an empirical study to characterize the flaky tests in Android apps. By classifying the root causes and fixing strategies of flakiness, we aimed to investigate how our proposed characterization for flakiness in Android apps varies from prior findings, and whether there are domain-specific flakiness patterns. After mining GitHub, we found 29 Android projects containing 77 commits that were relevant to flakiness. We identified five root causes of Android apps' flakiness. We revealed three novel causes - Dependency, Program Logic, and UI. Five types of resolution strategies were observed to address the flaky behavior. Many of the examined commits show developers' attempt to fix flakiness by changing software implementation in various ways. However, there are still 13% commits that simply skipped or removed the flaky tests. Our observations provide useful insights for future research on flaky tests of Android apps.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"51 1","pages":"534-538"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86649572","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}
引用次数: 56
Why are Features Deprecated? An Investigation Into the Motivation Behind Deprecation 为什么功能被弃用?贬损背后的动机调查
Pub Date : 2018-09-01 DOI: 10.1109/ICSME.2018.00011
A. Sawant, Guangzhe Huang, Gabriel Vilén, Stefan Stojkovski, Alberto Bacchelli
In this study, we investigate why API producers deprecate features. Previous work has shown us that knowing the rationale behind deprecation of an API aids a consumer in deciding to react, thus hinting at a diversity of deprecation reasons. We manually analyze the Javadoc of 374 deprecated methods pertaining four mainstream Java APIs to see whether the reason behind deprecation is mentioned. We find that understanding the rationale from just the Javadoc is insufficient; hence we add other data sources such as the source code, issue tracker data and commit history. We observe 12 reasons that trigger API producers to deprecate a feature. We evaluate an automated approach to classify these motivations.
在这项研究中,我们调查了为什么API生产者不赞成功能。以前的工作向我们表明,了解API弃用背后的基本原理有助于消费者决定做出反应,从而暗示了弃用原因的多样性。我们手动分析了属于四种主流Java api的374种已弃用方法的Javadoc,以查看是否提到了弃用背后的原因。我们发现仅仅从Javadoc理解基本原理是不够的;因此,我们添加了其他数据源,如源代码、问题跟踪器数据和提交历史。我们观察到有12个原因会导致API生产者弃用某个特性。我们评估了一种自动化的方法来对这些动机进行分类。
{"title":"Why are Features Deprecated? An Investigation Into the Motivation Behind Deprecation","authors":"A. Sawant, Guangzhe Huang, Gabriel Vilén, Stefan Stojkovski, Alberto Bacchelli","doi":"10.1109/ICSME.2018.00011","DOIUrl":"https://doi.org/10.1109/ICSME.2018.00011","url":null,"abstract":"In this study, we investigate why API producers deprecate features. Previous work has shown us that knowing the rationale behind deprecation of an API aids a consumer in deciding to react, thus hinting at a diversity of deprecation reasons. We manually analyze the Javadoc of 374 deprecated methods pertaining four mainstream Java APIs to see whether the reason behind deprecation is mentioned. We find that understanding the rationale from just the Javadoc is insufficient; hence we add other data sources such as the source code, issue tracker data and commit history. We observe 12 reasons that trigger API producers to deprecate a feature. We evaluate an automated approach to classify these motivations.","PeriodicalId":6572,"journal":{"name":"2018 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":"38 1","pages":"13-24"},"PeriodicalIF":0.0,"publicationDate":"2018-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74948696","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}
引用次数: 18
期刊
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