首页 > 最新文献

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

英文 中文
Quantifying the Performance Impact of SQL Antipatterns on Mobile Applications 量化SQL反模式对移动应用程序的性能影响
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00015
Yingjun Lyu, Ali S. Alotaibi, William G. J. Halfond
In mobile applications, local databases have become an important component, providing mobile users with a responsive and secure service for data access and management. However, using local databases comes with a cost. Studies have shown that they are one of the most resource consuming components on mobile devices. Improper usage of the local database can even severely impact the responsiveness of an application. In this paper, we conducted a literature review and a benchmark study to investigate problematic programming practices with respect to database usage. Our results present a comprehensive overview of the current knowledge about these practices, and introduce new knowledge about the impact of these practices on the resource consumption of mobile applications.
在移动应用中,本地数据库已经成为一个重要的组成部分,为移动用户提供快速响应和安全的数据访问和管理服务。然而,使用本地数据库是有代价的。研究表明,它们是移动设备上消耗资源最多的组件之一。对本地数据库的不当使用甚至会严重影响应用程序的响应性。在本文中,我们进行了文献回顾和基准研究,以调查与数据库使用相关的有问题的编程实践。我们的研究结果全面概述了当前关于这些实践的知识,并介绍了关于这些实践对移动应用程序资源消耗影响的新知识。
{"title":"Quantifying the Performance Impact of SQL Antipatterns on Mobile Applications","authors":"Yingjun Lyu, Ali S. Alotaibi, William G. J. Halfond","doi":"10.1109/ICSME.2019.00015","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00015","url":null,"abstract":"In mobile applications, local databases have become an important component, providing mobile users with a responsive and secure service for data access and management. However, using local databases comes with a cost. Studies have shown that they are one of the most resource consuming components on mobile devices. Improper usage of the local database can even severely impact the responsiveness of an application. In this paper, we conducted a literature review and a benchmark study to investigate problematic programming practices with respect to database usage. Our results present a comprehensive overview of the current knowledge about these practices, and introduce new knowledge about the impact of these practices on the resource consumption of mobile applications.","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":"117114642","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
Ticket Tagger: Machine Learning Driven Issue Classification 票据标注器:机器学习驱动的问题分类
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00070
Rafael Kallis, Andrea Di Sorbo, G. Canfora, Sebastiano Panichella
Software maintenance is crucial for software projects evolution and success: code should be kept up-to-date and error-free, this with little effort and continuous updates for the end-users. In this context, issue trackers are essential tools for creating, managing and addressing the several (often hundreds of) issues that occur in software systems. A critical aspect for handling and prioritizing issues involves the assignment of labels to them (e.g., for projects hosted on GitHub), in order to determine the type (e.g., bug report, feature request and so on) of each specific issue. Although this labeling process has a positive impact on the effectiveness of issue processing, the current labeling mechanism is scarcely used on GitHub. In this demo, we introduce a tool, called Ticket Tagger, which leverages machine learning strategies on issue titles and descriptions for automatically labeling GitHub issues. Ticket Tagger automatically predicts the labels to assign to issues, with the aim of stimulating the use of labeling mechanisms in software projects, this to facilitate the issue management and prioritization processes. Along with the presentation of the tool's architecture and usage, we also evaluate its effectiveness in performing the issue labeling/classification process, which is critical to help maintainers to keep control of their workloads by focusing on the most critical issue tickets.
软件维护对于软件项目的发展和成功是至关重要的:代码应该保持最新和无错误,这需要很少的努力和对最终用户的持续更新。在这种情况下,问题跟踪器是创建、管理和处理软件系统中出现的几个(通常是数百个)问题的基本工具。处理和确定问题优先级的一个关键方面包括给它们分配标签(例如,对于托管在GitHub上的项目),以确定每个特定问题的类型(例如,bug报告,功能请求等)。虽然这种标注过程对问题处理的有效性有积极的影响,但目前的标注机制在GitHub上很少使用。在这个演示中,我们介绍了一个名为Ticket Tagger的工具,它利用机器学习策略对问题标题和描述进行自动标记GitHub问题。Ticket Tagger自动预测分配给问题的标签,目的是刺激在软件项目中使用标签机制,这有助于问题管理和优先级排序过程。在介绍该工具的体系结构和用法的同时,我们还评估了其在执行问题标记/分类过程中的有效性,这对于帮助维护人员通过关注最关键的问题票据来保持对工作负载的控制至关重要。
{"title":"Ticket Tagger: Machine Learning Driven Issue Classification","authors":"Rafael Kallis, Andrea Di Sorbo, G. Canfora, Sebastiano Panichella","doi":"10.1109/ICSME.2019.00070","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00070","url":null,"abstract":"Software maintenance is crucial for software projects evolution and success: code should be kept up-to-date and error-free, this with little effort and continuous updates for the end-users. In this context, issue trackers are essential tools for creating, managing and addressing the several (often hundreds of) issues that occur in software systems. A critical aspect for handling and prioritizing issues involves the assignment of labels to them (e.g., for projects hosted on GitHub), in order to determine the type (e.g., bug report, feature request and so on) of each specific issue. Although this labeling process has a positive impact on the effectiveness of issue processing, the current labeling mechanism is scarcely used on GitHub. In this demo, we introduce a tool, called Ticket Tagger, which leverages machine learning strategies on issue titles and descriptions for automatically labeling GitHub issues. Ticket Tagger automatically predicts the labels to assign to issues, with the aim of stimulating the use of labeling mechanisms in software projects, this to facilitate the issue management and prioritization processes. Along with the presentation of the tool's architecture and usage, we also evaluate its effectiveness in performing the issue labeling/classification process, which is critical to help maintainers to keep control of their workloads by focusing on the most critical issue tickets.","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":"117197847","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}
引用次数: 59
An Approach to Recommendation of Verbosity Log Levels Based on Logging Intention 基于日志意图的详细日志级别推荐方法
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00022
H. Anu, Jie Chen, Wenchang Shi, Jianwei Hou, Bin Liang, Bo Qin
Verbosity levels of logs are designed to discriminate highly diverse runtime events, which facilitates system failure identification through simple keyword search (e.g., fatal, error). Verbosity levels should be properly assigned to logging statements, as inappropriate verbosity levels would confuse users and cause a lot of redundant maintenance effort. However, to achieve such a goal is not an easy task due to the lack of practical specifications and guidelines towards verbosity log level usages. The existing research has built a classification model on log related quantitative metrics such as log density to improve logging level practice. Though such quantitative metrics can reveal logging characteristics, their contributions on logging level decision are limited, since valuable logging intention information buried in logging code context can not be captured. In this paper, we propose an automatic approach to help developers determine the appropriate verbosity log levels. More specially, our approach discriminates different verbosity log level usages based on code context features that contain underlying logging intention. To validate our approach, we implement a prototype tool, VerbosityLevelDirector, and perform a case study to measure its effectiveness on four well-known open source software projects. Evaluation results show that VerbosityLevelDirector achieves high performance on verbosity level discrimination and outperforms the baseline approaches on all those projects. Furthermore, through applying noise handling technique, our approach can detect previously unknown inappropriate verbosity level configurations in the code repository. We have reported 21 representative logging level errors with modification advice to issue tracking platforms of the examined software projects and received positive feedback from their developers. The above results confirm that our work can help developers make a better logging level decision in real-world engineering.
日志的详细程度被设计为区分高度不同的运行时事件,这有助于通过简单的关键字搜索(例如,fatal, error)来识别系统故障。应该适当地为日志语句分配详细级别,因为不适当的详细级别会使用户感到困惑,并导致大量冗余的维护工作。然而,要实现这样的目标并不是一件容易的事情,因为缺乏针对冗长日志级别用法的实用规范和指导方针。已有研究建立了测井密度等测井相关定量指标的分类模型,以提高测井水平的实践水平。虽然这些量化指标可以揭示日志特征,但它们对日志级别决策的贡献有限,因为无法捕获隐藏在日志代码上下文中的有价值的日志意图信息。在本文中,我们提出了一种自动方法来帮助开发人员确定适当的冗长日志级别。更具体地说,我们的方法基于包含底层日志记录意图的代码上下文特性来区分不同的冗长日志级别用法。为了验证我们的方法,我们实现了一个原型工具,VerbosityLevelDirector,并执行了一个案例研究来衡量它在四个知名开源软件项目上的有效性。评估结果表明,VerbosityLevelDirector在冗长级别识别方面取得了优异的成绩,并且在所有这些项目上都优于基线方法。此外,通过应用噪声处理技术,我们的方法可以检测代码存储库中以前未知的不适当的冗长级别配置。我们已经向审查软件项目的发行跟踪平台报告了21个具有代表性的日志级别错误和修改建议,并收到了开发人员的积极反馈。以上结果证实,我们的工作可以帮助开发人员在实际工程中做出更好的日志级别决策。
{"title":"An Approach to Recommendation of Verbosity Log Levels Based on Logging Intention","authors":"H. Anu, Jie Chen, Wenchang Shi, Jianwei Hou, Bin Liang, Bo Qin","doi":"10.1109/ICSME.2019.00022","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00022","url":null,"abstract":"Verbosity levels of logs are designed to discriminate highly diverse runtime events, which facilitates system failure identification through simple keyword search (e.g., fatal, error). Verbosity levels should be properly assigned to logging statements, as inappropriate verbosity levels would confuse users and cause a lot of redundant maintenance effort. However, to achieve such a goal is not an easy task due to the lack of practical specifications and guidelines towards verbosity log level usages. The existing research has built a classification model on log related quantitative metrics such as log density to improve logging level practice. Though such quantitative metrics can reveal logging characteristics, their contributions on logging level decision are limited, since valuable logging intention information buried in logging code context can not be captured. In this paper, we propose an automatic approach to help developers determine the appropriate verbosity log levels. More specially, our approach discriminates different verbosity log level usages based on code context features that contain underlying logging intention. To validate our approach, we implement a prototype tool, VerbosityLevelDirector, and perform a case study to measure its effectiveness on four well-known open source software projects. Evaluation results show that VerbosityLevelDirector achieves high performance on verbosity level discrimination and outperforms the baseline approaches on all those projects. Furthermore, through applying noise handling technique, our approach can detect previously unknown inappropriate verbosity level configurations in the code repository. We have reported 21 representative logging level errors with modification advice to issue tracking platforms of the examined software projects and received positive feedback from their developers. The above results confirm that our work can help developers make a better logging level decision in real-world engineering.","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":"134387595","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}
引用次数: 17
Investigating Instability Architectural Smells Evolution: An Exploratory Case Study 研究不稳定的建筑气味演变:一个探索性的案例研究
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00090
Darius Sas, P. Avgeriou, F. Fontana
Architectural smells may substantially increase maintenance effort and thus require extra attention for potential refactoring. While we currently understand this concept and have identified different types of such smells, we have not yet studied their evolution in depth. This is necessary to inform their prioritisation and refactoring. This study analyses the evolution of individual architectural smell instances over time, and the characteristics that define these instances. Three different types of architectural smells are taken into consideration and mined from a total of 524 versions across 14 different projects. The results show how different smell types differ in multiple aspects, such as their growth rate, the importance of the affected elements over time in the dependency network of the system, and the time each instance affects the system. They also cast valuable insights on what aspects are the most important to consider during prioritisation and refactoring activities.
架构气味可能会大大增加维护工作量,因此需要对潜在的重构给予额外的关注。虽然我们目前理解了这个概念,并确定了不同类型的气味,但我们还没有深入研究它们的进化。这对于告知它们的优先级和重构是必要的。本研究分析了单个建筑气味实例随时间的演变,以及定义这些实例的特征。我们考虑了三种不同类型的建筑气味,并从14个不同项目的524个版本中挖掘出来。结果表明,不同的气味类型在多个方面存在差异,例如它们的生长速度、受影响元素在系统依赖网络中随时间的重要性,以及每个实例影响系统的时间。在优先级划分和重构活动中,哪些方面是最需要考虑的,他们也给出了有价值的见解。
{"title":"Investigating Instability Architectural Smells Evolution: An Exploratory Case Study","authors":"Darius Sas, P. Avgeriou, F. Fontana","doi":"10.1109/ICSME.2019.00090","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00090","url":null,"abstract":"Architectural smells may substantially increase maintenance effort and thus require extra attention for potential refactoring. While we currently understand this concept and have identified different types of such smells, we have not yet studied their evolution in depth. This is necessary to inform their prioritisation and refactoring. This study analyses the evolution of individual architectural smell instances over time, and the characteristics that define these instances. Three different types of architectural smells are taken into consideration and mined from a total of 524 versions across 14 different projects. The results show how different smell types differ in multiple aspects, such as their growth rate, the importance of the affected elements over time in the dependency network of the system, and the time each instance affects the system. They also cast valuable insights on what aspects are the most important to consider during prioritisation and refactoring activities.","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":"133142258","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
What Do Developers Discuss about Biometric APIs? 开发者对生物识别api讨论了什么?
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00053
Zhe Jin, K. Chee, Xin Xia
With the emergence of biometric technology in various applications, such as access control (e.g. mobile lock/unlock), financial transaction (e.g. Alibaba smile-to-pay) and time attendance, the development of biometric system attracts increasingly interest to the developers. Despite a sound biometric system gains the security assurance and great usability, it is a rather challenging task to develop an effective biometric system. For instance, many public available biometric APIs do not provide sufficient instructions / precise documentations on the usage of biometric APIs. Many developers are struggling in implementing these APIs in various tasks. Moreover, quick update on biometric-based algorithms (e.g. feature extraction and matching) may propagate to APIs, which leads to potential confusion to the system developers. Hence, we conduct an empirical study to the problems that the developers currently encountered while implementing the biometric APIs as well as the issues that need to be addressed when developing biometric systems using these APIs. We manually analyzed a total of 500 biometric API-related posts from various online media such as Stack Overflow and Neurotechnology. We reveal that 1) most of the problems encountered are related to the lack of precise documentation on the biometric APIs; 2) the incompatibility of biometric APIs cross multiple implementation environments.
随着生物识别技术在门禁(如手机锁/解锁)、金融交易(如阿里巴巴微笑支付)、考勤等各种应用中的出现,生物识别系统的开发越来越受到开发者的关注。尽管一个完善的生物识别系统具有很强的安全性和可用性,但开发一个有效的生物识别系统是一项相当具有挑战性的任务。例如,许多公开可用的生物识别api没有提供关于生物识别api使用的足够的说明/精确的文档。许多开发人员正在努力在各种任务中实现这些api。此外,基于生物特征识别的算法(如特征提取和匹配)的快速更新可能会传播到api,这可能会给系统开发人员带来潜在的困惑。因此,我们对开发人员目前在实施生物识别api时遇到的问题以及在使用这些api开发生物识别系统时需要解决的问题进行了实证研究。我们手动分析了来自各种在线媒体(如Stack Overflow和Neurotechnology)的500篇与生物识别api相关的文章。我们发现,1)遇到的大多数问题与缺乏精确的生物识别api文档有关;2)生物识别api在多个实现环境中的不兼容性。
{"title":"What Do Developers Discuss about Biometric APIs?","authors":"Zhe Jin, K. Chee, Xin Xia","doi":"10.1109/ICSME.2019.00053","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00053","url":null,"abstract":"With the emergence of biometric technology in various applications, such as access control (e.g. mobile lock/unlock), financial transaction (e.g. Alibaba smile-to-pay) and time attendance, the development of biometric system attracts increasingly interest to the developers. Despite a sound biometric system gains the security assurance and great usability, it is a rather challenging task to develop an effective biometric system. For instance, many public available biometric APIs do not provide sufficient instructions / precise documentations on the usage of biometric APIs. Many developers are struggling in implementing these APIs in various tasks. Moreover, quick update on biometric-based algorithms (e.g. feature extraction and matching) may propagate to APIs, which leads to potential confusion to the system developers. Hence, we conduct an empirical study to the problems that the developers currently encountered while implementing the biometric APIs as well as the issues that need to be addressed when developing biometric systems using these APIs. We manually analyzed a total of 500 biometric API-related posts from various online media such as Stack Overflow and Neurotechnology. We reveal that 1) most of the problems encountered are related to the lack of precise documentation on the biometric APIs; 2) the incompatibility of biometric APIs cross multiple implementation environments.","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":"125122430","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
Design Smell Detection and Analysis for Open Source Java Software 开源Java软件的气味检测与分析设计
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00104
A. Imran
Software design smells have gained significant importance in recent years since those directly lead to the increase of design debts and drastically affect software quality. Although the impact of design smells is manifold, techniques to detect design smells using both rule based and data mining approaches have been explored to a limited extent. This research aims to provide a tool which uses software metrics as a guide to detect smells and also deploys Spectral Clustering to mine the software repositories and group similar smells. The tool has been partially implemented till now and initial experiments on 2,59,509 Lines of Code (LoC) covering 3,306 classes of real life open source Java software show 2,220 occurrences of four types of design smells.
近年来,软件设计气味变得越来越重要,因为它们直接导致了设计债务的增加,并极大地影响了软件质量。尽管设计气味的影响是多方面的,但是使用基于规则的方法和数据挖掘方法来检测设计气味的技术已经在有限的程度上进行了探索。本研究旨在提供一种工具,该工具使用软件度量作为指导来检测气味,并部署光谱聚类来挖掘软件存储库并对相似的气味进行分组。到目前为止,该工具已经部分实现,并且在259,509行代码(LoC)上进行了初步实验,涵盖了现实生活中的3,306个开源Java软件类,显示出四种类型的设计气味出现了2,220次。
{"title":"Design Smell Detection and Analysis for Open Source Java Software","authors":"A. Imran","doi":"10.1109/ICSME.2019.00104","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00104","url":null,"abstract":"Software design smells have gained significant importance in recent years since those directly lead to the increase of design debts and drastically affect software quality. Although the impact of design smells is manifold, techniques to detect design smells using both rule based and data mining approaches have been explored to a limited extent. This research aims to provide a tool which uses software metrics as a guide to detect smells and also deploys Spectral Clustering to mine the software repositories and group similar smells. The tool has been partially implemented till now and initial experiments on 2,59,509 Lines of Code (LoC) covering 3,306 classes of real life open source Java software show 2,220 occurrences of four types of design smells.","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":"125104492","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
Linguistic Change in Open Source Software 开源软件中的语言变化
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00045
Miroslav Tushev, Saket Khatiwada, Anas Mahmoud
In this paper, we seek to advance the state-of-the-art in code evolution analysis research and practice by statistically analyzing, interpreting, and formally describing the evolution of code lexicon in Open Source Software (OSS). The underlying hypothesis is that, similar to natural language, code lexicon falls under the remit of evolutionary principles. Therefore, adapting theories and statistical models of natural language evolution to code is expected to provide unique insights into software evolution. Our analysis in this paper is conducted using 2,000 OSS systems sampled from a broad range of application domains. Our results show that a) OSS projects exhibit a significant shift in their linguistic identity over time, b) different syntactic structures of code lexicon evolve differently, c) different factors of OSS development and different maintenance activities impact code lexicon differently. These insights lay out a preliminary foundation for modeling the linguistic history of OSS projects. In the long run, this foundation will be utilized to provide support for basic software maintenance and program comprehension activities, and gain new theoretical insights into the complex interplay between linguistic change and various system and human aspects of OSS development.
在本文中,我们试图通过统计分析、解释和正式描述开源软件(OSS)中代码词典的演变,来推动代码演变分析研究和实践的最新进展。潜在的假设是,与自然语言类似,代码词典属于进化原则的范畴。因此,将自然语言进化的理论和统计模型应用于代码有望为软件进化提供独特的见解。我们在本文中的分析是使用从广泛的应用领域取样的2000个OSS系统进行的。研究结果表明:a)随着时间的推移,OSS项目的语言特性发生了显著的变化;b)不同的代码词典句法结构的演变不同;c)不同的OSS开发因素和不同的维护活动对代码词典的影响不同。这些见解为OSS项目的语言历史建模奠定了初步的基础。从长远来看,这个基础将被用来为基本的软件维护和程序理解活动提供支持,并对语言变化与OSS开发的各种系统和人的方面之间的复杂相互作用获得新的理论见解。
{"title":"Linguistic Change in Open Source Software","authors":"Miroslav Tushev, Saket Khatiwada, Anas Mahmoud","doi":"10.1109/ICSME.2019.00045","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00045","url":null,"abstract":"In this paper, we seek to advance the state-of-the-art in code evolution analysis research and practice by statistically analyzing, interpreting, and formally describing the evolution of code lexicon in Open Source Software (OSS). The underlying hypothesis is that, similar to natural language, code lexicon falls under the remit of evolutionary principles. Therefore, adapting theories and statistical models of natural language evolution to code is expected to provide unique insights into software evolution. Our analysis in this paper is conducted using 2,000 OSS systems sampled from a broad range of application domains. Our results show that a) OSS projects exhibit a significant shift in their linguistic identity over time, b) different syntactic structures of code lexicon evolve differently, c) different factors of OSS development and different maintenance activities impact code lexicon differently. These insights lay out a preliminary foundation for modeling the linguistic history of OSS projects. In the long run, this foundation will be utilized to provide support for basic software maintenance and program comprehension activities, and gain new theoretical insights into the complex interplay between linguistic change and various system and human aspects of OSS development.","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":"115568174","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
Inappropriate Usage Examples in Web API Documentations Web API文档中的不当用法示例
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00052
Masaki Hosono, Susumu Tokumoto, S. Monpratarnchai, H. Washizaki, Kiyoshi Honda, Hiromasa Nagumo, Hisanobu Sonoda, Y. Fukazawa, Kazuki Munakata, Takao Nakagawa, Yusuke Nemoto
Application Programming Interfaces (APIs) are common in software development to reuse other products. Although the documentation allows API consumers to learn about API usages, it can be unreliable. Here, we investigate the characteristics of inappropriate usage examples in web API documentation by extracting and comparing OpenAPI Specifications from usage example-response pairs. About 65.5% of the endpoints have some form of inappropriate usage examples. Furthermore, mismatches are classified into four categories: undocumented keys pattern, dynamic keys pattern, unreturned keys pattern, and type mismatched pattern. Our results suggest that the number of keys in the response is correlated with the number of mismatches. These findings should assist both API providers and consumers who deal with unreliable documentation in web APIs.
应用程序编程接口(api)在软件开发中用于重用其他产品是很常见的。尽管文档允许API使用者了解API的用法,但它可能不可靠。在这里,我们通过从使用示例-响应对中提取和比较OpenAPI规范来研究web API文档中不适当使用示例的特征。大约65.5%的端点存在某种形式的不当用法示例。此外,将不匹配分为四类:未记录的键模式、动态键模式、未返回的键模式和类型不匹配模式。我们的结果表明,响应中的键的数量与不匹配的数量相关。这些发现应该有助于处理web API中不可靠文档的API提供者和消费者。
{"title":"Inappropriate Usage Examples in Web API Documentations","authors":"Masaki Hosono, Susumu Tokumoto, S. Monpratarnchai, H. Washizaki, Kiyoshi Honda, Hiromasa Nagumo, Hisanobu Sonoda, Y. Fukazawa, Kazuki Munakata, Takao Nakagawa, Yusuke Nemoto","doi":"10.1109/ICSME.2019.00052","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00052","url":null,"abstract":"Application Programming Interfaces (APIs) are common in software development to reuse other products. Although the documentation allows API consumers to learn about API usages, it can be unreliable. Here, we investigate the characteristics of inappropriate usage examples in web API documentation by extracting and comparing OpenAPI Specifications from usage example-response pairs. About 65.5% of the endpoints have some form of inappropriate usage examples. Furthermore, mismatches are classified into four categories: undocumented keys pattern, dynamic keys pattern, unreturned keys pattern, and type mismatched pattern. Our results suggest that the number of keys in the response is correlated with the number of mismatches. These findings should assist both API providers and consumers who deal with unreliable documentation in web APIs.","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":"122331061","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
Personalized Code Recommendation 个性化代码推荐
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00047
Tam The Nguyen, P. Vu, T. Nguyen
The current state-of-the-art methods in code recommendation mostly take the crowd-based approach. The basic idea is to collect and extract code patterns from a large pool of available source code and use those code patterns for recommendations. However, different programmers have different coding styles, levels of experience, and knowledge about libraries and frameworks, all of which cause different uses of variable names, classes, and methods. When code of different programmers is combined, such differences are blurred, which could hurt the performance of the code recommendation tool for a specific programmer. In the paper, we explore a new research direction in code recommendation which focuses on personal coding patterns of programmers. As a proof of concept, we have developed a personalized code recommendation model for suggesting variable declaration and initialization code. Our techniques learn personalized code patterns for each programmer based on their coding history. The preliminary evaluation shows that our recommendation model is highly effective. For example, when evaluating on a programmer, our approach has top-1 accuracy of 62% and top-3 accuracy of 70% on recommending declaration types. Our approach has top-1 and top-3 accuracy of 67% and 76%, respectively, on recommending initialization method sequences. Furthermore, our model also outperforms the baselines significantly in these experiments.
当前最先进的代码推荐方法大多采用基于人群的方法。其基本思想是从大量可用源代码中收集和提取代码模式,并将这些代码模式用于推荐。然而,不同的程序员有不同的编码风格、经验水平以及对库和框架的了解,所有这些都会导致对变量名、类和方法的不同使用。当不同程序员的代码组合在一起时,这种差异就会变得模糊,这可能会损害针对特定程序员的代码推荐工具的性能。在本文中,我们探索了一个新的研究方向,即关注程序员的个人编码模式。作为概念验证,我们开发了一个个性化的代码推荐模型,用于建议变量声明和初始化代码。我们的技术根据每个程序员的编码历史为他们学习个性化的代码模式。初步评价表明,我们的推荐模型是非常有效的。例如,在对程序员进行评估时,我们的方法在推荐声明类型方面的前1名准确率为62%,前3名准确率为70%。我们的方法在推荐初始化方法序列上的前1和前3准确率分别为67%和76%。此外,我们的模型在这些实验中也明显优于基线。
{"title":"Personalized Code Recommendation","authors":"Tam The Nguyen, P. Vu, T. Nguyen","doi":"10.1109/ICSME.2019.00047","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00047","url":null,"abstract":"The current state-of-the-art methods in code recommendation mostly take the crowd-based approach. The basic idea is to collect and extract code patterns from a large pool of available source code and use those code patterns for recommendations. However, different programmers have different coding styles, levels of experience, and knowledge about libraries and frameworks, all of which cause different uses of variable names, classes, and methods. When code of different programmers is combined, such differences are blurred, which could hurt the performance of the code recommendation tool for a specific programmer. In the paper, we explore a new research direction in code recommendation which focuses on personal coding patterns of programmers. As a proof of concept, we have developed a personalized code recommendation model for suggesting variable declaration and initialization code. Our techniques learn personalized code patterns for each programmer based on their coding history. The preliminary evaluation shows that our recommendation model is highly effective. For example, when evaluating on a programmer, our approach has top-1 accuracy of 62% and top-3 accuracy of 70% on recommending declaration types. Our approach has top-1 and top-3 accuracy of 67% and 76%, respectively, on recommending initialization method sequences. Furthermore, our model also outperforms the baselines significantly in these experiments.","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":"127820607","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
Tracing with Less Data: Active Learning for Classification-Based Traceability Link Recovery 少数据跟踪:基于分类的跟踪链接恢复的主动学习
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00020
Chris Mills, Javier Escobar-Avila, Aditya R. Bhattacharya, Grigoriy Kondyukov, Shayok Chakraborty, S. Haiduc
Previous work has established both the importance and difficulty of establishing and maintaining adequate software traceability. While it has been shown to support essential maintenance and evolution tasks, recovering traceability links between related software artifacts is a time consuming and error prone task. As such, substantial research has been done to reduce this barrier to adoption by at least partially automating traceability link recovery. In particular, recent work has shown that supervised machine learning can be effectively used for automating traceability link recovery, as long as there is sufficient data (i.e., labeled traceability links) to train a classification model. Unfortunately, the amount of data required by these techniques is a serious limitation, given that most software systems rarely have traceability information to begin with. In this paper we address this limitation of previous work and propose an approach based on active learning, which substantially reduces the amount of training data needed by supervised classification approaches for traceability link recovery while maintaining similar performance.
以前的工作已经确定了建立和维护适当的软件可追溯性的重要性和难度。虽然它支持基本的维护和演进任务,但是恢复相关软件工件之间的可追溯性链接是一项耗时且容易出错的任务。因此,已经进行了大量的研究,通过至少部分地自动化可追溯性链接恢复来减少这种采用障碍。特别是,最近的工作表明,监督机器学习可以有效地用于自动化可追溯性链接恢复,只要有足够的数据(即标记的可追溯性链接)来训练分类模型。不幸的是,这些技术所需的数据量是一个严重的限制,因为大多数软件系统一开始很少有可跟踪性信息。在本文中,我们解决了先前工作的这一局限性,并提出了一种基于主动学习的方法,该方法大大减少了监督分类方法用于可追溯性链接恢复所需的训练数据量,同时保持了类似的性能。
{"title":"Tracing with Less Data: Active Learning for Classification-Based Traceability Link Recovery","authors":"Chris Mills, Javier Escobar-Avila, Aditya R. Bhattacharya, Grigoriy Kondyukov, Shayok Chakraborty, S. Haiduc","doi":"10.1109/ICSME.2019.00020","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00020","url":null,"abstract":"Previous work has established both the importance and difficulty of establishing and maintaining adequate software traceability. While it has been shown to support essential maintenance and evolution tasks, recovering traceability links between related software artifacts is a time consuming and error prone task. As such, substantial research has been done to reduce this barrier to adoption by at least partially automating traceability link recovery. In particular, recent work has shown that supervised machine learning can be effectively used for automating traceability link recovery, as long as there is sufficient data (i.e., labeled traceability links) to train a classification model. Unfortunately, the amount of data required by these techniques is a serious limitation, given that most software systems rarely have traceability information to begin with. In this paper we address this limitation of previous work and propose an approach based on active learning, which substantially reduces the amount of training data needed by supervised classification approaches for traceability link recovery while maintaining similar performance.","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":"133205360","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}
引用次数: 13
期刊
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