首页 > 最新文献

2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)最新文献

英文 中文
Precision vs. scalability: Context sensitive analysis with prefix approximation 精度vs.可伸缩性:使用前缀近似的上下文敏感分析
Raveendra Kumar Medicherla, Raghavan Komondoor
Context sensitive inter-procedural dataflow analysis is a precise approach for static analysis of programs. It is very expensive in its full form. We propose a prefix approximation for context sensitive analysis, wherein a prefix of the full context stack is used to tag dataflow facts. Our technique, which is in contrast with suffix approximation that has been widely used in the literature, is designed to be more scalable when applied to programs with modular structure. We describe an instantiation of our technique in the setting of the classical call-strings approach for inter-procedural analysis. We analyzed several large enterprise programs using an implementation of our technique, and compared it with the fully context sensitive, context insensitive, as well as suffix-approximated variants of the call-strings approach. The precision of our technique was in general less than that of suffix approximation when measured on entire programs. However, the precision that it offered for outer-level procedures, which typically contain key business logic, was better, and its performance was much better.
上下文敏感的过程间数据流分析是一种精确的程序静态分析方法。它的全貌非常昂贵。我们提出了一种上下文敏感分析的前缀近似,其中使用完整上下文堆栈的前缀来标记数据流事实。与文献中广泛使用的后缀近似相反,我们的技术在应用于具有模块化结构的程序时具有更高的可扩展性。我们在程序间分析的经典调用字符串方法的设置中描述了我们技术的实例。我们使用我们的技术的实现分析了几个大型企业程序,并将其与完全上下文敏感、上下文不敏感以及调用字符串方法的后缀近似变体进行了比较。在整个程序上测量时,我们的技术的精度通常低于后缀近似。但是,它为通常包含关键业务逻辑的外部过程提供的精度更好,其性能也要好得多。
{"title":"Precision vs. scalability: Context sensitive analysis with prefix approximation","authors":"Raveendra Kumar Medicherla, Raghavan Komondoor","doi":"10.1109/SANER.2015.7081838","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081838","url":null,"abstract":"Context sensitive inter-procedural dataflow analysis is a precise approach for static analysis of programs. It is very expensive in its full form. We propose a prefix approximation for context sensitive analysis, wherein a prefix of the full context stack is used to tag dataflow facts. Our technique, which is in contrast with suffix approximation that has been widely used in the literature, is designed to be more scalable when applied to programs with modular structure. We describe an instantiation of our technique in the setting of the classical call-strings approach for inter-procedural analysis. We analyzed several large enterprise programs using an implementation of our technique, and compared it with the fully context sensitive, context insensitive, as well as suffix-approximated variants of the call-strings approach. The precision of our technique was in general less than that of suffix approximation when measured on entire programs. However, the precision that it offered for outer-level procedures, which typically contain key business logic, was better, and its performance was much better.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127855303","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
On implementational variations in static analysis tools 关于静态分析工具的实现变化
Tukaram Muske, P. Bokil
Static analysis tools are widely used in practice due to their ability to detect defects early in the software development life-cycle and that too while proving absence of defects of certain patterns. There exists a large number of such tools, and they are found to be varying depending on several tool characteristics like analysis techniques, programming languages supported, verification checks performed, scalability, and performance. Many studies about these tools and their variations, have been performed to improve the analysis results or figure out a better tool amongst a set of available static analysis tools. It is our observation that, in these studies only the aforementioned tool characteristics are considered and compared, and other implementational variations are usually ignored. In this paper, we study the implementational variations occurring among the static analysis tools, and experimentally demonstrate their impact on the tool characteristics and other analysis related attributes. The aim of this paper is twofold - a) to provide the studied implementational variations as choices, along with their pros and cons, to the designers or developers of static analysis tools, and b) to provide an educating material to the tool users so that the analysis results are better understood.
静态分析工具在实践中被广泛使用,因为它们能够在软件开发生命周期的早期检测缺陷,同时也能证明某些模式的缺陷不存在。存在大量这样的工具,并且发现它们根据几个工具特征(如分析技术、支持的编程语言、执行的验证检查、可伸缩性和性能)而变化。已经对这些工具及其变体进行了许多研究,以改进分析结果或在一组可用的静态分析工具中找出更好的工具。根据我们的观察,在这些研究中,只考虑和比较了上述工具的特征,而通常忽略了其他实现变化。在本文中,我们研究了静态分析工具之间发生的实现变化,并通过实验证明了它们对工具特性和其他分析相关属性的影响。本文的目的是双重的——a)为静态分析工具的设计者或开发人员提供所研究的实现变化作为选择,以及它们的优缺点,b)为工具用户提供教育材料,以便更好地理解分析结果。
{"title":"On implementational variations in static analysis tools","authors":"Tukaram Muske, P. Bokil","doi":"10.1109/SANER.2015.7081867","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081867","url":null,"abstract":"Static analysis tools are widely used in practice due to their ability to detect defects early in the software development life-cycle and that too while proving absence of defects of certain patterns. There exists a large number of such tools, and they are found to be varying depending on several tool characteristics like analysis techniques, programming languages supported, verification checks performed, scalability, and performance. Many studies about these tools and their variations, have been performed to improve the analysis results or figure out a better tool amongst a set of available static analysis tools. It is our observation that, in these studies only the aforementioned tool characteristics are considered and compared, and other implementational variations are usually ignored. In this paper, we study the implementational variations occurring among the static analysis tools, and experimentally demonstrate their impact on the tool characteristics and other analysis related attributes. The aim of this paper is twofold - a) to provide the studied implementational variations as choices, along with their pros and cons, to the designers or developers of static analysis tools, and b) to provide an educating material to the tool users so that the analysis results are better understood.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124379220","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Summarizing Evolutionary Trajectory by Grouping and Aggregating relevant code changes 通过分组和聚合相关代码变更来总结进化轨迹
Qingtao Jiang, Xin Peng, Hai Wang, Zhenchang Xing, Wenyun Zhao
The lifecycle of a large-scale software system can undergo many releases. Each release often involves hundreds or thousands of revisions committed by many developers over time. Many code changes are made in a systematic and collaborative way. However, such systematic and collaborative code changes are often undocumented and hidden in the evolution history of a software system. It is desirable to recover commonalities and associations among dispersed code changes in the evolutionary trajectory of a software system. In this paper, we present SETGA (Summarizing Evolutionary Trajectory by Grouping and Aggregation), an approach to summarizing historical commit records as trajectory patterns by grouping and aggregating relevant code changes committed over time. SETGA extracts change operations from a series of commit records from version control systems. It then groups extracted change operations by their common properties from different dimensions such as change operation types, developers and change locations. After that, SETGA aggregates relevant change operation groups by mining various associations among them. The proposed approach has been implemented and applied to three open-source systems. The results show that SETGA can identify various types of trajectory patterns that are useful for software evolution management and quality assurance.
大型软件系统的生命周期可以经历多次发布。随着时间的推移,每个版本通常包含数百或数千个由许多开发人员提交的修订。许多代码更改都是以系统和协作的方式进行的。然而,这种系统性和协作性的代码更改通常没有文档记录,并且隐藏在软件系统的演化历史中。在软件系统的演化轨迹中,恢复分散的代码变更之间的共性和关联是可取的。在本文中,我们提出了SETGA(通过分组和聚合总结进化轨迹),这是一种通过分组和聚合随时间提交的相关代码更改来将历史提交记录总结为轨迹模式的方法。SETGA从版本控制系统的一系列提交记录中提取变更操作。然后,它根据变更操作的共同属性从不同的维度(如变更操作类型、开发人员和变更位置)提取变更操作。然后,SETGA通过挖掘变更操作组之间的各种关联,对相关变更操作组进行聚合。所提出的方法已经在三个开源系统中实现和应用。结果表明,SETGA能够识别出各种类型的轨迹模式,为软件演化管理和质量保证提供了有用的方法。
{"title":"Summarizing Evolutionary Trajectory by Grouping and Aggregating relevant code changes","authors":"Qingtao Jiang, Xin Peng, Hai Wang, Zhenchang Xing, Wenyun Zhao","doi":"10.1109/SANER.2015.7081846","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081846","url":null,"abstract":"The lifecycle of a large-scale software system can undergo many releases. Each release often involves hundreds or thousands of revisions committed by many developers over time. Many code changes are made in a systematic and collaborative way. However, such systematic and collaborative code changes are often undocumented and hidden in the evolution history of a software system. It is desirable to recover commonalities and associations among dispersed code changes in the evolutionary trajectory of a software system. In this paper, we present SETGA (Summarizing Evolutionary Trajectory by Grouping and Aggregation), an approach to summarizing historical commit records as trajectory patterns by grouping and aggregating relevant code changes committed over time. SETGA extracts change operations from a series of commit records from version control systems. It then groups extracted change operations by their common properties from different dimensions such as change operation types, developers and change locations. After that, SETGA aggregates relevant change operation groups by mining various associations among them. The proposed approach has been implemented and applied to three open-source systems. The results show that SETGA can identify various types of trajectory patterns that are useful for software evolution management and quality assurance.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129509129","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
Query expansion via WordNet for effective code search 查询扩展通过WordNet有效的代码搜索
Meili Lu, Xiaobing Sun, Shaowei Wang, D. Lo, Yucong Duan
Source code search plays an important role in software maintenance. The effectiveness of source code search not only relies on the search technique, but also on the quality of the query. In practice, software systems are large, thus it is difficult for a developer to format an accurate query to express what really in her/his mind, especially when the maintainer and the original developer are not the same person. When a query performs poorly, it has to be reformulated. But the words used in a query may be different from those that have similar semantics in the source code, i.e., the synonyms, which will affect the accuracy of code search results. To address this issue, we propose an approach that extends a query with synonyms generated from WordNet. Our approach extracts natural language phrases from source code identifiers, matches expanded queries with these phrases, and sorts the search results. It allows developers to explore word usage in a piece of software, helps them quickly identify relevant program elements for investigation or quickly recognize alternative words for query reformulation. Our initial empirical study on search tasks performed on the JavaScript/ECMAScript interpreter and compiler, Rhino, shows that the synonyms used to expand the queries help recommend good alternative queries. Our approach also improves the precision and recall of Conquer, a state-of-the-art query expansion/reformulation technique, by 5% and 8% respectively.
源代码搜索在软件维护中起着重要的作用。源代码搜索的有效性不仅取决于搜索技术,还取决于查询的质量。在实践中,软件系统很大,因此开发人员很难格式化准确的查询来表达他/她的真实想法,特别是当维护者和原始开发人员不是同一个人时。当查询执行不佳时,必须对其进行重新表述。但是查询中使用的单词可能与源代码中具有相似语义的单词不同,即同义词,这将影响代码搜索结果的准确性。为了解决这个问题,我们提出了一种使用从WordNet生成的同义词扩展查询的方法。我们的方法从源代码标识符中提取自然语言短语,用这些短语匹配扩展查询,并对搜索结果进行排序。它允许开发人员在一个软件中探索单词用法,帮助他们快速识别相关的程序元素进行调查,或者快速识别用于重新表述查询的替代单词。我们对在JavaScript/ECMAScript解释器和编译器Rhino上执行的搜索任务的初步实证研究表明,用于扩展查询的同义词有助于推荐好的替代查询。我们的方法还将最先进的查询扩展/重新表述技术Conquer的准确率和召回率分别提高了5%和8%。
{"title":"Query expansion via WordNet for effective code search","authors":"Meili Lu, Xiaobing Sun, Shaowei Wang, D. Lo, Yucong Duan","doi":"10.1109/SANER.2015.7081874","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081874","url":null,"abstract":"Source code search plays an important role in software maintenance. The effectiveness of source code search not only relies on the search technique, but also on the quality of the query. In practice, software systems are large, thus it is difficult for a developer to format an accurate query to express what really in her/his mind, especially when the maintainer and the original developer are not the same person. When a query performs poorly, it has to be reformulated. But the words used in a query may be different from those that have similar semantics in the source code, i.e., the synonyms, which will affect the accuracy of code search results. To address this issue, we propose an approach that extends a query with synonyms generated from WordNet. Our approach extracts natural language phrases from source code identifiers, matches expanded queries with these phrases, and sorts the search results. It allows developers to explore word usage in a piece of software, helps them quickly identify relevant program elements for investigation or quickly recognize alternative words for query reformulation. Our initial empirical study on search tasks performed on the JavaScript/ECMAScript interpreter and compiler, Rhino, shows that the synonyms used to expand the queries help recommend good alternative queries. Our approach also improves the precision and recall of Conquer, a state-of-the-art query expansion/reformulation technique, by 5% and 8% respectively.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"41 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130221843","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}
引用次数: 148
Efficiently identifying object production sites 有效识别物品生产地点
A. Infante, Alexandre Bergel
Most programming environments are shipped with accurate memory profilers. Although efficient in their analyses, memory profilers traditionally output textual listing reports, thus reducing the memory profile exploration as a set of textual pattern-matching operations. Memory blueprint visually reports the memory consumption of a program execution. A number of simple visual cues are provided to identify direct and indirect object production sites, key ingredients to efficiently address memory issues. Scalability is addressed by restricting the scope of interest both in the call graph and the considered classes. Memory blueprint has been implemented in the Pharo programming language, and is available under the MIT license.
大多数编程环境都附带了精确的内存分析器。尽管内存分析器的分析效率很高,但它们传统上输出文本列表报告,从而减少了作为一组文本模式匹配操作的内存概要文件探索。内存蓝图可视地报告程序执行时的内存消耗。提供了一些简单的视觉线索来识别直接和间接的对象生产地点,这是有效解决记忆问题的关键因素。可伸缩性是通过限制调用图和考虑的类的兴趣范围来解决的。内存蓝图已经在Pharo编程语言中实现,并且在MIT许可下可用。
{"title":"Efficiently identifying object production sites","authors":"A. Infante, Alexandre Bergel","doi":"10.1109/SANER.2015.7081880","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081880","url":null,"abstract":"Most programming environments are shipped with accurate memory profilers. Although efficient in their analyses, memory profilers traditionally output textual listing reports, thus reducing the memory profile exploration as a set of textual pattern-matching operations. Memory blueprint visually reports the memory consumption of a program execution. A number of simple visual cues are provided to identify direct and indirect object production sites, key ingredients to efficiently address memory issues. Scalability is addressed by restricting the scope of interest both in the call graph and the considered classes. Memory blueprint has been implemented in the Pharo programming language, and is available under the MIT license.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"109 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128872042","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
Evolution of dynamic feature usage in PHP PHP中动态特性使用的演变
M. Hills
PHP includes a number of dynamic features that, if used, make it challenging for both programmers and tools to reason about programs. In this paper we examine how usage of these features has changed over time, looking at usage trends for three categories of dynamic features across the release histories of two popular open-source PHP systems, WordPress and MediaWiki. Our initial results suggest that, while features such as eval are being removed over time, more constrained dynamic features such as variable properties are becoming more common. We believe the results of this analysis provide useful insights for researchers and tool developers into the evolving use of dynamic features in real PHP programs.
PHP包含许多动态特性,如果使用这些特性,程序员和工具都很难对程序进行推理。在本文中,我们研究了这些特性的使用是如何随着时间的推移而变化的,考察了两种流行的开源PHP系统(WordPress和MediaWiki)的发布历史中三类动态特性的使用趋势。我们的初步结果表明,虽然eval等功能随着时间的推移而被删除,但更受约束的动态功能(如可变属性)正变得越来越普遍。我们相信,这一分析的结果为研究人员和工具开发人员在实际PHP程序中不断发展的动态特性的使用提供了有用的见解。
{"title":"Evolution of dynamic feature usage in PHP","authors":"M. Hills","doi":"10.1109/SANER.2015.7081870","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081870","url":null,"abstract":"PHP includes a number of dynamic features that, if used, make it challenging for both programmers and tools to reason about programs. In this paper we examine how usage of these features has changed over time, looking at usage trends for three categories of dynamic features across the release histories of two popular open-source PHP systems, WordPress and MediaWiki. Our initial results suggest that, while features such as eval are being removed over time, more constrained dynamic features such as variable properties are becoming more common. We believe the results of this analysis provide useful insights for researchers and tool developers into the evolving use of dynamic features in real PHP programs.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"102 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123058793","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
Evolution analysis for Accessibility Excessiveness in Java Java中可访问性过度的演化分析
Kazuo Kobori, M. Matsushita, Katsuro Inoue
In Java programs, access modifiers are used to control the accessibility of fields and methods from other objects. Choosing appropriate access modifiers is one of the key factors to improve program quality and to reduce potential vulnerability. In our previous work, we presented a static analysis method named Accessibility Excessiveness (AE) detection for each field and method in Java program. We have also developed an AE analysis tool named ModiChecker that analyzes each field and method of the input Java programs, and reports their excessiveness. In this paper, we have applied ModiChecker to several OSS repositories to investigate the evolution of AE over versions, and identified transition of AE status and the difference in the amount of AE change between major version releases and minor ones. Also we propose when to evaluate source code with AE analysis.
在Java程序中,访问修饰符用于控制来自其他对象的字段和方法的可访问性。选择合适的访问修饰符是提高程序质量和减少潜在漏洞的关键因素之一。在之前的工作中,我们针对Java程序中的每个字段和方法提出了一种静态分析方法——可访问性过度(AE)检测。我们还开发了一个AE分析工具ModiChecker,它可以分析输入Java程序的每个字段和方法,并报告它们的过度。在本文中,我们将ModiChecker应用于几个OSS存储库,以研究AE在版本之间的演变,并确定AE状态的转换以及主要版本和次要版本之间AE变化量的差异。此外,我们还建议何时使用声发射分析来评估源代码。
{"title":"Evolution analysis for Accessibility Excessiveness in Java","authors":"Kazuo Kobori, M. Matsushita, Katsuro Inoue","doi":"10.1109/SANER.2015.7081818","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081818","url":null,"abstract":"In Java programs, access modifiers are used to control the accessibility of fields and methods from other objects. Choosing appropriate access modifiers is one of the key factors to improve program quality and to reduce potential vulnerability. In our previous work, we presented a static analysis method named Accessibility Excessiveness (AE) detection for each field and method in Java program. We have also developed an AE analysis tool named ModiChecker that analyzes each field and method of the input Java programs, and reports their excessiveness. In this paper, we have applied ModiChecker to several OSS repositories to investigate the evolution of AE over versions, and identified transition of AE status and the difference in the amount of AE change between major version releases and minor ones. Also we propose when to evaluate source code with AE analysis.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123865922","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
The impact of column-orientation on the quality of class inheritance mapping specifications 面向列对类继承映射规范质量的影响
M. Lorenz
Class inheritance is a powerful concept in object-oriented modeling. Persisting objects from an inheritance hierarchy into a relational database is not straight forward, because the concept of inheritance is not supported by relational data stores. An accepted solution are object-relational mapping strategies. The problem is that each strategy varies in terms of its non-functional characteristics e.g., usability, maintainability, efficiency. Software developers base the decision, what mapping strategy to chose, on experience and best practices. Most of these best practices can be found in programming guides for object-relational mapping frameworks or books and publications of experienced software architects. However, these best practices are based on experiences with row-oriented database systems. With the advent of new database technologies, such as column-stores, these best practices become obsolete. In my Ph.D. thesis I am investigating the influence of a database's data layout (row- vs. column) on the non-functional characteristics of object-relational mapping strategies.
类继承是面向对象建模中的一个强大概念。将继承层次结构中的对象持久化到关系数据库中并不简单,因为关系数据存储不支持继承的概念。一个可接受的解决方案是对象-关系映射策略。问题是每种策略在其非功能特征(如可用性、可维护性、效率)方面各不相同。软件开发人员根据经验和最佳实践来做出决策,选择什么样的映射策略。这些最佳实践中的大多数都可以在对象关系映射框架的编程指南或经验丰富的软件架构师的书籍和出版物中找到。然而,这些最佳实践是基于面向行的数据库系统的经验。随着列存储等新数据库技术的出现,这些最佳实践变得过时了。在我的博士论文中,我正在研究数据库的数据布局(行与列)对对象关系映射策略的非功能特征的影响。
{"title":"The impact of column-orientation on the quality of class inheritance mapping specifications","authors":"M. Lorenz","doi":"10.1109/SANER.2015.7081887","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081887","url":null,"abstract":"Class inheritance is a powerful concept in object-oriented modeling. Persisting objects from an inheritance hierarchy into a relational database is not straight forward, because the concept of inheritance is not supported by relational data stores. An accepted solution are object-relational mapping strategies. The problem is that each strategy varies in terms of its non-functional characteristics e.g., usability, maintainability, efficiency. Software developers base the decision, what mapping strategy to chose, on experience and best practices. Most of these best practices can be found in programming guides for object-relational mapping frameworks or books and publications of experienced software architects. However, these best practices are based on experiences with row-oriented database systems. With the advent of new database technologies, such as column-stores, these best practices become obsolete. In my Ph.D. thesis I am investigating the influence of a database's data layout (row- vs. column) on the non-functional characteristics of object-relational mapping strategies.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131996453","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
GiLA: GitHub label analyzer GiLA: GitHub标签分析器
Javier Luis Cánovas Izquierdo, Valerio Cosentino, Belen Rolandi, Alexandre Bergel, Jordi Cabot
Reporting bugs, asking for new features and in general giving any kind of feedback is a common way to contribute to an Open-Source Software (OSS) project. In GitHub, the largest code hosting service for OSS, this feedback is typically expressed as new issues for the project managed by an issue-tracking system available in each new project repository. Among other features, the issue tracker allows creating and assigning labels to issues with the goal of helping the project community to better classify and manage those issues (e.g., facilitating the identification of issues for top priority components or candidate developers that could solve them). Nevertheless, as the project grows a manual browsing of the project issues is no longer feasible. In this paper we present GiLA, a tool which generates a set of visualizations to facilitate the analysis of issues in a project depending on their label-based categorization. We believe our visualizations are useful to see the most popular labels (and their relationships) in a project, identify the most active community members for those labels and compare the typical issue evolution for each label category.
报告bug、要求新特性以及提供任何形式的反馈都是为开源软件(OSS)项目做贡献的常见方式。在开源软件最大的代码托管服务GitHub中,这种反馈通常表现为项目的新问题,由每个新项目存储库中可用的问题跟踪系统管理。在其他特性中,问题跟踪器允许为问题创建和分配标签,目的是帮助项目社区更好地分类和管理这些问题(例如,促进对最高优先级组件或可以解决这些问题的候选开发人员的问题识别)。然而,随着项目的增长,手动浏览项目问题已不再可行。在本文中,我们介绍了GiLA,这是一种工具,它可以生成一组可视化图像,以便根据基于标签的分类来分析项目中的问题。我们相信我们的可视化对于查看项目中最受欢迎的标签(及其关系),识别这些标签最活跃的社区成员以及比较每个标签类别的典型问题演变是有用的。
{"title":"GiLA: GitHub label analyzer","authors":"Javier Luis Cánovas Izquierdo, Valerio Cosentino, Belen Rolandi, Alexandre Bergel, Jordi Cabot","doi":"10.1109/SANER.2015.7081860","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081860","url":null,"abstract":"Reporting bugs, asking for new features and in general giving any kind of feedback is a common way to contribute to an Open-Source Software (OSS) project. In GitHub, the largest code hosting service for OSS, this feedback is typically expressed as new issues for the project managed by an issue-tracking system available in each new project repository. Among other features, the issue tracker allows creating and assigning labels to issues with the goal of helping the project community to better classify and manage those issues (e.g., facilitating the identification of issues for top priority components or candidate developers that could solve them). Nevertheless, as the project grows a manual browsing of the project issues is no longer feasible. In this paper we present GiLA, a tool which generates a set of visualizations to facilitate the analysis of issues in a project depending on their label-based categorization. We believe our visualizations are useful to see the most popular labels (and their relationships) in a project, identify the most active community members for those labels and compare the typical issue evolution for each label category.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"48 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114767367","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}
引用次数: 28
SKilLed communication for toolchains 工具链的熟练沟通
Timm Felden
The creation of a program analysis toolchain involves design choices regarding intermediate representations (IRs). Good choices for an IR depend on the analyses performed by a toolchain. In academia, new analyses are developed frequently. Therefore, the best single IR of a research-oriented toolchain does not exist. Thus, we will describe our design of an IR that can be easily adapted to new requirements.
程序分析工具链的创建涉及到关于中间表示(ir)的设计选择。IR的好选择取决于工具链执行的分析。在学术界,新的分析层出不穷。因此,面向研究的工具链的最佳单一IR并不存在。因此,我们将描述易于适应新需求的IR设计。
{"title":"SKilLed communication for toolchains","authors":"Timm Felden","doi":"10.1109/SANER.2015.7081886","DOIUrl":"https://doi.org/10.1109/SANER.2015.7081886","url":null,"abstract":"The creation of a program analysis toolchain involves design choices regarding intermediate representations (IRs). Good choices for an IR depend on the analyses performed by a toolchain. In academia, new analyses are developed frequently. Therefore, the best single IR of a research-oriented toolchain does not exist. Thus, we will describe our design of an IR that can be easily adapted to new requirements.","PeriodicalId":355949,"journal":{"name":"2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)","volume":"46 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2015-03-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122802728","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
期刊
2015 IEEE 22nd International Conference on Software Analysis, Evolution, and Reengineering (SANER)
全部 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