首页 > 最新文献

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

英文 中文
MemBrush: A practical tool to detect custom memory allocators in C binaries 一个实用的工具,用于检测C二进制文件中的自定义内存分配器
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671326
X. Chen, Asia Slowinska, H. Bos
Many reversing techniques for data structures rely on the knowledge of memory allocation routines. Typically, they interpose on the system's malloc and free functions, and track each chunk of memory thus allocated as a data structure. However, many performance-critical applications implement their own custom memory allocators. As a result, current binary analysis techniques for tracking data structures fail on such binaries. We present MemBrush, a new tool to detect memory allocation and deallocation functions in stripped binaries with high accuracy. We evaluated the technique on a large number of real world applications that use custom memory allocators.
许多数据结构的反转技术依赖于内存分配例程的知识。通常,它们会干预系统的malloc和free函数,并跟踪作为数据结构分配的每个内存块。但是,许多性能关键型应用程序实现了自己的自定义内存分配器。因此,当前用于跟踪数据结构的二进制分析技术无法处理此类二进制文件。MemBrush是一种新的工具,可以高精度地检测剥离二进制文件中的内存分配和释放函数。我们在大量使用自定义内存分配器的实际应用程序上评估了该技术。
{"title":"MemBrush: A practical tool to detect custom memory allocators in C binaries","authors":"X. Chen, Asia Slowinska, H. Bos","doi":"10.1109/WCRE.2013.6671326","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671326","url":null,"abstract":"Many reversing techniques for data structures rely on the knowledge of memory allocation routines. Typically, they interpose on the system's malloc and free functions, and track each chunk of memory thus allocated as a data structure. However, many performance-critical applications implement their own custom memory allocators. As a result, current binary analysis techniques for tracking data structures fail on such binaries. We present MemBrush, a new tool to detect memory allocation and deallocation functions in stripped binaries with high accuracy. We evaluated the technique on a large number of real world applications that use custom memory allocators.","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":"129691189","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
Using relationships for matching textual domain models with existing code 使用关系将文本域模型与现有代码进行匹配
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671312
Raghavan Komondoor, Indrajit Bhattacharya, D. D'Souza, Sachin Kale
We address the task of mapping a given textual domain model (e.g., an industry-standard reference model) for a given domain (e.g., ERP), with the source code of an independently developed application in the same domain. This has applications in improving the understandability of an existing application, migrating it to a more flexible architecture, or integrating it with other related applications. We use the vector-space model to abstractly represent domain model elements as well as source-code artifacts. The key novelty in our approach is to leverage the relationships between source-code artifacts in a principled way to improve the mapping process. We describe experiments wherein we apply our approach to the task of matching two real, open-source applications to corresponding industry-standard domain models. We demonstrate the overall usefulness of our approach, as well as the role of our propagation techniques in improving the precision and recall of the mapping task.
我们的任务是将给定领域(例如,ERP)的给定文本领域模型(例如,行业标准参考模型)与同一领域中独立开发的应用程序的源代码进行映射。这有助于提高现有应用程序的可理解性,将其迁移到更灵活的体系结构,或将其与其他相关应用程序集成。我们使用向量空间模型抽象地表示领域模型元素以及源代码工件。我们的方法的关键新颖之处在于以一种有原则的方式利用源代码工件之间的关系来改进映射过程。我们描述了一些实验,在这些实验中,我们将我们的方法应用于将两个真实的开源应用程序与相应的行业标准领域模型相匹配的任务。我们展示了我们的方法的总体有用性,以及我们的传播技术在提高映射任务的精度和召回率方面的作用。
{"title":"Using relationships for matching textual domain models with existing code","authors":"Raghavan Komondoor, Indrajit Bhattacharya, D. D'Souza, Sachin Kale","doi":"10.1109/WCRE.2013.6671312","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671312","url":null,"abstract":"We address the task of mapping a given textual domain model (e.g., an industry-standard reference model) for a given domain (e.g., ERP), with the source code of an independently developed application in the same domain. This has applications in improving the understandability of an existing application, migrating it to a more flexible architecture, or integrating it with other related applications. We use the vector-space model to abstractly represent domain model elements as well as source-code artifacts. The key novelty in our approach is to leverage the relationships between source-code artifacts in a principled way to improve the mapping process. We describe experiments wherein we apply our approach to the task of matching two real, open-source applications to corresponding industry-standard domain models. We demonstrate the overall usefulness of our approach, as well as the role of our propagation techniques in improving the precision and recall of the mapping task.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"65 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":"128215751","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
Mining system specific rules from change patterns 从变化模式中挖掘系统特定规则
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671308
André C. Hora, N. Anquetil, Stéphane Ducasse, M. T. Valente
A significant percentage of warnings reported by tools to detect coding standard violations are false positives. Thus, there are some works dedicated to provide better rules by mining them from source code history, analyzing bug-fixes or changes between system releases. However, software evolves over time, and during development not only bugs are fixed, but also features are added, and code is refactored. In such cases, changes must be consistently applied in source code to avoid maintenance problems. In this paper, we propose to extract system specific rules by mining systematic changes over source code history, i.e., not just from bug-fixes or system releases, to ensure that changes are consistently applied over source code. We focus on structural changes done to support API modification or evolution with the goal of providing better rules to developers. Also, rules are mined from predefined rule patterns that ensure their quality. In order to assess the precision of such specific rules to detect real violations, we compare them with generic rules provided by tools to detect coding standard violations on four real world systems covering two programming languages. The results show that specific rules are more precise in identifying real violations in source code than generic ones, and thus can complement them.
检测编码标准违反的工具报告的警告中有很大一部分是误报。因此,有一些工作致力于通过从源代码历史中挖掘规则,分析系统版本之间的错误修复或更改来提供更好的规则。然而,软件随着时间的推移而发展,在开发过程中,不仅修复了错误,还添加了功能,重构了代码。在这种情况下,更改必须一致地应用于源代码,以避免维护问题。在本文中,我们建议通过挖掘源代码历史上的系统更改来提取系统特定的规则,也就是说,不仅仅是从错误修复或系统发布中,以确保更改一致地应用于源代码。我们关注为支持API修改或发展而进行的结构更改,目的是为开发人员提供更好的规则。此外,从预定义的规则模式中挖掘规则,以确保其质量。为了评估这些特定规则检测真实违规的精度,我们将它们与工具提供的通用规则进行比较,以检测涵盖两种编程语言的四个真实世界系统上的编码标准违规。结果表明,特定规则比通用规则更能准确地识别源代码中的实际违规行为,从而可以对通用规则进行补充。
{"title":"Mining system specific rules from change patterns","authors":"André C. Hora, N. Anquetil, Stéphane Ducasse, M. T. Valente","doi":"10.1109/WCRE.2013.6671308","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671308","url":null,"abstract":"A significant percentage of warnings reported by tools to detect coding standard violations are false positives. Thus, there are some works dedicated to provide better rules by mining them from source code history, analyzing bug-fixes or changes between system releases. However, software evolves over time, and during development not only bugs are fixed, but also features are added, and code is refactored. In such cases, changes must be consistently applied in source code to avoid maintenance problems. In this paper, we propose to extract system specific rules by mining systematic changes over source code history, i.e., not just from bug-fixes or system releases, to ensure that changes are consistently applied over source code. We focus on structural changes done to support API modification or evolution with the goal of providing better rules to developers. Also, rules are mined from predefined rule patterns that ensure their quality. In order to assess the precision of such specific rules to detect real violations, we compare them with generic rules provided by tools to detect coding standard violations on four real world systems covering two programming languages. The results show that specific rules are more precise in identifying real violations in source code than generic ones, and thus can complement them.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"11 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":"130329550","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 24
Static binary rewriting without supplemental information: Overcoming the tradeoff between coverage and correctness 没有补充信息的静态二进制重写:克服覆盖率和正确性之间的权衡
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671280
M. Smithson, Khaled Elwazeer, K. Anand, A. Kotha, R. Barua
Binary rewriting is the process of transforming executables by maintaining the original binary's functionality, while improving it in one or more metrics, such as energy use, memory use, security, or reliability. Although several technologies for rewriting binaries exist, static rewriting allows for arbitrarily complex transformations to be performed. Other technologies, such as dynamic or minimally-invasive rewriting, are limited in their transformation ability. We have designed the first static binary rewriter that guarantees 100% code coverage without the need for relocation or symbolic information. A key challenge in static rewriting is content classification (i.e. deciding what portion of the code segment is code versus data). Our contributions are (i) handling portions of the code segment with uncertain classification by using speculative disassembly in case it was code, and retaining the original binary in case it was data; (ii) drastically limiting the number of possible speculative sequences using a new technique called binary characterization; and (iii) avoiding the need for relocation or symbolic information by using call translation at usage points of code pointers (i.e. indirect control transfers), rather than changing addresses at address creation points. Extensive evaluation using stripped binaries for the entire SPEC 2006 benchmark suite (with over 1.9 million lines of code) demonstrates the robustness of the scheme.
二进制重写是通过维护原始二进制文件的功能来转换可执行文件的过程,同时在一个或多个指标(如能源使用、内存使用、安全性或可靠性)方面进行改进。尽管存在几种重写二进制文件的技术,但静态重写允许执行任意复杂的转换。其他技术,如动态或微创重写,在其转换能力方面是有限的。我们设计了第一个静态二进制重写器,它保证100%的代码覆盖率,而不需要重定位或符号信息。静态重写的一个关键挑战是内容分类(即决定代码段的哪一部分是代码,哪一部分是数据)。我们的贡献是(i)处理不确定分类的代码段部分,如果它是代码,使用推测反汇编,如果它是数据,保留原始二进制;(ii)使用称为二元表征的新技术大幅限制可能的推测序列的数量;(iii)通过在代码指针的使用点使用调用转换(即间接控制传输),而不是在地址创建点更改地址,从而避免重新定位或符号信息的需要。对整个SPEC 2006基准测试套件(超过190万行代码)使用剥离二进制文件进行了广泛的评估,证明了该方案的健壮性。
{"title":"Static binary rewriting without supplemental information: Overcoming the tradeoff between coverage and correctness","authors":"M. Smithson, Khaled Elwazeer, K. Anand, A. Kotha, R. Barua","doi":"10.1109/WCRE.2013.6671280","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671280","url":null,"abstract":"Binary rewriting is the process of transforming executables by maintaining the original binary's functionality, while improving it in one or more metrics, such as energy use, memory use, security, or reliability. Although several technologies for rewriting binaries exist, static rewriting allows for arbitrarily complex transformations to be performed. Other technologies, such as dynamic or minimally-invasive rewriting, are limited in their transformation ability. We have designed the first static binary rewriter that guarantees 100% code coverage without the need for relocation or symbolic information. A key challenge in static rewriting is content classification (i.e. deciding what portion of the code segment is code versus data). Our contributions are (i) handling portions of the code segment with uncertain classification by using speculative disassembly in case it was code, and retaining the original binary in case it was data; (ii) drastically limiting the number of possible speculative sequences using a new technique called binary characterization; and (iii) avoiding the need for relocation or symbolic information by using call translation at usage points of code pointers (i.e. indirect control transfers), rather than changing addresses at address creation points. Extensive evaluation using stripped binaries for the entire SPEC 2006 benchmark suite (with over 1.9 million lines of code) demonstrates the robustness of the scheme.","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":"133097384","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}
引用次数: 41
Detecting dependencies in Enterprise JavaBeans with SQuAVisiT 使用SQuAVisiT检测企业JavaBeans中的依赖关系
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671330
A. Sutii, S. Roubtsov, Alexander Serebrenik
We present recent extensions to SQuAVisiT, Software Quality Assessment and Visualization Toolset. While SQuAVisiT has been designed with traditional software and traditional caller-callee dependencies in mind, recent popularity of Enterprise JavaBeans (EJB) required extensions that enable analysis of additional forms of dependencies: EJB dependency injections, object-relational (persistence) mappings and Web service mappings. In this paper we discuss the implementation of these extensions in SQuAVisiT and the application of SQuAVisiT to an open-source software system.
我们介绍了SQuAVisiT,软件质量评估和可视化工具集的最新扩展。虽然SQuAVisiT在设计时考虑了传统软件和传统的调用者-被调用者依赖关系,但最近流行的Enterprise JavaBeans (EJB)需要能够分析其他形式依赖关系的扩展:EJB依赖注入、对象-关系(持久化)映射和Web服务映射。本文讨论了这些扩展在SQuAVisiT中的实现,以及SQuAVisiT在开源软件系统中的应用。
{"title":"Detecting dependencies in Enterprise JavaBeans with SQuAVisiT","authors":"A. Sutii, S. Roubtsov, Alexander Serebrenik","doi":"10.1109/WCRE.2013.6671330","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671330","url":null,"abstract":"We present recent extensions to SQuAVisiT, Software Quality Assessment and Visualization Toolset. While SQuAVisiT has been designed with traditional software and traditional caller-callee dependencies in mind, recent popularity of Enterprise JavaBeans (EJB) required extensions that enable analysis of additional forms of dependencies: EJB dependency injections, object-relational (persistence) mappings and Web service mappings. In this paper we discuss the implementation of these extensions in SQuAVisiT and the application of SQuAVisiT to an open-source software system.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"66 12","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-11-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132334809","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
Towards understanding how developers spend their effort during maintenance activities 了解开发人员在维护活动中是如何花费精力的
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671290
Z. Soh, Foutse Khomh, Yann-Gaël Guéhéneuc, G. Antoniol
For many years, researchers and practitioners have strived to assess and improve the productivity of software development teams. One key step toward achieving this goal is the understanding of factors affecting the efficiency of developers performing development and maintenance activities. In this paper, we aim to understand how developers' spend their effort during maintenance activities and study the factors affecting developers' effort. By knowing how developers' spend their effort and which factors affect their effort, software organisations will be able to take the necessary steps to improve the efficiency of their developers, for example, by providing them with adequate program comprehension tools. For this preliminary study, we mine 2,408 developers' interaction histories and 3,395 patches from four open-source software projects (ECF, Mylyn, PDE, Eclipse Platform). We observe that usually, the complexity of the implementation required for a task does not reflect the effort spent by developers on the task. Most of the effort appears to be spent during the exploration of the program. In average, 62% of files explored during the implementation of a task are not significantly relevant to the final implementation of the task. Developers who explore a large number of files that are not significantly relevant to the solution to their task take a longer time to perform the task. We expect that the results of this study will pave the way for better program comprehension tools to guide developers during their explorations of software systems.
多年来,研究人员和实践者一直在努力评估和提高软件开发团队的生产力。实现这一目标的一个关键步骤是理解影响开发人员执行开发和维护活动效率的因素。在本文中,我们旨在了解开发人员在维护活动中如何花费他们的精力,并研究影响开发人员工作的因素。通过了解开发人员如何花费他们的精力以及哪些因素会影响他们的工作,软件组织将能够采取必要的步骤来提高开发人员的效率,例如,通过为他们提供适当的程序理解工具。在这项初步研究中,我们从四个开源软件项目(ECF, Mylyn, PDE, Eclipse Platform)中挖掘了2408个开发人员的交互历史和3395个补丁。我们观察到,通常,任务所需实现的复杂性并不反映开发人员在任务上花费的努力。大部分的努力似乎都花在了程序的探索上。平均而言,在执行任务期间浏览的文件中有62%与任务的最终执行没有显著相关性。研究大量与任务解决方案无关的文件的开发人员需要花费更长的时间来执行任务。我们期望这项研究的结果将为更好的程序理解工具铺平道路,以指导开发人员在软件系统的探索过程中。
{"title":"Towards understanding how developers spend their effort during maintenance activities","authors":"Z. Soh, Foutse Khomh, Yann-Gaël Guéhéneuc, G. Antoniol","doi":"10.1109/WCRE.2013.6671290","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671290","url":null,"abstract":"For many years, researchers and practitioners have strived to assess and improve the productivity of software development teams. One key step toward achieving this goal is the understanding of factors affecting the efficiency of developers performing development and maintenance activities. In this paper, we aim to understand how developers' spend their effort during maintenance activities and study the factors affecting developers' effort. By knowing how developers' spend their effort and which factors affect their effort, software organisations will be able to take the necessary steps to improve the efficiency of their developers, for example, by providing them with adequate program comprehension tools. For this preliminary study, we mine 2,408 developers' interaction histories and 3,395 patches from four open-source software projects (ECF, Mylyn, PDE, Eclipse Platform). We observe that usually, the complexity of the implementation required for a task does not reflect the effort spent by developers on the task. Most of the effort appears to be spent during the exploration of the program. In average, 62% of files explored during the implementation of a task are not significantly relevant to the final implementation of the task. Developers who explore a large number of files that are not significantly relevant to the solution to their task take a longer time to perform the task. We expect that the results of this study will pave the way for better program comprehension tools to guide developers during their explorations of software systems.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"12 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":"128548659","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}
引用次数: 19
On the effect of program exploration on maintenance tasks 论程序探索对维护任务的影响
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671314
Z. Soh, Foutse Khomh, Yann-Gaël Guéhéneuc, G. Antoniol, Bram Adams
When developers perform a maintenance task, they follow an exploration strategy (ES) that is characterised by how they navigate through the program entities. Studying ES can help to assess how developers understand a program and perform a change task. Various factors could influence how developers explore a program and the way in which they explore a program may affect their performance for a certain task. In this paper, we investigate the ES followed by developers during maintenance tasks and assess the impact of these ES on the duration and effort spent by developers on the tasks. We want to know if developers frequently revisit one (or a set) of program entities (referenced exploration), or if they visit program entities with almost the same frequency (unreferenced exploration) when performing a maintenance task. We mine 1,705 Mylyn interaction histories (IH) from four open-source projects (ECF, Mylyn, PDE, and Eclipse Platform) and perform a user study to verify if both referenced exploration (RE) and unreferenced exploration (UE) were followed by some developers. Using the Gini inequality index on the number of revisits of program entities, we automatically classify interaction histories as RE and UE and perform an empirical study to measure the effect of program exploration on the task duration and effort. We report that, although a UE may require more exploration effort than a RE, a UE is on average 12.30% less time consuming than a RE.
当开发人员执行维护任务时,他们遵循一种探索策略(ES),其特征在于他们如何在程序实体中导航。研究ES可以帮助评估开发人员如何理解程序并执行变更任务。各种因素可能会影响开发人员探索程序的方式,而他们探索程序的方式可能会影响他们完成特定任务的性能。在本文中,我们调查了开发人员在维护任务期间遵循的ES,并评估了这些ES对开发人员在任务上花费的时间和精力的影响。我们想知道,当执行维护任务时,开发人员是否经常重新访问一个(或一组)程序实体(引用探索),或者他们是否以几乎相同的频率访问程序实体(未引用探索)。我们从四个开源项目(ECF、Mylyn、PDE和Eclipse Platform)中挖掘了1705个Mylyn交互历史(IH),并执行了一项用户研究,以验证一些开发人员是否遵循了引用探索(RE)和非引用探索(UE)。利用项目实体访问次数的基尼不平等指数,我们自动将交互历史划分为RE和UE,并进行了实证研究,以衡量项目探索对任务持续时间和工作量的影响。我们报告说,尽管UE可能比RE需要更多的勘探努力,但UE比RE平均节省12.30%的时间。
{"title":"On the effect of program exploration on maintenance tasks","authors":"Z. Soh, Foutse Khomh, Yann-Gaël Guéhéneuc, G. Antoniol, Bram Adams","doi":"10.1109/WCRE.2013.6671314","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671314","url":null,"abstract":"When developers perform a maintenance task, they follow an exploration strategy (ES) that is characterised by how they navigate through the program entities. Studying ES can help to assess how developers understand a program and perform a change task. Various factors could influence how developers explore a program and the way in which they explore a program may affect their performance for a certain task. In this paper, we investigate the ES followed by developers during maintenance tasks and assess the impact of these ES on the duration and effort spent by developers on the tasks. We want to know if developers frequently revisit one (or a set) of program entities (referenced exploration), or if they visit program entities with almost the same frequency (unreferenced exploration) when performing a maintenance task. We mine 1,705 Mylyn interaction histories (IH) from four open-source projects (ECF, Mylyn, PDE, and Eclipse Platform) and perform a user study to verify if both referenced exploration (RE) and unreferenced exploration (UE) were followed by some developers. Using the Gini inequality index on the number of revisits of program entities, we automatically classify interaction histories as RE and UE and perform an empirical study to measure the effect of program exploration on the task duration and effort. We report that, although a UE may require more exploration effort than a RE, a UE is on average 12.30% less time consuming than a RE.","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":"129945341","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 17
A model-driven graph-matching approach for design pattern detection 一种用于设计模式检测的模型驱动图匹配方法
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671292
M. Bernardi, Marta Cimitile, G. D. Lucca
In this paper an approach to automatically detect Design Patterns (DPs) in Object Oriented systems is presented. It allows to link system's source code components to the roles they play in each pattern. DPs are modelled by high level structural properties (e.g. inheritance, dependency, invocation, delegation, type nesting and membership relationships) that are checked against the system structure and components. The proposed metamodel also allows to define DP variants, overriding the structural properties of existing DP models, to improve detection quality. The approach was validated on an open benchmark containing several open-source systems of increasing sizes. Moreover, for other two systems, the results have been compared with the ones from a similar approach existing in literature. The results obtained on the analyzed systems, the identified variants and the efficiency and effectiveness of the approach are thoroughly presented and discussed.
本文提出了一种在面向对象系统中自动检测设计模式的方法。它允许将系统的源代码组件链接到它们在每个模式中扮演的角色。dp由高级结构属性(例如继承、依赖、调用、委托、类型嵌套和成员关系)建模,这些属性是根据系统结构和组件进行检查的。提出的元模型还允许定义DP变体,覆盖现有DP模型的结构属性,以提高检测质量。该方法在一个开放的基准测试中得到了验证,该基准测试包含了几个规模越来越大的开源系统。此外,对于另外两个系统,结果已与文献中类似方法的结果进行了比较。在分析系统上得到的结果、识别的变量以及该方法的效率和有效性进行了全面的介绍和讨论。
{"title":"A model-driven graph-matching approach for design pattern detection","authors":"M. Bernardi, Marta Cimitile, G. D. Lucca","doi":"10.1109/WCRE.2013.6671292","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671292","url":null,"abstract":"In this paper an approach to automatically detect Design Patterns (DPs) in Object Oriented systems is presented. It allows to link system's source code components to the roles they play in each pattern. DPs are modelled by high level structural properties (e.g. inheritance, dependency, invocation, delegation, type nesting and membership relationships) that are checked against the system structure and components. The proposed metamodel also allows to define DP variants, overriding the structural properties of existing DP models, to improve detection quality. The approach was validated on an open benchmark containing several open-source systems of increasing sizes. Moreover, for other two systems, the results have been compared with the ones from a similar approach existing in literature. The results obtained on the analyzed systems, the identified variants and the efficiency and effectiveness of the approach are thoroughly presented and discussed.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"18 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":"123559872","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}
引用次数: 21
Evaluating architecture stability of software projects 评估软件项目的架构稳定性
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671317
Lerina Aversano, Marco Molfetta, M. Tortorella
Reuse of software components depends from different aspects of high level software artifacts. In particular, software architecture and its stability should be taken into account before selecting software components for reuse. In this direction, this paper presents an empirical study aimed at assessing software architecture stability and its evolution along the software project history. The study entails the gathering and analysis of relevant information from several open source projects. The analysis of the software architectures stability of the core components of the analyzed projects and related trends are presented as results.
软件组件的重用取决于高级软件工件的不同方面。特别是,在选择要重用的软件组件之前,应该考虑软件体系结构及其稳定性。在这个方向上,本文提出了一项实证研究,旨在评估软件架构稳定性及其在软件项目历史中的演变。这项研究需要收集和分析来自几个开源项目的相关信息。分析了所分析项目核心组件的软件体系结构稳定性及相关趋势。
{"title":"Evaluating architecture stability of software projects","authors":"Lerina Aversano, Marco Molfetta, M. Tortorella","doi":"10.1109/WCRE.2013.6671317","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671317","url":null,"abstract":"Reuse of software components depends from different aspects of high level software artifacts. In particular, software architecture and its stability should be taken into account before selecting software components for reuse. In this direction, this paper presents an empirical study aimed at assessing software architecture stability and its evolution along the software project history. The study entails the gathering and analysis of relevant information from several open source projects. The analysis of the software architectures stability of the core components of the analyzed projects and related trends are presented as results.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"57 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":"126917503","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 17
Lehman's laws in agile and non-agile projects 雷曼法则在敏捷和非敏捷项目中的应用
Pub Date : 2013-11-21 DOI: 10.1109/WCRE.2013.6671304
K. Duran, G. Burns, P. Snell
Software team leaders and managers must make decisions on what type of process model they will use for their projects. Recent work suggests the use of agile processes since they promote shorter development cycles, better collaboration, and process flexibility. Due to the many benefits of agile processes, many software organizations have shifted to using more agile process methodologies. However, there is limited research that studies how agile processes affects the evolution of a software system over time. In this paper, we perform an empirical study to better understand the effects of using agile processes. We compare two open source projects, one of which uses a tailored agile process (i.e., Xtreme Programming) and another that has no formal process methodology. In particular, we compare the two projects within the context of Lehmans Laws for continuing growth, continuing change, increasing complexity, and conservation of familiarity. Our findings show that all four of the laws held true for the project that uses an agile process and that there are noticeable differences in the evolution of the two projects, many of which can be traced back to specific practices used by the agile team.
软件团队领导和经理必须决定他们将在项目中使用哪种类型的过程模型。最近的工作建议使用敏捷过程,因为它们促进了更短的开发周期、更好的协作和过程灵活性。由于敏捷过程的许多好处,许多软件组织已经转向使用更敏捷的过程方法。然而,关于敏捷过程如何随时间影响软件系统演化的研究非常有限。在本文中,我们进行了一项实证研究,以更好地理解使用敏捷过程的影响。我们比较了两个开源项目,其中一个使用定制的敏捷过程(例如,Xtreme编程),另一个没有正式的过程方法。特别地,我们在雷曼定律的背景下比较了两个项目的持续增长、持续变化、增加复杂性和保持熟悉性。我们的发现表明,对于使用敏捷过程的项目,这四条定律都是正确的,而且在两个项目的发展过程中存在明显的差异,其中许多可以追溯到敏捷团队使用的特定实践。
{"title":"Lehman's laws in agile and non-agile projects","authors":"K. Duran, G. Burns, P. Snell","doi":"10.1109/WCRE.2013.6671304","DOIUrl":"https://doi.org/10.1109/WCRE.2013.6671304","url":null,"abstract":"Software team leaders and managers must make decisions on what type of process model they will use for their projects. Recent work suggests the use of agile processes since they promote shorter development cycles, better collaboration, and process flexibility. Due to the many benefits of agile processes, many software organizations have shifted to using more agile process methodologies. However, there is limited research that studies how agile processes affects the evolution of a software system over time. In this paper, we perform an empirical study to better understand the effects of using agile processes. We compare two open source projects, one of which uses a tailored agile process (i.e., Xtreme Programming) and another that has no formal process methodology. In particular, we compare the two projects within the context of Lehmans Laws for continuing growth, continuing change, increasing complexity, and conservation of familiarity. Our findings show that all four of the laws held true for the project that uses an agile process and that there are noticeable differences in the evolution of the two projects, many of which can be traced back to specific practices used by the agile team.","PeriodicalId":275092,"journal":{"name":"2013 20th Working Conference on Reverse Engineering (WCRE)","volume":"22 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":"127423881","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
期刊
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