首页 > 最新文献

2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)最新文献

英文 中文
RM2PT: A Tool for Automated Prototype Generation from Requirements Model RM2PT:从需求模型自动生成原型的工具
Yilong Yang, Xiaoshan Li, Zhiming Liu, W. Ke
Prototyping is an effective and efficient way of requirement validation to avoid introducing errors in the early stage of software development. However, manually developing a prototype of a software system requires additional efforts, which would increase the overall cost of software development. Based on our proposed approach, we develop RM2PT: a tool for generating prototypes from requirements models automatically. A requirements model consists of a use case diagram, a conceptual class diagram, system sequence diagrams for use cases, and the formal contracts of their system operations in OCL (Object Constraint Language). RM2PT can generate executable MVC (Model View Controller) prototypes from requirements models automatically. We evaluate the tool with four case studies. 93.65% of requirement specifications can be generated to the executable Java source code successfully, and only 6.35% are non-executable for our current provided generation algorithm such as sorting and event-call, which can be implemented by developers manually or invoking the APIs of advanced algorithms in Java library. The tool is efficient that the one second generated prototype of a case study requires approximate nine hours manual implementation by skilled programmers.
原型是一种有效的需求验证方法,可以避免在软件开发的早期阶段引入错误。然而,手动开发软件系统的原型需要额外的努力,这将增加软件开发的总体成本。基于我们提出的方法,我们开发了RM2PT:一个从需求模型自动生成原型的工具。需求模型包括用例图、概念类图、用例的系统序列图,以及用OCL(对象约束语言)表示的系统操作的正式契约。RM2PT可以从需求模型自动生成可执行的MVC(模型-视图-控制器)原型。我们用四个案例研究来评估这个工具。93.65%的需求规范可以成功地生成为可执行的Java源代码,只有6.35%的需求规范对于我们目前提供的生成算法(如排序和事件调用)是不可执行的,这些算法可以由开发人员手动实现或调用Java库中高级算法的api。该工具是高效的,一个案例研究的一秒钟生成的原型需要熟练的程序员大约9个小时的手工实现。
{"title":"RM2PT: A Tool for Automated Prototype Generation from Requirements Model","authors":"Yilong Yang, Xiaoshan Li, Zhiming Liu, W. Ke","doi":"10.1109/ICSE-Companion.2019.00038","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00038","url":null,"abstract":"Prototyping is an effective and efficient way of requirement validation to avoid introducing errors in the early stage of software development. However, manually developing a prototype of a software system requires additional efforts, which would increase the overall cost of software development. Based on our proposed approach, we develop RM2PT: a tool for generating prototypes from requirements models automatically. A requirements model consists of a use case diagram, a conceptual class diagram, system sequence diagrams for use cases, and the formal contracts of their system operations in OCL (Object Constraint Language). RM2PT can generate executable MVC (Model View Controller) prototypes from requirements models automatically. We evaluate the tool with four case studies. 93.65% of requirement specifications can be generated to the executable Java source code successfully, and only 6.35% are non-executable for our current provided generation algorithm such as sorting and event-call, which can be implemented by developers manually or invoking the APIs of advanced algorithms in Java library. The tool is efficient that the one second generated prototype of a case study requires approximate nine hours manual implementation by skilled programmers.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"40 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116538439","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}
引用次数: 11
An Empirical Study on Female Participation in Software Project Courses 女性参与软件项目课程的实证研究
Anh Nguyen-Duc, M. L. Jaccheri, P. Abrahamsson
Gender issues in software engineering education are gaining research attention due to the desire to promote female participation in the field. The objective of this work is to enhance the understanding of female students' participation in software engineering projects to support gender-aware course optimization. Since 2015, we have investigated the participation of female students in terms of software engineering activities and team dynamics in a software project course that involves a real customer. We found that female students are more active with project management and requirement engineering, while they remain under-represented in highly complex or specific tasks, i.e. architecture work, and user experience design. We found no statistically significant difference in perceived team dynamics between male and female students. Insights on female project activities would facilitate the arrangement of project teams so that learning can be distributed equally across genders
由于希望促进女性在该领域的参与,软件工程教育中的性别问题正在获得研究关注。这项工作的目的是提高对女性学生参与软件工程项目的理解,以支持性别意识的课程优化。自2015年以来,我们调查了女学生在软件工程活动和团队动态方面参与一个涉及真实客户的软件项目课程。我们发现女生在项目管理和需求工程方面更活跃,而在高度复杂或特定的任务中,如架构工作和用户体验设计,她们的代表性仍然不足。我们发现男女学生对团队动力的感知没有统计学上的显著差异。对女性项目活动的了解将有助于项目团队的安排,从而使学习可以在性别之间平等地分配
{"title":"An Empirical Study on Female Participation in Software Project Courses","authors":"Anh Nguyen-Duc, M. L. Jaccheri, P. Abrahamsson","doi":"10.1109/ICSE-Companion.2019.00094","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00094","url":null,"abstract":"Gender issues in software engineering education are gaining research attention due to the desire to promote female participation in the field. The objective of this work is to enhance the understanding of female students' participation in software engineering projects to support gender-aware course optimization. Since 2015, we have investigated the participation of female students in terms of software engineering activities and team dynamics in a software project course that involves a real customer. We found that female students are more active with project management and requirement engineering, while they remain under-represented in highly complex or specific tasks, i.e. architecture work, and user experience design. We found no statistically significant difference in perceived team dynamics between male and female students. Insights on female project activities would facilitate the arrangement of project teams so that learning can be distributed equally across genders","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124628429","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
Automated Fine-Grained Requirements-to-Code Traceability Link Recovery 自动细粒度需求到代码的可追溯性链接恢复
Juan Manuel Florez
Problem: Existing approaches for requirements-to-code traceability link recovery rely on text retrieval to trace requirements to coarse-grained code documents (e.g., methods, files, classes, etc.), while suffering from low accuracy problems. Hypotheses: The salient information in most requirements is expressed as functional constraints, which can be automatically identified and categorized. Moreover, people use recognizable discourse patterns when describing them and developers use well-defined patterns for implementing them. Contributions: Recasting the requirements-to-code traceability link problem as an accurate matching between functional constraints and their implementation.
问题:现有的需求到代码跟踪链接恢复方法依赖于文本检索来将需求跟踪到粗粒度的代码文档(例如,方法、文件、类等),同时存在低准确性的问题。假设:大多数需求中的重要信息表示为功能约束,可以自动识别和分类。此外,人们在描述它们时使用可识别的话语模式,开发人员使用定义良好的模式来实现它们。贡献:将需求到代码的可追溯性链接问题重铸为功能约束及其实现之间的精确匹配。
{"title":"Automated Fine-Grained Requirements-to-Code Traceability Link Recovery","authors":"Juan Manuel Florez","doi":"10.1109/ICSE-Companion.2019.00087","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00087","url":null,"abstract":"Problem: Existing approaches for requirements-to-code traceability link recovery rely on text retrieval to trace requirements to coarse-grained code documents (e.g., methods, files, classes, etc.), while suffering from low accuracy problems. Hypotheses: The salient information in most requirements is expressed as functional constraints, which can be automatically identified and categorized. Moreover, people use recognizable discourse patterns when describing them and developers use well-defined patterns for implementing them. Contributions: Recasting the requirements-to-code traceability link problem as an accurate matching between functional constraints and their implementation.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"142 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125478452","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
[Copyright notice] (版权)
{"title":"[Copyright notice]","authors":"","doi":"10.1109/icse-companion.2019.00003","DOIUrl":"https://doi.org/10.1109/icse-companion.2019.00003","url":null,"abstract":"","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127711126","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
Stuck in The Middle: Removing Obstacles to New Program Features through Batch Refactoring 卡在中间:通过批重构消除新程序功能的障碍
Eduardo Fernandes
Developers may introduce poor code structures spotted by code smells along the software maintenance. However, only some of these structures eventually become obstacles to the addition of new features. Developers are forced to remove these obstacles before adding features. Identifying which poor structures are actual obstacles is hard, due to their subtlety and scattering across code elements. Such identification has been largely debated by developers in public platforms such as Gerrit Code Review. Fully removing obstacles is also hard, as developers often have to perform non-trivial sets of interrelated code transformations. Despite enabling the feature addition, certain sets of transformations tend to introduce rather than remove code smells. The scarce knowledge on recurring obstacles, and how refactoring can cope with them, helps little in guiding the feature addition. This doctoral research aims to address the current scarceness via empirical studies with projects and their developers. Our major goal is three-fold: (1) to assess past feature additions in order to elicit recurring obstacles; (2) to understand when interrelated transformations unexpectedly introduce poor code structures; and (3) to propose a refactoring recommender system. Contrarily to the few existing ones, our system aims to guide developers along the feature addition while removing poor code structures.
开发人员可能会在软件维护过程中引入由代码气味发现的不良代码结构。然而,只有其中一些结构最终成为添加新功能的障碍。开发者必须在添加功能之前消除这些障碍。识别哪些糟糕的结构是真正的障碍是很困难的,因为它们很微妙并且分散在代码元素中。在诸如Gerrit Code Review这样的公共平台上,这样的识别一直是开发者们争论的焦点。完全消除障碍也很困难,因为开发人员经常必须执行一系列重要的相互关联的代码转换。尽管启用了特性添加,但某些转换集倾向于引入而不是消除代码异味。关于反复出现的障碍以及重构如何处理这些障碍的缺乏知识,对指导特性添加帮助不大。本博士研究旨在通过对项目及其开发者的实证研究来解决当前的稀缺问题。我们的主要目标有三个方面:(1)评估过去添加的功能,以引出反复出现的障碍;(2)了解相互关联的转换何时会意外地引入不良的代码结构;(3)提出重构推荐系统。与少数现有的系统相反,我们的系统旨在指导开发人员在删除不良代码结构的同时增加功能。
{"title":"Stuck in The Middle: Removing Obstacles to New Program Features through Batch Refactoring","authors":"Eduardo Fernandes","doi":"10.1109/ICSE-Companion.2019.00083","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00083","url":null,"abstract":"Developers may introduce poor code structures spotted by code smells along the software maintenance. However, only some of these structures eventually become obstacles to the addition of new features. Developers are forced to remove these obstacles before adding features. Identifying which poor structures are actual obstacles is hard, due to their subtlety and scattering across code elements. Such identification has been largely debated by developers in public platforms such as Gerrit Code Review. Fully removing obstacles is also hard, as developers often have to perform non-trivial sets of interrelated code transformations. Despite enabling the feature addition, certain sets of transformations tend to introduce rather than remove code smells. The scarce knowledge on recurring obstacles, and how refactoring can cope with them, helps little in guiding the feature addition. This doctoral research aims to address the current scarceness via empirical studies with projects and their developers. Our major goal is three-fold: (1) to assess past feature additions in order to elicit recurring obstacles; (2) to understand when interrelated transformations unexpectedly introduce poor code structures; and (3) to propose a refactoring recommender system. Contrarily to the few existing ones, our system aims to guide developers along the feature addition while removing poor code structures.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128361431","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
Immutable Log Storage as a Service 不可变日志存储即服务
William Pourmajidi, Lei Zhang, John Steinbacher, Tony Erwin, A. Miranskyy
Logs contain critical information about the quality of the rendered services on the Cloud and can be used as digital evidence. Hence, we argue that the critical nature of logs calls for immutability and verification mechanism without a presence of a single trusted party. In this paper, we propose a blockchain-based log system, called Logchain, which can be integrated with existing private and public blockchains. To validate the mechanism, we create Logchain as a Service (LCaaS) by integrating it with Ethereum public blockchain network. We show that the solution is scalable (being able to process 100 log files per second) and fast (being able to "seal" a log file in 23 seconds, on average).
日志包含有关云上提供的服务质量的关键信息,可以用作数字证据。因此,我们认为日志的关键性质需要不存在单一可信方的不变性和验证机制。在本文中,我们提出了一个基于区块链的日志系统,称为Logchain,它可以与现有的私有和公有区块链集成。为了验证该机制,我们通过将其与以太坊公共区块链网络集成来创建日志链即服务(LCaaS)。我们展示了该解决方案具有可伸缩性(每秒能够处理100个日志文件)和速度(平均在23秒内能够“密封”一个日志文件)。
{"title":"Immutable Log Storage as a Service","authors":"William Pourmajidi, Lei Zhang, John Steinbacher, Tony Erwin, A. Miranskyy","doi":"10.1109/ICSE-Companion.2019.00114","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00114","url":null,"abstract":"Logs contain critical information about the quality of the rendered services on the Cloud and can be used as digital evidence. Hence, we argue that the critical nature of logs calls for immutability and verification mechanism without a presence of a single trusted party. In this paper, we propose a blockchain-based log system, called Logchain, which can be integrated with existing private and public blockchains. To validate the mechanism, we create Logchain as a Service (LCaaS) by integrating it with Ethereum public blockchain network. We show that the solution is scalable (being able to process 100 log files per second) and fast (being able to \"seal\" a log file in 23 seconds, on average).","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"67 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121052321","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
VeDebug: Regression Debugging Tool for Java VeDebug: Java的回归调试工具
B. Buhse, Thomas Wei, Zhiqiang Zang, Aleksandar Milicevic, Miloš Gligorić
Developers spend substantial time debugging their programs, yet debugging is still one of the most tedious activities. Interactive debuggers have been around for as long as computing, but the way they are used-set a breakpoint, reason about the state, step into/over-has not substantially changed. The last big discoveries, which happened decades ago, include visual debugging (e.g., DDD) and time-travel debugging. Although existing interactive debugging tools provide useful and powerful features, they are limited to a single program execution, e.g., a developer can only see data values and navigate the control flow of a single program execution at a time. We present VeDebug, the first video-based time-travel regression debugging tool to advance users' debugging experience. VeDebug introduces two unique features: (1) regression debugging, i.e., setting a "divergence breakpoint" (which "breaks" the execution whenever the control flow of the current execution diverges from the flow of a previously captured execution), and (2) video debugging, which provides features similar to those of a video player (e.g., speed up/slow down the replay). The demo video for VeDebug can be found at: https://www.youtube.com/watch?v=lOiGrE sc10.
开发人员花费大量时间调试他们的程序,但调试仍然是最乏味的活动之一。交互式调试器的存在时间和计算一样长,但是它们的使用方式——设置断点、状态推理、进入/超越——并没有实质性的改变。最近的重大发现发生在几十年前,包括可视化调试(例如,DDD)和时间旅行调试。尽管现有的交互式调试工具提供了有用且强大的功能,但它们仅限于单个程序的执行,例如,开发人员一次只能看到数据值并导航单个程序执行的控制流。我们提出了VeDebug,第一个基于视频的时间旅行回归调试工具,以提高用户的调试体验。VeDebug引入了两个独特的特性:(1)回归调试,即设置一个“发散断点”(每当当前执行的控制流偏离先前捕获的执行流时,它就会“中断”执行),以及(2)视频调试,它提供了类似于视频播放器的特性(例如,加速/减慢重播)。可以在https://www.youtube.com/watch?v=lOiGrE sc10找到VeDebug的演示视频。
{"title":"VeDebug: Regression Debugging Tool for Java","authors":"B. Buhse, Thomas Wei, Zhiqiang Zang, Aleksandar Milicevic, Miloš Gligorić","doi":"10.1109/ICSE-Companion.2019.00027","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00027","url":null,"abstract":"Developers spend substantial time debugging their programs, yet debugging is still one of the most tedious activities. Interactive debuggers have been around for as long as computing, but the way they are used-set a breakpoint, reason about the state, step into/over-has not substantially changed. The last big discoveries, which happened decades ago, include visual debugging (e.g., DDD) and time-travel debugging. Although existing interactive debugging tools provide useful and powerful features, they are limited to a single program execution, e.g., a developer can only see data values and navigate the control flow of a single program execution at a time. We present VeDebug, the first video-based time-travel regression debugging tool to advance users' debugging experience. VeDebug introduces two unique features: (1) regression debugging, i.e., setting a \"divergence breakpoint\" (which \"breaks\" the execution whenever the control flow of the current execution diverges from the flow of a previously captured execution), and (2) video debugging, which provides features similar to those of a video player (e.g., speed up/slow down the replay). The demo video for VeDebug can be found at: https://www.youtube.com/watch?v=lOiGrE sc10.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"73 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116236968","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
Message from the Doctoral Symposium Chairs of ICSE 2019 ICSE 2019博士研讨会主席致辞
S. Abrahão, Laurie Williams
The ICSE 2019 Doctoral Symposium was a one-day event held on May 28, 2019 in Montréal, Canada. The Doctoral Symposium provided an opportunity for doctoral students to present their ongoing work and future research plans, and to discuss them with experienced researchers and fellow doctoral students in the Software Engineering community. Students participating in the Doctoral Symposium presented their work to a panel of experts who provided each student with valuable feedback on their work and highlighted opportunities to further improve their research work. In addition, the symposium facilitated the exchange of ideas among young researchers.
2019年ICSE博士研讨会于2019年5月28日在加拿大蒙特里萨举行,为期一天。博士研讨会为博士生提供了一个展示他们正在进行的工作和未来研究计划的机会,并与软件工程社区中有经验的研究人员和其他博士生进行讨论。参加博士研讨会的学生向专家小组展示了他们的工作,专家小组为每位学生提供了宝贵的工作反馈,并强调了进一步改进研究工作的机会。此外,研讨会促进了青年研究人员之间的思想交流。
{"title":"Message from the Doctoral Symposium Chairs of ICSE 2019","authors":"S. Abrahão, Laurie Williams","doi":"10.1109/icse-companion.2019.00010","DOIUrl":"https://doi.org/10.1109/icse-companion.2019.00010","url":null,"abstract":"The ICSE 2019 Doctoral Symposium was a one-day event held on May 28, 2019 in Montréal, Canada. The Doctoral Symposium provided an opportunity for doctoral students to present their ongoing work and future research plans, and to discuss them with experienced researchers and fellow doctoral students in the Software Engineering community. Students participating in the Doctoral Symposium presented their work to a panel of experts who provided each student with valuable feedback on their work and highlighted opportunities to further improve their research work. In addition, the symposium facilitated the exchange of ideas among young researchers.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133806368","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
Supporting Code Search with Context-Aware, Analytics-Driven, Effective Query Reformulation 通过上下文感知、分析驱动、有效的查询重构支持代码搜索
M. M. Rahman
Software developers often experience difficulties in preparing appropriate queries for code search. Recent finding has suggested that developers fail to choose the right search keywords from an issue report for 88% of times. Thus, despite a number of earlier studies, automatic reformulation of queries for the code search is an open problem which warrants further investigations. In this dissertation work, we hypothesize that code search could be improved by adopting appropriate term weighting, context-awareness and data-analytics in query reformulation. We ask three research questions to evaluate the hypothesis, and then conduct six studies to answer these questions. Our proposed approaches improve code search by incorporating (1) novel, appropriate keyword selection algorithms, (2) context-awareness, (3) crowdsourced knowledge from Stack Overflow, and (4) large-scale data analytics into the query reformulation process.
软件开发人员在为代码搜索准备适当的查询时经常遇到困难。最近的研究表明,开发者有88%的几率无法从问题报告中选择正确的搜索关键字。因此,尽管有一些早期的研究,代码搜索查询的自动重构是一个有待进一步研究的开放性问题。在本文中,我们假设在查询重构中采用适当的词权、上下文感知和数据分析可以提高代码搜索的效率。我们提出三个研究问题来评估假设,然后进行六项研究来回答这些问题。我们提出的方法通过将(1)新颖,适当的关键字选择算法,(2)上下文感知,(3)Stack Overflow的众包知识,以及(4)大规模数据分析纳入查询重构过程来改进代码搜索。
{"title":"Supporting Code Search with Context-Aware, Analytics-Driven, Effective Query Reformulation","authors":"M. M. Rahman","doi":"10.1109/ICSE-Companion.2019.00088","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00088","url":null,"abstract":"Software developers often experience difficulties in preparing appropriate queries for code search. Recent finding has suggested that developers fail to choose the right search keywords from an issue report for 88% of times. Thus, despite a number of earlier studies, automatic reformulation of queries for the code search is an open problem which warrants further investigations. In this dissertation work, we hypothesize that code search could be improved by adopting appropriate term weighting, context-awareness and data-analytics in query reformulation. We ask three research questions to evaluate the hypothesis, and then conduct six studies to answer these questions. Our proposed approaches improve code search by incorporating (1) novel, appropriate keyword selection algorithms, (2) context-awareness, (3) crowdsourced knowledge from Stack Overflow, and (4) large-scale data analytics into the query reformulation process.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129704131","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
Leveraging Contextual Information from Function Call Chains to Improve Fault Localization 利用函数调用链中的上下文信息改进故障定位
Árpád Beszédes, Ferenc Horváth, M. D. Penta, T. Gyimóthy
In Spectrum-Based Fault Localization, program elements such as statements or functions are ranked according to a suspiciousness score which can guide the programmer in finding the fault more efficiently. However, such a ranking does not include any additional information about the element under investigation. In this work, we propose to complement function-level spectrum based fault localization with function call chains - i.e., snapshots of the call stack occurring during execution - on which the fault localization is first performed, and then narrowed down to functions. Our experiments using defects from four Defects4J programs show that (i) 84% of the defective functions can be found in call chains with highest scores, (ii) the proposed approach improves Ochiai ranking of 1 to 6 positions on average, with a relative improvement of 45%, and (iii) the improvement is substantial when Ochiai produces bad rankings.
在基于谱的故障定位中,程序元素(如语句或函数)根据可疑度评分进行排序,可以指导程序员更有效地找到故障。然而,这样的排名不包括任何关于被调查元素的额外信息。在这项工作中,我们建议用函数调用链(即在执行期间发生的调用堆栈快照)来补充基于功能级频谱的故障定位,首先在其上执行故障定位,然后缩小到功能。我们使用来自四个缺陷4j程序的缺陷进行的实验表明:(i) 84%的缺陷函数可以在得分最高的调用链中找到,(ii)所提出的方法将Ochiai排名平均提高了1到6个位置,相对提高了45%,并且(iii)当Ochiai产生不良排名时,改进是显著的。
{"title":"Leveraging Contextual Information from Function Call Chains to Improve Fault Localization","authors":"Árpád Beszédes, Ferenc Horváth, M. D. Penta, T. Gyimóthy","doi":"10.1109/ICSE-Companion.2019.00122","DOIUrl":"https://doi.org/10.1109/ICSE-Companion.2019.00122","url":null,"abstract":"In Spectrum-Based Fault Localization, program elements such as statements or functions are ranked according to a suspiciousness score which can guide the programmer in finding the fault more efficiently. However, such a ranking does not include any additional information about the element under investigation. In this work, we propose to complement function-level spectrum based fault localization with function call chains - i.e., snapshots of the call stack occurring during execution - on which the fault localization is first performed, and then narrowed down to functions. Our experiments using defects from four Defects4J programs show that (i) 84% of the defective functions can be found in call chains with highest scores, (ii) the proposed approach improves Ochiai ranking of 1 to 6 positions on average, with a relative improvement of 45%, and (iii) the improvement is substantial when Ochiai produces bad rankings.","PeriodicalId":273100,"journal":{"name":"2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130106133","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
期刊
2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion)
全部 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