首页 > 最新文献

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

英文 中文
Lessons Learned from Large-Scale Refactoring 从大规模重构中学到的经验教训
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00058
Hyrum K. Wright
Google maintains a large multi-language codebase containing hundreds of millions of lines code across many different projects. Over the past several years, our team has developed processes which enable us to update that codebase efficiently at scale. In this talk, I discuss some of the lessons which we have learned and existing open problems in the space.
谷歌维护着一个大型的多语言代码库,其中包含许多不同项目的数亿行代码。在过去的几年里,我们的团队开发了一些流程,使我们能够有效地大规模更新代码库。在这次演讲中,我将讨论一些我们所学到的经验教训以及该领域存在的开放性问题。
{"title":"Lessons Learned from Large-Scale Refactoring","authors":"Hyrum K. Wright","doi":"10.1109/ICSME.2019.00058","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00058","url":null,"abstract":"Google maintains a large multi-language codebase containing hundreds of millions of lines code across many different projects. Over the past several years, our team has developed processes which enable us to update that codebase efficiently at scale. In this talk, I discuss some of the lessons which we have learned and existing open problems in the space.","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":"125861730","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
An Empirical Study of the Relationship between Continuous Integration and Test Code Evolution 持续集成与测试代码演化关系的实证研究
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00075
G. Nery, D. A. D. Costa, U. Kulesza
Continuous Integration (CI) is the practice of automating and improving the frequency of code integration. CI has been widely adopted by software development teams and has brought the attention of researchers to study its benefits. Existing research shows that CI can improve software quality by identifying the errors earlier in the software development life-cycle. One question that remains open, however, is whether CI increases the adoption of testing practices in software projects. The goal of our work is to investigate the evolution of software tests and its relationship with the adoption of Continuous Integration. We set out to compare 82 projects that adopted CI (CI projects) and 82 projects that have never adopted CI (NOCI projects). In total, we studied 3,936 versions of our studied projects to investigate trends on the test code ratio and coverage. We observe that 40.2% of the CI projects have a rising test-code ratio trend while only 17% of the NOCI projects have a rising trend. Additionally, we find evidences that CI projects have improved the overall test coverage while NOCI projects do not experience the same growth. Finally, we build a mixed-effects model to study software development factors than can possibly explain the test ratio. Our models reveal that test ratio is largely explained by the project inherent context rather than code or process factors. In overall, our work demonstrates that Continuous Integration can be empirically associated with a healthier test code evolution.
持续集成(CI)是自动化和提高代码集成频率的实践。CI已被软件开发团队广泛采用,并引起了研究人员对其好处的关注。现有的研究表明,CI可以通过在软件开发生命周期的早期识别错误来提高软件质量。然而,仍然存在一个问题,即CI是否增加了软件项目中测试实践的采用。我们工作的目标是研究软件测试的发展,以及它与持续集成的采用之间的关系。我们开始比较82个采用CI的项目(CI项目)和82个从未采用CI的项目(NOCI项目)。总的来说,我们研究了我们所研究项目的3936个版本,以调查测试代码比率和覆盖率的趋势。我们观察到,40.2%的CI项目有测试代码比率上升的趋势,而NOCI项目只有17%有测试代码比率上升的趋势。此外,我们发现CI项目提高了整体测试覆盖率的证据,而NOCI项目没有经历同样的增长。最后,我们建立了一个混合效应模型来研究可能解释测试比率的软件开发因素。我们的模型显示,测试比率在很大程度上是由项目固有的上下文而不是代码或过程因素来解释的。总的来说,我们的工作证明了持续集成可以在经验上与更健康的测试代码发展相关联。
{"title":"An Empirical Study of the Relationship between Continuous Integration and Test Code Evolution","authors":"G. Nery, D. A. D. Costa, U. Kulesza","doi":"10.1109/ICSME.2019.00075","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00075","url":null,"abstract":"Continuous Integration (CI) is the practice of automating and improving the frequency of code integration. CI has been widely adopted by software development teams and has brought the attention of researchers to study its benefits. Existing research shows that CI can improve software quality by identifying the errors earlier in the software development life-cycle. One question that remains open, however, is whether CI increases the adoption of testing practices in software projects. The goal of our work is to investigate the evolution of software tests and its relationship with the adoption of Continuous Integration. We set out to compare 82 projects that adopted CI (CI projects) and 82 projects that have never adopted CI (NOCI projects). In total, we studied 3,936 versions of our studied projects to investigate trends on the test code ratio and coverage. We observe that 40.2% of the CI projects have a rising test-code ratio trend while only 17% of the NOCI projects have a rising trend. Additionally, we find evidences that CI projects have improved the overall test coverage while NOCI projects do not experience the same growth. Finally, we build a mixed-effects model to study software development factors than can possibly explain the test ratio. Our models reveal that test ratio is largely explained by the project inherent context rather than code or process factors. In overall, our work demonstrates that Continuous Integration can be empirically associated with a healthier test code evolution.","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":"122932856","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}
引用次数: 10
An Empirical Study Assessing Source Code Readability in Comprehension 基于理解的源代码可读性评估实证研究
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00085
John Johnson, Sergio Lubo, Nishitha Yedla, Jairo Aponte, Bonita Sharif
Software developers spend a significant amount of time reading source code. If code is not written with readability in mind, it impacts the time required to maintain it. In order to alleviate the time taken to read and understand code, it is important to consider how readable the code is. The general consensus is that source code should be written to minimize the time it takes for others to read and understand it. In this paper, we conduct a controlled experiment to assess two code readability rules: nesting and looping. We test 32 Java methods in four categories: ones that follow/do not follow the readability rule and that are correct/incorrect. The study was conducted online with 275 participants. The results indicate that minimizing nesting decreases the time a developer spends reading and understanding source code, increases confidence about the developer's understanding of the code, and also suggests that it improves their ability to find bugs. The results also show that avoiding the do-while statement had no significant impact on level of understanding, time spent reading and understanding, confidence in understanding, or ease of finding bugs. It was also found that the better knowledge of English a participant had, the more their readability and comprehension confidence ratings were affected by the minimize nesting rule. We discuss the implications of these findings for code readability and comprehension.
软件开发人员花费大量时间阅读源代码。如果在编写代码时没有考虑到可读性,就会影响维护代码所需的时间。为了减少阅读和理解代码所花费的时间,考虑代码的可读性是很重要的。一般的共识是,源代码的编写应该尽量减少其他人阅读和理解它所花费的时间。在本文中,我们进行了一个对照实验来评估两个代码可读性规则:嵌套和循环。我们测试了32个Java方法,分为四类:遵循/不遵循可读性规则的方法和正确/不正确的方法。这项研究是在网上进行的,共有275名参与者。结果表明,最小化嵌套减少了开发人员阅读和理解源代码所花费的时间,增加了开发人员对代码理解的信心,并且还表明它提高了他们发现错误的能力。结果还表明,避免do-while语句对理解水平、花在阅读和理解上的时间、理解的信心或查找错误的便利性没有显著影响。研究还发现,参与者的英语知识越好,他们的可读性和理解信心评级就越受最小化嵌套规则的影响。我们将讨论这些发现对代码可读性和理解的影响。
{"title":"An Empirical Study Assessing Source Code Readability in Comprehension","authors":"John Johnson, Sergio Lubo, Nishitha Yedla, Jairo Aponte, Bonita Sharif","doi":"10.1109/ICSME.2019.00085","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00085","url":null,"abstract":"Software developers spend a significant amount of time reading source code. If code is not written with readability in mind, it impacts the time required to maintain it. In order to alleviate the time taken to read and understand code, it is important to consider how readable the code is. The general consensus is that source code should be written to minimize the time it takes for others to read and understand it. In this paper, we conduct a controlled experiment to assess two code readability rules: nesting and looping. We test 32 Java methods in four categories: ones that follow/do not follow the readability rule and that are correct/incorrect. The study was conducted online with 275 participants. The results indicate that minimizing nesting decreases the time a developer spends reading and understanding source code, increases confidence about the developer's understanding of the code, and also suggests that it improves their ability to find bugs. The results also show that avoiding the do-while statement had no significant impact on level of understanding, time spent reading and understanding, confidence in understanding, or ease of finding bugs. It was also found that the better knowledge of English a participant had, the more their readability and comprehension confidence ratings were affected by the minimize nesting rule. We discuss the implications of these findings for code readability and comprehension.","PeriodicalId":106748,"journal":{"name":"2019 IEEE International Conference on Software Maintenance and Evolution (ICSME)","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2019-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128803576","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}
引用次数: 15
Systematically Testing and Diagnosing Responsiveness for Android Apps 系统地测试和诊断Android应用程序的响应性
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00077
Wenhua Zhao, Zhenkai Ding, Mingyuan Xia, Zhengwei Qi
App responsiveness is the most intuitive interpretation of app performance from user's perspective. Traditional performance profilers only focus on one kind of program activities (e.g., CPU profiling), while the cause for slow responsiveness is diverse or even due to the joint effect of multiple kinds. Also, various test configurations, such as device hardware and wireless connectivity can have dramatic impact on particular program activities and indirectly affect app responsiveness. Conventional mobile testing lacks mechanisms to reveal configuration-sensitive bugs. In this paper, we propose AppSPIN, a tool to automatically diagnose app responsiveness bugs and systematically explore configuration-sensitive bugs. AppSPIN instruments the app to collect program events and UI responsiveness. The instrumented app is exercised with automated monkey testers and AppSPIN correlates excessive and lengthy program events with bad responsiveness detected at runtime. The diagnosis process also synthesizes the major resource bottleneck for the app. After one test run, AppSPIN automatically alters the test configuration to with most bottlenecked resource to further explore responsiveness bugs happened only with particular test configurations. Our preliminary experiments with 30 real-world apps show that AppSPIN can detect 123 responsiveness bugs and successfully diagnose the cause for 87% cases, within an average of 15-minute test time. Also with altered test configurations, AppSPIN uncovers a notable number of new bugs within four extra test runs.
从用户的角度来看,应用响应性是对应用性能最直观的诠释。传统的性能分析器只关注一种程序活动(例如,CPU分析),而导致响应速度慢的原因是多种多样的,甚至是多种因素共同作用的结果。此外,各种测试配置(如设备硬件和无线连接)可能对特定程序活动产生巨大影响,并间接影响应用程序的响应性。传统的移动测试缺乏揭示配置敏感漏洞的机制。在本文中,我们提出了AppSPIN,一个自动诊断应用程序响应错误和系统地探索配置敏感错误的工具。AppSPIN检测应用程序来收集程序事件和UI响应性。仪器化的应用程序使用自动猴子测试器进行测试,AppSPIN将过多和冗长的程序事件与运行时检测到的不良响应关联起来。诊断过程还综合了应用程序的主要资源瓶颈。在一次测试运行后,AppSPIN自动将测试配置更改为使用大多数瓶颈资源,以进一步探索仅在特定测试配置下发生的响应性错误。我们对30个真实应用的初步实验表明,AppSPIN可以检测出123个响应性错误,并在平均15分钟的测试时间内成功诊断出87%的原因。另外,通过改变测试配置,AppSPIN在4个额外的测试运行中发现了大量的新bug。
{"title":"Systematically Testing and Diagnosing Responsiveness for Android Apps","authors":"Wenhua Zhao, Zhenkai Ding, Mingyuan Xia, Zhengwei Qi","doi":"10.1109/ICSME.2019.00077","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00077","url":null,"abstract":"App responsiveness is the most intuitive interpretation of app performance from user's perspective. Traditional performance profilers only focus on one kind of program activities (e.g., CPU profiling), while the cause for slow responsiveness is diverse or even due to the joint effect of multiple kinds. Also, various test configurations, such as device hardware and wireless connectivity can have dramatic impact on particular program activities and indirectly affect app responsiveness. Conventional mobile testing lacks mechanisms to reveal configuration-sensitive bugs. In this paper, we propose AppSPIN, a tool to automatically diagnose app responsiveness bugs and systematically explore configuration-sensitive bugs. AppSPIN instruments the app to collect program events and UI responsiveness. The instrumented app is exercised with automated monkey testers and AppSPIN correlates excessive and lengthy program events with bad responsiveness detected at runtime. The diagnosis process also synthesizes the major resource bottleneck for the app. After one test run, AppSPIN automatically alters the test configuration to with most bottlenecked resource to further explore responsiveness bugs happened only with particular test configurations. Our preliminary experiments with 30 real-world apps show that AppSPIN can detect 123 responsiveness bugs and successfully diagnose the cause for 87% cases, within an average of 15-minute test time. Also with altered test configurations, AppSPIN uncovers a notable number of new bugs within four extra test runs.","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":"122049695","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
Automated Characterization of Software Vulnerabilities 软件漏洞的自动表征
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00023
Danielle Gonzalez, Holly Hastings, Mehdi Mirakhorli
Preventing vulnerability exploits is a critical software maintenance task, and software engineers often rely on Common Vulnerability and Exposure (CVEs) reports for information about vulnerable systems and libraries. These reports include descriptions, disclosure sources, and manually-populated vulnerability characteristics such as root cause from the NIST Vulnerability Description Ontology (VDO). This information needs to be complete and accurate so stakeholders of affected products can prevent and react to exploits of the reported vulnerabilities. In this study, we demonstrate that VDO characteristics can be automatically detected from the textual descriptions included in CVE reports. We evaluated the performance of 6 classification algorithms with a dataset of 365 vulnerability descriptions, each mapped to 1 of 19 characteristics from the VDO. This work demonstrates that it is feasible to train classification techniques to accurately characterize vulnerabilities from their descriptions. All 6 classifiers evaluated produced accurate results, and the Support Vector Machine classifier was the best-performing individual classifier. Automating the vulnerability characterization process is a step towards ensuring stakeholders have the necessary data to effectively maintain their systems.
防止漏洞被利用是一项重要的软件维护任务,软件工程师经常依赖于公共漏洞和暴露(Common vulnerability and Exposure, cve)报告来获取有关易受攻击的系统和库的信息。这些报告包括描述、披露来源和手动填充的漏洞特征,例如来自NIST漏洞描述本体(VDO)的根本原因。此信息需要完整和准确,以便受影响产品的涉众可以预防并对报告的漏洞利用作出反应。在本研究中,我们证明了VDO特征可以从CVE报告中的文本描述中自动检测出来。我们使用365个漏洞描述的数据集评估了6种分类算法的性能,每个漏洞描述映射到来自VDO的19个特征中的1个。这项工作表明,训练分类技术从漏洞描述中准确地表征漏洞是可行的。所有6个分类器评估产生准确的结果,支持向量机分类器是表现最好的单个分类器。自动化漏洞表征过程是确保涉众拥有必要数据以有效维护其系统的一个步骤。
{"title":"Automated Characterization of Software Vulnerabilities","authors":"Danielle Gonzalez, Holly Hastings, Mehdi Mirakhorli","doi":"10.1109/ICSME.2019.00023","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00023","url":null,"abstract":"Preventing vulnerability exploits is a critical software maintenance task, and software engineers often rely on Common Vulnerability and Exposure (CVEs) reports for information about vulnerable systems and libraries. These reports include descriptions, disclosure sources, and manually-populated vulnerability characteristics such as root cause from the NIST Vulnerability Description Ontology (VDO). This information needs to be complete and accurate so stakeholders of affected products can prevent and react to exploits of the reported vulnerabilities. In this study, we demonstrate that VDO characteristics can be automatically detected from the textual descriptions included in CVE reports. We evaluated the performance of 6 classification algorithms with a dataset of 365 vulnerability descriptions, each mapped to 1 of 19 characteristics from the VDO. This work demonstrates that it is feasible to train classification techniques to accurately characterize vulnerabilities from their descriptions. All 6 classifiers evaluated produced accurate results, and the Support Vector Machine classifier was the best-performing individual classifier. Automating the vulnerability characterization process is a step towards ensuring stakeholders have the necessary data to effectively maintain their systems.","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":"124374679","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 8
Decomposing God Classes at Siemens 西门子的神类分解
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00027
N. Anquetil, Anne Etien, Gaelle Andreo, Stéphane Ducasse
A group of developers at Siemens Digital Industry Division approached our team to help them restructure a large legacy system. Several problems were identified, including the presence of God classes (big classes with thousands of lines of code and hundred of methods). They had tried different approaches considering the dependencies between the classes, but none were satisfactory. Through interaction during the last three years with a lead software architect of the project, we designed a software visualization tool and an accompanying process that allows her to propose a decomposition of a God Class in a matter of one or two hours even without prior knowledge of the class (although actually implementing the decomposition in the source code could take a week of work). In this paper, we present the process that was formalized to decompose God Classes and the tool that was designed. We give details on the system itself and some of the classes that were decomposed. The presented process and visualizations have been successfully used for the last three years on a real industrial system at Siemens.
西门子数字工业部门的一组开发人员找到我们的团队,帮助他们重组一个大型遗留系统。发现了几个问题,包括存在God类(包含数千行代码和数百个方法的大型类)。考虑到类之间的依赖关系,他们尝试了不同的方法,但没有一个令人满意。在过去的三年里,通过与项目的首席软件架构师的互动,我们设计了一个软件可视化工具和伴随的过程,使她能够在一两个小时内提出对God Class的分解,即使事先不了解该类(尽管在源代码中实际实现分解可能需要一周的工作)。本文给出了对神类进行形式化分解的过程和设计的工具。我们给出了系统本身和一些被分解的类的细节。在过去的三年中,所提出的过程和可视化已经成功地应用于西门子的一个实际工业系统。
{"title":"Decomposing God Classes at Siemens","authors":"N. Anquetil, Anne Etien, Gaelle Andreo, Stéphane Ducasse","doi":"10.1109/ICSME.2019.00027","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00027","url":null,"abstract":"A group of developers at Siemens Digital Industry Division approached our team to help them restructure a large legacy system. Several problems were identified, including the presence of God classes (big classes with thousands of lines of code and hundred of methods). They had tried different approaches considering the dependencies between the classes, but none were satisfactory. Through interaction during the last three years with a lead software architect of the project, we designed a software visualization tool and an accompanying process that allows her to propose a decomposition of a God Class in a matter of one or two hours even without prior knowledge of the class (although actually implementing the decomposition in the source code could take a week of work). In this paper, we present the process that was formalized to decompose God Classes and the tool that was designed. We give details on the system itself and some of the classes that were decomposed. The presented process and visualizations have been successfully used for the last three years on a real industrial system at Siemens.","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":"114854625","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
A Validation Method of Self-Adaptive Strategy Based on POMDP 一种基于POMDP的自适应策略验证方法
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00061
Tong Wu, Qingshan Li, Lu Wang
Self-Adaptive Systems (SASs) can dynamically adjust themselves to adapt to the changes, by planning some strategies to guide the adjustments. However, many uncertainties in runtime affect the efficiency of strategies and the ability to attain goals for SASs. So, it is necessary to validate strategies before they are executed. At present, most of the validation methods ignore the fact that less data can be observed at runtime, so it is difficult to describe the state accurately with these data. Most methods do not support uncertain state reasoning, but state transition is uncertain. This will result in the verification method not dealing well with the uncertainties. This paper proposes a strategy validation method based on Partially Observable Markov Decision Process, and makes several key contributions: (1) a uncertain state model that not only support description of states through partial information, but also describe the uncertain transitions of states, (2) a validation method to validate whether the strategies meets the requirements at runtime, (3) a strategy correction method to get effective strategies as quickly as possible.
自适应系统(SASs)可以动态调整自身以适应变化,通过规划一些策略来指导调整。然而,运行时的许多不确定性影响了策略的效率和SASs实现目标的能力。因此,有必要在执行策略之前对其进行验证。目前,大多数验证方法都忽略了运行时可以观察到的数据较少的事实,因此很难用这些数据准确地描述状态。大多数方法不支持不确定状态推理,但状态转换是不确定的。这将导致验证方法不能很好地处理不确定度。本文提出了一种基于部分可观察马尔可夫决策过程的策略验证方法,并做出了几个关键贡献:(1)建立了不确定状态模型,该模型不仅支持通过部分信息描述状态,而且还描述了状态的不确定转移;(2)建立了一种验证策略在运行时是否满足要求的验证方法;(3)建立了一种策略修正方法,以尽快得到有效的策略。
{"title":"A Validation Method of Self-Adaptive Strategy Based on POMDP","authors":"Tong Wu, Qingshan Li, Lu Wang","doi":"10.1109/ICSME.2019.00061","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00061","url":null,"abstract":"Self-Adaptive Systems (SASs) can dynamically adjust themselves to adapt to the changes, by planning some strategies to guide the adjustments. However, many uncertainties in runtime affect the efficiency of strategies and the ability to attain goals for SASs. So, it is necessary to validate strategies before they are executed. At present, most of the validation methods ignore the fact that less data can be observed at runtime, so it is difficult to describe the state accurately with these data. Most methods do not support uncertain state reasoning, but state transition is uncertain. This will result in the verification method not dealing well with the uncertainties. This paper proposes a strategy validation method based on Partially Observable Markov Decision Process, and makes several key contributions: (1) a uncertain state model that not only support description of states through partial information, but also describe the uncertain transitions of states, (2) a validation method to validate whether the strategies meets the requirements at runtime, (3) a strategy correction method to get effective strategies as quickly as possible.","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":"115020149","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Can Everyone use my app? An Empirical Study on Accessibility in Android Apps 每个人都可以使用我的应用吗?Android应用可访问性的实证研究
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00014
Christopher Vendome, Diana Solano, Santiago Linan, M. Linares-Vásquez
Universal design principles aim to improve accessibility by ensuring product designs consider all users, including those with certain disabilities (e.g., visual impairments). In the case of mobile apps, accessibility is mostly provided by existing features in mobile devices, like TalkBack on Android that reads information to users. However, it is not clear to what extent developers actually implement universal design principles or utilize these technologies to support accessibility of their applications. By performing a mining-based pilot study, we observed developers seldom use Accessibility APIs and there is a limited usage of assistive descriptions. Then, we focused on understanding the perspective of developers through an investigation of posts from StackOverflow. We identified the aspects of accessibility that developers implemented as well as experienced difficulty (or lack of understanding). We performed a formal open-coding of 366 discussions threads with multi-author agreement to create a taxonomy regarding the aspects discussed by developers with respect to accessibility in Android. From the qualitative analysis, we distilled lessons to guide further research and actions in aiding developers with supporting users that require assistive features.
通用设计原则旨在通过确保产品设计考虑到所有用户,包括那些有某些残疾的用户(例如,视觉障碍),从而提高可访问性。就移动应用而言,可访问性主要是由移动设备的现有功能提供的,比如Android上的TalkBack,它可以向用户读取信息。然而,开发人员实际实现通用设计原则或利用这些技术来支持其应用程序的可访问性的程度是不清楚的。通过执行基于挖掘的试点研究,我们观察到开发人员很少使用可访问性api,并且辅助描述的使用有限。然后,我们通过调查StackOverflow上的帖子来了解开发者的观点。我们确定了开发人员实现的可访问性方面以及遇到的困难(或缺乏理解)。我们使用多作者协议对366个讨论线程进行了正式的开放编码,以创建一个关于开发人员讨论的Android可访问性方面的分类法。从定性分析中,我们提炼出一些经验教训,以指导进一步的研究和行动,帮助开发人员支持需要辅助特性的用户。
{"title":"Can Everyone use my app? An Empirical Study on Accessibility in Android Apps","authors":"Christopher Vendome, Diana Solano, Santiago Linan, M. Linares-Vásquez","doi":"10.1109/ICSME.2019.00014","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00014","url":null,"abstract":"Universal design principles aim to improve accessibility by ensuring product designs consider all users, including those with certain disabilities (e.g., visual impairments). In the case of mobile apps, accessibility is mostly provided by existing features in mobile devices, like TalkBack on Android that reads information to users. However, it is not clear to what extent developers actually implement universal design principles or utilize these technologies to support accessibility of their applications. By performing a mining-based pilot study, we observed developers seldom use Accessibility APIs and there is a limited usage of assistive descriptions. Then, we focused on understanding the perspective of developers through an investigation of posts from StackOverflow. We identified the aspects of accessibility that developers implemented as well as experienced difficulty (or lack of understanding). We performed a formal open-coding of 366 discussions threads with multi-author agreement to create a taxonomy regarding the aspects discussed by developers with respect to accessibility in Android. From the qualitative analysis, we distilled lessons to guide further research and actions in aiding developers with supporting users that require assistive features.","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":"125818043","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}
引用次数: 44
Recommending Exception Handling Code 推荐异常处理代码
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00066
Tam The Nguyen, P. Vu, T. Nguyen
Exception handling is an advanced programming technique to prevent run-time errors or crashes for modern software systems. However, inexperienced programmers might fail to write proper exception handling code in their programs. In this paper, we introduce ExAssist, a code recommendation tool for exception handling. ExAssist can predict what types of exception could occur in a given piece of code and recommend proper exception handling code for such exceptions. Preliminary evaluation of ExAssist suggests that it provides highly accurate recommendations. The tool's website is at rebrand.ly/exassist. The video demo of ExAssist could be found at rebrand.ly/exassistdemo.
异常处理是一种高级编程技术,用于防止现代软件系统的运行时错误或崩溃。然而,没有经验的程序员可能无法在他们的程序中编写适当的异常处理代码。在本文中,我们介绍了ExAssist,一个用于异常处理的代码推荐工具。ExAssist可以预测给定代码段中可能发生的异常类型,并为此类异常推荐适当的异常处理代码。ExAssist的初步评估表明,它提供了高度准确的建议。该工具的网站是rebrand.ly/exassist。ExAssist的视频演示可以在rebrand.ly/exassistdemo中找到。
{"title":"Recommending Exception Handling Code","authors":"Tam The Nguyen, P. Vu, T. Nguyen","doi":"10.1109/ICSME.2019.00066","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00066","url":null,"abstract":"Exception handling is an advanced programming technique to prevent run-time errors or crashes for modern software systems. However, inexperienced programmers might fail to write proper exception handling code in their programs. In this paper, we introduce ExAssist, a code recommendation tool for exception handling. ExAssist can predict what types of exception could occur in a given piece of code and recommend proper exception handling code for such exceptions. Preliminary evaluation of ExAssist suggests that it provides highly accurate recommendations. The tool's website is at rebrand.ly/exassist. The video demo of ExAssist could be found at rebrand.ly/exassistdemo.","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":"125824400","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
RAPTOR: Release-Aware and Prioritized Bug-Fixing Task Assignment Optimization RAPTOR:发布意识和优先修复bug的任务分配优化
Pub Date : 2019-09-01 DOI: 10.1109/ICSME.2019.00101
Yutaro Kashiwa
Over a decade, many bug assignment methods have been proposed in order to assist developers to read bug reports submitted daily and numerously, and to assign an appropriate developer. However, they tend to concentrate their assignments on a small number of particular developers. Applying the methods to the projects which have releases would reduce the number of bugs that developers can fix by the next release date because the time that developers can devote to bug-fixing is limited. In this study, we propose the release-aware bug-fixing task assignment method to mitigate the task concentration and increase the number of bugs that developers can fix by the next release date. This method employs mathematical programming to find the best combination at project level while the traditional methods find the best pair of a bug and a developer (at individual level).
十多年来,为了帮助开发人员阅读每天提交的大量错误报告,并分配合适的开发人员,提出了许多错误分配方法。然而,他们倾向于将任务集中在少数特定的开发人员身上。将这些方法应用于已经发布的项目将减少开发人员在下一个发布日期之前可以修复的bug的数量,因为开发人员用于修复bug的时间是有限的。在本研究中,我们提出了基于版本的bug修复任务分配方法,以减轻任务集中度,并增加开发人员在下一个发布日期之前可以修复的bug数量。这种方法使用数学编程在项目级别上找到最佳组合,而传统方法在个人级别上找到bug和开发人员的最佳组合。
{"title":"RAPTOR: Release-Aware and Prioritized Bug-Fixing Task Assignment Optimization","authors":"Yutaro Kashiwa","doi":"10.1109/ICSME.2019.00101","DOIUrl":"https://doi.org/10.1109/ICSME.2019.00101","url":null,"abstract":"Over a decade, many bug assignment methods have been proposed in order to assist developers to read bug reports submitted daily and numerously, and to assign an appropriate developer. However, they tend to concentrate their assignments on a small number of particular developers. Applying the methods to the projects which have releases would reduce the number of bugs that developers can fix by the next release date because the time that developers can devote to bug-fixing is limited. In this study, we propose the release-aware bug-fixing task assignment method to mitigate the task concentration and increase the number of bugs that developers can fix by the next release date. This method employs mathematical programming to find the best combination at project level while the traditional methods find the best pair of a bug and a developer (at individual level).","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":"129757861","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
期刊
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