首页 > 最新文献

2013 35th International Conference on Software Engineering (ICSE)最新文献

英文 中文
GROPG: A graphical on-phone debugger GROPG:一个图形化的电话调试器
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606675
T. Nguyen, Christoph Csallner, N. Tillmann
Debugging mobile phone applications is hard, as current debugging techniques either require multiple computing devices or do not support graphical debugging. To address this problem we present GROPG, the first graphical on-phone debugger. We implement GROPG for Android and perform a preliminary evaluation on third-party applications. Our experiments suggest that GROPG can lower the overall debugging time of a comparable text-based on-phone debugger by up to 2/3.
调试移动电话应用程序很困难,因为当前的调试技术要么需要多个计算设备,要么不支持图形化调试。为了解决这个问题,我们提出了GROPG,这是第一个图形化的电话调试器。我们在Android上实现了GROPG,并对第三方应用进行了初步评估。我们的实验表明,GROPG可以将基于文本的手机调试器的总调试时间降低2/3。
{"title":"GROPG: A graphical on-phone debugger","authors":"T. Nguyen, Christoph Csallner, N. Tillmann","doi":"10.1109/ICSE.2013.6606675","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606675","url":null,"abstract":"Debugging mobile phone applications is hard, as current debugging techniques either require multiple computing devices or do not support graphical debugging. To address this problem we present GROPG, the first graphical on-phone debugger. We implement GROPG for Android and perform a preliminary evaluation on third-party applications. Our experiments suggest that GROPG can lower the overall debugging time of a comparable text-based on-phone debugger by up to 2/3.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129015123","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}
引用次数: 18
ConfDiagnoser: An automated configuration error diagnosis tool for Java software confdiagnostic:用于Java软件的自动配置错误诊断工具
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606737
Sai Zhang
This paper presents ConfDiagnoser, an automated configuration error diagnosis tool for Java software. Conf-Diagnoser identifies the root cause of a configuration error - a single configuration option that can be changed to produce desired behavior. It uses static analysis, dynamic profiling, and statistical analysis to link the undesired behavior to specific configuration options. ConfDiagnoser differs from existing approaches in two key aspects: it does not require users to provide a testing oracle (to check whether the software functions correctly) and thus is fully-automated; and it can diagnose both crashing and non-crashing errors. We demonstrated ConfDiagnoser's accuracy and speed on 5 non-crashing configuration errors and 9 crashing configuration errors from 5 configurable software systems.
介绍了一种基于Java软件的配置错误自动诊断工具ConfDiagnoser。Conf-Diagnoser识别配置错误的根本原因—可以更改单个配置选项以产生所需的行为。它使用静态分析、动态概要分析和统计分析将不希望的行为与特定的配置选项联系起来。ConfDiagnoser与现有的方法在两个关键方面有所不同:它不需要用户提供测试oracle(检查软件是否正常运行),因此是全自动的;它可以诊断崩溃和非崩溃错误。我们在5个可配置软件系统的5个非崩溃配置错误和9个崩溃配置错误上演示了confdiagnostic的准确性和速度。
{"title":"ConfDiagnoser: An automated configuration error diagnosis tool for Java software","authors":"Sai Zhang","doi":"10.1109/ICSE.2013.6606737","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606737","url":null,"abstract":"This paper presents ConfDiagnoser, an automated configuration error diagnosis tool for Java software. Conf-Diagnoser identifies the root cause of a configuration error - a single configuration option that can be changed to produce desired behavior. It uses static analysis, dynamic profiling, and statistical analysis to link the undesired behavior to specific configuration options. ConfDiagnoser differs from existing approaches in two key aspects: it does not require users to provide a testing oracle (to check whether the software functions correctly) and thus is fully-automated; and it can diagnose both crashing and non-crashing errors. We demonstrated ConfDiagnoser's accuracy and speed on 5 non-crashing configuration errors and 9 crashing configuration errors from 5 configurable software systems.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"2347 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130383631","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 17
Guided test generation for web applications 指导web应用程序的测试生成
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606562
Suresh Thummalapenta, K. Vasanta Lakshmi, S. Sinha, Nishant Sinha, S. Chandra
We focus on functional testing of enterprise applications with the goal of exercising an application's interesting behaviors by driving it from its user interface. The difficulty in doing this is focusing on the interesting behaviors among an unbounded number of behaviors. We present a new technique for automatically generating tests that drive a web-based application along interesting behaviors, where the interesting behavior is specified in the form of “business rules.” Business rules are a general mechanism for describing business logic, access control, or even navigational properties of an application's GUI. Our technique is black box, in that it does not analyze the application's server-side implementation, but relies on directed crawling via the application's GUI. To handle the unbounded number of GUI states, the technique includes two phases. Phase 1 creates an abstract state-transition diagram using a relaxed notion of equivalence of GUI states without considering rules. Next, Phase 2 identifies rule-relevant abstract paths and refines those paths using a stricter notion of state equivalence. Our technique can be much more effective at covering business rules than an undirected technique, developed as an enhancement of an existing test-generation technique. Our experiments showed that the former was able to cover 92% of the rules, compared to 52% of the rules covered by the latter.
我们将重点放在企业应用程序的功能测试上,目的是通过将应用程序从用户界面中驱动出来,来检验应用程序的有趣行为。这样做的困难在于从无数行为中找出有趣的行为。我们提出了一种自动生成测试的新技术,这些测试沿着有趣的行为驱动基于web的应用程序,其中有趣的行为以“业务规则”的形式指定。业务规则是一种通用机制,用于描述业务逻辑、访问控制,甚至是应用程序GUI的导航属性。我们的技术是黑盒技术,因为它不分析应用程序的服务器端实现,而是依赖于通过应用程序的GUI进行定向爬行。为了处理无限数量的GUI状态,该技术包括两个阶段。阶段1使用GUI状态等价的宽松概念创建一个抽象的状态转换图,而不考虑规则。接下来,阶段2确定与规则相关的抽象路径,并使用更严格的状态等价概念来细化这些路径。在覆盖业务规则方面,我们的技术比作为现有测试生成技术的增强而开发的无向技术要有效得多。我们的实验表明,前者能够覆盖92%的规则,而后者能够覆盖52%的规则。
{"title":"Guided test generation for web applications","authors":"Suresh Thummalapenta, K. Vasanta Lakshmi, S. Sinha, Nishant Sinha, S. Chandra","doi":"10.1109/ICSE.2013.6606562","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606562","url":null,"abstract":"We focus on functional testing of enterprise applications with the goal of exercising an application's interesting behaviors by driving it from its user interface. The difficulty in doing this is focusing on the interesting behaviors among an unbounded number of behaviors. We present a new technique for automatically generating tests that drive a web-based application along interesting behaviors, where the interesting behavior is specified in the form of “business rules.” Business rules are a general mechanism for describing business logic, access control, or even navigational properties of an application's GUI. Our technique is black box, in that it does not analyze the application's server-side implementation, but relies on directed crawling via the application's GUI. To handle the unbounded number of GUI states, the technique includes two phases. Phase 1 creates an abstract state-transition diagram using a relaxed notion of equivalence of GUI states without considering rules. Next, Phase 2 identifies rule-relevant abstract paths and refines those paths using a stricter notion of state equivalence. Our technique can be much more effective at covering business rules than an undirected technique, developed as an enhancement of an existing test-generation technique. Our experiments showed that the former was able to cover 92% of the rules, compared to 52% of the rules covered by the latter.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"72 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130429258","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}
引用次数: 54
Normalizing source code vocabulary to support program comprehension and software quality 规范源代码词汇表以支持程序理解和软件质量
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606723
Latifa Guerrouj
The literature reports that source code lexicon plays a paramount role in program comprehension, especially when software documentation is scarce, outdated or simply not available. In source code, a significant proportion of vocabulary can be either acronyms and-or abbreviations or concatenation of terms that can not be identified using consistent mechanisms such as naming conventions. It is, therefore, essential to disambiguate concepts conveyed by identifiers to support program comprehension and reap the full benefit of Information Retrieval-based techniques (e.g., feature location and traceability) whose linguistic information (i.e., source code identifiers and comments) used across all software artifacts (e.g., requirements, design, change requests, tests, and source code) must be consistent. To this aim, we propose source code vocabulary normalization approaches that exploit contextual information to align the vocabulary found in the source code with that found in other software artifacts. We were inspired in the choice of context levels by prior works and by our findings. Normalization consists of two tasks: splitting and expansion of source code identifiers. We also investigate the effect of source code vocabulary normalization approaches on software maintenance tasks. Results of our evaluation show that our contextual-aware techniques are accurate and efficient in terms of computation time than state of the art alternatives. In addition, our findings reveal that feature location techniques can benefit from vocabulary normalization when no dynamic information is available.
文献报告说,源代码词典在程序理解中起着至关重要的作用,特别是当软件文档稀缺、过时或根本不可用时。在源代码中,词汇表的很大一部分可能是首字母缩略词和/或缩写,也可能是使用命名约定等一致机制无法识别的术语的串联。因此,消除标识符所传达的概念的歧义,以支持程序理解,并获得基于信息检索的技术(例如,特性定位和可追溯性)的全部好处是必要的,这些技术的语言信息(例如,源代码标识符和注释)必须在所有软件工件(例如,需求、设计、变更请求、测试和源代码)中使用是一致的。为此,我们提出了源代码词汇表规范化方法,利用上下文信息将源代码中的词汇表与其他软件构件中的词汇表对齐。我们的灵感来自于之前的作品和我们的发现。规范化包括两个任务:拆分和扩展源代码标识符。我们还研究了源代码词汇规范化方法对软件维护任务的影响。我们的评估结果表明,就计算时间而言,我们的上下文感知技术比最先进的替代方案更准确、更高效。此外,我们的研究结果表明,当没有动态信息可用时,特征定位技术可以从词汇规范化中获益。
{"title":"Normalizing source code vocabulary to support program comprehension and software quality","authors":"Latifa Guerrouj","doi":"10.1109/ICSE.2013.6606723","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606723","url":null,"abstract":"The literature reports that source code lexicon plays a paramount role in program comprehension, especially when software documentation is scarce, outdated or simply not available. In source code, a significant proportion of vocabulary can be either acronyms and-or abbreviations or concatenation of terms that can not be identified using consistent mechanisms such as naming conventions. It is, therefore, essential to disambiguate concepts conveyed by identifiers to support program comprehension and reap the full benefit of Information Retrieval-based techniques (e.g., feature location and traceability) whose linguistic information (i.e., source code identifiers and comments) used across all software artifacts (e.g., requirements, design, change requests, tests, and source code) must be consistent. To this aim, we propose source code vocabulary normalization approaches that exploit contextual information to align the vocabulary found in the source code with that found in other software artifacts. We were inspired in the choice of context levels by prior works and by our findings. Normalization consists of two tasks: splitting and expansion of source code identifiers. We also investigate the effect of source code vocabulary normalization approaches on software maintenance tasks. Results of our evaluation show that our contextual-aware techniques are accurate and efficient in terms of computation time than state of the art alternatives. In addition, our findings reveal that feature location techniques can benefit from vocabulary normalization when no dynamic information is available.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128175263","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}
引用次数: 22
Teaching students global software engineering skills using distributed Scrum 使用分布式Scrum教授学生全球软件工程技能
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606664
M. Paasivaara, C. Lassenius, D. Damian, Petteri Räty, Adrian Schröter
In this paper we describe distributed Scrum augmented with best practices in global software engineering (GSE) as an important paradigm for teaching critical competencies in GSE. We report on a globally distributed project course between the University of Victoria, Canada and Aalto University, Finland. The project-driven course involved 16 students in Canada and 9 students in Finland, divided into three cross-site Scrum teams working on a single large project. To assess learning of GSE competencies we employed a mixed-method approach including 13 post-course interviews, pre-, post-course and iteration questionnaires, observations, recordings of Daily Scrums as well as collection of project asynchronous communication data. Our analysis indicates that the Scrum method, along with supporting collaboration practices and tools, supports the learning of important GSE competencies, such as distributed communication and teamwork, building and maintaining trust, using appropriate collaboration tools, and inter-cultural collaboration.
在本文中,我们将分布式Scrum与全球软件工程(GSE)中的最佳实践相结合,作为GSE中教授关键能力的重要范例。我们报告全球分布的项目课程之间的维多利亚大学,加拿大和阿尔托大学,芬兰。这门项目驱动的课程涉及加拿大的16名学生和芬兰的9名学生,他们被分成三个跨站点的Scrum团队,共同完成一个大型项目。为了评估GSE能力的学习,我们采用了一种混合方法,包括13次课后访谈、课前、课后和迭代问卷、观察、每日scrum记录以及项目异步通信数据的收集。我们的分析表明,Scrum方法,以及支持协作的实践和工具,支持重要的GSE能力的学习,比如分布式沟通和团队合作,建立和维护信任,使用适当的协作工具,以及跨文化协作。
{"title":"Teaching students global software engineering skills using distributed Scrum","authors":"M. Paasivaara, C. Lassenius, D. Damian, Petteri Räty, Adrian Schröter","doi":"10.1109/ICSE.2013.6606664","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606664","url":null,"abstract":"In this paper we describe distributed Scrum augmented with best practices in global software engineering (GSE) as an important paradigm for teaching critical competencies in GSE. We report on a globally distributed project course between the University of Victoria, Canada and Aalto University, Finland. The project-driven course involved 16 students in Canada and 9 students in Finland, divided into three cross-site Scrum teams working on a single large project. To assess learning of GSE competencies we employed a mixed-method approach including 13 post-course interviews, pre-, post-course and iteration questionnaires, observations, recordings of Daily Scrums as well as collection of project asynchronous communication data. Our analysis indicates that the Scrum method, along with supporting collaboration practices and tools, supports the learning of important GSE competencies, such as distributed communication and teamwork, building and maintaining trust, using appropriate collaboration tools, and inter-cultural collaboration.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132209809","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}
引用次数: 60
Service networks for development communities 发展社区服务网络
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606691
D. Tamburri, P. Lago, H. Vliet
Communities of developers have rapidly become global, encompassing multiple timezones and cultures alike. In previous work we investigated the possible shapes of communities for software development. In addition, we explored mechanisms to uncover communities emerging during development. However, we barely scratched the surface. We found that development communities yield properties of dynamic change and organic evolution. Much work is still needed to support such communities with mechanisms able to proactively react to community dynamism. We argue that service-networks can be used to deliver this support. Service-networks are sets of people and information brought together by the internet. This paper is a first attempt at studying this research area by means of a real-life case-study in a large global software development organisation.
开发人员社区已经迅速变得全球化,涵盖了多个时区和文化。在之前的工作中,我们研究了软件开发社区的可能形式。此外,我们还探索了发现开发过程中出现的社区的机制。然而,我们仅仅触及了表面。研究发现,发展群落具有动态变化和有机演化的特性。仍然需要做大量工作,以能够主动对社区活力作出反应的机制来支持这些社区。我们认为服务网络可以用来提供这种支持。服务网络是一组通过因特网聚集在一起的人和信息。本文是通过一个大型全球软件开发组织的真实案例研究来研究这一研究领域的第一次尝试。
{"title":"Service networks for development communities","authors":"D. Tamburri, P. Lago, H. Vliet","doi":"10.1109/ICSE.2013.6606691","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606691","url":null,"abstract":"Communities of developers have rapidly become global, encompassing multiple timezones and cultures alike. In previous work we investigated the possible shapes of communities for software development. In addition, we explored mechanisms to uncover communities emerging during development. However, we barely scratched the surface. We found that development communities yield properties of dynamic change and organic evolution. Much work is still needed to support such communities with mechanisms able to proactively react to community dynamism. We argue that service-networks can be used to deliver this support. Service-networks are sets of people and information brought together by the internet. This paper is a first attempt at studying this research area by means of a real-life case-study in a large global software development organisation.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"383 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134451626","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
Improving feature location practice with multi-faceted interactive exploration 以多面互动探索改进特色定位实践
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606622
Jinshui Wang, Xin Peng, Zhenchang Xing, Wenyun Zhao
Feature location is a human-oriented and information-intensive process. When performing feature location tasks with existing tools, developers often feel it difficult to formulate an accurate feature query (e.g., keywords) and determine the relevance of returned results. In this paper, we propose a feature location approach that supports multi-faceted interactive program exploration. Our approach automatically extracts and mines multiple syntactic and semantic facets from candidate program elements. Furthermore, it allows developers to interactively group, sort, and filter feature location results in a centralized, multi-faceted, and intelligent search User Interface (UI). We have implemented our approach as a web-based tool MFIE and conducted an experimental study. The results show that the developers using MFIE can accomplish their feature location tasks 32% faster and the quality of their feature location results (in terms of F-measure) is 51% higher than that of the developers using regular Eclipse IDE.
特征定位是一个以人为本的信息密集型过程。当使用现有工具执行特征定位任务时,开发人员经常感到很难制定准确的特征查询(例如,关键字)并确定返回结果的相关性。在本文中,我们提出了一种支持多方面交互式程序探索的特征定位方法。我们的方法自动从候选程序元素中提取和挖掘多个语法和语义方面。此外,它允许开发人员在集中的、多方面的智能搜索用户界面(UI)中交互式地对特性位置结果进行分组、排序和筛选。我们已经将我们的方法作为基于网络的工具MFIE实施,并进行了一项实验研究。结果表明,使用MFIE的开发人员完成特征定位任务的速度比使用常规Eclipse IDE的开发人员快32%,特征定位结果的质量(就F-measure而言)比使用常规Eclipse IDE的开发人员高51%。
{"title":"Improving feature location practice with multi-faceted interactive exploration","authors":"Jinshui Wang, Xin Peng, Zhenchang Xing, Wenyun Zhao","doi":"10.1109/ICSE.2013.6606622","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606622","url":null,"abstract":"Feature location is a human-oriented and information-intensive process. When performing feature location tasks with existing tools, developers often feel it difficult to formulate an accurate feature query (e.g., keywords) and determine the relevance of returned results. In this paper, we propose a feature location approach that supports multi-faceted interactive program exploration. Our approach automatically extracts and mines multiple syntactic and semantic facets from candidate program elements. Furthermore, it allows developers to interactively group, sort, and filter feature location results in a centralized, multi-faceted, and intelligent search User Interface (UI). We have implemented our approach as a web-based tool MFIE and conducted an experimental study. The results show that the developers using MFIE can accomplish their feature location tasks 32% faster and the quality of their feature location results (in terms of F-measure) is 51% higher than that of the developers using regular Eclipse IDE.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133027041","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
Software metrics: Pitfalls and best practices 软件度量:陷阱和最佳实践
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606755
Eric Bouwers, A. Deursen, Joost Visser
Using software metrics to keep track of the progress and quality of products and processes is a common practice in industry. Additionally, designing, validating and improving metrics is an important research area. Although using software metrics can help in reaching goals, the effects of using metrics incorrectly can be devastating. In this tutorial we leverage 10 years of metrics-based risk assessment experience to illustrate the benefits of software metrics, discuss different types of metrics and explain typical usage scenario's. Additionally, we explore various ways in which metrics can be interpreted using examples solicited from participants and practical assignments based on industry cases. During this process we will present the four common pitfalls of using software metrics. In particular, we explain why metrics should be placed in a context in order to maximize their benefits. A methodology based on benchmarking to provide such a context is discussed and illustrated by a model designed to quantify the technical quality of a software system. Examples of applying this model in industry are given and challenges involved in interpreting such a model are discussed. This tutorial provides an in-depth overview of the benefits and challenges involved in applying software metrics. At the end you will have all the information you need to use, develop and evaluate metrics constructively.
使用软件度量来跟踪产品和过程的进度和质量是工业中常见的做法。此外,设计、验证和改进度量也是一个重要的研究领域。尽管使用软件度量可以帮助实现目标,但是错误地使用度量的后果可能是毁灭性的。在本教程中,我们利用10年基于度量的风险评估经验来说明软件度量的好处,讨论不同类型的度量并解释典型的使用场景。此外,我们还探索了各种方法,通过从参与者那里征集的例子和基于行业案例的实际作业来解释指标。在此过程中,我们将介绍使用软件度量的四个常见缺陷。特别地,我们解释了为什么度量应该放在一个上下文中,以便最大化它们的好处。本文讨论了一种基于基准测试的方法来提供这样的环境,并通过设计一个模型来量化软件系统的技术质量。给出了在工业中应用该模型的例子,并讨论了解释这种模型所涉及的挑战。本教程深入概述了应用软件度量所涉及的好处和挑战。最后,你将拥有建设性地使用、开发和评估指标所需的所有信息。
{"title":"Software metrics: Pitfalls and best practices","authors":"Eric Bouwers, A. Deursen, Joost Visser","doi":"10.1109/ICSE.2013.6606755","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606755","url":null,"abstract":"Using software metrics to keep track of the progress and quality of products and processes is a common practice in industry. Additionally, designing, validating and improving metrics is an important research area. Although using software metrics can help in reaching goals, the effects of using metrics incorrectly can be devastating. In this tutorial we leverage 10 years of metrics-based risk assessment experience to illustrate the benefits of software metrics, discuss different types of metrics and explain typical usage scenario's. Additionally, we explore various ways in which metrics can be interpreted using examples solicited from participants and practical assignments based on industry cases. During this process we will present the four common pitfalls of using software metrics. In particular, we explain why metrics should be placed in a context in order to maximize their benefits. A methodology based on benchmarking to provide such a context is discussed and illustrated by a model designed to quantify the technical quality of a software system. Examples of applying this model in industry are given and challenges involved in interpreting such a model are discussed. This tutorial provides an in-depth overview of the benefits and challenges involved in applying software metrics. At the end you will have all the information you need to use, develop and evaluate metrics constructively.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131755383","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
YODA: Young and newcOmer Developer Assistant 尤达:年轻和新人开发助理
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606710
G. Canfora, M. D. Penta, Stefano Giannantonio, R. Oliveto, Sebastiano Panichella
Mentoring project newcomers is a crucial activity in software projects, and requires to identify people having good communication and teaching skills, other than high expertise on specific technical topics. In this demo we present Yoda (Young and newcOmer Developer Assistant), an Eclipse plugin that identifies and recommends mentors for newcomers joining a software project. Yoda mines developers' communication (e.g., mailing lists) and project versioning systems to identify mentors using an approach inspired to what ArnetMiner does when mining advisor/student relations. Then, it recommends appropriate mentors based on the specific expertise required by the newcomer. The demo shows Yoda in action, illustrating how the tool is able to identify and visualize mentoring relations in a project, and suggest appropriate mentors for a developer who is going to work on certain source code files, or on a given topic. Demo URL: http://youtu.be/4yrbYT-LAXA.
在软件项目中,指导项目新人是一项至关重要的活动,并且需要识别具有良好沟通和教学技能的人,而不是具有特定技术主题的高专业知识的人。在这个演示中,我们展示了Yoda (Young and newcOmer Developer Assistant),这是一个Eclipse插件,可以为加入软件项目的新人识别和推荐导师。Yoda挖掘开发人员的沟通(例如,邮件列表)和项目版本控制系统来识别导师,使用的方法受到了ArnetMiner在挖掘导师/学生关系时所做的启发。然后,它根据新人所需的具体专业知识推荐合适的导师。演示展示了Yoda的工作,说明了该工具如何能够识别和可视化项目中的指导关系,并为将要处理特定源代码文件或给定主题的开发人员建议适当的指导。演示URL: http://youtu.be/4yrbYT-LAXA。
{"title":"YODA: Young and newcOmer Developer Assistant","authors":"G. Canfora, M. D. Penta, Stefano Giannantonio, R. Oliveto, Sebastiano Panichella","doi":"10.1109/ICSE.2013.6606710","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606710","url":null,"abstract":"Mentoring project newcomers is a crucial activity in software projects, and requires to identify people having good communication and teaching skills, other than high expertise on specific technical topics. In this demo we present Yoda (Young and newcOmer Developer Assistant), an Eclipse plugin that identifies and recommends mentors for newcomers joining a software project. Yoda mines developers' communication (e.g., mailing lists) and project versioning systems to identify mentors using an approach inspired to what ArnetMiner does when mining advisor/student relations. Then, it recommends appropriate mentors based on the specific expertise required by the newcomer. The demo shows Yoda in action, illustrating how the tool is able to identify and visualize mentoring relations in a project, and suggest appropriate mentors for a developer who is going to work on certain source code files, or on a given topic. Demo URL: http://youtu.be/4yrbYT-LAXA.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"102 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123917744","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
Reducing human effort and improving quality in peer code reviews using automatic static analysis and reviewer recommendation 使用自动静态分析和审阅者推荐,减少了同级代码审阅中的人力劳动并提高了质量
Pub Date : 2013-05-18 DOI: 10.1109/ICSE.2013.6606642
Vipin Balachandran
Peer code review is a cost-effective software defect detection technique. Tool assisted code review is a form of peer code review, which can improve both quality and quantity of reviews. However, there is a significant amount of human effort involved even in tool based code reviews. Using static analysis tools, it is possible to reduce the human effort by automating the checks for coding standard violations and common defect patterns. Towards this goal, we propose a tool called Review Bot for the integration of automatic static analysis with the code review process. Review Bot uses output of multiple static analysis tools to publish reviews automatically. Through a user study, we show that integrating static analysis tools with code review process can improve the quality of code review. The developer feedback for a subset of comments from automatic reviews shows that the developers agree to fix 93% of all the automatically generated comments. There is only 14.71% of all the accepted comments which need improvements in terms of priority, comment message, etc. Another problem with tool assisted code review is the assignment of appropriate reviewers. Review Bot solves this problem by generating reviewer recommendations based on change history of source code lines. Our experimental results show that the recommendation accuracy is in the range of 60%-92%, which is significantly better than a comparable method based on file change history.
对等代码评审是一种经济有效的软件缺陷检测技术。工具辅助代码审查是同行代码审查的一种形式,它可以提高审查的质量和数量。然而,即使在基于工具的代码审查中,也需要大量的人力。使用静态分析工具,可以通过自动检查编码标准违反和常见缺陷模式来减少人工工作。为了实现这一目标,我们提出了一个名为Review Bot的工具,用于将自动静态分析与代码审查过程集成在一起。Review Bot使用多个静态分析工具的输出来自动发布评论。通过用户研究,我们证明了将静态分析工具与代码评审过程集成可以提高代码评审的质量。来自自动评审的评论子集的开发人员反馈显示,开发人员同意修复所有自动生成的评论的93%。在所有被接受的评论中,只有14.71%需要在优先级、评论消息等方面进行改进。工具辅助代码审查的另一个问题是分配合适的审查人员。Review Bot解决了这个问题,它根据源代码行的变更历史生成审查者建议。我们的实验结果表明,推荐准确率在60%-92%之间,明显优于基于文件变更历史的可比方法。
{"title":"Reducing human effort and improving quality in peer code reviews using automatic static analysis and reviewer recommendation","authors":"Vipin Balachandran","doi":"10.1109/ICSE.2013.6606642","DOIUrl":"https://doi.org/10.1109/ICSE.2013.6606642","url":null,"abstract":"Peer code review is a cost-effective software defect detection technique. Tool assisted code review is a form of peer code review, which can improve both quality and quantity of reviews. However, there is a significant amount of human effort involved even in tool based code reviews. Using static analysis tools, it is possible to reduce the human effort by automating the checks for coding standard violations and common defect patterns. Towards this goal, we propose a tool called Review Bot for the integration of automatic static analysis with the code review process. Review Bot uses output of multiple static analysis tools to publish reviews automatically. Through a user study, we show that integrating static analysis tools with code review process can improve the quality of code review. The developer feedback for a subset of comments from automatic reviews shows that the developers agree to fix 93% of all the automatically generated comments. There is only 14.71% of all the accepted comments which need improvements in terms of priority, comment message, etc. Another problem with tool assisted code review is the assignment of appropriate reviewers. Review Bot solves this problem by generating reviewer recommendations based on change history of source code lines. Our experimental results show that the recommendation accuracy is in the range of 60%-92%, which is significantly better than a comparable method based on file change history.","PeriodicalId":322423,"journal":{"name":"2013 35th International Conference on Software Engineering (ICSE)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-05-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127875191","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}
引用次数: 215
期刊
2013 35th International Conference on Software Engineering (ICSE)
全部 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