首页 > 最新文献

Proceedings 10th International Workshop on Program Comprehension最新文献

英文 中文
The role of concepts in program comprehension 概念在程序理解中的作用
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021348
V. Rajlich, N. Wilde
The paper presents an overview of the role of concepts in program comprehension. It discusses concept location, in which the implementation of a specific concept is located in the code. This process is very common and precedes a large proportion of code changes. The paper also discusses the process of learning about the domain from the code, which is a prerequisite of code reengineering. The paper notes the similarities and overlaps between program comprehension and human learning.
本文概述了概念在程序理解中的作用。它讨论了概念位置,其中特定概念的实现位于代码中。这个过程非常常见,并且在很大一部分代码更改之前。本文还讨论了从代码中学习领域的过程,这是代码再造的先决条件。本文指出了程序理解与人类学习之间的相似之处和重叠之处。
{"title":"The role of concepts in program comprehension","authors":"V. Rajlich, N. Wilde","doi":"10.1109/WPC.2002.1021348","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021348","url":null,"abstract":"The paper presents an overview of the role of concepts in program comprehension. It discusses concept location, in which the implementation of a specific concept is located in the code. This process is very common and precedes a large proportion of code changes. The paper also discusses the process of learning about the domain from the code, which is a prerequisite of code reengineering. The paper notes the similarities and overlaps between program comprehension and human learning.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123560434","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}
引用次数: 281
Program comprehension experiences with GXL; comprehension for comprehension GXL的程序理解经验;为理解而理解
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021336
C. Knight, M. Munro
Tools are vital to support the various activities that form the many tasks that are part of the program comprehension process. In order for these tools to be used and useful, it is necessary that they support the activities of the user. This support must complement the work methods and activities of the user and not hinder them. Whilst features of good tools have been identified, tool builders do not always adhere to them. It is important to consider whether needs have changed, and if those desirable properties need augmenting or revising. From experience of maintaining and enhancing an existing program comprehension tool for the purposes of participating in a re-engineering activity, many lessons on tool support have been learned. Various program comprehension strategies are introduced in this paper. The use of GXL (Graph eXchange Language) and involvement in the SORTIE project are presented with reference to the tool being adapted and used. Details of the changes made are given to illustrate the support desired. These all feed into the final section of the paper that discusses the sort of support that tools should provide, current tool deficiencies and some of the ways in which these could be addressed.
工具对于支持各种活动是至关重要的,这些活动构成了作为程序理解过程一部分的许多任务。为了使这些工具被使用和有用,它们必须支持用户的活动。这种支持必须是对用户的工作方法和活动的补充,而不是阻碍。虽然已经确定了好工具的特性,但工具构建者并不总是遵循它们。重要的是要考虑需求是否发生了变化,以及那些理想的属性是否需要增加或修改。从维护和增强现有的程序理解工具以参与重新工程活动的经验来看,已经学习了许多关于工具支持的经验。本文介绍了各种程序理解策略。GXL(图形交换语言)的使用和SORTIE项目的参与,参考了正在适应和使用的工具。为了说明所需的支持,给出了所做更改的详细信息。这些都是本文最后一部分的内容,讨论了工具应该提供的支持类型、当前工具的缺陷以及解决这些问题的一些方法。
{"title":"Program comprehension experiences with GXL; comprehension for comprehension","authors":"C. Knight, M. Munro","doi":"10.1109/WPC.2002.1021336","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021336","url":null,"abstract":"Tools are vital to support the various activities that form the many tasks that are part of the program comprehension process. In order for these tools to be used and useful, it is necessary that they support the activities of the user. This support must complement the work methods and activities of the user and not hinder them. Whilst features of good tools have been identified, tool builders do not always adhere to them. It is important to consider whether needs have changed, and if those desirable properties need augmenting or revising. From experience of maintaining and enhancing an existing program comprehension tool for the purposes of participating in a re-engineering activity, many lessons on tool support have been learned. Various program comprehension strategies are introduced in this paper. The use of GXL (Graph eXchange Language) and involvement in the SORTIE project are presented with reference to the tool being adapted and used. Details of the changes made are given to illustrate the support desired. These all feed into the final section of the paper that discusses the sort of support that tools should provide, current tool deficiencies and some of the ways in which these could be addressed.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"14 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130579217","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}
引用次数: 9
An open visualization toolkit for reverse architecting 用于反向架构的开放可视化工具包
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021303
A. Telea, A. Maccari, C. Riva
Maintenance and evolution of complex software systems (such as large telecom embedded devices) involve activities such as reverse engineering (RE) and software visualization. Although several RE tools exist, we found their architecture hard to adapt to the domain specific requirements posed by our current practice in Nokia. We present an open architecture which allows easy prototyping of RE data exploration and visualization scenarios for a large range of domain models. We pay special attention to the visual and interactive requirements of the reverse engineering process. The article describes the basic architecture of our toolkit, compares it to the existing RE environments and present several visualizations taken from real cases.
复杂软件系统(例如大型电信嵌入式设备)的维护和发展涉及诸如逆向工程(RE)和软件可视化之类的活动。虽然有几个可重构工具存在,但我们发现它们的架构很难适应我们当前在诺基亚的实践中提出的特定领域的需求。我们提出了一个开放的体系结构,它允许为大范围的领域模型轻松地进行可重构数据探索和可视化场景的原型化。我们特别关注逆向工程过程的可视化和交互性要求。本文描述了我们的工具包的基本架构,将其与现有的可再生能源环境进行了比较,并展示了几个取自实际案例的可视化效果。
{"title":"An open visualization toolkit for reverse architecting","authors":"A. Telea, A. Maccari, C. Riva","doi":"10.1109/WPC.2002.1021303","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021303","url":null,"abstract":"Maintenance and evolution of complex software systems (such as large telecom embedded devices) involve activities such as reverse engineering (RE) and software visualization. Although several RE tools exist, we found their architecture hard to adapt to the domain specific requirements posed by our current practice in Nokia. We present an open architecture which allows easy prototyping of RE data exploration and visualization scenarios for a large range of domain models. We pay special attention to the visual and interactive requirements of the reverse engineering process. The article describes the basic architecture of our toolkit, compares it to the existing RE environments and present several visualizations taken from real cases.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"15 4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131678352","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}
引用次数: 26
Using graph patterns to extract scenarios 使用图形模式提取场景
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021345
Jingwei Wu, A. Hassan, R. Holt
Scenario diagrams are useful for helping software developers to understand the interactions among the components of a software system. We present a semi-automatic approach to extracting scenarios from the implementation of a software system. In our approach, the source code of a software system is represented as a graph and scenarios are specified as graph patterns. A relational calculator, Grok, is extended to support graph pattern matching. Grok, as extended, is used in our analysis of the Nautilus open source file manager. Multiple scenarios are extracted and analyzed. These scenarios have helped us to analyze Nautilus's architecture.
场景图对于帮助软件开发人员理解软件系统组件之间的交互非常有用。我们提出了一种半自动的方法来从软件系统的实现中提取场景。在我们的方法中,软件系统的源代码被表示为图形,场景被指定为图形模式。扩展了关系计算器Grok以支持图形模式匹配。扩展后的Grok用于我们对Nautilus开放源代码文件管理器的分析。提取和分析多个场景。这些情景帮助我们分析了诺第留斯号的结构。
{"title":"Using graph patterns to extract scenarios","authors":"Jingwei Wu, A. Hassan, R. Holt","doi":"10.1109/WPC.2002.1021345","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021345","url":null,"abstract":"Scenario diagrams are useful for helping software developers to understand the interactions among the components of a software system. We present a semi-automatic approach to extracting scenarios from the implementation of a software system. In our approach, the source code of a software system is represented as a graph and scenarios are specified as graph patterns. A relational calculator, Grok, is extended to support graph pattern matching. Grok, as extended, is used in our analysis of the Nautilus open source file manager. Multiple scenarios are extracted and analyzed. These scenarios have helped us to analyze Nautilus's architecture.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"33 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117025549","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}
引用次数: 15
Fused data-centric visualizations for software evolution environments 软件进化环境的融合数据中心可视化
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021340
J. Weber, H. Müller, Andrew Walenstein, N. Mansurov, Kenny Wong
During software evolution, several different facets of the system need to be related to one another at multiple levels of abstraction. Current software evolution tools have limited capabilities for effectively visualizing and evolving multiple system facets in an integrated manner. Many tools provide methods for tracking and relating different levels of abstraction within a single facet. However, it is less well understood how to represent and understand relationships between and among different abstraction hierarchies, i.e. for inter-hierarchy relations. Often, these are represented and explored independently, making them difficult to relate to one another. As a result, engineers are likely to have difficulty understanding how the various facets of a system relate and interact. We describe preliminary results of a collaborative research project between industry and academia to enhance the inter-hierarchy visualization capabilities of an existing software evolution environment called "KLOCwork Suite". Specifically, we describe our efforts to add a "fused" visualization based on story board diagrams. This visualization integrates - or "fuses" - facets of architecture, behavior and data. We describe how these diagrams bridge currently isolated visualizations of system information, and argue how they can help drive architecture excavation tasks.
在软件发展过程中,系统的几个不同方面需要在多个抽象层次上相互关联。当前的软件进化工具以集成的方式有效地可视化和进化多个系统方面的能力有限。许多工具提供了在单个方面中跟踪和关联不同抽象级别的方法。然而,如何表示和理解不同抽象层次之间的关系,即层次间关系,还不是很清楚。通常,这些都是独立呈现和探索的,这使得它们很难相互关联。因此,工程师可能很难理解系统的各个方面是如何联系和相互作用的。我们描述了工业界和学术界之间合作研究项目的初步结果,该项目旨在增强称为“KLOCwork Suite”的现有软件进化环境的层次间可视化能力。具体地说,我们描述了我们在故事板图的基础上添加“融合”可视化的努力。这种可视化集成或“融合”了体系结构、行为和数据的各个方面。我们描述了这些图如何连接当前孤立的系统信息可视化,并讨论了它们如何帮助驱动架构挖掘任务。
{"title":"Fused data-centric visualizations for software evolution environments","authors":"J. Weber, H. Müller, Andrew Walenstein, N. Mansurov, Kenny Wong","doi":"10.1109/WPC.2002.1021340","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021340","url":null,"abstract":"During software evolution, several different facets of the system need to be related to one another at multiple levels of abstraction. Current software evolution tools have limited capabilities for effectively visualizing and evolving multiple system facets in an integrated manner. Many tools provide methods for tracking and relating different levels of abstraction within a single facet. However, it is less well understood how to represent and understand relationships between and among different abstraction hierarchies, i.e. for inter-hierarchy relations. Often, these are represented and explored independently, making them difficult to relate to one another. As a result, engineers are likely to have difficulty understanding how the various facets of a system relate and interact. We describe preliminary results of a collaborative research project between industry and academia to enhance the inter-hierarchy visualization capabilities of an existing software evolution environment called \"KLOCwork Suite\". Specifically, we describe our efforts to add a \"fused\" visualization based on story board diagrams. This visualization integrates - or \"fuses\" - facets of architecture, behavior and data. We describe how these diagrams bridge currently isolated visualizations of system information, and argue how they can help drive architecture excavation tasks.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"49 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127890655","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}
引用次数: 9
Theory-based analysis of cognitive support in software comprehension tools 软件理解工具认知支持的理论分析
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021322
Andrew Walenstein
Past research on software comprehension tools has produced a wealth of lessons in building good tools. However, our explanations of these tools tend to be weakly grounded in existing theories of cognition and human-computer interaction. As a result, the interesting rationales underlying their design are poorly articulated, leaving the lessons primarily implicit. This paper describes a way of using existing program comprehension theories to rationalize tool designs. To illustrate the technique, key design rationales underlying a prominent reverse engineering tool (the Reflexion Model Tool) are reconstructed. The reconstruction shows that theories of cognitive support can be applied to existing cognitive models of software developer behaviour. The method for constructing the rationales is described, and implications are drawn for codifying existing design knowledge, evaluating tools and improving design reasoning.
过去对软件理解工具的研究已经为构建好的工具提供了丰富的经验。然而,我们对这些工具的解释往往在现有的认知和人机交互理论基础薄弱。其结果是,它们的设计背后的有趣的基本原理没有被清晰地表达出来,留下的教训基本上是隐含的。本文描述了一种利用现有程序理解理论使工具设计合理化的方法。为了说明该技术,重构了一个突出的逆向工程工具(反射模型工具)的关键设计原理。重构结果表明,认知支持理论可以应用于现有的软件开发人员行为认知模型。描述了构建基本原理的方法,并绘制了编纂现有设计知识,评估工具和改进设计推理的含义。
{"title":"Theory-based analysis of cognitive support in software comprehension tools","authors":"Andrew Walenstein","doi":"10.1109/WPC.2002.1021322","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021322","url":null,"abstract":"Past research on software comprehension tools has produced a wealth of lessons in building good tools. However, our explanations of these tools tend to be weakly grounded in existing theories of cognition and human-computer interaction. As a result, the interesting rationales underlying their design are poorly articulated, leaving the lessons primarily implicit. This paper describes a way of using existing program comprehension theories to rationalize tool designs. To illustrate the technique, key design rationales underlying a prominent reverse engineering tool (the Reflexion Model Tool) are reconstructed. The reconstruction shows that theories of cognitive support can be applied to existing cognitive models of software developer behaviour. The method for constructing the rationales is described, and implications are drawn for codifying existing design knowledge, evaluating tools and improving design reasoning.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125093893","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 33
Mining system-user interaction traces for use case models 为用例模型挖掘系统-用户交互跟踪
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021305
M. El-Ramly, Eleni Stroulia, P. Sorenson
While code understanding is the primary program comprehension activity, it is quite challenging to recognize the application requirements from code, since they have usually been occluded by a set of layers of later implementation decisions. An alternative source of evidence, especially valuable for understanding the purposes for which the application was built, can be the dynamic behavior of the system, and more specifically the system-user interaction. We have developed a method for modeling the application behavior from the user's perspective in the form of use case models, using recorded traces of system-user interaction. We use data mining and pattern matching methods to mine these traces for frequently occurring user tasks. When interesting patterns are discovered, they are augmented with semantic information and they are used to build use case models. We demonstrate a successful application of this method to recover use case models from interaction traces with legacy 3270 systems to serve user interface reengineering activities.
虽然代码理解是主要的程序理解活动,但从代码中识别应用程序需求是相当具有挑战性的,因为它们通常被一组后来的实现决策层所掩盖。另一种证据来源,对于理解构建应用程序的目的特别有价值,可以是系统的动态行为,更具体地说是系统-用户交互。我们已经开发了一种方法,以用例模型的形式从用户的角度对应用程序行为进行建模,使用系统-用户交互的记录轨迹。我们使用数据挖掘和模式匹配方法来挖掘频繁出现的用户任务的这些跟踪。当发现有趣的模式时,将用语义信息对其进行扩充,并使用它们构建用例模型。我们演示了该方法的成功应用,从与遗留3270系统的交互跟踪中恢复用例模型,以服务于用户界面再造活动。
{"title":"Mining system-user interaction traces for use case models","authors":"M. El-Ramly, Eleni Stroulia, P. Sorenson","doi":"10.1109/WPC.2002.1021305","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021305","url":null,"abstract":"While code understanding is the primary program comprehension activity, it is quite challenging to recognize the application requirements from code, since they have usually been occluded by a set of layers of later implementation decisions. An alternative source of evidence, especially valuable for understanding the purposes for which the application was built, can be the dynamic behavior of the system, and more specifically the system-user interaction. We have developed a method for modeling the application behavior from the user's perspective in the form of use case models, using recorded traces of system-user interaction. We use data mining and pattern matching methods to mine these traces for frequently occurring user tasks. When interesting patterns are discovered, they are augmented with semantic information and they are used to build use case models. We demonstrate a successful application of this method to recover use case models from interaction traces with legacy 3270 systems to serve user interface reengineering activities.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"77 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124567935","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}
引用次数: 35
Experience with FADE for the visualization and abstraction of software views 对软件视图的可视化和抽象有使用FADE的经验
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021304
A. Quigley
This paper describes the FADE paradigm for visualization and a series of experiments for the fast layout, abstract representation, and measurement of software views. In program comprehension, graph models are typically used to represent relational information, where the visualization of such graphs is referred to as graph drawing. Here we present the results of an investigation into efficient techniques for drawing and abstractly representing large software views with thousands of nodes from four medium sized software systems. The paradigm presented in this paper marries a solution to problems of computation time, screen space, cognitive load, and rendering for large-scale drawings using a single graph model.
本文描述了用于可视化的FADE范式,以及用于软件视图的快速布局、抽象表示和测量的一系列实验。在程序理解中,图形模型通常用于表示关系信息,其中这种图形的可视化称为图形绘制。在这里,我们展示了对四个中型软件系统中具有数千个节点的大型软件视图的有效绘制和抽象表示技术的研究结果。本文提出的范式结合了一个解决方案,解决了计算时间、屏幕空间、认知负荷和使用单个图形模型绘制大规模图形的问题。
{"title":"Experience with FADE for the visualization and abstraction of software views","authors":"A. Quigley","doi":"10.1109/WPC.2002.1021304","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021304","url":null,"abstract":"This paper describes the FADE paradigm for visualization and a series of experiments for the fast layout, abstract representation, and measurement of software views. In program comprehension, graph models are typically used to represent relational information, where the visualization of such graphs is referred to as graph drawing. Here we present the results of an investigation into efficient techniques for drawing and abstractly representing large software views with thousands of nodes from four medium sized software systems. The paradigm presented in this paper marries a solution to problems of computation time, screen space, cognitive load, and rendering for large-scale drawings using a single graph model.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"251 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133786757","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}
引用次数: 8
Dependence-cache slicing: a program slicing method using lightweight dynamic information 依赖缓存切片:一种使用轻量级动态信息的程序切片方法
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021338
Tomonori Takada, Fumiaki Ohata, Katsuro Inoue
When we try to debug or to comprehend a large program, it is important to separate suspicious program portions from the overall source program. Program slicing is a promising technique used to extract a program portion; however, such slicing sometimes raises difficulties. Static slicing sometimes produces a large portion of a source program, especially for programs with array and pointer variables, and dynamic slicing requires unacceptably large run-time overhead. In this paper, we propose a slicing method named "dependence-cache slicing", which uses both static and dynamic information. An algorithm has been implemented in our experimental slicing system, and execution data for several sample programs have been collected The results show that dependence-cache slicing reduces the slice size by 30-90% compared with the static slice size, with an increased and affordable run-time overhead, even for programs using array variables. In the future, dependence-cache slicing will become an important feature for effective debugging environments.
当我们试图调试或理解一个大程序时,将可疑的程序部分从整个源程序中分离出来是很重要的。程序切片是一种很有前途的技术,用于提取程序部分;然而,这种切片有时会带来困难。静态切片有时会产生很大一部分源程序,特别是对于具有数组和指针变量的程序,而动态切片需要不可接受的大运行时开销。本文提出了一种同时使用静态和动态信息的切片方法——“依赖缓存切片”。在我们的实验切片系统中实现了一种算法,并收集了几个示例程序的执行数据。结果表明,与静态切片大小相比,依赖缓存切片减少了30-90%的切片大小,即使对于使用数组变量的程序,也增加了可承受的运行时开销。在未来,依赖缓存切片将成为有效调试环境的一个重要特性。
{"title":"Dependence-cache slicing: a program slicing method using lightweight dynamic information","authors":"Tomonori Takada, Fumiaki Ohata, Katsuro Inoue","doi":"10.1109/WPC.2002.1021338","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021338","url":null,"abstract":"When we try to debug or to comprehend a large program, it is important to separate suspicious program portions from the overall source program. Program slicing is a promising technique used to extract a program portion; however, such slicing sometimes raises difficulties. Static slicing sometimes produces a large portion of a source program, especially for programs with array and pointer variables, and dynamic slicing requires unacceptably large run-time overhead. In this paper, we propose a slicing method named \"dependence-cache slicing\", which uses both static and dynamic information. An algorithm has been implemented in our experimental slicing system, and execution data for several sample programs have been collected The results show that dependence-cache slicing reduces the slice size by 30-90% compared with the static slice size, with an increased and affordable run-time overhead, even for programs using array variables. In the future, dependence-cache slicing will become an important feature for effective debugging environments.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125864547","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
Architecture recovery of dynamically linked applications: a case study 动态链接应用程序的体系结构恢复:一个案例研究
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021339
Igor Ivkovic, Michael W. Godfrey
Most previously published case studies in architecture recovery have been performed on statically linked software systems. Due to the increase in use of middleware technologies, such as CORBA, and object-oriented programming concepts, such as polymorphism, there is an opportunity and a need to analyze architectures of these dynamically linked systems. This paper presents the results of software architecture extraction of the Nautilus file manager, which employs CORBA in its implementation. A combination of existing static analysis and use-case modeling architecture recovery techniques was used, with the expectation of complex but complete architecture extraction of a system such as Nautilus. We have found that this combined approach, named Dynamo-1, presented in this paper provided successful focused architecture recovery and guidance for future work in the complete architecture recovery of dynamically linked applications.
大多数先前发表的关于架构恢复的案例研究都是在静态链接的软件系统上进行的。由于中间件技术(如CORBA)和面向对象编程概念(如多态性)的使用增加,因此有机会并且需要分析这些动态链接系统的体系结构。本文介绍了采用CORBA实现的Nautilus文件管理器的软件体系结构提取结果。使用了现有静态分析和用例建模体系结构恢复技术的组合,期望对Nautilus这样的系统进行复杂但完整的体系结构提取。我们发现,本文中提出的这种名为Dynamo-1的组合方法为动态链接应用程序的完整体系结构恢复的未来工作提供了成功的集中体系结构恢复和指导。
{"title":"Architecture recovery of dynamically linked applications: a case study","authors":"Igor Ivkovic, Michael W. Godfrey","doi":"10.1109/WPC.2002.1021339","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021339","url":null,"abstract":"Most previously published case studies in architecture recovery have been performed on statically linked software systems. Due to the increase in use of middleware technologies, such as CORBA, and object-oriented programming concepts, such as polymorphism, there is an opportunity and a need to analyze architectures of these dynamically linked systems. This paper presents the results of software architecture extraction of the Nautilus file manager, which employs CORBA in its implementation. A combination of existing static analysis and use-case modeling architecture recovery techniques was used, with the expectation of complex but complete architecture extraction of a system such as Nautilus. We have found that this combined approach, named Dynamo-1, presented in this paper provided successful focused architecture recovery and guidance for future work in the complete architecture recovery of dynamically linked applications.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"22 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2002-06-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121429177","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}
引用次数: 9
期刊
Proceedings 10th International Workshop on Program Comprehension
全部 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