首页 > 最新文献

Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering最新文献

英文 中文
Social network analysis in open source software peer review 开源软件同行评审中的社会网络分析
Xin Yang
Software peer review (aka. code review) is regarded as one of the most important approaches to keep software quality and productivity. Due to the distributed collaborations and communication nature of Open Source Software (OSS), OSS review differs from traditional industry review. Unlike other related works, this study investigated OSS peer review pro- cesses from social perspective by using social network anal- ysis (SNA). We analyzed the review history from three typi- cal OSS projects. The results provide hints on relationships among the OSS reviewers which can help to understand how developers work and communicate with each other.
软件同行评审(又名。代码审查被认为是保持软件质量和生产力的最重要的方法之一。由于开源软件(OSS)的分布式协作和通信特性,OSS审查不同于传统的行业审查。与其他相关研究不同,本研究采用社会网络分析(social network analysis, SNA),从社会视角考察了OSS同行评议过程。我们分析了三个典型OSS项目的评审历史。结果提供了关于OSS评审人员之间关系的提示,这有助于理解开发人员是如何工作和相互沟通的。
{"title":"Social network analysis in open source software peer review","authors":"Xin Yang","doi":"10.1145/2635868.2661682","DOIUrl":"https://doi.org/10.1145/2635868.2661682","url":null,"abstract":"Software peer review (aka. code review) is regarded as one of the most important approaches to keep software quality and productivity. Due to the distributed collaborations and communication nature of Open Source Software (OSS), OSS review differs from traditional industry review. Unlike other related works, this study investigated OSS peer review pro- cesses from social perspective by using social network anal- ysis (SNA). We analyzed the review history from three typi- cal OSS projects. The results provide hints on relationships among the OSS reviewers which can help to understand how developers work and communicate with each other.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121438508","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
ORBS: language-independent program slicing ORBS:独立于语言的程序切片
D. Binkley, N. Gold, M. Harman, Syed S. Islam, J. Krinke, S. Yoo
Current slicing techniques cannot handle systems written in multiple programming languages. Observation-Based Slicing (ORBS) is a language-independent slicing technique capable of slicing multi-language systems, including systems which contain (third party) binary components. A potential slice obtained through repeated statement deletion is validated by observing the behaviour of the program: if the slice and original program behave the same under the slicing criterion, the deletion is accepted. The resulting slice is similar to a dynamic slice. We evaluate five variants of ORBS on ten programs of different sizes and languages showing that it is less expensive than similar existing techniques. We also evaluate it on bash and four other systems to demonstrate feasible large-scale operation in which a parallelised ORBS needs up to 82% less time when using four threads. The results show that an ORBS slicer is simple to construct, effective at slicing, and able to handle systems written in multiple languages without specialist analysis tools.
当前的切片技术不能处理用多种编程语言编写的系统。基于观察的切片(ORBS)是一种独立于语言的切片技术,能够切片多语言系统,包括包含(第三方)二进制组件的系统。通过观察程序的行为来验证通过重复语句删除获得的潜在切片:如果切片和原始程序在切片标准下的行为相同,则接受删除。生成的切片类似于动态切片。我们在10个不同规模和语言的程序中评估了五种ORBS变体,结果表明它比类似的现有技术更便宜。我们还在bash和其他四个系统上对其进行了评估,以演示可行的大规模操作,其中并行化的orb在使用四个线程时需要的时间最多减少82%。结果表明,ORBS切片器构造简单,切片效率高,无需专业分析工具即可处理多种语言编写的系统。
{"title":"ORBS: language-independent program slicing","authors":"D. Binkley, N. Gold, M. Harman, Syed S. Islam, J. Krinke, S. Yoo","doi":"10.1145/2635868.2635893","DOIUrl":"https://doi.org/10.1145/2635868.2635893","url":null,"abstract":"Current slicing techniques cannot handle systems written in multiple programming languages. Observation-Based Slicing (ORBS) is a language-independent slicing technique capable of slicing multi-language systems, including systems which contain (third party) binary components. A potential slice obtained through repeated statement deletion is validated by observing the behaviour of the program: if the slice and original program behave the same under the slicing criterion, the deletion is accepted. The resulting slice is similar to a dynamic slice. We evaluate five variants of ORBS on ten programs of different sizes and languages showing that it is less expensive than similar existing techniques. We also evaluate it on bash and four other systems to demonstrate feasible large-scale operation in which a parallelised ORBS needs up to 82% less time when using four threads. The results show that an ORBS slicer is simple to construct, effective at slicing, and able to handle systems written in multiple languages without specialist analysis tools.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127642495","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}
引用次数: 80
Panning requirement nuggets in stream of software maintenance tickets 在软件维护单流中筛选需求块
Senthil Mani, K. Sankaranarayanan, Vibha Sinha, Premkumar T. Devanbu
There is an increasing trend to outsource maintenance of large applications and application portfolios of a business to third parties, specialising in application maintenance, who are incented to deliver the best possible maintenance at the lowest cost. To do so, they need to identify repeat problem areas, which cause more maintenance grief, and seek a unified remedy to avoid the costs spent on fixing these individually. These repeat areas, in a sense, represent major, evolving areas of need, or requirements, for the customer. The information about the repeating problem is typically embedded in the unstructured text of multiple tickets, waiting to be found and addressed. Currently, repeat problems are found by manual analysis; effective solutions depend on the collective experience of the team solving them. In this paper, we propose an approach to automatically analyze problem tickets to discover groups of problems being reported in them and provide meaningful, descriptive labels to help interpret these groups. Our approach incorporates a cleansing phase to handle the high level of noise observed in problem tickets and a method to incorporate multiple text clustering techniques and merge their results in a meaningful manner. We provide detailed experiments to quantitatively and qualitatively evaluate our approach
越来越多的趋势是将大型应用程序和业务应用程序组合的维护外包给专门从事应用程序维护的第三方,这些第三方被鼓励以最低的成本提供尽可能好的维护。要做到这一点,他们需要识别重复的问题区域,这些区域会导致更多的维护问题,并寻求统一的补救措施,以避免单独修复这些问题所花费的成本。从某种意义上说,这些重复的领域代表了客户需要或需求的主要的、不断发展的领域。关于重复问题的信息通常嵌入在多个票据的非结构化文本中,等待被发现和处理。目前,重复问题主要通过人工分析发现;有效的解决方案依赖于解决这些问题的团队的集体经验。在本文中,我们提出了一种自动分析问题单的方法,以发现其中报告的问题组,并提供有意义的描述性标签来帮助解释这些组。我们的方法包含了一个清理阶段来处理在问题单中观察到的高水平噪声,以及一个结合多种文本聚类技术并以有意义的方式合并其结果的方法。我们提供详细的实验来定量和定性地评估我们的方法
{"title":"Panning requirement nuggets in stream of software maintenance tickets","authors":"Senthil Mani, K. Sankaranarayanan, Vibha Sinha, Premkumar T. Devanbu","doi":"10.1145/2635868.2635897","DOIUrl":"https://doi.org/10.1145/2635868.2635897","url":null,"abstract":"There is an increasing trend to outsource maintenance of large applications and application portfolios of a business to third parties, specialising in application maintenance, who are incented to deliver the best possible maintenance at the lowest cost. To do so, they need to identify repeat problem areas, which cause more maintenance grief, and seek a unified remedy to avoid the costs spent on fixing these individually. These repeat areas, in a sense, represent major, evolving areas of need, or requirements, for the customer. The information about the repeating problem is typically embedded in the unstructured text of multiple tickets, waiting to be found and addressed. Currently, repeat problems are found by manual analysis; effective solutions depend on the collective experience of the team solving them. In this paper, we propose an approach to automatically analyze problem tickets to discover groups of problems being reported in them and provide meaningful, descriptive labels to help interpret these groups. Our approach incorporates a cleansing phase to handle the high level of noise observed in problem tickets and a method to incorporate multiple text clustering techniques and merge their results in a meaningful manner. We provide detailed experiments to quantitatively and qualitatively evaluate our approach","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"35 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132986597","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}
引用次数: 13
Traceability and model checking to support safety requirement verification 可追溯性和模型检查以支持安全需求验证
Shuanglong Kan
Ensuring safety-critical software safety requires strict verification of the conformance between safety requirements and programs. Formal verification techniques, such as model checking and theorem proving, can be used to partially realize this objective. DO-178C, a standard for airborne systems, allows formal verification techniques to replace certain forms of testing. My research is concerned with applying model checking to verify the conformance between safety requirements and programs. First, a formal language for specifying software safety requirements which are relevant to event sequences is introduced. Second, the traceability information models between formalized safety requirements and programs are built. Third, the checking of a program against a safety requirement is decomposed into smaller model checking problems by utilizing traceability information model between them.
确保安全关键软件的安全需要严格验证安全需求和程序之间的一致性。正式的验证技术,如模型检查和定理证明,可以用来部分地实现这一目标。DO-178C是一项机载系统标准,允许正式验证技术取代某些形式的测试。我的研究是关于应用模型检查来验证安全要求和程序之间的一致性。首先,介绍了一种用于指定与事件序列相关的软件安全需求的形式化语言。其次,建立形式化安全需求与程序之间的可追溯性信息模型。第三,利用可追溯性信息模型,将程序对安全需求的检查分解为更小的模型检查问题。
{"title":"Traceability and model checking to support safety requirement verification","authors":"Shuanglong Kan","doi":"10.1145/2635868.2666606","DOIUrl":"https://doi.org/10.1145/2635868.2666606","url":null,"abstract":"Ensuring safety-critical software safety requires strict verification of the conformance between safety requirements and programs. Formal verification techniques, such as model checking and theorem proving, can be used to partially realize this objective. DO-178C, a standard for airborne systems, allows formal verification techniques to replace certain forms of testing. My research is concerned with applying model checking to verify the conformance between safety requirements and programs. First, a formal language for specifying software safety requirements which are relevant to event sequences is introduced. Second, the traceability information models between formalized safety requirements and programs are built. Third, the checking of a program against a safety requirement is decomposed into smaller model checking problems by utilizing traceability information model between them.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"222 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131688810","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
BugLocalizer: integrated tool support for bug localization BugLocalizer:支持bug本地化的集成工具
Ferdian Thung, Tien-Duy B. Le, Pavneet Singh Kochhar, D. Lo
To manage bugs that appear in a software, developers often make use of a bug tracking system such as Bugzilla. Users can report bugs that they encounter in such a system. Whenever a user reports a new bug report, developers need to read the summary and description of the bug report and manually locate the buggy files based on this information. This manual process is often time consuming and tedious. Thus, a number of past studies have proposed bug localization techniques to automatically recover potentially buggy files from bug reports. Unfortunately, none of these techniques are integrated to bug tracking systems and thus it hinders their adoption by practitioners. To help disseminate research in bug localization to practitioners, we develop a tool named BugLocalizer, which is implemented as a Bugzilla extension and builds upon a recently proposed bug localization technique. Our tool extracts texts from summary and description fields of a bug report and source code files. It then computes similarities of the bug report with source code files to find the buggy files. Developers can use our tool online from a Bugzilla web interface by providing a link to a git source code repository and specifying the version of the repository to be analyzed. We have released our tool publicly in GitHub, which is available at: https://github.com/smagsmu/buglocalizer. We have also provided a demo video, which can be accessed at: http://youtu.be/iWHaLNCUjBY.
为了管理软件中出现的bug,开发人员经常使用bug跟踪系统,如Bugzilla。用户可以报告他们在这样的系统中遇到的错误。每当用户报告新的错误报告时,开发人员需要阅读错误报告的摘要和描述,并根据这些信息手动定位有错误的文件。这种手工过程通常既耗时又乏味。因此,许多过去的研究已经提出了bug本地化技术,以便从bug报告中自动恢复潜在的bug文件。不幸的是,这些技术都没有集成到bug跟踪系统中,因此阻碍了从业者对它们的采用。为了帮助向从业者传播bug定位的研究,我们开发了一个名为BugLocalizer的工具,它作为Bugzilla的扩展实现,并建立在最近提出的bug定位技术的基础上。我们的工具从bug报告和源代码文件的摘要和描述字段中提取文本。然后,它计算bug报告与源代码文件的相似性,以查找有bug的文件。开发人员可以在Bugzilla的web界面上在线使用我们的工具,只需提供一个git源代码库的链接,并指定要分析的库的版本。我们已经在GitHub上公开发布了我们的工具,可以在:https://github.com/smagsmu/buglocalizer上获得。我们还提供了一个演示视频,可以在http://youtu.be/iWHaLNCUjBY上访问。
{"title":"BugLocalizer: integrated tool support for bug localization","authors":"Ferdian Thung, Tien-Duy B. Le, Pavneet Singh Kochhar, D. Lo","doi":"10.1145/2635868.2661678","DOIUrl":"https://doi.org/10.1145/2635868.2661678","url":null,"abstract":"To manage bugs that appear in a software, developers often make use of a bug tracking system such as Bugzilla. Users can report bugs that they encounter in such a system. Whenever a user reports a new bug report, developers need to read the summary and description of the bug report and manually locate the buggy files based on this information. This manual process is often time consuming and tedious. Thus, a number of past studies have proposed bug localization techniques to automatically recover potentially buggy files from bug reports. Unfortunately, none of these techniques are integrated to bug tracking systems and thus it hinders their adoption by practitioners. To help disseminate research in bug localization to practitioners, we develop a tool named BugLocalizer, which is implemented as a Bugzilla extension and builds upon a recently proposed bug localization technique. Our tool extracts texts from summary and description fields of a bug report and source code files. It then computes similarities of the bug report with source code files to find the buggy files. Developers can use our tool online from a Bugzilla web interface by providing a link to a git source code repository and specifying the version of the repository to be analyzed. We have released our tool publicly in GitHub, which is available at: https://github.com/smagsmu/buglocalizer. We have also provided a demo video, which can be accessed at: http://youtu.be/iWHaLNCUjBY.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"26 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121042431","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
FlowTwist: efficient context-sensitive inside-out taint analysis for large codebases FlowTwist:针对大型代码库的高效上下文敏感的由内到外的污染分析
Johannes Lerch, Ben Hermann, E. Bodden, M. Mezini
Over the past years, widely used platforms such as the Java Class Library have been under constant attack through vulnerabilities that involve a combination of two taint-analysis problems: an integrity problem allowing attackers to trigger sensitive operations within the platform, and a confidentiality problem allowing the attacker to retrieve sensitive information or pointers from the results of those operations. While existing static taint analyses are good at solving either of those problems, we show that they scale prohibitively badly when being applied to situations that require the exploitation of both an integrity and confidentiality problem in combination. The main problem is the huge attack surface of libraries such as the Java Class Library, which exposes thousands of methods potentially controllable by an attacker. In this work we thus present FlowTwist, a novel taint-analysis approach that works inside-out, i.e., tracks data flows from potentially vulnerable calls to the outer level of the API which the attacker might control. This inside-out analysis requires a careful, context-sensitive coordination of both a backward and a forward taint analysis. In this work, we expose a design of the analysis approach based on the IFDS algorithm, and explain several extensions to IFDS that enable not only this coordination but also a helpful reporting of error situations to security analysts. Experiments with the Java Class Library show that, while a simple forward taint-analysis approach does not scale even with much machine power, FlowTwist's algorithm is able to fully analyze the library within 10 minutes.
在过去的几年中,广泛使用的平台(如Java Class Library)一直受到漏洞的持续攻击,这些漏洞涉及两个污染分析问题的组合:完整性问题允许攻击者触发平台内的敏感操作,机密性问题允许攻击者从这些操作的结果中检索敏感信息或指针。虽然现有的静态污染分析很好地解决了这些问题中的任何一个,但我们表明,当应用于需要同时利用完整性和机密性问题的情况时,它们的可伸缩性非常糟糕。主要问题是库(如Java Class Library)的巨大攻击面,它暴露了攻击者可能控制的数千种方法。在这项工作中,我们因此提出了FlowTwist,这是一种新颖的由内而外的污染分析方法,即跟踪从潜在易受攻击的调用到攻击者可能控制的API外部级别的数据流。这种由内而外的分析需要仔细地、上下文敏感地协调向后和向前的污染分析。在这项工作中,我们揭示了基于IFDS算法的分析方法的设计,并解释了IFDS的几个扩展,这些扩展不仅可以实现这种协调,还可以帮助向安全分析师报告错误情况。Java类库的实验表明,虽然简单的前向污染分析方法即使在机器功率很大的情况下也无法扩展,但FlowTwist的算法能够在10分钟内完全分析该库。
{"title":"FlowTwist: efficient context-sensitive inside-out taint analysis for large codebases","authors":"Johannes Lerch, Ben Hermann, E. Bodden, M. Mezini","doi":"10.1145/2635868.2635878","DOIUrl":"https://doi.org/10.1145/2635868.2635878","url":null,"abstract":"Over the past years, widely used platforms such as the Java Class Library have been under constant attack through vulnerabilities that involve a combination of two taint-analysis problems: an integrity problem allowing attackers to trigger sensitive operations within the platform, and a confidentiality problem allowing the attacker to retrieve sensitive information or pointers from the results of those operations. While existing static taint analyses are good at solving either of those problems, we show that they scale prohibitively badly when being applied to situations that require the exploitation of both an integrity and confidentiality problem in combination. The main problem is the huge attack surface of libraries such as the Java Class Library, which exposes thousands of methods potentially controllable by an attacker. In this work we thus present FlowTwist, a novel taint-analysis approach that works inside-out, i.e., tracks data flows from potentially vulnerable calls to the outer level of the API which the attacker might control. This inside-out analysis requires a careful, context-sensitive coordination of both a backward and a forward taint analysis. In this work, we expose a design of the analysis approach based on the IFDS algorithm, and explain several extensions to IFDS that enable not only this coordination but also a helpful reporting of error situations to security analysts. Experiments with the Java Class Library show that, while a simple forward taint-analysis approach does not scale even with much machine power, FlowTwist's algorithm is able to fully analyze the library within 10 minutes.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121321054","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}
引用次数: 37
Learning to rank relevant files for bug reports using domain knowledge 学习使用领域知识对bug报告的相关文件进行排序
Xin Ye, Razvan C. Bunescu, Chang Liu
When a new bug report is received, developers usually need to reproduce the bug and perform code reviews to find the cause, a process that can be tedious and time consuming. A tool for ranking all the source files of a project with respect to how likely they are to contain the cause of the bug would enable developers to narrow down their search and potentially could lead to a substantial increase in productivity. This paper introduces an adaptive ranking approach that leverages domain knowledge through functional decompositions of source code files into methods, API descriptions of library components used in the code, the bug-fixing history, and the code change history. Given a bug report, the ranking score of each source file is computed as a weighted combination of an array of features encoding domain knowledge, where the weights are trained automatically on previously solved bug reports using a learning-to-rank technique. We evaluated our system on six large scale open source Java projects, using the before-fix version of the project for every bug report. The experimental results show that the newly introduced learning-to-rank approach significantly outperforms two recent state-of-the-art methods in recommending relevant files for bug reports. In particular, our method makes correct recommendations within the top 10 ranked source files for over 70% of the bug reports in the Eclipse Platform and Tomcat projects.
当收到新的错误报告时,开发人员通常需要重新生成错误并执行代码审查以找到原因,这是一个乏味且耗时的过程。如果有一个工具可以根据包含错误原因的可能性对项目的所有源文件进行排序,这将使开发人员能够缩小搜索范围,并可能大大提高生产力。本文介绍了一种自适应排序方法,该方法通过将源代码文件分解为方法、代码中使用的库组件的API描述、错误修复历史和代码更改历史来利用领域知识。给定一个错误报告,每个源文件的排名分数被计算为编码领域知识的特征数组的加权组合,其中权重是使用学习排序技术在先前解决的错误报告上自动训练的。我们在六个大型开源Java项目上评估了我们的系统,对每个bug报告使用修复前的项目版本。实验结果表明,新引入的学习排序方法在为bug报告推荐相关文件方面明显优于最近两种最先进的方法。特别是,我们的方法对Eclipse平台和Tomcat项目中超过70%的bug报告中排名前10位的源文件给出了正确的建议。
{"title":"Learning to rank relevant files for bug reports using domain knowledge","authors":"Xin Ye, Razvan C. Bunescu, Chang Liu","doi":"10.1145/2635868.2635874","DOIUrl":"https://doi.org/10.1145/2635868.2635874","url":null,"abstract":"When a new bug report is received, developers usually need to reproduce the bug and perform code reviews to find the cause, a process that can be tedious and time consuming. A tool for ranking all the source files of a project with respect to how likely they are to contain the cause of the bug would enable developers to narrow down their search and potentially could lead to a substantial increase in productivity. This paper introduces an adaptive ranking approach that leverages domain knowledge through functional decompositions of source code files into methods, API descriptions of library components used in the code, the bug-fixing history, and the code change history. Given a bug report, the ranking score of each source file is computed as a weighted combination of an array of features encoding domain knowledge, where the weights are trained automatically on previously solved bug reports using a learning-to-rank technique. We evaluated our system on six large scale open source Java projects, using the before-fix version of the project for every bug report. The experimental results show that the newly introduced learning-to-rank approach significantly outperforms two recent state-of-the-art methods in recommending relevant files for bug reports. In particular, our method makes correct recommendations within the top 10 ranked source files for over 70% of the bug reports in the Eclipse Platform and Tomcat projects.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129012322","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}
引用次数: 257
Architecture challenges for internal software ecosystems: a large-scale industry case study 内部软件生态系统的架构挑战:大型行业案例研究
K. Schultis, Christoph Elsner, D. Lohmann
The idea of software ecosystems encourages organizations to open software projects for external businesses, governing the cross-organizational development by architectural and other measures. Even within a single organization, this paradigm can be of high value for large-scale decentralized software projects that involve various internal, yet self-contained organizational units. However, this intra-organizational decentralization causes architecture challenges that must be understood to reason about suitable architectural measures. We present an in-depth case study on collaboration and architecture challenges in two of these large-scale software projects at Siemens. We performed a total of 46 hours of semi-structured interviews with 17 leading software architects from all involved organizational units. Our major findings are: (1) three collaboration models on a continuum that ranges from high to low coupling, (2) a classification of architecture challenges, together with (3) a qualitative and quantitative exposure of the identified recurring issues along each collaboration model. Our study results provide valuable insights for both industry and academia: Practitioners that find themselves in one of the collaboration models can use empirical evidence on challenges to make informed decisions about counteractive measures. Researchers can focus their attention on challenges faced by practitioners to make software engineering more effective.
软件生态系统的概念鼓励组织为外部业务开放软件项目,通过架构和其他措施管理跨组织的开发。即使在单个组织中,这种范例对于涉及各种内部但自包含的组织单元的大型分散软件项目也具有很高的价值。然而,这种组织内部的去中心化导致了架构挑战,必须理解这些挑战才能推断出合适的架构度量。我们对西门子两个大型软件项目中的协作和架构挑战进行了深入的案例研究。我们对来自所有相关组织单位的17位主要软件架构师进行了总共46小时的半结构化访谈。我们的主要发现是:(1)从高耦合到低耦合的连续体上的三个协作模型,(2)架构挑战的分类,以及(3)对每个协作模型中确定的重复问题的定性和定量暴露。我们的研究结果为工业界和学术界提供了有价值的见解:发现自己处于某个协作模型中的从业者可以使用挑战的经验证据来做出有关反措施的明智决策。研究人员可以将注意力集中在实践者所面临的挑战上,以使软件工程更有效。
{"title":"Architecture challenges for internal software ecosystems: a large-scale industry case study","authors":"K. Schultis, Christoph Elsner, D. Lohmann","doi":"10.1145/2635868.2635876","DOIUrl":"https://doi.org/10.1145/2635868.2635876","url":null,"abstract":"The idea of software ecosystems encourages organizations to open software projects for external businesses, governing the cross-organizational development by architectural and other measures. Even within a single organization, this paradigm can be of high value for large-scale decentralized software projects that involve various internal, yet self-contained organizational units. However, this intra-organizational decentralization causes architecture challenges that must be understood to reason about suitable architectural measures. We present an in-depth case study on collaboration and architecture challenges in two of these large-scale software projects at Siemens. We performed a total of 46 hours of semi-structured interviews with 17 leading software architects from all involved organizational units. Our major findings are: (1) three collaboration models on a continuum that ranges from high to low coupling, (2) a classification of architecture challenges, together with (3) a qualitative and quantitative exposure of the identified recurring issues along each collaboration model. Our study results provide valuable insights for both industry and academia: Practitioners that find themselves in one of the collaboration models can use empirical evidence on challenges to make informed decisions about counteractive measures. Researchers can focus their attention on challenges faced by practitioners to make software engineering more effective.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116337045","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}
引用次数: 23
Data hard with a vengeance (invited talk) 数据的硬与复仇(特邀演讲)
Thomas Zimmermann
Action flicks and the analysis of software data in industry have more in common than you think. Both action heroes and development teams are on tight deadlines to save the day. Getting wrong information can lead to disastrous outcomes. In this talk, I will share experiences from my six years of research in the Empirical Software Engineering Group working with engineers towards sound data-driven decision about software.
动作电影和工业软件数据分析的共同点比你想象的要多。动作英雄和开发团队都在紧迫的最后期限内拯救世界。获得错误的信息可能会导致灾难性的后果。在这次演讲中,我将分享我在经验软件工程小组的六年研究经验,这些研究与工程师们一起致力于关于软件的可靠数据驱动决策。
{"title":"Data hard with a vengeance (invited talk)","authors":"Thomas Zimmermann","doi":"10.1145/2635868.2684431","DOIUrl":"https://doi.org/10.1145/2635868.2684431","url":null,"abstract":"Action flicks and the analysis of software data in industry have more in common than you think. Both action heroes and development teams are on tight deadlines to save the day. Getting wrong information can lead to disastrous outcomes. In this talk, I will share experiences from my six years of research in the Empirical Software Engineering Group working with engineers towards sound data-driven decision about software.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"120 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116368725","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
Improving the software testing skills of novices during onboarding through social transparency 通过社会透明度提高新手入职时的软件测试技能
Raphael Pham
Inexperienced software developers - for example, undergraduates entering the workforce - exhibit a lack of testing skills. They have trouble understanding and applying basic testing techniques. These inexperienced developers are hired by software companies, where this lack of testing skills has already been recognized. Companies allocate valuable resources and invest time and money in different onboarding strategies to introduce new hires to the organization’s testing practices. However, if the lack of testing skills is not addressed properly, the new hire is left to her own devices. This hinders her in becoming a high-quality engineer for the software company. This thesis proposes to improve the onboarding strategies with traits of social transparency in order to specifically address testing issues of inexperienced new hires. Social transparency has been shown to influence the testing behavior of development teams on a social coding site. An environment that is open for discussion helps newcomers to understand and adapt a team’s testing culture. Tailoring the onboarding process to better address testing skills of new hires makes it more effective and more efficient. This reduces the danger of carrying new hire’s testing deficits into commercial software development.
没有经验的软件开发人员——例如,刚进入职场的大学生——表现出缺乏测试技能。他们很难理解和应用基本的测试技术。这些没有经验的开发人员被软件公司雇用,在那里他们已经认识到缺乏测试技能。公司分配宝贵的资源,并在不同的入职策略上投入时间和金钱,以将新员工引入组织的测试实践。然而,如果缺乏测试技能的问题没有得到妥善解决,新员工就会自生自弃。这阻碍了她成为软件公司的高质量工程师。本文提出改进具有社会透明度特征的入职策略,以具体解决缺乏经验的新员工的测试问题。社会透明度已经被证明会影响开发团队在社会编码站点上的测试行为。开放讨论的环境有助于新手理解和适应团队的测试文化。调整入职流程以更好地解决新员工的测试技能,使其更有效、更高效。这减少了将新员工的测试缺陷带入商业软件开发的危险。
{"title":"Improving the software testing skills of novices during onboarding through social transparency","authors":"Raphael Pham","doi":"10.1145/2635868.2666604","DOIUrl":"https://doi.org/10.1145/2635868.2666604","url":null,"abstract":"Inexperienced software developers - for example, undergraduates entering the workforce - exhibit a lack of testing skills. They have trouble understanding and applying basic testing techniques. These inexperienced developers are hired by software companies, where this lack of testing skills has already been recognized. Companies allocate valuable resources and invest time and money in different onboarding strategies to introduce new hires to the organization’s testing practices. However, if the lack of testing skills is not addressed properly, the new hire is left to her own devices. This hinders her in becoming a high-quality engineer for the software company. This thesis proposes to improve the onboarding strategies with traits of social transparency in order to specifically address testing issues of inexperienced new hires. Social transparency has been shown to influence the testing behavior of development teams on a social coding site. An environment that is open for discussion helps newcomers to understand and adapt a team’s testing culture. Tailoring the onboarding process to better address testing skills of new hires makes it more effective and more efficient. This reduces the danger of carrying new hire’s testing deficits into commercial software development.","PeriodicalId":250543,"journal":{"name":"Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering","volume":"12 2","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2014-11-11","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114109225","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 7
期刊
Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering
全部 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