首页 > 最新文献

2013 20th Working Conference on Reverse Engineering (WCRE)最新文献

英文 中文
Comparing and combining evolutionary couplings from interactions and commits 比较和组合来自交互和提交的进化耦合
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671306
Fasil T. Bantelay, Motahareh Bahrami Zanjani, Huzefa H. Kagdi
The paper presents an approach to mine evolutionary couplings from a combination of interaction (e.g., Mylyn) and commit (e.g., CVS) histories. These evolutionary couplings are expressed at the file and method levels of granularity, and are applied to support the tasks of commit and interaction predictions. Although the topic of mining evolutionary couplings has been investigated previously, the empirical comparison and combination of the two types from interaction and commit histories have not been attempted. An empirical study on 3272 interactions and 5093 commits from Mylyn, an open source task management tool, was conducted. These interactions and commits were divided into training and testing sets to evaluate the combined, and individual, models. Precision and recall metrics were used to measure the performance of these models. The results show that combined models offer statistically significant increases in recall over the individual models for change predictions. At the file level, the combined models achieved a maximum recall improvement of 13% for commit prediction with a 2% maximum precision drop.
本文提出了一种从交互(例如Mylyn)和提交(例如CVS)历史的组合中挖掘进化耦合的方法。这些演化耦合在文件和方法粒度级别上表示,并应用于支持提交和交互预测的任务。虽然以前已经研究了挖掘进化耦合的主题,但尚未尝试从交互和提交历史中对两种类型进行经验比较和组合。本文对来自开源任务管理工具Mylyn的3272次交互和5093次提交进行了实证研究。这些交互和提交被分为训练集和测试集,以评估组合的和单独的模型。使用精确率和召回率指标来衡量这些模型的性能。结果表明,在统计上,组合模型比单独模型在预测变化方面提供了显著的提高。在文件级别,组合模型实现了提交预测的最大召回率提高了13%,最大精度下降了2%。
{"title":"Comparing and combining evolutionary couplings from interactions and commits","authors":"Fasil T. Bantelay, Motahareh Bahrami Zanjani, Huzefa H. Kagdi","doi":"10.1109/WCRE.2013.6671306","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671306","url":null,"abstract":"The paper presents an approach to mine evolutionary couplings from a combination of interaction (e.g., Mylyn) and commit (e.g., CVS) histories. These evolutionary couplings are expressed at the file and method levels of granularity, and are applied to support the tasks of commit and interaction predictions. Although the topic of mining evolutionary couplings has been investigated previously, the empirical comparison and combination of the two types from interaction and commit histories have not been attempted. An empirical study on 3272 interactions and 5093 commits from Mylyn, an open source task management tool, was conducted. These interactions and commits were divided into training and testing sets to evaluate the combined, and individual, models. Precision and recall metrics were used to measure the performance of these models. The results show that combined models offer statistically significant increases in recall over the individual models for change predictions. At the file level, the combined models achieved a maximum recall improvement of 13% for commit prediction with a 2% maximum precision drop.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"51 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122983168","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
Genetic programming for Reverse Engineering 逆向工程的遗传规划
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671274
M. Harman, W. Langdon, Westley Weimer
This paper overviews the application of Search Based Software Engineering (SBSE) to reverse engineering with a particular emphasis on the growing importance of recent developments in genetic programming and genetic improvement for reverse engineering. This includes work on SBSE for remodularisation, refactoring, regression testing, syntax-preserving slicing and dependence analysis, concept assignment and feature location, bug fixing, and code migration. We also explore the possibilities for new directions in research using GP and GI for partial evaluation, amorphous slicing, and product lines, with a particular focus on code transplantation. This paper accompanies the keynote given by Mark Harman at the 20th Working Conference on Reverse Engineering (WCRE 2013).
本文概述了基于搜索的软件工程(SBSE)在逆向工程中的应用,特别强调了遗传规划和遗传改进在逆向工程中的最新发展的重要性。这包括在SBSE上进行重构、重构、回归测试、保持语法的切片和依赖性分析、概念分配和特性定位、bug修复和代码迁移。我们还探索了使用GP和GI进行部分评估,无定形切片和产品线的新研究方向的可能性,并特别关注代码移植。本文是Mark Harman在第20届逆向工程工作会议(WCRE 2013)上的主题演讲。
{"title":"Genetic programming for Reverse Engineering","authors":"M. Harman, W. Langdon, Westley Weimer","doi":"10.1109/WCRE.2013.6671274","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671274","url":null,"abstract":"This paper overviews the application of Search Based Software Engineering (SBSE) to reverse engineering with a particular emphasis on the growing importance of recent developments in genetic programming and genetic improvement for reverse engineering. This includes work on SBSE for remodularisation, refactoring, regression testing, syntax-preserving slicing and dependence analysis, concept assignment and feature location, bug fixing, and code migration. We also explore the possibilities for new directions in research using GP and GI for partial evaluation, amorphous slicing, and product lines, with a particular focus on code transplantation. This paper accompanies the keynote given by Mark Harman at the 20th Working Conference on Reverse Engineering (WCRE 2013).","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121092309","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}
引用次数: 43
Specification extraction by symbolic execution 通过符号执行提取规范
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671323
J. Pichler
Technical software systems contain extensive and complex computations that are frequently implemented in an optimized and unstructured way. Computations are, therefore, hard to comprehend from source code. If no other documentation exists, it is a tedious endeavor to understand which input data impact on a particular computation and how a program does achieves a particular result. We apply symbolic execution to automatically extract computations from source code. Symbolic execution makes it possible to identify input and output data, the actual computation as well as constraints of a particular computation, independently of encountered optimizations and unstructured program elements. The proposed technique may be used to improve maintenance and reengineering activities concerning legacy code in scientific and engineering domains.
技术软件系统包含广泛而复杂的计算,这些计算经常以优化和非结构化的方式实现。因此,从源代码很难理解计算。如果没有其他文档存在,那么理解哪些输入数据对特定计算的影响以及程序如何实现特定结果是一项乏味的工作。我们应用符号执行从源代码中自动提取计算。符号执行使识别输入和输出数据、实际计算以及特定计算的约束成为可能,而不受遇到的优化和非结构化程序元素的影响。所建议的技术可以用于改进科学和工程领域中有关遗留代码的维护和再工程活动。
{"title":"Specification extraction by symbolic execution","authors":"J. Pichler","doi":"10.1109/WCRE.2013.6671323","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671323","url":null,"abstract":"Technical software systems contain extensive and complex computations that are frequently implemented in an optimized and unstructured way. Computations are, therefore, hard to comprehend from source code. If no other documentation exists, it is a tedious endeavor to understand which input data impact on a particular computation and how a program does achieves a particular result. We apply symbolic execution to automatically extract computations from source code. Symbolic execution makes it possible to identify input and output data, the actual computation as well as constraints of a particular computation, independently of encountered optimizations and unstructured program elements. The proposed technique may be used to improve maintenance and reengineering activities concerning legacy code in scientific and engineering domains.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126402661","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
Find your library experts 找到你的图书馆专家
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671295
Cédric Teyton, Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc
Heavy usage of third-party libraries is almost mandatory in modern software systems. The knowledge of these libraries is generally scattered across the development team. When a development or a maintenance task involving specific libraries arises, finding the relevant experts would simplify its completion. However there is no automatic approach to identify these experts. In this article we propose Libtic, a search engine of library experts automatically populated by mining software repositories. We show that Libtic finds relevant experts of common Java libraries among the GitHub developers. We also illustrate its usefulness through a case study on the Apache HBase project where several maintenance and development use-cases are carried out.
在现代软件系统中,大量使用第三方库几乎是强制性的。这些库的知识通常分散在整个开发团队中。当出现涉及特定库的开发或维护任务时,找到相关专家将简化其完成。然而,没有自动识别这些专家的方法。在本文中,我们提出Libtic,这是一个由挖掘软件库自动填充的库专家的搜索引擎。我们表明Libtic在GitHub开发人员中找到了通用Java库的相关专家。我们还通过Apache HBase项目的案例研究说明了它的有用性,其中执行了几个维护和开发用例。
{"title":"Find your library experts","authors":"Cédric Teyton, Jean-Rémy Falleri, Floréal Morandat, Xavier Blanc","doi":"10.1109/WCRE.2013.6671295","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671295","url":null,"abstract":"Heavy usage of third-party libraries is almost mandatory in modern software systems. The knowledge of these libraries is generally scattered across the development team. When a development or a maintenance task involving specific libraries arises, finding the relevant experts would simplify its completion. However there is no automatic approach to identify these experts. In this article we propose Libtic, a search engine of library experts automatically populated by mining software repositories. We show that Libtic finds relevant experts of common Java libraries among the GitHub developers. We also illustrate its usefulness through a case study on the Apache HBase project where several maintenance and development use-cases are carried out.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"97 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127777786","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 11
Automatic discovery of function mappings between similar libraries 自动发现相似库之间的函数映射
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671294
Cédric Teyton, Jean-Rémy Falleri, Xavier Blanc
Library migration is the process of replacing a third-party library in favor of a competing one during software maintenance. The process of transforming a software source code to become compliant with a new library is cumbersome and error-prone. Indeed, developers have to understand a new Application Programming Interface (API) and search for the right replacements for the functions they use from the old library. As the two libraries are independent, the functions may have totally different structures and names, making the search of mappings very difficult. To assist the developers in this difficult task, we introduce an approach that analyzes source code changes from software projects that already underwent a given library migration to extract mappings between functions. We demonstrate the applicability of our approach on several library migrations performed on the Java open source software projects.
库迁移是在软件维护期间替换第三方库以支持竞争库的过程。将软件源代码转换为与新库兼容的过程是繁琐且容易出错的。实际上,开发人员必须理解新的应用程序编程接口(API),并从旧库中寻找合适的替代函数。由于这两个库是独立的,函数可能具有完全不同的结构和名称,这使得映射的搜索非常困难。为了帮助开发人员完成这项困难的任务,我们介绍了一种方法,该方法分析了已经经历了给定库迁移的软件项目的源代码更改,以提取函数之间的映射。我们演示了我们的方法在Java开源软件项目上执行的几个库迁移中的适用性。
{"title":"Automatic discovery of function mappings between similar libraries","authors":"Cédric Teyton, Jean-Rémy Falleri, Xavier Blanc","doi":"10.1109/WCRE.2013.6671294","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671294","url":null,"abstract":"Library migration is the process of replacing a third-party library in favor of a competing one during software maintenance. The process of transforming a software source code to become compliant with a new library is cumbersome and error-prone. Indeed, developers have to understand a new Application Programming Interface (API) and search for the right replacements for the functions they use from the old library. As the two libraries are independent, the functions may have totally different structures and names, making the search of mappings very difficult. To assist the developers in this difficult task, we introduce an approach that analyzes source code changes from software projects that already underwent a given library migration to extract mappings between functions. We demonstrate the applicability of our approach on several library migrations performed on the Java open source software projects.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130183327","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}
引用次数: 49
Extracting business rules from COBOL: A model-based tool 从COBOL中提取业务规则:一个基于模型的工具
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671329
Valerio Cosentino, Jordi Cabot, P. Albert, Philippe Bauquel, Jacques Perronnet
This paper presents a Business Rule Extraction tool for COBOL systems. Starting from a COBOL program, we derive a model-based representation of the source code and we provide a set of model transformations to identify and visualize the embedded business rules. In particular, the tool facilitates the definition of an application vocabulary and the identification of relevant business variables. In addition, such variables are used as starting point to slice the code in order to identify business rules, that are finally represented by means of textual and graphical artifacts. The tool has been developed as an Eclipse plug-in in collaboration with IBM France.
本文提出了一个用于COBOL系统的业务规则抽取工具。从COBOL程序开始,我们派生出源代码的基于模型的表示,并提供一组模型转换来标识和可视化嵌入的业务规则。特别是,该工具简化了应用程序词汇表的定义和相关业务变量的标识。此外,这些变量被用作分割代码的起点,以便识别业务规则,这些业务规则最终由文本和图形工件表示。该工具是与IBM France合作开发的Eclipse插件。
{"title":"Extracting business rules from COBOL: A model-based tool","authors":"Valerio Cosentino, Jordi Cabot, P. Albert, Philippe Bauquel, Jacques Perronnet","doi":"10.1109/WCRE.2013.6671329","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671329","url":null,"abstract":"This paper presents a Business Rule Extraction tool for COBOL systems. Starting from a COBOL program, we derive a model-based representation of the source code and we provide a set of model transformations to identify and visualize the embedded business rules. In particular, the tool facilitates the definition of an application vocabulary and the identification of relevant business variables. In addition, such variables are used as starting point to slice the code in order to identify business rules, that are finally represented by means of textual and graphical artifacts. The tool has been developed as an Eclipse plug-in in collaboration with IBM France.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"179 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131229540","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}
引用次数: 5
Towards automatically improving package structure while respecting original design decisions 在尊重原始设计决策的同时,自动改进包装结构
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671296
H. Abdeen, H. Sahraoui, O. Shata, N. Anquetil, Stéphane Ducasse
Recently, there has been an important progress in applying search-based optimization techniques to the problem of software re-modularization. Yet, a major part of the existing body of work addresses the problem of modularizing software systems from scratch, regardless of the existing packages structure. This paper presents a novel multi-objective optimization approach for improving existing packages structure. The optimization approach aims at increasing the cohesion and reducing the coupling and cyclic connectivity of packages, by modifying as less as possible the existing packages organization. Moreover, maintainers can specify several constraints to guide the optimization process with regard to extra design factors. To this contribution, we use the Non-Dominated Sorting Genetic Algorithm (NSGA-II). We evaluate the optimization approach through an experiment covering four real-world software systems. The results promise the effectiveness of our optimization approach for improving existing packages structure by doing very small modifications.
近年来,将基于搜索的优化技术应用于软件再模块化问题取得了重要进展。然而,现有工作主体的主要部分解决了从零开始模块化软件系统的问题,而不管现有的软件包结构如何。提出了一种改进现有封装结构的多目标优化方法。该优化方法旨在通过尽可能少地修改现有包的组织结构,提高包的内聚性,减少包之间的耦合性和循环连通性。此外,维护人员可以指定一些约束来指导有关额外设计因素的优化过程。为此,我们使用了非支配排序遗传算法(NSGA-II)。我们通过覆盖四个现实世界软件系统的实验来评估优化方法。结果保证了我们的优化方法的有效性,通过做非常小的修改来改善现有的包结构。
{"title":"Towards automatically improving package structure while respecting original design decisions","authors":"H. Abdeen, H. Sahraoui, O. Shata, N. Anquetil, Stéphane Ducasse","doi":"10.1109/WCRE.2013.6671296","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671296","url":null,"abstract":"Recently, there has been an important progress in applying search-based optimization techniques to the problem of software re-modularization. Yet, a major part of the existing body of work addresses the problem of modularizing software systems from scratch, regardless of the existing packages structure. This paper presents a novel multi-objective optimization approach for improving existing packages structure. The optimization approach aims at increasing the cohesion and reducing the coupling and cyclic connectivity of packages, by modifying as less as possible the existing packages organization. Moreover, maintainers can specify several constraints to guide the optimization process with regard to extra design factors. To this contribution, we use the Non-Dominated Sorting Genetic Algorithm (NSGA-II). We evaluate the optimization approach through an experiment covering four real-world software systems. The results promise the effectiveness of our optimization approach for improving existing packages structure by doing very small modifications.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"109 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116243754","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}
引用次数: 43
Automated library recommendation 自动图书馆推荐
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671293
Ferdian Thung, D. Lo, J. Lawall
Many third party libraries are available to be downloaded and used. Using such libraries can reduce development time and make the developed software more reliable. However, developers are often unaware of suitable libraries to be used for their projects and thus they miss out on these benefits. To help developers better take advantage of the available libraries, we propose a new technique that automatically recommends libraries to developers. Our technique takes as input the set of libraries that an application currently uses, and recommends other libraries that are likely to be relevant. We follow a hybrid approach that combines association rule mining and collaborative filtering. The association rule mining component recommends libraries based on a set of library usage patterns. The collaborative filtering component recommends libraries based on those that are used by other similar projects. We investigate the effectiveness of our hybrid approach on 500 software projects that use many third-party libraries. Our experiments show that our approach can recommend libraries with recall rate@5 of 0.852 and recall rate@10 of 0.894.
可以下载和使用许多第三方库。使用这样的库可以减少开发时间,使开发的软件更加可靠。然而,开发人员通常不知道适合他们项目的库,因此他们错过了这些好处。为了帮助开发人员更好地利用可用的库,我们提出了一种自动向开发人员推荐库的新技术。我们的技术将应用程序当前使用的库集作为输入,并推荐可能相关的其他库。我们采用了一种结合关联规则挖掘和协同过滤的混合方法。关联规则挖掘组件根据一组库使用模式推荐库。协作过滤组件根据其他类似项目使用的库来推荐库。我们在500个使用许多第三方库的软件项目中调查了我们的混合方法的有效性。我们的实验表明,我们的方法可以推荐召回rate@5为0.852和召回rate@10为0.894的库。
{"title":"Automated library recommendation","authors":"Ferdian Thung, D. Lo, J. Lawall","doi":"10.1109/WCRE.2013.6671293","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671293","url":null,"abstract":"Many third party libraries are available to be downloaded and used. Using such libraries can reduce development time and make the developed software more reliable. However, developers are often unaware of suitable libraries to be used for their projects and thus they miss out on these benefits. To help developers better take advantage of the available libraries, we propose a new technique that automatically recommends libraries to developers. Our technique takes as input the set of libraries that an application currently uses, and recommends other libraries that are likely to be relevant. We follow a hybrid approach that combines association rule mining and collaborative filtering. The association rule mining component recommends libraries based on a set of library usage patterns. The collaborative filtering component recommends libraries based on those that are used by other similar projects. We investigate the effectiveness of our hybrid approach on 500 software projects that use many third-party libraries. Our experiments show that our approach can recommend libraries with recall rate@5 of 0.852 and recall rate@10 of 0.894.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115195915","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}
引用次数: 125
Heuristics for discovering architectural violations 发现架构冲突的启发式方法
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671297
C. Maffort, M. T. Valente, Mariza Bigonha, N. Anquetil, André C. Hora
Software architecture conformance is a key software quality control activity that aims to reveal the progressive gap normally observed between concrete and planned software architectures. In this paper, we present ArchLint, a lightweight approach for architecture conformance based on a combination of static and historical source code analysis. For this purpose, ArchLint relies on four heuristics for detecting both absences and divergences in source code based architectures. We applied ArchLint in an industrial-strength system and as a result we detected 119 architectural violations, with an overall precision of 46.7% and a recall of 96.2%, for divergences. We also evaluated ArchLint with four open-source systems, used in an independent study on reflexion models. In this second study, ArchLint achieved precision results ranging from 57.1% to 89.4%.
软件架构一致性是一项关键的软件质量控制活动,旨在揭示通常在具体的和计划的软件架构之间观察到的逐步差距。在本文中,我们介绍了ArchLint,这是一种轻量级的架构一致性方法,基于静态和历史源代码分析的组合。为此,ArchLint依赖于四种启发式方法来检测基于源代码的体系结构中的缺失和差异。我们将ArchLint应用于工业强度系统,结果我们检测到119个架构违规,总体精度为46.7%,召回率为96.2%。我们还使用四个开源系统对ArchLint进行了评估,这些系统用于对反射模型的独立研究。在第二项研究中,ArchLint获得了57.1%到89.4%的精度结果。
{"title":"Heuristics for discovering architectural violations","authors":"C. Maffort, M. T. Valente, Mariza Bigonha, N. Anquetil, André C. Hora","doi":"10.1109/WCRE.2013.6671297","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671297","url":null,"abstract":"Software architecture conformance is a key software quality control activity that aims to reveal the progressive gap normally observed between concrete and planned software architectures. In this paper, we present ArchLint, a lightweight approach for architecture conformance based on a combination of static and historical source code analysis. For this purpose, ArchLint relies on four heuristics for detecting both absences and divergences in source code based architectures. We applied ArchLint in an industrial-strength system and as a result we detected 119 architectural violations, with an overall precision of 46.7% and a recall of 96.2%, for divergences. We also evaluated ArchLint with four open-source systems, used in an independent study on reflexion models. In this second study, ArchLint achieved precision results ranging from 57.1% to 89.4%.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129449959","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}
引用次数: 20
REdiffs: Refactoring-aware difference viewer for java REdiffs:支持重构的java差异查看器
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671331
Shinpei Hayashi, Sirinut Thangthumachit, M. Saeki
Comparing and understanding differences between old and new versions of source code are necessary in various software development situations. However, if changes are tangled with refactorings in a single revision, then the resulting source code differences are more complicated. We propose an interactive difference viewer which enables us to separate refactoring effects from source code differences for improving the understandability of the differences.
在各种软件开发情况下,比较和理解新旧版本源代码之间的差异是必要的。但是,如果更改与单个修订中的重构纠缠在一起,那么产生的源代码差异就会更加复杂。我们提出了一个交互式差异查看器,它使我们能够从源代码差异中分离重构效果,从而提高差异的可理解性。
{"title":"REdiffs: Refactoring-aware difference viewer for java","authors":"Shinpei Hayashi, Sirinut Thangthumachit, M. Saeki","doi":"10.1109/WCRE.2013.6671331","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671331","url":null,"abstract":"Comparing and understanding differences between old and new versions of source code are necessary in various software development situations. However, if changes are tangled with refactorings in a single revision, then the resulting source code differences are more complicated. We propose an interactive difference viewer which enables us to separate refactoring effects from source code differences for improving the understandability of the differences.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133881830","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
期刊
2013 20th Working Conference on Reverse Engineering (WCRE)
全部 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