首页 > 最新文献

2010 IEEE International Conference on Software Maintenance最新文献

英文 中文
Effect of test completeness and redundancy measurement on post release failures — An industrial experience report 测试完整性和冗余度量对发布后失败的影响——一份工业经验报告
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609692
T. Gergely, Árpád Beszédes, T. Gyimóthy, Milan Imre Gyalai
In risk-based testing, compromises are often made to release a system in spite of knowing that it has outstanding defects. In an industrial setting, time and cost are often the “exit criteria” and - unfortunately - not the technical aspects like coverage or defect ratio. In such situations, the stakeholders accept that the remaining defects will be found after release, so sufficient resources are allocated to the “stabilization” phases following the release. It is hard for many organizations to see that such an approach is significantly costlier than trying to locate the defects earlier. We performed an empirical investigation of this for one of our industrial partners (a financial company). In this project, significant perfective maintenance was performed on the large information system. Based on changes made to the system, we carried out procedure level code coverage measurements with code level change impact analysis, and a similarity-based comparison of test cases in order to quantitatively check the completeness and redundancy of the tests performed. In addition, we logged and compared the number of defects found during testing and live operation. The data obtained were surprising for both the developers and the customer as well, leading to a major reorganization of their development, testing, and operation processes. After the reorganization, a significant improvement in these indicators for testing efficiency was observed.
在基于风险的测试中,尽管知道系统有突出的缺陷,但还是经常做出妥协来发布系统。在工业环境中,时间和成本通常是“退出标准”,不幸的是,不是像覆盖率或缺陷率这样的技术方面。在这种情况下,涉众接受剩余的缺陷将在发布之后被发现,因此足够的资源被分配到发布之后的“稳定”阶段。对于许多组织来说,很难看到这样的方法比尝试更早地定位缺陷要昂贵得多。我们对我们的一个工业合作伙伴(一家金融公司)进行了实证调查。在本项目中,对大型信息系统进行了重要的完善维护。基于对系统所做的更改,我们使用代码级别更改影响分析执行过程级别的代码覆盖度量,以及基于相似性的测试用例比较,以便定量地检查所执行测试的完整性和冗余性。此外,我们记录并比较了在测试和实际操作期间发现的缺陷数量。获得的数据对于开发人员和客户来说都是令人惊讶的,这导致了他们的开发、测试和操作过程的重大重组。重组后,检测效率的这些指标有了显著提高。
{"title":"Effect of test completeness and redundancy measurement on post release failures — An industrial experience report","authors":"T. Gergely, Árpád Beszédes, T. Gyimóthy, Milan Imre Gyalai","doi":"10.1109/ICSM.2010.5609692","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609692","url":null,"abstract":"In risk-based testing, compromises are often made to release a system in spite of knowing that it has outstanding defects. In an industrial setting, time and cost are often the “exit criteria” and - unfortunately - not the technical aspects like coverage or defect ratio. In such situations, the stakeholders accept that the remaining defects will be found after release, so sufficient resources are allocated to the “stabilization” phases following the release. It is hard for many organizations to see that such an approach is significantly costlier than trying to locate the defects earlier. We performed an empirical investigation of this for one of our industrial partners (a financial company). In this project, significant perfective maintenance was performed on the large information system. Based on changes made to the system, we carried out procedure level code coverage measurements with code level change impact analysis, and a similarity-based comparison of test cases in order to quantitatively check the completeness and redundancy of the tests performed. In addition, we logged and compared the number of defects found during testing and live operation. The data obtained were surprising for both the developers and the customer as well, leading to a major reorganization of their development, testing, and operation processes. After the reorganization, a significant improvement in these indicators for testing efficiency was observed.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115012738","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
Playing with refactoring: Identifying extract class opportunities through game theory 玩重构:通过博弈论识别提取类的机会
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609739
G. Bavota, R. Oliveto, A. D. Lucia, G. Antoniol, Yann-Gaël Guéhéneuc
In software engineering, developers must often find solutions to problems balancing competing goals, e.g., quality versus cost, time to market versus resources, or cohesion versus coupling. Finding a suitable balance between contrasting goals is often complex and recommendation systems are useful to support developers and managers in performing such a complex task. We believe that contrasting goals can be often dealt with game theory techniques. Indeed, game theory is successfully used in other fields, especially in economics, to mathematically propose solutions to strategic situation, in which an individual's success in making choices depends on the choices of others. To demonstrate the applicability of game theory to software engineering and to understand its pros and cons, we propose an approach based on game theory that recommend extract-class refactoring opportunities. A preliminary evaluation inspired by mutation testing demonstrates the applicability and the benefits of the proposed approach.
在软件工程中,开发人员必须经常找到平衡竞争目标的问题的解决方案,例如,质量与成本,上市时间与资源,或内聚与耦合。在不同的目标之间找到合适的平衡通常是很复杂的,推荐系统对于支持开发人员和管理人员执行这种复杂的任务很有用。我们认为,对比目标通常可以用博弈论技巧来处理。事实上,博弈论被成功地应用于其他领域,特别是在经济学领域,以数学方法提出战略形势的解决方案,其中个人做出选择的成功取决于其他人的选择。为了证明博弈论对软件工程的适用性,并了解其优缺点,我们提出了一种基于博弈论的方法,该方法推荐了提取类重构的机会。由突变测试启发的初步评估证明了所提出方法的适用性和优点。
{"title":"Playing with refactoring: Identifying extract class opportunities through game theory","authors":"G. Bavota, R. Oliveto, A. D. Lucia, G. Antoniol, Yann-Gaël Guéhéneuc","doi":"10.1109/ICSM.2010.5609739","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609739","url":null,"abstract":"In software engineering, developers must often find solutions to problems balancing competing goals, e.g., quality versus cost, time to market versus resources, or cohesion versus coupling. Finding a suitable balance between contrasting goals is often complex and recommendation systems are useful to support developers and managers in performing such a complex task. We believe that contrasting goals can be often dealt with game theory techniques. Indeed, game theory is successfully used in other fields, especially in economics, to mathematically propose solutions to strategic situation, in which an individual's success in making choices depends on the choices of others. To demonstrate the applicability of game theory to software engineering and to understand its pros and cons, we propose an approach based on game theory that recommend extract-class refactoring opportunities. A preliminary evaluation inspired by mutation testing demonstrates the applicability and the benefits of the proposed approach.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123693587","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}
引用次数: 61
Enabling multi-tenancy: An industrial experience report 启用多租户:行业经验报告
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609735
C. Bezemer, A. Zaidman, Bart Platzbeecker, Toine Hurkmans, Aad 't Hart
Multi-tenancy is a relatively new software architecture principle in the realm of the Software as a Service (SaaS) business model. It allows to make full use of the economy of scale, as multiple customers - “tenants” - share the same application and database instance. All the while, the tenants enjoy a highly configurable application, making it appear that the application is deployed on a dedicated server. The major benefits of multi-tenancy are increased utilization of hardware resources and improved ease of maintenance, resulting in lower overall application costs, making the technology attractive for service providers targeting small and medium enterprises (SME). Therefore, migrating existing single-tenant to multi-tenant applications can be interesting for SaaS software companies. In this paper we report on our experiences with reengineering an existing industrial, single-tenant software system into a multitenant one using a lightweight reengineering approach.
多租户是软件即服务(SaaS)业务模型领域中相对较新的软件体系结构原则。它允许充分利用规模经济,因为多个客户(“租户”)共享相同的应用程序和数据库实例。一直以来,租户都享有高度可配置的应用程序,这使得应用程序看起来像是部署在专用服务器上。多租户的主要优点是提高了硬件资源的利用率,提高了维护的便利性,从而降低了总体应用程序成本,使该技术对针对中小型企业(SME)的服务提供商具有吸引力。因此,对于SaaS软件公司来说,将现有的单租户应用程序迁移到多租户应用程序可能很有趣。在本文中,我们报告了使用轻量级的再工程方法将现有的工业单租户软件系统重新设计为多租户软件系统的经验。
{"title":"Enabling multi-tenancy: An industrial experience report","authors":"C. Bezemer, A. Zaidman, Bart Platzbeecker, Toine Hurkmans, Aad 't Hart","doi":"10.1109/ICSM.2010.5609735","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609735","url":null,"abstract":"Multi-tenancy is a relatively new software architecture principle in the realm of the Software as a Service (SaaS) business model. It allows to make full use of the economy of scale, as multiple customers - “tenants” - share the same application and database instance. All the while, the tenants enjoy a highly configurable application, making it appear that the application is deployed on a dedicated server. The major benefits of multi-tenancy are increased utilization of hardware resources and improved ease of maintenance, resulting in lower overall application costs, making the technology attractive for service providers targeting small and medium enterprises (SME). Therefore, migrating existing single-tenant to multi-tenant applications can be interesting for SaaS software companies. In this paper we report on our experiences with reengineering an existing industrial, single-tenant software system into a multitenant one using a lightweight reengineering approach.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115383114","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}
引用次数: 142
On the implementation and correctness of information system upgrades 论信息系统升级的实施与正确性
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609679
Klaus Haller
Information systems are applications incorporating a database for storing and processing data. Upgrading information systems requires updating the application logic, modifying the database schema, and adopting the data accordingly. Previous research focuses either on schema evolution or on application logic updates. In this paper, we take a holistic approach by addressing the combination. First, we elaborate the three main upgrade patterns: install & copy, rejuvenation/delta only, and rejuvenation/verified. Second, we introduce our upgrade correctness concept. It is a formal correctness criterion for deciding whether an upgrade succeeded. Third, we discuss implementation patterns. Our insights base on various upgrade projects from stand-alone applications to multi-tenant systems having affected more than one hundred banks.
信息系统是包含数据库的应用程序,用于存储和处理数据。升级信息系统需要更新应用程序逻辑、修改数据库模式并采用相应的数据。以前的研究要么集中在模式演化上,要么集中在应用逻辑更新上。在本文中,我们采用整体方法来解决这一组合。首先,我们详细介绍了三种主要的升级模式:安装&复制、仅恢复/增量和恢复/验证。其次,我们介绍我们的升级正确性概念。它是判断升级是否成功的形式化正确性标准。第三,我们讨论实现模式。我们的见解基于从独立应用程序到多租户系统的各种升级项目,这些项目已经影响了100多家银行。
{"title":"On the implementation and correctness of information system upgrades","authors":"Klaus Haller","doi":"10.1109/ICSM.2010.5609679","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609679","url":null,"abstract":"Information systems are applications incorporating a database for storing and processing data. Upgrading information systems requires updating the application logic, modifying the database schema, and adopting the data accordingly. Previous research focuses either on schema evolution or on application logic updates. In this paper, we take a holistic approach by addressing the combination. First, we elaborate the three main upgrade patterns: install & copy, rejuvenation/delta only, and rejuvenation/verified. Second, we introduce our upgrade correctness concept. It is a formal correctness criterion for deciding whether an upgrade succeeded. Third, we discuss implementation patterns. Our insights base on various upgrade projects from stand-alone applications to multi-tenant systems having affected more than one hundred banks.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"75 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122887108","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
Unit tests as API usage examples 作为API使用示例的单元测试
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609553
Seyed Mehdi Nasehi, F. Maurer
This study aims to find out if API unit tests can provide good usage examples, and if so, what prevents developers from finding and using those examples. The results of an experiment we performed with two groups of developers showed that unit tests can be very helpful, especially when the task is complicated and involves multiple classes and methods. Well-written tests proved to be a good source of examples, but finding the relevant examples using the standard tools might be very difficult. We propose to supplement the standard API documentation with relevant examples taken from the unit tests. To further improve the learnability of the API, presentation of the documentation and examples has to be tailored in a way that separates or hides advanced usage scenarios from the commonly used ones.
本研究旨在找出API单元测试是否可以提供良好的使用示例,如果可以,是什么阻止开发人员发现和使用这些示例。我们对两组开发人员进行的实验结果表明,单元测试非常有用,特别是当任务很复杂并且涉及多个类和方法时。编写良好的测试被证明是一个很好的示例来源,但是使用标准工具找到相关的示例可能非常困难。我们建议用取自单元测试的相关示例来补充标准API文档。为了进一步提高API的可学习性,必须对文档和示例的表示进行定制,以便将高级使用场景与常用场景分开或隐藏起来。
{"title":"Unit tests as API usage examples","authors":"Seyed Mehdi Nasehi, F. Maurer","doi":"10.1109/ICSM.2010.5609553","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609553","url":null,"abstract":"This study aims to find out if API unit tests can provide good usage examples, and if so, what prevents developers from finding and using those examples. The results of an experiment we performed with two groups of developers showed that unit tests can be very helpful, especially when the task is complicated and involves multiple classes and methods. Well-written tests proved to be a good source of examples, but finding the relevant examples using the standard tools might be very difficult. We propose to supplement the standard API documentation with relevant examples taken from the unit tests. To further improve the learnability of the API, presentation of the documentation and examples has to be tailored in a way that separates or hides advanced usage scenarios from the commonly used ones.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129569271","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}
引用次数: 33
SE-CodeSearch: A scalable Semantic Web-based source code search infrastructure SE-CodeSearch:一个可扩展的基于语义的源代码搜索基础设施
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609533
I. Keivanloo, Laleh Roostapour, Philipp Schügerl, J. Rilling
Available code search engines provide typically coarse-grained lexical search. To address this limitation we present SE-CodeSearch, a Semantic Web-based approach for Internet-scale source code search. It uses an ontological representation of source code facts and analysis knowledge to complete missing information using inference engine. This approach allows us to reason and search across project boundaries containing often incomplete code fragments extracted in a one-pass and no-order manner. The infrastructure provides a scalable approach to process and query across large code bases mined from software repositories and code fragments found online. We have implemented our SE-CodeSearch as part of SE-Advisor framework to demonstrate the scalability and applicability of our Internet-scale code search in a software maintenance context.
可用的代码搜索引擎通常提供粗粒度的词法搜索。为了解决这一限制,我们提出了SE-CodeSearch,这是一种基于语义的方法,用于互联网规模的源代码搜索。它使用源代码事实的本体论表示和分析知识,利用推理引擎来完成缺失的信息。这种方法允许我们跨项目边界进行推理和搜索,这些项目边界通常包含以一遍和无序的方式提取的不完整代码片段。该基础设施提供了一种可伸缩的方法来处理和查询从软件存储库中挖掘的大型代码库和在线找到的代码片段。我们已经将SE-CodeSearch作为SE-Advisor框架的一部分来实现,以演示在软件维护环境中internet规模的代码搜索的可伸缩性和适用性。
{"title":"SE-CodeSearch: A scalable Semantic Web-based source code search infrastructure","authors":"I. Keivanloo, Laleh Roostapour, Philipp Schügerl, J. Rilling","doi":"10.1109/ICSM.2010.5609533","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609533","url":null,"abstract":"Available code search engines provide typically coarse-grained lexical search. To address this limitation we present SE-CodeSearch, a Semantic Web-based approach for Internet-scale source code search. It uses an ontological representation of source code facts and analysis knowledge to complete missing information using inference engine. This approach allows us to reason and search across project boundaries containing often incomplete code fragments extracted in a one-pass and no-order manner. The infrastructure provides a scalable approach to process and query across large code bases mined from software repositories and code fragments found online. We have implemented our SE-CodeSearch as part of SE-Advisor framework to demonstrate the scalability and applicability of our Internet-scale code search in a software maintenance context.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129584421","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
Software process recovery using Recovered Unified Process Views 使用恢复统一进程视图进行软件进程恢复
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609670
Abram Hindle, Michael W. Godfrey, R. Holt
The development process for a given software system is a combination of an idealized, prescribed model and a messy set of ad hoc practices. To some degree, process compliance can be enforced by supporting tools that require various steps be followed in order; however, this approach is often perceived as heavyweight and inflexible by developers, who generally prefer that tools support their desired work habits rather than limit their choices. An alternative approach to monitoring process compliance is to instrument the various tools and repositories that developers use — such as version control systems, bug-trackers, and mailing-list archives — and to build models of the de facto development process through observation, analysis, and inference. In this paper, we present a technique for recovering a project's software development processes from a variety of existing artifacts. We first apply unsupervised and supervised techniques — including word-bags, topic analysis, summary statistics, and Bayesian classifiers — to annotate software artifacts by related topics, maintenance types, and non-functional requirements. We map the analysis results onto a time-line based view of the Unified Process development model, which we call Recovered Unified Process Views. We demonstrate our approach for extracting these process views on two case studies: FreeBSD and SQLite.
给定软件系统的开发过程是一个理想化的、规定的模型和一组杂乱的特别实践的组合。在某种程度上,流程遵从性可以通过要求按顺序执行各种步骤的支持工具来实现;然而,这种方法通常被开发人员认为是重量级的和不灵活的,他们通常更喜欢工具支持他们想要的工作习惯,而不是限制他们的选择。监视过程遵从性的另一种方法是对开发人员使用的各种工具和存储库进行检测——例如版本控制系统、错误跟踪器和邮件列表存档——并通过观察、分析和推断来构建实际开发过程的模型。在本文中,我们提出了一种从各种现有工件中恢复项目软件开发过程的技术。我们首先应用无监督和有监督技术——包括词包、主题分析、汇总统计和贝叶斯分类器——通过相关主题、维护类型和非功能需求来注释软件工件。我们将分析结果映射到统一过程开发模型的基于时间线的视图上,我们称之为恢复统一过程视图。我们通过FreeBSD和SQLite两个案例来演示提取这些进程视图的方法。
{"title":"Software process recovery using Recovered Unified Process Views","authors":"Abram Hindle, Michael W. Godfrey, R. Holt","doi":"10.1109/ICSM.2010.5609670","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609670","url":null,"abstract":"The development process for a given software system is a combination of an idealized, prescribed model and a messy set of ad hoc practices. To some degree, process compliance can be enforced by supporting tools that require various steps be followed in order; however, this approach is often perceived as heavyweight and inflexible by developers, who generally prefer that tools support their desired work habits rather than limit their choices. An alternative approach to monitoring process compliance is to instrument the various tools and repositories that developers use — such as version control systems, bug-trackers, and mailing-list archives — and to build models of the de facto development process through observation, analysis, and inference. In this paper, we present a technique for recovering a project's software development processes from a variety of existing artifacts. We first apply unsupervised and supervised techniques — including word-bags, topic analysis, summary statistics, and Bayesian classifiers — to annotate software artifacts by related topics, maintenance types, and non-functional requirements. We map the analysis results onto a time-line based view of the Unified Process development model, which we call Recovered Unified Process Views. We demonstrate our approach for extracting these process views on two case studies: FreeBSD and SQLite.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129728284","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}
引用次数: 24
Fine-grained incremental learning and multi-feature tossing graphs to improve bug triaging 细粒度增量学习和多特征抛掷图来改进bug分类
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609736
P. Bhattacharya, Iulian Neamtiu
Software bugs are inevitable and bug fixing is a difficult, expensive, and lengthy process. One of the primary reasons why bug fixing takes so long is the difficulty of accurately assigning a bug to the most competent developer for that bug kind or bug class. Assigning a bug to a potential developer, also known as bug triaging, is a labor-intensive, time-consuming and fault-prone process if done manually. Moreover, bugs frequently get reassigned to multiple developers before they are resolved, a process known as bug tossing. Researchers have proposed automated techniques to facilitate bug triaging and reduce bug tossing using machine learning-based prediction and tossing graphs. While these techniques achieve good prediction accuracy for triaging and reduce tossing paths, they are vulnerable to several issues: outdated training sets, inactive developers, and imprecise, single-attribute tossing graphs. In this paper we improve triaging accuracy and reduce tossing path lengths by employing several techniques such as refined classification using additional attributes and intra-fold updates during training, a precise ranking function for recommending potential tossees in tossing graphs, and multi-feature tossing graphs. We validate our approach on two large software projects, Mozilla and Eclipse, covering 856,259 bug reports and 21 cumulative years of development. We demonstrate that our techniques can achieve up to 83.62% prediction accuracy in bug triaging. Moreover, we reduce tossing path lengths to 1.5–2 tosses for most bugs, which represents a reduction of up to 86.31% compared to original tossing paths. Our improvements have the potential to significantly reduce the bug fixing effort, especially in the context of sizable projects with large numbers of testers and developers.
软件错误是不可避免的,修复错误是一个困难、昂贵和漫长的过程。bug修复花费如此长时间的主要原因之一是很难准确地将bug分配给针对该bug类型或bug类的最有能力的开发人员。将错误分配给潜在的开发人员,也称为错误分类,如果手工完成,是一个劳动密集、耗时且容易出错的过程。此外,bug经常在解决之前被重新分配给多个开发人员,这个过程被称为bug抛掷。研究人员提出了自动化技术来促进错误分类,并使用基于机器学习的预测和抛出图来减少错误抛出。虽然这些技术在分类和减少抛掷路径方面实现了良好的预测准确性,但它们容易受到几个问题的影响:过时的训练集、不活跃的开发人员和不精确的单属性抛掷图。在本文中,我们采用了几种技术,如在训练过程中使用附加属性和折叠内更新的精细分类,在投掷图中推荐潜在投掷者的精确排序函数,以及多特征投掷图,来提高分类精度并减少投掷路径长度。我们在两个大型软件项目(Mozilla和Eclipse)上验证了我们的方法,涵盖了856,259个bug报告和21年的累计开发。我们证明了我们的技术在bug分类中可以达到高达83.62%的预测准确率。此外,我们将大多数bug的投掷路径长度减少到1.5-2次,与原始投掷路径相比减少了86.31%。我们的改进具有显著减少bug修复工作的潜力,特别是在拥有大量测试人员和开发人员的大型项目环境中。
{"title":"Fine-grained incremental learning and multi-feature tossing graphs to improve bug triaging","authors":"P. Bhattacharya, Iulian Neamtiu","doi":"10.1109/ICSM.2010.5609736","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609736","url":null,"abstract":"Software bugs are inevitable and bug fixing is a difficult, expensive, and lengthy process. One of the primary reasons why bug fixing takes so long is the difficulty of accurately assigning a bug to the most competent developer for that bug kind or bug class. Assigning a bug to a potential developer, also known as bug triaging, is a labor-intensive, time-consuming and fault-prone process if done manually. Moreover, bugs frequently get reassigned to multiple developers before they are resolved, a process known as bug tossing. Researchers have proposed automated techniques to facilitate bug triaging and reduce bug tossing using machine learning-based prediction and tossing graphs. While these techniques achieve good prediction accuracy for triaging and reduce tossing paths, they are vulnerable to several issues: outdated training sets, inactive developers, and imprecise, single-attribute tossing graphs. In this paper we improve triaging accuracy and reduce tossing path lengths by employing several techniques such as refined classification using additional attributes and intra-fold updates during training, a precise ranking function for recommending potential tossees in tossing graphs, and multi-feature tossing graphs. We validate our approach on two large software projects, Mozilla and Eclipse, covering 856,259 bug reports and 21 cumulative years of development. We demonstrate that our techniques can achieve up to 83.62% prediction accuracy in bug triaging. Moreover, we reduce tossing path lengths to 1.5–2 tosses for most bugs, which represents a reduction of up to 86.31% compared to original tossing paths. Our improvements have the potential to significantly reduce the bug fixing effort, especially in the context of sizable projects with large numbers of testers and developers.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"24 3","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120867706","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}
引用次数: 167
Automatic checking of license compliance 自动检查license合规性
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609557
Hongyu Zhang, Bei Shi, Lu Zhang
Open source software facilitates software reuse as developers can learn from code in existing open source projects. However, license compliance is an important legal issue that should be taken into consideration during open source based software reuse. Ignorance or carelessness could result in huge financial losses. In this paper, we present LChecker, a tool we developed for automatic checking of license compliance. LChecker utilizes Google Code Search service to check whether a local file exists in an OSS project and whether the licenses are compatible. The initial experimental results show that our tool is effective in detecting license compliance problems1.
开源软件促进了软件重用,因为开发人员可以从现有开源项目中的代码中学习。然而,许可证遵从性是一个重要的法律问题,在基于开源的软件重用期间应该考虑到这个问题。无知或粗心可能导致巨大的经济损失。在本文中,我们介绍了LChecker,这是一个我们开发的用于自动检查许可遵从性的工具。LChecker通过Google Code Search服务检查OSS项目中是否存在本地文件,以及license是否兼容。初步的实验结果表明,我们的工具可以有效地检测许可证遵从性问题1。
{"title":"Automatic checking of license compliance","authors":"Hongyu Zhang, Bei Shi, Lu Zhang","doi":"10.1109/ICSM.2010.5609557","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609557","url":null,"abstract":"Open source software facilitates software reuse as developers can learn from code in existing open source projects. However, license compliance is an important legal issue that should be taken into consideration during open source based software reuse. Ignorance or carelessness could result in huge financial losses. In this paper, we present LChecker, a tool we developed for automatic checking of license compliance. LChecker utilizes Google Code Search service to check whether a local file exists in an OSS project and whether the licenses are compatible. The initial experimental results show that our tool is effective in detecting license compliance problems1.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"234 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122481639","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
Are all code smells harmful? A study of God Classes and Brain Classes in the evolution of three open source systems 所有的代码气味都有害吗?三个开源系统演化中的上帝类和大脑类研究
Pub Date : 2010-09-12 DOI: 10.1109/ICSM.2010.5609564
Steffen M. Olbrich, D. Cruzes, Dag I.K. Sjøberg
Code smells are particular patterns in object-oriented systems that are perceived to lead to difficulties in the maintenance of such systems. It is held that to improve maintainability, code smells should be eliminated by refactoring. It is claimed that classes that are involved in certain code smells are liable to be changed more frequently and have more defects than other classes in the code. We investigated the extent to which this claim is true for God Classes and Brain Classes, with and without normalizing the effects with respect to the class size. We analyzed historical data from 7 to 10 years of the development of three open-source software systems. The results show that God and Brain Classes were changed more frequently and contained more defects than other kinds of class. However, when we normalized the measured effects with respect to size, then God and Brain Classes were less subject to change and had fewer defects than other classes. Hence, under the assumption that God and Brain Classes contain on average as much functionality per line of code as other classes, the presence of God and Brain Classes is not necessarily harmful; in fact, such classes may be an efficient way of organizing code.
代码气味是面向对象系统中的特定模式,它被认为会导致系统维护方面的困难。人们认为,为了提高可维护性,应该通过重构来消除代码气味。据称,与代码中的其他类相比,涉及特定代码气味的类更容易被频繁更改,并且具有更多缺陷。我们调查了这种说法在多大程度上适用于上帝类和大脑类,以及是否对班级规模的影响进行了正常化。我们分析了三个开源软件系统7到10年的历史数据。结果表明,与其他类别相比,上帝类和大脑类的变化更频繁,缺陷也更多。然而,当我们根据大小将测量的效果标准化后,上帝类和大脑类比其他类更不容易改变,缺陷也更少。因此,假设God和Brain类每行代码包含的平均功能与其他类一样多,那么God和Brain类的存在并不一定是有害的;事实上,这样的类可能是组织代码的一种有效方式。
{"title":"Are all code smells harmful? A study of God Classes and Brain Classes in the evolution of three open source systems","authors":"Steffen M. Olbrich, D. Cruzes, Dag I.K. Sjøberg","doi":"10.1109/ICSM.2010.5609564","DOIUrl":"https://doi.org/10.1109/ICSM.2010.5609564","url":null,"abstract":"Code smells are particular patterns in object-oriented systems that are perceived to lead to difficulties in the maintenance of such systems. It is held that to improve maintainability, code smells should be eliminated by refactoring. It is claimed that classes that are involved in certain code smells are liable to be changed more frequently and have more defects than other classes in the code. We investigated the extent to which this claim is true for God Classes and Brain Classes, with and without normalizing the effects with respect to the class size. We analyzed historical data from 7 to 10 years of the development of three open-source software systems. The results show that God and Brain Classes were changed more frequently and contained more defects than other kinds of class. However, when we normalized the measured effects with respect to size, then God and Brain Classes were less subject to change and had fewer defects than other classes. Hence, under the assumption that God and Brain Classes contain on average as much functionality per line of code as other classes, the presence of God and Brain Classes is not necessarily harmful; in fact, such classes may be an efficient way of organizing code.","PeriodicalId":101801,"journal":{"name":"2010 IEEE International Conference on Software Maintenance","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2010-09-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131695186","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}
引用次数: 210
期刊
2010 IEEE International Conference on Software Maintenance
全部 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