首页 > 最新文献

ESEC/FSE '11最新文献

英文 中文
Using social media to study the diversity of example usage among professional developers 利用社交媒体研究专业开发人员示例使用的多样性
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025195
Ohad Barzilay, O. Hazzan, A. Yehudai
Socio-professional websites such as LinkedIn use various mechanisms such as network of colleagues, groups and discussions to assist their users in maintaining their professional network and keeping up with relevant discussions. Software professionals post hundreds of thousands of comments each week in these group discussions regarding technological and methodological aspects of their work. Analyzing these comments enables us, the software community at large, to better understand the state of the practice of many aspects of software development. In this paper we describe a case study in which we use such LinkedIn group discussion to learn about developers' perception of using code examples.
社会专业网站,如LinkedIn使用各种机制,如同事网络,小组和讨论,以帮助他们的用户维护他们的专业网络和跟上相关的讨论。软件专业人员每周在这些关于他们工作的技术和方法方面的小组讨论中发表数十万条评论。分析这些评论使我们软件社区能够更好地理解软件开发的许多方面的实践状态。在本文中,我们描述了一个案例研究,在这个案例中,我们使用这样的LinkedIn小组讨论来了解开发人员对使用代码示例的看法。
{"title":"Using social media to study the diversity of example usage among professional developers","authors":"Ohad Barzilay, O. Hazzan, A. Yehudai","doi":"10.1145/2025113.2025195","DOIUrl":"https://doi.org/10.1145/2025113.2025195","url":null,"abstract":"Socio-professional websites such as LinkedIn use various mechanisms such as network of colleagues, groups and discussions to assist their users in maintaining their professional network and keeping up with relevant discussions. Software professionals post hundreds of thousands of comments each week in these group discussions regarding technological and methodological aspects of their work. Analyzing these comments enables us, the software community at large, to better understand the state of the practice of many aspects of software development. In this paper we describe a case study in which we use such LinkedIn group discussion to learn about developers' perception of using code examples.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132395132","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}
引用次数: 12
Querypoint: moving backwards on wrong values in the buggy execution Querypoint:在错误的执行中向后移动错误的值
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025184
S. Mirghasemi, J. Barton, C. Petitpierre
As developers debug, they often have to seek the origins of wrong values they see in their debugger. This search must be performed backwards in time since the code causing the wrong value is executed before the wrong value appears. Therefore, locating the origin of wrong values with breakpoint- or log- based debuggers demands persistence and significant experience. Querypoint, is a Firefox plugin that enhances the popular Firebug JavaScript debugger with a new, practical feature called lastChange. lastChange automatically locates the last point at which a variable or an object property has been changed. Starting from a program suspended on a breakpoint, the lastChange algorithm applies queries to the live program during re-execution, recording the call stack and limited program state each time the property value changes. When the program halts again on the breakpoint, it shows the call stack and program state at the last change point. To evaluate the usability and effectiveness of Querypoint we studied four experienced JavaScript developers applying the tool to two test cases.
当开发人员进行调试时,他们经常必须寻找在调试器中看到的错误值的根源。这个搜索必须向后执行,因为导致错误值的代码是在错误值出现之前执行的。因此,使用基于断点或日志的调试器来定位错误值的来源需要持久性和丰富的经验。Querypoint是一个Firefox插件,它通过一个名为lastChange的实用新功能增强了流行的Firebug JavaScript调试器。lastChange自动定位变量或对象属性被更改的最后一个点。从挂起在断点上的程序开始,lastChange算法在重新执行期间对活动程序应用查询,每次属性值更改时记录调用堆栈和有限的程序状态。当程序在断点上再次停止时,它显示调用堆栈和程序在最后一个更改点的状态。为了评估Querypoint的可用性和有效性,我们研究了四位经验丰富的JavaScript开发人员,他们将该工具应用于两个测试用例。
{"title":"Querypoint: moving backwards on wrong values in the buggy execution","authors":"S. Mirghasemi, J. Barton, C. Petitpierre","doi":"10.1145/2025113.2025184","DOIUrl":"https://doi.org/10.1145/2025113.2025184","url":null,"abstract":"As developers debug, they often have to seek the origins of wrong values they see in their debugger. This search must be performed backwards in time since the code causing the wrong value is executed before the wrong value appears. Therefore, locating the origin of wrong values with breakpoint- or log- based debuggers demands persistence and significant experience.\u0000 Querypoint, is a Firefox plugin that enhances the popular Firebug JavaScript debugger with a new, practical feature called lastChange. lastChange automatically locates the last point at which a variable or an object property has been changed. Starting from a program suspended on a breakpoint, the lastChange algorithm applies queries to the live program during re-execution, recording the call stack and limited program state each time the property value changes. When the program halts again on the breakpoint, it shows the call stack and program state at the last change point. To evaluate the usability and effectiveness of Querypoint we studied four experienced JavaScript developers applying the tool to two test cases.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124840661","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
Effective communication of software development knowledge through community portals 通过社区门户有效地沟通软件开发知识
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025129
Christoph Treude, M. Storey
Knowledge management plays an important role in many software organizations. Knowledge can be captured and distributed using a variety of media, including traditional help files and manuals, videos, technical articles, wikis, and blogs. In recent years, web-based community portals have emerged as an important mechanism for combining various communication channels. However, there is little advice on how they can be effectively deployed in a software project. In this paper, we present a first study of a community portal used by a closed source software project. Using grounded theory, we develop a model that characterizes documentation artifacts along several dimensions, such as content type, intended audience, feedback options, and review mechanisms. Our findings lead to actionable advice for industry by articulating the benefits and possible shortcomings of the various communication channels in a knowledge-sharing portal. We conclude by suggesting future research on the increasing adoption of community portals in software engineering projects.
知识管理在许多软件组织中扮演着重要的角色。知识可以通过各种媒体获取和分发,包括传统的帮助文件和手册、视频、技术文章、wiki和博客。近年来,基于web的社区门户作为多种沟通渠道相结合的重要机制应运而生。然而,关于如何在软件项目中有效地部署它们,几乎没有什么建议。在这篇论文中,我们提出了对一个闭源软件项目使用的社区门户的第一个研究。使用基础理论,我们开发了一个模型,该模型沿着几个维度来描述文档工件,例如内容类型、目标受众、反馈选项和审查机制。我们的研究结果通过阐明知识共享门户中各种沟通渠道的好处和可能的缺点,为行业提供了可操作的建议。最后,我们建议对软件工程项目中越来越多地采用社区门户的未来研究进行总结。
{"title":"Effective communication of software development knowledge through community portals","authors":"Christoph Treude, M. Storey","doi":"10.1145/2025113.2025129","DOIUrl":"https://doi.org/10.1145/2025113.2025129","url":null,"abstract":"Knowledge management plays an important role in many software organizations. Knowledge can be captured and distributed using a variety of media, including traditional help files and manuals, videos, technical articles, wikis, and blogs. In recent years, web-based community portals have emerged as an important mechanism for combining various communication channels. However, there is little advice on how they can be effectively deployed in a software project.\u0000 In this paper, we present a first study of a community portal used by a closed source software project. Using grounded theory, we develop a model that characterizes documentation artifacts along several dimensions, such as content type, intended audience, feedback options, and review mechanisms. Our findings lead to actionable advice for industry by articulating the benefits and possible shortcomings of the various communication channels in a knowledge-sharing portal. We conclude by suggesting future research on the increasing adoption of community portals in software engineering projects.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"53 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125069665","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}
引用次数: 41
Finding bugs by isolating unit tests 通过隔离单元测试来发现bug
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025202
Kivanç Muslu, B. Soran, Jochen Wuttke
Even in simple programs there are hidden assumptions and dependencies between units that are not immediately visible in each involved unit. These dependencies are generally hard to identify and locate, and can lead to subtle faults that are often missed, even by extensive test suites. We propose to leverage existing test suites to identify faults due to hidden dependencies and to identify inadequate test suite design. Rather than just executing entire test suites within frameworks such as JUnit, we execute each test in isolation, thus removing masking effects that might be present in the test suites. We hypothesize that this can reveal previously hidden dependencies between program units or tests. A preliminary study shows that this technique is capable of identifying subtle faults that have lived in a system for 120 revisions, despite failures being reported and despite attempts to fix the fault.
即使在简单的程序中,单元之间也存在隐藏的假设和依赖关系,这些假设和依赖关系在每个涉及的单元中都不是立即可见的。这些依赖关系通常很难识别和定位,并且可能导致经常被忽略的细微错误,即使是广泛的测试套件。我们建议利用现有的测试套件来识别由于隐藏的依赖而导致的错误,并识别不适当的测试套件设计。我们不只是在JUnit等框架中执行整个测试套件,而是单独执行每个测试,从而消除了测试套件中可能出现的屏蔽效应。我们假设这可以揭示先前隐藏的程序单元或测试之间的依赖关系。一项初步研究表明,这种技术能够识别在系统中存在了120次修改的细微错误,尽管报告了失败,尽管尝试了修复错误。
{"title":"Finding bugs by isolating unit tests","authors":"Kivanç Muslu, B. Soran, Jochen Wuttke","doi":"10.1145/2025113.2025202","DOIUrl":"https://doi.org/10.1145/2025113.2025202","url":null,"abstract":"Even in simple programs there are hidden assumptions and dependencies between units that are not immediately visible in each involved unit. These dependencies are generally hard to identify and locate, and can lead to subtle faults that are often missed, even by extensive test suites.\u0000 We propose to leverage existing test suites to identify faults due to hidden dependencies and to identify inadequate test suite design. Rather than just executing entire test suites within frameworks such as JUnit, we execute each test in isolation, thus removing masking effects that might be present in the test suites. We hypothesize that this can reveal previously hidden dependencies between program units or tests.\u0000 A preliminary study shows that this technique is capable of identifying subtle faults that have lived in a system for 120 revisions, despite failures being reported and despite attempts to fix the fault.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"89 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127189249","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}
引用次数: 45
BugCache for inspections: hit or miss? BugCache检查:命中或错过?
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025157
Foyzur Rahman, Daryl Posnett, Abram Hindle, Earl T. Barr, Premkumar T. Devanbu
Inspection is a highly effective but costly technique for quality control. Most companies do not have the resources to inspect all the code; thus accurate defect prediction can help focus available inspection resources. BugCache is a simple, elegant, award-winning prediction scheme that "caches" files that are likely to contain defects [12]. In this paper, we evaluate the utility of BugCache as a tool for focusing inspection, we examine the assumptions underlying BugCache with the aim of improving it, and finally we compare it with a simple, standard bug-prediction technique. We find that BugCache is, in fact, useful for focusing inspection effort; but surprisingly, we find that its performance, when used for inspections, is not much better than a naive prediction model -- viz., a model that orders files in the system by their count of closed bugs and chooses enough files to capture 20% of the lines in the system.
检验是一种非常有效但代价高昂的质量控制技术。大多数公司没有足够的资源来检查所有的代码;因此,准确的缺陷预测可以帮助集中可用的检查资源。BugCache是一个简单、优雅、屡获殊荣的预测方案,它“缓存”可能包含缺陷的文件[12]。在本文中,我们评估了BugCache作为聚焦检查工具的效用,我们检查了BugCache的基本假设,目的是改进它,最后我们将其与简单的标准bug预测技术进行比较。事实上,我们发现BugCache对于集中检查工作是有用的;但令人惊讶的是,我们发现,当用于检查时,它的性能并不比一个朴素的预测模型好多少——即,一个根据关闭错误的数量对系统中的文件进行排序的模型,并选择足够的文件来捕获系统中20%的行。
{"title":"BugCache for inspections: hit or miss?","authors":"Foyzur Rahman, Daryl Posnett, Abram Hindle, Earl T. Barr, Premkumar T. Devanbu","doi":"10.1145/2025113.2025157","DOIUrl":"https://doi.org/10.1145/2025113.2025157","url":null,"abstract":"Inspection is a highly effective but costly technique for quality control. Most companies do not have the resources to inspect all the code; thus accurate defect prediction can help focus available inspection resources. BugCache is a simple, elegant, award-winning prediction scheme that \"caches\" files that are likely to contain defects [12]. In this paper, we evaluate the utility of BugCache as a tool for focusing inspection, we examine the assumptions underlying BugCache with the aim of improving it, and finally we compare it with a simple, standard bug-prediction technique. We find that BugCache is, in fact, useful for focusing inspection effort; but surprisingly, we find that its performance, when used for inspections, is not much better than a naive prediction model -- viz., a model that orders files in the system by their count of closed bugs and chooses enough files to capture 20% of the lines in the system.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"9 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123356090","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}
引用次数: 117
Improved multithreaded unit testing 改进的多线程单元测试
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025145
V. Jagannath, Miloš Gligorić, Dongyun Jin, Q. Luo, Grigore Roşu, D. Marinov
Multithreaded code is notoriously hard to develop and test. A multithreaded test exercises the code under test with two or more threads. Each test execution follows some schedule/interleaving of the multiple threads, and different schedules can give different results. Developers often want to enforce a particular schedule for test execution, and to do so, they use time delays (Thread.sleep in Java). Unfortunately, this approach can produce false positives or negatives, and can result in unnecessarily long testing time. This paper presents IMUnit, a novel approach to specifying and executing schedules for multithreaded tests. We introduce a new language that allows explicit specification of schedules as orderings on events encountered during test execution. We present a tool that automatically instruments the code to control test execution to follow the specified schedule, and a tool that helps developers migrate their legacy, sleep-based tests into event-based tests in IMUnit. The migration tool uses novel techniques for inferring events and schedules from the executions of sleep-based tests. We describe our experience in migrating over 200 tests. The inference techniques have high precision and recall of over 75%, and IMUnit reduces testing time compared to sleep-based tests on average 3.39x.
众所周知,多线程代码很难开发和测试。多线程测试使用两个或多个线程来执行被测代码。每个测试执行遵循多个线程的一些调度/交错,不同的调度可以给出不同的结果。开发人员经常想要强制执行一个特定的测试进度,为此,他们使用了时间延迟(线程)。在Java中睡眠)。不幸的是,这种方法可能产生假阳性或假阴性,并可能导致不必要的长时间测试。本文介绍了IMUnit,一种为多线程测试指定和执行调度的新方法。我们引入了一种新的语言,它允许对测试执行过程中遇到的事件的顺序进行显式的时间表规范。我们提供了一个工具,它可以自动编写代码来控制测试执行,以遵循指定的时间表,并且可以帮助开发人员将其遗留的、基于睡眠的测试迁移到IMUnit中的基于事件的测试中。迁移工具使用新颖的技术从基于睡眠的测试的执行中推断事件和调度。我们描述了迁移200多个测试的经验。推理技术具有较高的准确率和75%以上的召回率,与基于睡眠的测试相比,IMUnit平均减少了3.39倍的测试时间。
{"title":"Improved multithreaded unit testing","authors":"V. Jagannath, Miloš Gligorić, Dongyun Jin, Q. Luo, Grigore Roşu, D. Marinov","doi":"10.1145/2025113.2025145","DOIUrl":"https://doi.org/10.1145/2025113.2025145","url":null,"abstract":"Multithreaded code is notoriously hard to develop and test. A multithreaded test exercises the code under test with two or more threads. Each test execution follows some schedule/interleaving of the multiple threads, and different schedules can give different results. Developers often want to enforce a particular schedule for test execution, and to do so, they use time delays (Thread.sleep in Java). Unfortunately, this approach can produce false positives or negatives, and can result in unnecessarily long testing time.\u0000 This paper presents IMUnit, a novel approach to specifying and executing schedules for multithreaded tests. We introduce a new language that allows explicit specification of schedules as orderings on events encountered during test execution. We present a tool that automatically instruments the code to control test execution to follow the specified schedule, and a tool that helps developers migrate their legacy, sleep-based tests into event-based tests in IMUnit. The migration tool uses novel techniques for inferring events and schedules from the executions of sleep-based tests. We describe our experience in migrating over 200 tests. The inference techniques have high precision and recall of over 75%, and IMUnit reduces testing time compared to sleep-based tests on average 3.39x.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"121 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122910777","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}
引用次数: 55
QoS verification and model tuning @ runtime 运行时的QoS验证和模型调优
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025176
A. Filieri
Unpredictable changes continuously affect software systems and may have a severe impact on their quality of service, potentially jeopardizing the system’s ability to meet the desired requirements. Changes may occur in critical components of the system, clients’ operational profiles, requirements, or deployment environments. As a consequence, software engineers are increasingly required to design software as a (self-) adaptive system, which automatically detects and reacts to changes. In order to detect significant changes in the execution environment, effective monitoring procedures are not enough since their outcome can seldom provide a direct support for reasoning and verification on the state of the system and its changes. The adoption of software models and model checking techniques at run time may support automatic reasoning about such changes, detect harmful configurations, and potentially enable appropriate (self-)reactions. However, traditional model checking techniques and tools may not be simply applied as they are at run time, since they may not meet the constraints imposed by on-the-fly analysis, in terms of execution time and memory occupation. The key idea to deal with verification complexity as proposed in this research consists of splitting the problem in two steps: 1) precomputing a set of closed formulae corresponding to desired properties and depending on relevant system’s variables, and then 2) quickly evaluate such formulas every time a variation is detected. This continuous verification of QoS requirements can support continuous adaptation of the software system. The term continuous here subsumes that reactions should be completed before a new variation invalidates their utility. A special, though large, class of systems behaves depending on a finite set of parameters, e.g. possible configurations, routing options, third party components selection and so on. Many control-theory based approaches have been studied to manipulate control parametersin order to reach or keep desired goals, but this continuous verification is an extremely hard task since software is usually very complex to formal-
不可预测的变化会持续影响软件系统,并可能对其服务质量产生严重影响,潜在地危及系统满足预期需求的能力。更改可能发生在系统的关键组件、客户的操作概要文件、需求或部署环境中。因此,越来越多的软件工程师需要将软件设计成一个(自)适应系统,它可以自动检测并对变化做出反应。为了检测执行环境中的重大变化,有效的监测程序是不够的,因为其结果很少能够为系统状态及其变化的推理和验证提供直接支持。在运行时采用软件模型和模型检查技术可以支持对这些更改的自动推理,检测有害的配置,并潜在地启用适当的(自我)反应。然而,传统的模型检查技术和工具可能不能像在运行时那样简单地应用,因为就执行时间和内存占用而言,它们可能不满足动态分析所施加的约束。本研究提出的处理验证复杂性的关键思想是将问题分为两步:1)根据相关系统变量预先计算一组与期望属性对应的封闭公式,然后2)每次检测到变化时快速评估这些公式。这种对QoS需求的持续验证可以支持对软件系统的持续调整。这里的“连续”一词包含了反应应该在新的变化使其效用失效之前完成。一类特殊的,虽然很大的系统依赖于一组有限的参数,例如可能的配置,路由选项,第三方组件选择等等。为了达到或保持预期的目标,已经研究了许多基于控制论的方法来操纵控制参数,但是这种持续的验证是一项极其困难的任务,因为软件通常非常复杂,难以形式化
{"title":"QoS verification and model tuning @ runtime","authors":"A. Filieri","doi":"10.1145/2025113.2025176","DOIUrl":"https://doi.org/10.1145/2025113.2025176","url":null,"abstract":"Unpredictable changes continuously affect software systems and may have a severe impact on their quality of service, potentially jeopardizing the system’s ability to meet the desired requirements. Changes may occur in critical components of the system, clients’ operational profiles, requirements, or deployment environments. As a consequence, software engineers are increasingly required to design software as a (self-) adaptive system, which automatically detects and reacts to changes. In order to detect significant changes in the execution environment, effective monitoring procedures are not enough since their outcome can seldom provide a direct support for reasoning and verification on the state of the system and its changes. The adoption of software models and model checking techniques at run time may support automatic reasoning about such changes, detect harmful configurations, and potentially enable appropriate (self-)reactions. However, traditional model checking techniques and tools may not be simply applied as they are at run time, since they may not meet the constraints imposed by on-the-fly analysis, in terms of execution time and memory occupation. The key idea to deal with verification complexity as proposed in this research consists of splitting the problem in two steps: 1) precomputing a set of closed formulae corresponding to desired properties and depending on relevant system’s variables, and then 2) quickly evaluate such formulas every time a variation is detected. This continuous verification of QoS requirements can support continuous adaptation of the software system. The term continuous here subsumes that reactions should be completed before a new variation invalidates their utility. A special, though large, class of systems behaves depending on a finite set of parameters, e.g. possible configurations, routing options, third party components selection and so on. Many control-theory based approaches have been studied to manipulate control parametersin order to reach or keep desired goals, but this continuous verification is an extremely hard task since software is usually very complex to formal-","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123702449","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
Crystal: precise and unobtrusive conflict warnings 水晶:精确而不显眼的冲突警告
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025187
Yuriy Brun, Reid Holmes, Michael D. Ernst, D. Notkin
During collaborative development, individual developers can create conflicts in their copies of the code. Such conflicting edits are frequent in practice, and resolving them can be costly. We present Crystal, a tool that proactively examines developers' code and precisely identifies and reports on textual, compilation, and behavioral conflicts. When conflicts are present, Crystal enables developers to resolve them more quickly, and therefore at a lesser cost. When conflicts are absent, Crystal increases the developers' confidence that it is safe to merge their code. Crystal uses an unobtrusive interface to deliver pertinent information about conflicts. It informs developers about actions that would address the conflicts and about people with whom they should communicate.
在协作开发期间,个别开发人员可能会在他们的代码副本中产生冲突。这种相互冲突的编辑在实践中经常发生,解决它们可能代价高昂。我们介绍Crystal,它是一种工具,可以主动检查开发人员的代码,并精确地识别和报告文本、编译和行为冲突。当冲突出现时,Crystal使开发人员能够更快地解决它们,因此成本更低。当冲突不存在时,Crystal增加了开发人员的信心,使他们相信合并代码是安全的。Crystal使用一个不显眼的界面来传递有关冲突的相关信息。它告诉开发人员解决冲突的行动,以及他们应该与谁沟通。
{"title":"Crystal: precise and unobtrusive conflict warnings","authors":"Yuriy Brun, Reid Holmes, Michael D. Ernst, D. Notkin","doi":"10.1145/2025113.2025187","DOIUrl":"https://doi.org/10.1145/2025113.2025187","url":null,"abstract":"During collaborative development, individual developers can create conflicts in their copies of the code. Such conflicting edits are frequent in practice, and resolving them can be costly. We present Crystal, a tool that proactively examines developers' code and precisely identifies and reports on textual, compilation, and behavioral conflicts. When conflicts are present, Crystal enables developers to resolve them more quickly, and therefore at a lesser cost. When conflicts are absent, Crystal increases the developers' confidence that it is safe to merge their code. Crystal uses an unobtrusive interface to deliver pertinent information about conflicts. It informs developers about actions that would address the conflicts and about people with whom they should communicate.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122814162","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}
引用次数: 36
Leveraging existing instrumentation to automatically infer invariant-constrained models 利用现有的工具自动推断不变量约束模型
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025151
Ivan Beschastnikh, Yuriy Brun, S. Schneider, Michael Sloan, Michael D. Ernst
Computer systems are often difficult to debug and understand. A common way of gaining insight into system behavior is to inspect execution logs and documentation. Unfortunately, manual inspection of logs is an arduous process and documentation is often incomplete and out of sync with the implementation. This paper presents Synoptic, a tool that helps developers by inferring a concise and accurate system model. Unlike most related work, Synoptic does not require developer-written scenarios, specifications, negative execution examples, or other complex user input. Synoptic processes the logs most systems already produce and requires developers only to specify a set of regular expressions for parsing the logs. Synoptic has two unique features. First, the model it produces satisfies three kinds of temporal invariants mined from the logs, improving accuracy over related approaches. Second, Synoptic uses refinement and coarsening to explore the space of models. This improves model efficiency and precision, compared to using just one approach. In this paper, we formally prove that Synoptic always produces a model that satisfies exactly the temporal invariants mined from the log, and we argue that it does so efficiently. We empirically evaluate Synoptic through two user experience studies, one with a developer of a large, real-world system and another with 45 students in a distributed systems course. Developers used Synoptic-generated models to verify known bugs, diagnose new bugs, and increase their confidence in the correctness of their systems. None of the developers in our evaluation had a background in formal methods but were able to easily use Synoptic and detect implementation bugs in as little as a few minutes.
计算机系统通常难以调试和理解。了解系统行为的一种常用方法是检查执行日志和文档。不幸的是,手工检查日志是一个艰巨的过程,而且文档通常是不完整的,并且与实现不同步。本文介绍了Synoptic,这是一个帮助开发人员推断出一个简洁而准确的系统模型的工具。与大多数相关工作不同,Synoptic不需要开发人员编写的场景、规范、负执行示例或其他复杂的用户输入。synotic处理大多数系统已经产生的日志,只需要开发人员指定一组正则表达式来解析日志。synotic有两个独特的特点。首先,它产生的模型满足从日志中挖掘的三种时间不变量,比相关方法提高了精度。其次,synotic使用细化和粗化来探索模型的空间。与只使用一种方法相比,这提高了模型的效率和精度。在本文中,我们正式证明了Synoptic总是产生一个完全满足从日志中挖掘的时间不变量的模型,并且我们认为它能有效地做到这一点。我们通过两个用户体验研究对Synoptic进行了实证评估,其中一个研究对象是一个大型真实系统的开发人员,另一个研究对象是45名分布式系统课程的学生。开发人员使用synoptic生成的模型来验证已知的错误,诊断新的错误,并增加他们对系统正确性的信心。在我们的评估中,没有一个开发人员有正式方法的背景,但是能够很容易地使用Synoptic并在几分钟内检测到实现错误。
{"title":"Leveraging existing instrumentation to automatically infer invariant-constrained models","authors":"Ivan Beschastnikh, Yuriy Brun, S. Schneider, Michael Sloan, Michael D. Ernst","doi":"10.1145/2025113.2025151","DOIUrl":"https://doi.org/10.1145/2025113.2025151","url":null,"abstract":"Computer systems are often difficult to debug and understand. A common way of gaining insight into system behavior is to inspect execution logs and documentation. Unfortunately, manual inspection of logs is an arduous process and documentation is often incomplete and out of sync with the implementation.\u0000 This paper presents Synoptic, a tool that helps developers by inferring a concise and accurate system model. Unlike most related work, Synoptic does not require developer-written scenarios, specifications, negative execution examples, or other complex user input. Synoptic processes the logs most systems already produce and requires developers only to specify a set of regular expressions for parsing the logs.\u0000 Synoptic has two unique features. First, the model it produces satisfies three kinds of temporal invariants mined from the logs, improving accuracy over related approaches. Second, Synoptic uses refinement and coarsening to explore the space of models. This improves model efficiency and precision, compared to using just one approach.\u0000 In this paper, we formally prove that Synoptic always produces a model that satisfies exactly the temporal invariants mined from the log, and we argue that it does so efficiently. We empirically evaluate Synoptic through two user experience studies, one with a developer of a large, real-world system and another with 45 students in a distributed systems course. Developers used Synoptic-generated models to verify known bugs, diagnose new bugs, and increase their confidence in the correctness of their systems. None of the developers in our evaluation had a background in formal methods but were able to easily use Synoptic and detect implementation bugs in as little as a few minutes.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"112 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124794964","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}
引用次数: 226
IWPSE-EVOL 2011: 12th international workshop on principles on software evolution and 7th ERCIM workshop on software evolution IWPSE-EVOL 2011:第12届软件演进原则国际研讨会和第7届ERCIM软件演进研讨会
Pub Date : 2011-09-05 DOI: 10.1145/2025113.2025209
R. Robbes, Anthony Cleve
The IWPSE-EVOL'2011 workshop is the merger of the 12th International Workshop on Principles of Software Evolution (IWPSE) and the 7th annual ERCIM Workshop on Software Evolution (EVOL). The objectives of this joint event is to provide a forum to discuss a wide range of topics in software evolution, to foster the better understanding of the nature of software evolution, and to accelerate research activities on the subject.
2011年IWPSE-EVOL研讨会是第12届软件发展原则国际研讨会(IWPSE)和第7届ERCIM软件发展研讨会(EVOL)的合并。这次联合活动的目的是提供一个论坛,讨论软件进化的广泛主题,促进对软件进化本质的更好理解,并加速有关该主题的研究活动。
{"title":"IWPSE-EVOL 2011: 12th international workshop on principles on software evolution and 7th ERCIM workshop on software evolution","authors":"R. Robbes, Anthony Cleve","doi":"10.1145/2025113.2025209","DOIUrl":"https://doi.org/10.1145/2025113.2025209","url":null,"abstract":"The IWPSE-EVOL'2011 workshop is the merger of the 12th International Workshop on Principles of Software Evolution (IWPSE) and the 7th annual ERCIM Workshop on Software Evolution (EVOL). The objectives of this joint event is to provide a forum to discuss a wide range of topics in software evolution, to foster the better understanding of the nature of software evolution, and to accelerate research activities on the subject.","PeriodicalId":184518,"journal":{"name":"ESEC/FSE '11","volume":"7 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2011-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127558849","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
期刊
ESEC/FSE '11
全部 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