首页 > 最新文献

2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)最新文献

英文 中文
Studying the Effectiveness of Application Performance Management (APM) Tools for Detecting Performance Regressions for Web Applications: An Experience Report 研究应用程序性能管理(APM)工具检测Web应用程序性能回归的有效性:一份经验报告
Pub Date : 2016-05-14 DOI: 10.1145/2901739.2901774
Tarek M. Ahmed, C. Bezemer, T. Chen, A. Hassan, Weiyi Shang
Performance regressions, such as a higher CPU utilization than in the previous version of an application, are caused by software application updates that negatively affect the performance of an application.Although a plethora of mining software repository research has been done to detect such regressions, research tools are generally not readily available to practitioners. Application Performance Management (APM) tools are commonly used in practice for detecting performance issues in the field by mining operational data.In contrast to performance regression detection tools that assume a changing code base and a stable workload, APM tools mine operational data to detect performance anomalies caused by a changing workload in an otherwise stable code base.Although APM tools are widely used in practice, no research has been done to understand 1) whether APM tools can identify performance regressions caused by code changes and 2) how well these APM tools support diagnosing the root-cause of these regressions.In this paper, we explore if the readily accessible APM tools can help practitioners detect performance regressions. We perform a case study using three commercial (AppDynamics, New Relic and Dynatrace) and one open source (Pinpoint) APM tools. In particular, we examine the effectiveness of leveraging these APM tools in detecting and diagnosing injected performance regressions (excessive memory usage, high CPU utilization and inefficient database queries) in three open source applications. We find that APM tools can detect most of the injected performance regressions, making them good candidates to detect performance regressions in practice. However, there is a gap between mining approaches that are proposed in state-of-the-art performance regression detection research and the ones used by APM tools. In addition, APM tools lack the ability to be extended, which makes it hard to enhance them when exploring novel mining approaches for detecting performance regressions.
由于软件应用程序更新会对应用程序的性能产生负面影响,导致性能下降,例如比以前版本的应用程序的CPU利用率更高。尽管已经做了大量的挖掘软件存储库研究来检测这种回归,但研究工具通常不容易为从业者所用。应用程序性能管理(APM)工具在实践中通常用于通过挖掘操作数据来检测现场的性能问题。与假设不断变化的代码库和稳定的工作负载的性能回归检测工具不同,APM工具挖掘操作数据来检测由稳定的代码库中不断变化的工作负载引起的性能异常。尽管APM工具在实践中被广泛使用,但还没有研究来了解1)APM工具是否可以识别由代码更改引起的性能退化,以及2)这些APM工具在诊断这些退化的根本原因方面有多好。在本文中,我们将探讨易于访问的APM工具是否可以帮助从业者检测性能回归。我们使用三个商业APM工具(AppDynamics, New Relic和Dynatrace)和一个开源APM工具(Pinpoint)进行案例研究。我们特别研究了在三个开源应用程序中利用这些APM工具检测和诊断注入的性能退化(内存使用过多、CPU利用率高和数据库查询效率低下)的有效性。我们发现APM工具可以检测到大多数注入的性能回归,使其成为实践中检测性能回归的良好候选者。然而,在最先进的性能回归检测研究中提出的挖掘方法与APM工具使用的方法之间存在差距。此外,APM工具缺乏扩展能力,这使得在探索用于检测性能回归的新挖掘方法时难以对其进行增强。
{"title":"Studying the Effectiveness of Application Performance Management (APM) Tools for Detecting Performance Regressions for Web Applications: An Experience Report","authors":"Tarek M. Ahmed, C. Bezemer, T. Chen, A. Hassan, Weiyi Shang","doi":"10.1145/2901739.2901774","DOIUrl":"https://doi.org/10.1145/2901739.2901774","url":null,"abstract":"Performance regressions, such as a higher CPU utilization than in the previous version of an application, are caused by software application updates that negatively affect the performance of an application.Although a plethora of mining software repository research has been done to detect such regressions, research tools are generally not readily available to practitioners. Application Performance Management (APM) tools are commonly used in practice for detecting performance issues in the field by mining operational data.In contrast to performance regression detection tools that assume a changing code base and a stable workload, APM tools mine operational data to detect performance anomalies caused by a changing workload in an otherwise stable code base.Although APM tools are widely used in practice, no research has been done to understand 1) whether APM tools can identify performance regressions caused by code changes and 2) how well these APM tools support diagnosing the root-cause of these regressions.In this paper, we explore if the readily accessible APM tools can help practitioners detect performance regressions. We perform a case study using three commercial (AppDynamics, New Relic and Dynatrace) and one open source (Pinpoint) APM tools. In particular, we examine the effectiveness of leveraging these APM tools in detecting and diagnosing injected performance regressions (excessive memory usage, high CPU utilization and inefficient database queries) in three open source applications. We find that APM tools can detect most of the injected performance regressions, making them good candidates to detect performance regressions in practice. However, there is a gap between mining approaches that are proposed in state-of-the-art performance regression detection research and the ones used by APM tools. In addition, APM tools lack the ability to be extended, which makes it hard to enhance them when exploring novel mining approaches for detecting performance regressions.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"PC-24 1","pages":"1-12"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84847527","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}
引用次数: 51
FEVER: Extracting Feature-oriented Changes from Commits FEVER:从提交中提取面向特性的更改
Pub Date : 2016-05-14 DOI: 10.1145/2901739.2901755
Nicolas Dintzner, A. Deursen, M. Pinzger
The study of the evolution of highly configurable systems requires a thorough understanding of thee core ingredients of such systems: (1) the underlying variability model; (2) the assets that together implement the configurable features; and (3) the mapping from variable features to actual assets. Unfortunately, to date no systematic way to obtain such information at a sufficiently fine grained level exists.To remedy this problem we propose FEVER and its instantiation for the Linux kernel. FEVER extracts detailed information on changes in variability models (KConfig files), assets (preprocessor based C code), and mappings (Make- files). We describe how FEVER works, and apply it to several releases of the Linux kernel. Our evaluation on 300 ran- domly selected commits, from two different releases, shows our results are accurate in 82.6% of the commits. Furthermore, we illustrate how the populated FEVER graph database thus obtained can be used in typical Linux engineering tasks.
研究高度可配置系统的演化需要彻底理解这些系统的三个核心成分:(1)潜在的变异性模型;(2)共同实现可配置特征的资产;(3)变量特征到实际资产的映射。不幸的是,到目前为止,还没有系统的方法可以在足够细粒度的级别上获得此类信息。为了解决这个问题,我们提出了FEVER及其在Linux内核中的实例化。FEVER提取关于可变性模型(KConfig文件)、资产(基于C代码的预处理器)和映射(Make- files)变化的详细信息。我们描述了FEVER的工作原理,并将其应用于几个Linux内核版本。我们对来自两个不同版本的300个随机选择的提交进行了评估,结果表明我们的结果在82.6%的提交中是准确的。此外,我们还说明了如何在典型的Linux工程任务中使用由此获得的填充的FEVER图形数据库。
{"title":"FEVER: Extracting Feature-oriented Changes from Commits","authors":"Nicolas Dintzner, A. Deursen, M. Pinzger","doi":"10.1145/2901739.2901755","DOIUrl":"https://doi.org/10.1145/2901739.2901755","url":null,"abstract":"The study of the evolution of highly configurable systems requires a thorough understanding of thee core ingredients of such systems: (1) the underlying variability model; (2) the assets that together implement the configurable features; and (3) the mapping from variable features to actual assets. Unfortunately, to date no systematic way to obtain such information at a sufficiently fine grained level exists.To remedy this problem we propose FEVER and its instantiation for the Linux kernel. FEVER extracts detailed information on changes in variability models (KConfig files), assets (preprocessor based C code), and mappings (Make- files). We describe how FEVER works, and apply it to several releases of the Linux kernel. Our evaluation on 300 ran- domly selected commits, from two different releases, shows our results are accurate in 82.6% of the commits. Furthermore, we illustrate how the populated FEVER graph database thus obtained can be used in typical Linux engineering tasks.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"20 1","pages":"85-96"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83937991","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 14
Recognizing Gender of Stack Overflow Users 识别堆栈溢出用户的性别
Pub Date : 2016-05-14 DOI: 10.1145/2901739.2901777
B. Lin, Alexander Serebrenik
Software development remains a predominantly male activity, despite coordinated efforts from research, industry, and policy makers. This gender imbalance is most visible in social programming, on platforms such as Stack Overflow.To better understand the reasons behind this disparity, and off er support for (corrective) decision making, we and others have been engaged in large-scale empirical studies of activity in these online platforms, in which gender is one of the variables of interest. However, since gender is not explicitly recorded, it is typically inferred by automatic "gender guessers", based on cues derived from an individual's online presence, such as their name and profi le picture. As opposed to self-reporting, used in earlier studies, gender guessers scale better, but their accuracy depends on the quantity and quality of data available in one's online pro le.In this paper we evaluate the applicability of different gender guessing approaches on several datasets derived from Stack Overflow. Our results suggest that the approaches combining different data sources perform the best.
尽管有来自研究、工业和政策制定者的协调努力,软件开发仍然是男性主导的活动。这种性别失衡在Stack Overflow等社交程序平台上最为明显。为了更好地理解这种差异背后的原因,并获得对(纠正)决策的支持,我们和其他人对这些在线平台的活动进行了大规模的实证研究,其中性别是感兴趣的变量之一。然而,由于性别没有被明确记录下来,它通常是由自动的“性别猜测者”来推断的,这是基于个人在线存在的线索,比如他们的名字和个人资料照片。与早期研究中使用的自我报告不同,性别猜测的规模更大,但其准确性取决于个人在线履历中可用数据的数量和质量。在本文中,我们评估了不同性别猜测方法在来自Stack Overflow的几个数据集上的适用性。我们的研究结果表明,结合不同数据源的方法效果最好。
{"title":"Recognizing Gender of Stack Overflow Users","authors":"B. Lin, Alexander Serebrenik","doi":"10.1145/2901739.2901777","DOIUrl":"https://doi.org/10.1145/2901739.2901777","url":null,"abstract":"Software development remains a predominantly male activity, despite coordinated efforts from research, industry, and policy makers. This gender imbalance is most visible in social programming, on platforms such as Stack Overflow.To better understand the reasons behind this disparity, and off er support for (corrective) decision making, we and others have been engaged in large-scale empirical studies of activity in these online platforms, in which gender is one of the variables of interest. However, since gender is not explicitly recorded, it is typically inferred by automatic \"gender guessers\", based on cues derived from an individual's online presence, such as their name and profi le picture. As opposed to self-reporting, used in earlier studies, gender guessers scale better, but their accuracy depends on the quantity and quality of data available in one's online pro le.In this paper we evaluate the applicability of different gender guessing approaches on several datasets derived from Stack Overflow. Our results suggest that the approaches combining different data sources perform the best.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"42 1","pages":"425-429"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77614552","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}
引用次数: 43
How Developers Use Exception Handling in Java? 开发者如何在Java中使用异常处理?
Pub Date : 2016-05-14 DOI: 10.1145/2901739.2903500
M. Asaduzzaman, Md Ahasanuzzaman, C. Roy, Kevin A. Schneider
Exception handling is a technique that addresses exceptional conditions in applications, allowing the normal flow of execution to continue in the event of an exception and/or to report on such events. Although exception handling techniques, features and bad coding practices have been discussed both in developer communities and in the literature, there is a marked lack of empirical evidence on how developers use exception handling in practice. In this paper we use the Boa language and infrastructure to analyze 274k open source Java projects in GitHub to discover how developers use exception handling. We not only consider various exception handling features but also explore bad coding practices and their relation to the experience of developers. Our results provide some interesting insights. For example, we found that bad exception handling coding practices are common in open source Java projects and regardless of experience all developers use bad exception handling coding practices.
异常处理是一种处理应用程序中异常情况的技术,允许在发生异常时继续正常的执行流程和/或报告此类事件。尽管在开发人员社区和文献中已经讨论过异常处理技术、特性和不良编码实践,但是在开发人员如何在实践中使用异常处理方面明显缺乏经验证据。在本文中,我们使用Boa语言和基础架构来分析GitHub中的274k开源Java项目,以了解开发人员如何使用异常处理。我们不仅考虑了各种异常处理特性,还探讨了糟糕的编码实践及其与开发人员经验的关系。我们的研究结果提供了一些有趣的见解。例如,我们发现糟糕的异常处理编码实践在开源Java项目中很常见,并且无论经验如何,所有开发人员都使用糟糕的异常处理编码实践。
{"title":"How Developers Use Exception Handling in Java?","authors":"M. Asaduzzaman, Md Ahasanuzzaman, C. Roy, Kevin A. Schneider","doi":"10.1145/2901739.2903500","DOIUrl":"https://doi.org/10.1145/2901739.2903500","url":null,"abstract":"Exception handling is a technique that addresses exceptional conditions in applications, allowing the normal flow of execution to continue in the event of an exception and/or to report on such events. Although exception handling techniques, features and bad coding practices have been discussed both in developer communities and in the literature, there is a marked lack of empirical evidence on how developers use exception handling in practice. In this paper we use the Boa language and infrastructure to analyze 274k open source Java projects in GitHub to discover how developers use exception handling. We not only consider various exception handling features but also explore bad coding practices and their relation to the experience of developers. Our results provide some interesting insights. For example, we found that bad exception handling coding practices are common in open source Java projects and regardless of experience all developers use bad exception handling coding practices.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"45 1","pages":"516-519"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81333219","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
A Large-Scale Empirical Study on Self-Admitted Technical Debt 自我承认技术债务的大规模实证研究
Pub Date : 2016-05-14 DOI: 10.1145/2901739.2901742
G. Bavota, B. Russo
Technical debt is a metaphor introduced by Cunningham to indicate "not quite right code which we postpone making it right". Examples of technical debt are code smells and bug hazards. Several techniques have been proposed to detect different types of technical debt. Among those, Potdar and Shihab defined heuristics to detect instances of self-admitted technical debt in code comments, and used them to perform an empirical study on five software systems to investigate the phenomenon. Still, very little is known about the diffusion and evolution of technical debt in software projects.This paper presents a differentiated replication of the work by Potdar and Shihab. We run a study across 159 software projects to investigate the diffusion and evolution of self-admitted technical debt and its relationship with software quality. The study required the mining of over 600K commits and 2 Billion comments as well as a qualitative analysis performed via open coding.Our main findings show that self-admitted technical debt (i) is diffused, with an average of 51 instances per system, (ii) is mostly represented by code (30%), defect, and requirement debt (20% each), (iii) increases over time due to the introduction of new instances that are not fixed by developers, and (iv) even when fixed, it survives long time (over 1,000 commits on average) in the system.
技术债务是Cunningham引入的一个隐喻,指的是“不太正确的代码,我们推迟了对它的修改”。技术债务的例子是代码气味和bug危险。已经提出了几种技术来检测不同类型的技术债务。其中,Potdar和Shihab定义了启发式方法来检测代码注释中自我承认的技术债务实例,并使用它们对五个软件系统进行了实证研究,以调查这一现象。然而,我们对软件项目中技术债务的扩散和演变知之甚少。本文对Potdar和Shihab的作品进行了不同的复制。我们对159个软件项目进行了一项研究,以调查自我承认的技术债务的扩散和进化,以及它与软件质量的关系。这项研究需要挖掘超过60万的提交和20亿的评论,以及通过开放编码进行的定性分析。我们的主要发现表明,自我承认的技术债务(i)是分散的,每个系统平均有51个实例,(ii)主要由代码(30%)、缺陷和需求债务(各20%)表示,(iii)随着时间的推移而增加,因为引入了没有被开发人员修复的新实例,(iv)即使修复了,它在系统中存活很长时间(平均超过1000次提交)。
{"title":"A Large-Scale Empirical Study on Self-Admitted Technical Debt","authors":"G. Bavota, B. Russo","doi":"10.1145/2901739.2901742","DOIUrl":"https://doi.org/10.1145/2901739.2901742","url":null,"abstract":"Technical debt is a metaphor introduced by Cunningham to indicate \"not quite right code which we postpone making it right\". Examples of technical debt are code smells and bug hazards. Several techniques have been proposed to detect different types of technical debt. Among those, Potdar and Shihab defined heuristics to detect instances of self-admitted technical debt in code comments, and used them to perform an empirical study on five software systems to investigate the phenomenon. Still, very little is known about the diffusion and evolution of technical debt in software projects.This paper presents a differentiated replication of the work by Potdar and Shihab. We run a study across 159 software projects to investigate the diffusion and evolution of self-admitted technical debt and its relationship with software quality. The study required the mining of over 600K commits and 2 Billion comments as well as a qualitative analysis performed via open coding.Our main findings show that self-admitted technical debt (i) is diffused, with an average of 51 instances per system, (ii) is mostly represented by code (30%), defect, and requirement debt (20% each), (iii) increases over time due to the introduction of new instances that are not fixed by developers, and (iv) even when fixed, it survives long time (over 1,000 commits on average) in the system.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"27 1","pages":"315-326"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77020859","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}
引用次数: 124
Data Sets: The Circle of Life in Ruby Hosting, 2003-2015 数据集:Ruby主机的生命周期,2003-2015
Pub Date : 2016-05-14 DOI: 10.1145/2901739.2903509
Megan Squire
Studying software repositories and hosting services can provide valuable insights into the behaviors of large groups of software developers and their projects. Traditionally, most analysis of metadata collected from hosting services has been conducted by specifying some short window of time, typically just a few years. To date, few - if any - studies have been built from data comprising the entirety of a repository's lifespan: from its birth to its death, and rebirth. Thus, the first contribution of this data set is to support the historical analysis of over ten years of collected metadata from the now-defunct RubyForge project hosting site, as well as the follow-on successor to RubyForge, the RubyGems hosting facility. The data sets and sample analyses in this paper will be relevant to researchers studying both software evolution and the distributed software development process.
研究软件存储库和托管服务可以为大量软件开发人员及其项目的行为提供有价值的见解。传统上,对从托管服务收集的元数据的大多数分析都是通过指定一些短时间窗口(通常只有几年)来进行的。迄今为止,很少(如果有的话)研究是建立在包含存储库整个生命周期的数据基础上的:从诞生到死亡,再到重生。因此,这个数据集的第一个贡献是支持对十多年来收集的元数据的历史分析,这些元数据来自现已关闭的RubyForge项目托管站点,以及RubyForge的后续继承者,RubyGems托管设施。本文的数据集和样本分析将对研究软件演化和分布式软件开发过程的研究人员具有重要意义。
{"title":"Data Sets: The Circle of Life in Ruby Hosting, 2003-2015","authors":"Megan Squire","doi":"10.1145/2901739.2903509","DOIUrl":"https://doi.org/10.1145/2901739.2903509","url":null,"abstract":"Studying software repositories and hosting services can provide valuable insights into the behaviors of large groups of software developers and their projects. Traditionally, most analysis of metadata collected from hosting services has been conducted by specifying some short window of time, typically just a few years. To date, few - if any - studies have been built from data comprising the entirety of a repository's lifespan: from its birth to its death, and rebirth. Thus, the first contribution of this data set is to support the historical analysis of over ten years of collected metadata from the now-defunct RubyForge project hosting site, as well as the follow-on successor to RubyForge, the RubyGems hosting facility. The data sets and sample analyses in this paper will be relevant to researchers studying both software evolution and the distributed software development process.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"45 1","pages":"452-459"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78697405","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
Inter-app Communication in Android: Developer Challenges Android应用间交流:开发者面临的挑战
Pub Date : 2016-05-14 DOI: 10.1145/2901739.2901762
Waqar Ahmad, Christian Kästner, Joshua Sunshine, Jonathan Aldrich
The Android platform is designed to support mutually un-trusted third-party apps, which run as isolated processes but may interact via platform-controlled mechanisms, called Intents. Interactions among third-party apps are intended and can contribute to a rich user experience, for example, the ability to share pictures from one app with another. The Android platform presents an interesting point in a design space of module systems that is biased toward isolation, extensibility, and untrusted contributions. The Intent mech- anism essentially provides message channels among modules, in which the set of message types is extensible. However, the module system has design limitations including the lack of consistent mechanisms to document message types, very limited checking that a message conforms to its specifica- tions, the inability to explicitly declare dependencies on other modules, and the lack of checks for backward compatibility as message types evolve over time. In order to understand the degree to which these design limitations result in real issues, we studied a broad corpus of apps and cross-validated our results against app documentation and Android support forums. Our findings suggest that design limitations do in- deed cause development problems. Based on our results, we outline further research questions and propose possible mitigation strategies.
Android平台旨在支持互不信任的第三方应用程序,这些应用程序作为孤立的进程运行,但可以通过称为intent的平台控制机制进行交互。第三方应用程序之间的交互是有意为之的,并且可以为丰富的用户体验做出贡献,例如,能够从一个应用程序与另一个应用程序共享图片。Android平台在模块系统的设计空间中呈现了一个有趣的点,它偏向于隔离、可扩展性和不可信的贡献。意图机制本质上提供模块之间的消息通道,其中的消息类型集是可扩展的。然而,模块系统具有设计限制,包括缺乏记录消息类型的一致机制,对消息是否符合其规范的检查非常有限,无法显式声明对其他模块的依赖关系,以及随着时间的推移消息类型的演变缺乏向后兼容性检查。为了了解这些设计限制在多大程度上导致了实际问题,我们研究了大量应用,并根据应用文档和Android支持论坛交叉验证了我们的结果。我们的研究结果表明,设计限制确实会导致开发问题。根据我们的结果,我们概述了进一步的研究问题,并提出了可能的缓解策略。
{"title":"Inter-app Communication in Android: Developer Challenges","authors":"Waqar Ahmad, Christian Kästner, Joshua Sunshine, Jonathan Aldrich","doi":"10.1145/2901739.2901762","DOIUrl":"https://doi.org/10.1145/2901739.2901762","url":null,"abstract":"The Android platform is designed to support mutually un-trusted third-party apps, which run as isolated processes but may interact via platform-controlled mechanisms, called Intents. Interactions among third-party apps are intended and can contribute to a rich user experience, for example, the ability to share pictures from one app with another. The Android platform presents an interesting point in a design space of module systems that is biased toward isolation, extensibility, and untrusted contributions. The Intent mech- anism essentially provides message channels among modules, in which the set of message types is extensible. However, the module system has design limitations including the lack of consistent mechanisms to document message types, very limited checking that a message conforms to its specifica- tions, the inability to explicitly declare dependencies on other modules, and the lack of checks for backward compatibility as message types evolve over time. In order to understand the degree to which these design limitations result in real issues, we studied a broad corpus of apps and cross-validated our results against app documentation and Android support forums. Our findings suggest that design limitations do in- deed cause development problems. Based on our results, we outline further research questions and propose possible mitigation strategies.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"58 1","pages":"177-188"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"74951211","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
GreenOracle: Estimating Software Energy Consumption with Energy Measurement Corpora GreenOracle:利用能量测量语料库估算软件能耗
Pub Date : 2016-05-14 DOI: 10.1145/2901739.2901763
S. Chowdhury, Abram Hindle
Software energy consumption is a relatively new concern for mobile application developers. Poor energy performance can harm adoption and sales of applications. Unfortunately for the developers, the measurement of software energy con-sumption is expensive in terms of hardware and difficult in terms of expertise. Many prior models of software energy consumption assume that developers can use hardware instrumentation and thus cannot evaluate software runningwithin emulators or virtual machines. Some prior modelsrequire actual energy measurements from the previous versions of applications in order to model the energy consumption of later versions of the same application.In this paper, we take a big-data approach to software energy consumption and present a model that can estimate software energy consumption mostly within 10% error (in joules) and does not require the developer to train on energy measurements of their own applications. This model leverages a big-data approach whereby a collection of prior applications’ energy measurements allows us to train, trans-mit, and apply the model to estimate any foreign application’s energy consumption for a test run. Our model is based on the dynamic traces of system calls and CPU utilization.
对于移动应用程序开发人员来说,软件能耗是一个相对较新的问题。较差的能源性能会影响应用程序的采用和销售。不幸的是,对于开发人员来说,软件能耗的度量在硬件方面是昂贵的,而在专业知识方面是困难的。许多先前的软件能耗模型假设开发人员可以使用硬件工具,因此无法评估在模拟器或虚拟机中运行的软件。一些先前的模型需要从先前版本的应用程序中实际测量能量,以便对同一应用程序的后续版本的能量消耗进行建模。在本文中,我们采用大数据方法来计算软件能耗,并提出了一个模型,该模型可以估计软件能耗,误差在10%以内(以焦耳为单位),并且不需要开发人员对他们自己的应用进行能量测量培训。该模型利用了一种大数据方法,通过收集以前应用程序的能量测量数据,我们可以训练、传输和应用该模型来估计任何国外应用程序的测试运行能耗。我们的模型基于系统调用和CPU利用率的动态跟踪。
{"title":"GreenOracle: Estimating Software Energy Consumption with Energy Measurement Corpora","authors":"S. Chowdhury, Abram Hindle","doi":"10.1145/2901739.2901763","DOIUrl":"https://doi.org/10.1145/2901739.2901763","url":null,"abstract":"Software energy consumption is a relatively new concern for mobile application developers. Poor energy performance can harm adoption and sales of applications. Unfortunately for the developers, the measurement of software energy con-sumption is expensive in terms of hardware and difficult in terms of expertise. Many prior models of software energy consumption assume that developers can use hardware instrumentation and thus cannot evaluate software runningwithin emulators or virtual machines. Some prior modelsrequire actual energy measurements from the previous versions of applications in order to model the energy consumption of later versions of the same application.In this paper, we take a big-data approach to software energy consumption and present a model that can estimate software energy consumption mostly within 10% error (in joules) and does not require the developer to train on energy measurements of their own applications. This model leverages a big-data approach whereby a collection of prior applications’ energy measurements allows us to train, trans-mit, and apply the model to estimate any foreign application’s energy consumption for a test run. Our model is based on the dynamic traces of system calls and CPU utilization.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"17 1","pages":"49-60"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75362082","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}
引用次数: 52
The Dispersion of Build Maintenance Activity across Maven Lifecycle Phases 跨Maven生命周期阶段的构建维护活动的分散
Pub Date : 2016-05-14 DOI: 10.1145/2901739.2903498
Casimir Désarmeaux, Andrea Pecatikov, Shane McIntosh
Build systems describe how source code is translated into deliverables. Developers use build management tools like Maven to specify their build systems. Past work has shown that while Maven provides invaluable features (e.g., incremental building), it introduces an overhead on software development. Indeed, Maven build systems require maintenance. However, Maven build systems follow the build lifecycle, which is comprised of validate, compile, test, packaging, install, and deploy phases. Little is known about how build maintenance activity is dispersed among these lifecycle phases. To bridge this gap, in this paper, we analyze the dispersion of build maintenance activity across build lifecycle phases. Through analysis of 1,181 GitHub repositories that use Maven, we find that: (1) the compile phase accounts for 24% more of the build maintenance activity than the other phases; and (2) while the compile phase generates a consistent amount of maintenance activity over time, the other phases tend to generate peaks and valleys of maintenance activity. Software teams that use Maven should plan for these shifts in the characteristics of build maintenance activity.
构建系统描述了如何将源代码转换为可交付产品。开发人员使用像Maven这样的构建管理工具来指定他们的构建系统。过去的工作表明,虽然Maven提供了宝贵的特性(例如,增量构建),但它在软件开发中引入了开销。实际上,Maven构建系统需要维护。然而,Maven构建系统遵循构建生命周期,它由验证、编译、测试、打包、安装和部署阶段组成。很少有人知道构建维护活动是如何分散到这些生命周期阶段的。为了弥合这一差距,在本文中,我们分析了构建维护活动在构建生命周期阶段之间的分散。通过对使用Maven的1181个GitHub存储库的分析,我们发现:(1)编译阶段比其他阶段多占构建维护活动的24%;(2)当编译阶段随着时间的推移产生一致数量的维护活动时,其他阶段倾向于产生维护活动的高峰和低谷。使用Maven的软件团队应该在构建维护活动的特征中为这些变化做好计划。
{"title":"The Dispersion of Build Maintenance Activity across Maven Lifecycle Phases","authors":"Casimir Désarmeaux, Andrea Pecatikov, Shane McIntosh","doi":"10.1145/2901739.2903498","DOIUrl":"https://doi.org/10.1145/2901739.2903498","url":null,"abstract":"Build systems describe how source code is translated into deliverables. Developers use build management tools like Maven to specify their build systems. Past work has shown that while Maven provides invaluable features (e.g., incremental building), it introduces an overhead on software development. Indeed, Maven build systems require maintenance. However, Maven build systems follow the build lifecycle, which is comprised of validate, compile, test, packaging, install, and deploy phases. Little is known about how build maintenance activity is dispersed among these lifecycle phases. To bridge this gap, in this paper, we analyze the dispersion of build maintenance activity across build lifecycle phases. Through analysis of 1,181 GitHub repositories that use Maven, we find that: (1) the compile phase accounts for 24% more of the build maintenance activity than the other phases; and (2) while the compile phase generates a consistent amount of maintenance activity over time, the other phases tend to generate peaks and valleys of maintenance activity. Software teams that use Maven should plan for these shifts in the characteristics of build maintenance activity.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"12 1","pages":"492-495"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"85459727","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
The Impact of Switching to a Rapid Release Cycle on the Integration Delay of Addressed Issues - An Empirical Study of the Mozilla Firefox Project 切换到快速发布周期对已解决问题的集成延迟的影响-对Mozilla Firefox项目的实证研究
Pub Date : 2016-05-14 DOI: 10.1145/2901739.2901764
D. A. D. Costa, Shane McIntosh, U. Kulesza, A. Hassan
The release frequency of software projects has increased in recent years. Adopters of so-called rapid release cycles claim that they can deliver addressed issues (i.e., bugs, enhancements, and new features) to users more quickly. However, there is little empirical evidence to support these claims. In fact, in our prior work, we found that code integration phases may introduce delays in rapidly releasing software - 98% of addressed issues in the rapidly releasing Firefox project had their integration delayed by at least one release. To better understand the impact that rapid release cycles have on the integration delay of addressed issues, we perform a comparative study of traditional and rapid release cycles. Through an empirical study of 72,114 issue reports from the Firefox system, we observe that, surprisingly, addressed issues take a median of 50 days longer to be integrated in rapid Firefox releases than the traditional ones. To investigate the factors that are related to integration delay in traditional and rapid release cycles, we train regression models that explain if an addressed issue will have its integration delayed or not. Our explanatory models achieve good discrimination (ROC areas of 0.81-0.83) and calibration scores (Brier scores of 0.05-0.16). Deeper analysis of our explanatory models indicates that traditional releases prioritize the integration of backlog issues, while rapid releases prioritize issues that were addressed during the current release cycle. Our results suggest that rapid release cycles may not be a silver bullet for the rapid delivery of addressed issues to users.
近年来,软件项目的发布频率有所增加。所谓快速发布周期的采用者声称,他们可以更快地向用户交付已解决的问题(例如,bug、增强和新特性)。然而,几乎没有经验证据支持这些说法。事实上,在我们之前的工作中,我们发现代码集成阶段可能会给快速发布的软件带来延迟——在快速发布的Firefox项目中,98%的已解决问题的集成至少延迟了一个版本。为了更好地理解快速发布周期对已解决问题的集成延迟的影响,我们对传统发布周期和快速发布周期进行了比较研究。通过对来自Firefox系统的72,114个问题报告的实证研究,我们发现,令人惊讶的是,在快速发布的Firefox中集成已解决的问题要比传统版本多花50天的时间。为了研究在传统和快速发布周期中与集成延迟相关的因素,我们训练回归模型来解释所处理的问题是否会有集成延迟。我们的解释模型具有良好的判别性(ROC面积为0.81-0.83)和校准分数(Brier分数为0.05-0.16)。对我们的解释模型进行更深入的分析表明,传统版本优先考虑待办事项的集成,而快速版本优先考虑在当前发布周期中解决的问题。我们的结果表明,快速发布周期可能不是快速向用户交付已解决问题的灵丹妙药。
{"title":"The Impact of Switching to a Rapid Release Cycle on the Integration Delay of Addressed Issues - An Empirical Study of the Mozilla Firefox Project","authors":"D. A. D. Costa, Shane McIntosh, U. Kulesza, A. Hassan","doi":"10.1145/2901739.2901764","DOIUrl":"https://doi.org/10.1145/2901739.2901764","url":null,"abstract":"The release frequency of software projects has increased in recent years. Adopters of so-called rapid release cycles claim that they can deliver addressed issues (i.e., bugs, enhancements, and new features) to users more quickly. However, there is little empirical evidence to support these claims. In fact, in our prior work, we found that code integration phases may introduce delays in rapidly releasing software - 98% of addressed issues in the rapidly releasing Firefox project had their integration delayed by at least one release. To better understand the impact that rapid release cycles have on the integration delay of addressed issues, we perform a comparative study of traditional and rapid release cycles. Through an empirical study of 72,114 issue reports from the Firefox system, we observe that, surprisingly, addressed issues take a median of 50 days longer to be integrated in rapid Firefox releases than the traditional ones. To investigate the factors that are related to integration delay in traditional and rapid release cycles, we train regression models that explain if an addressed issue will have its integration delayed or not. Our explanatory models achieve good discrimination (ROC areas of 0.81-0.83) and calibration scores (Brier scores of 0.05-0.16). Deeper analysis of our explanatory models indicates that traditional releases prioritize the integration of backlog issues, while rapid releases prioritize issues that were addressed during the current release cycle. Our results suggest that rapid release cycles may not be a silver bullet for the rapid delivery of addressed issues to users.","PeriodicalId":6621,"journal":{"name":"2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)","volume":"48 1","pages":"374-385"},"PeriodicalIF":0.0,"publicationDate":"2016-05-14","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88144359","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}
引用次数: 27
期刊
2016 IEEE/ACM 13th Working Conference on Mining Software Repositories (MSR)
全部 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