首页 > 最新文献

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

英文 中文
Pattern-supported architecture recovery 模式支持的架构恢复
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021318
M. Pinzger, H. Gall
Architectural patterns and styles represent important design decisions and thus are valuable abstractions for architecture recovery. Recognizing them is a challenge because styles and patterns basically span several architectural elements and can be implemented in various ways depending on the problem domain and the implementation variants. Our approach uses source code structures as patterns and introduces an iterative and interactive architecture recovery approach built upon such lower-level patterns extracted from source code. Associations between extracted pattern instances and architectural elements such as modules arise which result in new and higher-level views of the software system. These pattern views provide information for a consecutive refinement of pattern definitions to aggregate and abstract higher-level patterns which finally enable the description of a software system's architecture.
体系结构模式和风格代表了重要的设计决策,因此对于体系结构恢复来说是有价值的抽象。识别它们是一项挑战,因为样式和模式基本上跨越了几个体系结构元素,并且可以根据问题域和实现变体以各种方式实现。我们的方法使用源代码结构作为模式,并引入了一种迭代和交互的架构恢复方法,该方法建立在从源代码中提取的低级模式之上。所提取的模式实例和架构元素(如模块)之间的关联会产生软件系统的新的和更高层次的视图。这些模式视图为模式定义的连续细化提供了信息,以聚合和抽象更高级别的模式,这些模式最终支持对软件系统体系结构的描述。
{"title":"Pattern-supported architecture recovery","authors":"M. Pinzger, H. Gall","doi":"10.1109/WPC.2002.1021318","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021318","url":null,"abstract":"Architectural patterns and styles represent important design decisions and thus are valuable abstractions for architecture recovery. Recognizing them is a challenge because styles and patterns basically span several architectural elements and can be implemented in various ways depending on the problem domain and the implementation variants. Our approach uses source code structures as patterns and introduces an iterative and interactive architecture recovery approach built upon such lower-level patterns extracted from source code. Associations between extracted pattern instances and architectural elements such as modules arise which result in new and higher-level views of the software system. These pattern views provide information for a consecutive refinement of pattern definitions to aggregate and abstract higher-level patterns which finally enable the description of a software system's architecture.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"85 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":"124652121","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}
引用次数: 48
Slicing aspect-oriented software 切片面向方面的软件
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021346
Jianjun Zhao
Program slicing has many applications in software engineering activities including program comprehension, debugging, testing, maintenance, and model checking. In this paper, we propose an approach to slicing aspect-oriented software. To solve this problem, we present a dependence-based representation called aspect-oriented system dependence graph (ASDG), which extends previous dependence graphs, to represent aspect-oriented software. The ASDG of an aspect-oriented program consists of three parts: a system dependence graph for non-aspect code, a group of dependence graphs for aspect code, and some additional dependence arcs used to connect the system dependence graph to the dependence graphs for aspect code. After that, we show how to compute a static slice of an aspect-oriented program based on the ASDG.
程序切片在软件工程活动中有许多应用,包括程序理解、调试、测试、维护和模型检查。在本文中,我们提出了一种切片面向方面软件的方法。为了解决这个问题,我们提出了一种基于依赖的表示,称为面向方面的系统依赖图(ASDG),它扩展了以前的依赖图,以表示面向方面的软件。面向方面程序的ASDG由三部分组成:非方面代码的系统依赖图,方面代码的一组依赖图,以及用于将系统依赖图连接到方面代码的依赖图的一些附加依赖弧。之后,我们将展示如何基于ASDG计算面向方面程序的静态部分。
{"title":"Slicing aspect-oriented software","authors":"Jianjun Zhao","doi":"10.1109/WPC.2002.1021346","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021346","url":null,"abstract":"Program slicing has many applications in software engineering activities including program comprehension, debugging, testing, maintenance, and model checking. In this paper, we propose an approach to slicing aspect-oriented software. To solve this problem, we present a dependence-based representation called aspect-oriented system dependence graph (ASDG), which extends previous dependence graphs, to represent aspect-oriented software. The ASDG of an aspect-oriented program consists of three parts: a system dependence graph for non-aspect code, a group of dependence graphs for aspect code, and some additional dependence arcs used to connect the system dependence graph to the dependence graphs for aspect code. After that, we show how to compute a static slice of an aspect-oriented program based on the ASDG.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"37 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":"129978445","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}
引用次数: 81
An integrated approach for studying architectural evolution 研究建筑演变的综合方法
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021334
Q. Tu, Michael W. Godfrey
Studying how a software system has evolved over time is difficult, time consuming, and costly; existing techniques are often limited in their applicability, are hard to extend, and provide little support for coping with architectural change. The paper introduces an approach to studying software evolution that integrates the use of metrics, software visualization, and origin analysis, which is a set of techniques for reasoning about structural and architectural change. Our approach incorporates data from various statistical and metrics tools, and provides a query engine as well as a Web-based visualization and navigation interface. It aims to provide an extensible, integrated environment for aiding software maintainers in understanding the evolution of long-lived systems that have undergone significant architectural change. We use the evolution of GCC as an example to demonstrate the uses of various functionalities of BEAGLE, a prototype implementation of the proposed environment.
研究一个软件系统是如何随着时间发展的是困难的、耗时的和昂贵的;现有技术的适用性通常有限,难以扩展,并且在应对体系结构变更方面提供的支持很少。本文介绍了一种研究软件进化的方法,该方法集成了度量、软件可视化和起源分析的使用,这是一组用于对结构和架构变化进行推理的技术。我们的方法结合了来自各种统计和度量工具的数据,并提供了查询引擎以及基于web的可视化和导航界面。它旨在提供一个可扩展的集成环境,以帮助软件维护人员理解经历了重大架构更改的长寿命系统的演变。我们以GCC的演变为例来演示BEAGLE的各种功能的使用,BEAGLE是所提议环境的原型实现。
{"title":"An integrated approach for studying architectural evolution","authors":"Q. Tu, Michael W. Godfrey","doi":"10.1109/WPC.2002.1021334","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021334","url":null,"abstract":"Studying how a software system has evolved over time is difficult, time consuming, and costly; existing techniques are often limited in their applicability, are hard to extend, and provide little support for coping with architectural change. The paper introduces an approach to studying software evolution that integrates the use of metrics, software visualization, and origin analysis, which is a set of techniques for reasoning about structural and architectural change. Our approach incorporates data from various statistical and metrics tools, and provides a query engine as well as a Web-based visualization and navigation interface. It aims to provide an extensible, integrated environment for aiding software maintainers in understanding the evolution of long-lived systems that have undergone significant architectural change. We use the evolution of GCC as an example to demonstrate the uses of various functionalities of BEAGLE, a prototype implementation of the proposed environment.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"1 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":"129017950","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}
引用次数: 109
Evaluating using animation to improve understanding of sequence diagrams 评估使用动画来提高对序列图的理解
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021329
E. Burd, Dawn Overy, Ady Wheetman
This paper describes an experiment whereby the benefit of using animation to improve the comprehensibility of UML sequence diagrams is assessed. The paper hypothesizes that through animation the control flow of sequence diagram will become more evident. The development a system that seeks to enable stakeholders to better interpret UML modeling behaviour is described. This system aims to provide dynamic visualization through the use of animation techniques. A study to evaluate the extent to which the animation of a diagram can aid its interpretation is then described. The results of the study show that the animation system did improve the comprehensibility of the sequence diagram control flow thus improving the comprehensibility when compared to the comprehensibility of a traditional static representation. Finally, this paper discusses the reasoning for these results.
本文描述了一个实验,其中使用动画来提高UML序列图的可理解性的好处进行了评估。本文设想通过动画将使序列图的控制流程更加清晰。描述了一个系统的开发,该系统寻求使涉众能够更好地解释UML建模行为。该系统旨在通过使用动画技术提供动态可视化。然后描述了一项研究,以评估图表的动画可以帮助其解释的程度。研究结果表明,动画系统确实提高了序列图控制流程的可理解性,与传统静态表示的可理解性相比,提高了可理解性。最后,本文讨论了这些结果的推理。
{"title":"Evaluating using animation to improve understanding of sequence diagrams","authors":"E. Burd, Dawn Overy, Ady Wheetman","doi":"10.1109/WPC.2002.1021329","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021329","url":null,"abstract":"This paper describes an experiment whereby the benefit of using animation to improve the comprehensibility of UML sequence diagrams is assessed. The paper hypothesizes that through animation the control flow of sequence diagram will become more evident. The development a system that seeks to enable stakeholders to better interpret UML modeling behaviour is described. This system aims to provide dynamic visualization through the use of animation techniques. A study to evaluate the extent to which the animation of a diagram can aid its interpretation is then described. The results of the study show that the animation system did improve the comprehensibility of the sequence diagram control flow thus improving the comprehensibility when compared to the comprehensibility of a traditional static representation. Finally, this paper discusses the reasoning for these results.","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":"117137103","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
Enhancing program comprehension with recovered state models 使用恢复状态模型增强程序理解能力
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021325
S. Somé, T. Lethbridge
State transition machines are high-level behavior descriptions often used as modeling tools for the design and implementation of a large class of software systems. Some of the state transition machine implementation approaches are such that the static structure of the resulting code closely matches that of the original state transition machines. Therefore, having a representation of the original state transition machines is likely to improve the corresponding code understandability. We present an approach supported by a prototype tool, to extract state transition machines by static analysis of source code. An objective of this work is to enhance program comprehension with visual representations of the behavior of the programs being analyzed.
状态转换机是高级行为描述,通常用作大型软件系统的设计和实现的建模工具。一些状态转换机实现方法使得结果代码的静态结构与原始状态转换机的静态结构非常匹配。因此,拥有原始状态转换机的表示可能会提高相应代码的可理解性。我们提出了一种由原型工具支持的方法,通过对源代码的静态分析来提取状态转移机。这项工作的一个目标是通过被分析的程序的行为的可视化表示来增强程序的理解。
{"title":"Enhancing program comprehension with recovered state models","authors":"S. Somé, T. Lethbridge","doi":"10.1109/WPC.2002.1021325","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021325","url":null,"abstract":"State transition machines are high-level behavior descriptions often used as modeling tools for the design and implementation of a large class of software systems. Some of the state transition machine implementation approaches are such that the static structure of the resulting code closely matches that of the original state transition machines. Therefore, having a representation of the original state transition machines is likely to improve the corresponding code understandability. We present an approach supported by a prototype tool, to extract state transition machines by static analysis of source code. An objective of this work is to enhance program comprehension with visual representations of the behavior of the programs being analyzed.","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":"124759747","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
Comprehension of object-oriented software cohesion: the empirical quagmire 面向对象软件内聚的理解:经验泥潭
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021308
S. Counsell, E. Mendes, S. Swift
Chidamber and Kemerer (1991) proposed an object-oriented (OO) metric suite which included the Lack of Cohesion Of Methods (LCOM) metric. Despite considerable effort both theoretically and empirically since then, the software engineering community is still no nearer finding a generally accepted definition or measure of OO cohesion. Yet, achieving highly cohesive software is a cornerstone of software comprehension and hence, maintainability. In this paper, we suggest a number of suppositions as to why a definition has eluded (and we feel will continue to elude) us. We support these suppositions with empirical evidence from three large C++ systems and a cohesion metric based on the parameters of the class methods; we also draw from other related work. Two major conclusions emerge from the study. Firstly, any sensible cohesion metric does at least provide insight into the features of the systems being analysed. Secondly however, and less reassuringly, the deeper the investigative search for a definitive measure of cohesion, the more problematic its understanding becomes; this casts serious doubt on the use of cohesion as a meaningful feature of object-orientation and its viability as a tool for software comprehension.
Chidamber和Kemerer(1991)提出了一个面向对象(OO)的度量套件,其中包括方法内聚不足(LCOM)度量。尽管从那时起在理论上和经验上都做了大量的工作,软件工程社区仍然没有找到一个被普遍接受的OO内聚的定义或度量。然而,实现高度内聚的软件是软件理解的基石,因此也是可维护性的基石。在本文中,我们提出了一些假设,以解释为什么一个定义一直回避(我们觉得将继续回避)我们。我们用来自三个大型c++系统的经验证据和基于类方法参数的内聚度量来支持这些假设;我们也借鉴了其他相关工作。这项研究得出了两个主要结论。首先,任何合理的内聚度量至少提供了对被分析系统特征的洞察。其次,对于内聚性的确定尺度的考察,越深入,对它的理解就越成问题,这一点也就不那么令人放心了。这使人们对使用内聚作为面向对象的一个有意义的特性及其作为软件理解工具的可行性产生了严重的怀疑。
{"title":"Comprehension of object-oriented software cohesion: the empirical quagmire","authors":"S. Counsell, E. Mendes, S. Swift","doi":"10.1109/WPC.2002.1021308","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021308","url":null,"abstract":"Chidamber and Kemerer (1991) proposed an object-oriented (OO) metric suite which included the Lack of Cohesion Of Methods (LCOM) metric. Despite considerable effort both theoretically and empirically since then, the software engineering community is still no nearer finding a generally accepted definition or measure of OO cohesion. Yet, achieving highly cohesive software is a cornerstone of software comprehension and hence, maintainability. In this paper, we suggest a number of suppositions as to why a definition has eluded (and we feel will continue to elude) us. We support these suppositions with empirical evidence from three large C++ systems and a cohesion metric based on the parameters of the class methods; we also draw from other related work. Two major conclusions emerge from the study. Firstly, any sensible cohesion metric does at least provide insight into the features of the systems being analysed. Secondly however, and less reassuringly, the deeper the investigative search for a definitive measure of cohesion, the more problematic its understanding becomes; this casts serious doubt on the use of cohesion as a meaningful feature of object-orientation and its viability as a tool for software comprehension.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"21 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":"125240089","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
Constructivism and program comprehension strategies 建构主义与节目理解策略
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021349
C. Exton
Program comprehension strategies and learning theories are difficult topics in themselves, and the combination of both can provide some interesting observations. Constructivism differs from the traditional learning theories which suggest knowledge exists as something independent of the individual in several ways. One major premise of constructivism is that we actively construct our knowledge rather than simply absorbing it through repeated practice or predefined steps. Constructivism asserts that there is no knowledge independent of that constructed by the learner, and its construction is a unique experience for each individual. This paper provides an overview of existing program comprehension strategies and contrasts them in relation to the learning theory of constructivism.
程序理解策略和学习理论本身就是困难的主题,两者的结合可以提供一些有趣的观察结果。建构主义与传统的学习理论不同,传统的学习理论认为知识是独立于个人存在的。建构主义的一个主要前提是我们积极地建构我们的知识,而不是简单地通过重复的实践或预先设定的步骤来吸收它。建构主义认为,没有一种知识是独立于学习者所建构的知识之外的,知识的建构对每个个体来说都是一种独特的体验。本文概述了现有的节目理解策略,并将它们与建构主义学习理论进行了对比。
{"title":"Constructivism and program comprehension strategies","authors":"C. Exton","doi":"10.1109/WPC.2002.1021349","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021349","url":null,"abstract":"Program comprehension strategies and learning theories are difficult topics in themselves, and the combination of both can provide some interesting observations. Constructivism differs from the traditional learning theories which suggest knowledge exists as something independent of the individual in several ways. One major premise of constructivism is that we actively construct our knowledge rather than simply absorbing it through repeated practice or predefined steps. Constructivism asserts that there is no knowledge independent of that constructed by the learner, and its construction is a unique experience for each individual. This paper provides an overview of existing program comprehension strategies and contrasts them in relation to the learning theory of constructivism.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"16 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":"129875891","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 22
On selecting software visualization tools for program understanding in an industrial context 在工业环境中为程序理解选择软件可视化工具
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021350
S. Tilley, Shihong Huang
Discusses issues related to selecting software visualization tools for program understanding in an industrial context. Visualization tools are often advocated as an effective means of aiding program understanding by creating graphical representations of the subject system through reverse engineering. However, there are numerous practical considerations related to tool selection for large, real-world projects that are unaddressed. For example, the choices are often limited to commercial tools that are widely available, that have a low cost of deployment and training, and that easily integrate into existing software engineering processes. To illustrate some of these unique issues, two types of constraints imposed on the process of software visualization tool selection to support program understanding in the domain of embedded, real-time control systems are described.
讨论在工业环境中为程序理解选择软件可视化工具的相关问题。可视化工具经常被提倡作为一种有效的手段,通过逆向工程创建主题系统的图形表示来帮助程序理解。然而,对于大型的、现实世界的项目,有许多与工具选择相关的实际考虑因素没有得到解决。例如,选择通常限于广泛可用的商业工具,这些工具具有较低的部署和培训成本,并且易于集成到现有的软件工程过程中。为了说明这些独特的问题,本文描述了两种强加于软件可视化工具选择过程的约束,以支持嵌入式实时控制系统领域的程序理解。
{"title":"On selecting software visualization tools for program understanding in an industrial context","authors":"S. Tilley, Shihong Huang","doi":"10.1109/WPC.2002.1021350","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021350","url":null,"abstract":"Discusses issues related to selecting software visualization tools for program understanding in an industrial context. Visualization tools are often advocated as an effective means of aiding program understanding by creating graphical representations of the subject system through reverse engineering. However, there are numerous practical considerations related to tool selection for large, real-world projects that are unaddressed. For example, the choices are often limited to commercial tools that are widely available, that have a low cost of deployment and training, and that easily integrate into existing software engineering processes. To illustrate some of these unique issues, two types of constraints imposed on the process of software visualization tool selection to support program understanding in the domain of embedded, real-time control systems are described.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"10 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":"127728281","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
An empirical study of the effect of semantic differences on programmer comprehension 语义差异对程序员理解影响的实证研究
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021327
D. Binkley
Software engineers face a wide range of difficult tasks. Understanding semantic relationships, such as the semantic differences between two programs, should aid a software engineer address many of these tasks. A series of experiments was conducted with an implementation of a semantic differencing algorithm for the C language. Sixty-three subjects participated in two controlled experiments. There is evidence that the experimental group, which had access to semantic differences, performed significantly faster (p=0.023) and more accurately (p=0.047) than the control group. The study provides empirical support to the assertion that semantic information assists program comprehension.
软件工程师面临着各种各样的困难任务。理解语义关系,例如两个程序之间的语义差异,应该有助于软件工程师解决许多这样的任务。用C语言实现的语义差分算法进行了一系列的实验。63名受试者参加了两个对照实验。有证据表明,实验组在获得语义差异的情况下,比对照组执行得更快(p=0.023),更准确(p=0.047)。该研究为语义信息有助于程序理解的断言提供了实证支持。
{"title":"An empirical study of the effect of semantic differences on programmer comprehension","authors":"D. Binkley","doi":"10.1109/WPC.2002.1021327","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021327","url":null,"abstract":"Software engineers face a wide range of difficult tasks. Understanding semantic relationships, such as the semantic differences between two programs, should aid a software engineer address many of these tasks. A series of experiments was conducted with an implementation of a semantic differencing algorithm for the C language. Sixty-three subjects participated in two controlled experiments. There is evidence that the experimental group, which had access to semantic differences, performed significantly faster (p=0.023) and more accurately (p=0.047) than the control group. The study provides empirical support to the assertion that semantic information assists program comprehension.","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":"128669688","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 10
Aspects of internal program documentation-an elucidative perspective 内部程序文档的各个方面——一个说明性的视角
Pub Date : 2002-06-27 DOI: 10.1109/WPC.2002.1021315
Thomas Vestdam, K. Nørmark
It is difficult and challenging to comprehend the internal aspects of a program. The internal aspects are seen as contrasts to end user aspects and interface aspects. Internal program documentation is relevant for almost any kind of software. The internal program documentation represents the original as well as the accumulated understanding of the program, which is very difficult to extract from the source program and its modifications over time. Elucidative programming is a documentation technique that was originally inspired by literate programming. As an important difference between the two, elucidative programming does not call for any reorganization of the source programs, as required by literate programming tools. Elucidative programming provides for mutual navigation in between program source files and sections of the documentation. The navigation takes place in an Internet browser applying a two-framed layout. In this paper we investigate the applicability of elucidative programming in a number of areas related to internal program documentation. It is concluded that elucidative programming can solve a number of concrete problems in the areas of program tutorials, frameworks, and program reviews. In addition we see positive impacts of elucidative programming in the area of programming education.
理解一个程序的内部方面是困难和具有挑战性的。内部方面被看作是最终用户方面和界面方面的对比。内部程序文档几乎与任何类型的软件都相关。内部程序文档代表了对程序的原始和积累的理解,这很难从源程序及其随时间的修改中提取出来。说明性编程是一种文档技术,最初受到识字编程的启发。两者之间的一个重要区别是,说明性编程不要求对源程序进行任何重组,而这是识字编程工具所要求的。说明性编程提供了程序源文件和文档部分之间的相互导航。导航在应用双框架布局的Internet浏览器中进行。在本文中,我们研究了说明性编程在与内部程序文档相关的许多领域中的适用性。结论是,说明性编程可以解决程序教程、框架和程序审查领域的许多具体问题。此外,我们还看到说明性编程在编程教育领域的积极影响。
{"title":"Aspects of internal program documentation-an elucidative perspective","authors":"Thomas Vestdam, K. Nørmark","doi":"10.1109/WPC.2002.1021315","DOIUrl":"https://doi.org/10.1109/WPC.2002.1021315","url":null,"abstract":"It is difficult and challenging to comprehend the internal aspects of a program. The internal aspects are seen as contrasts to end user aspects and interface aspects. Internal program documentation is relevant for almost any kind of software. The internal program documentation represents the original as well as the accumulated understanding of the program, which is very difficult to extract from the source program and its modifications over time. Elucidative programming is a documentation technique that was originally inspired by literate programming. As an important difference between the two, elucidative programming does not call for any reorganization of the source programs, as required by literate programming tools. Elucidative programming provides for mutual navigation in between program source files and sections of the documentation. The navigation takes place in an Internet browser applying a two-framed layout. In this paper we investigate the applicability of elucidative programming in a number of areas related to internal program documentation. It is concluded that elucidative programming can solve a number of concrete problems in the areas of program tutorials, frameworks, and program reviews. In addition we see positive impacts of elucidative programming in the area of programming education.","PeriodicalId":210649,"journal":{"name":"Proceedings 10th International Workshop on Program Comprehension","volume":"51 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":"123397732","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}
引用次数: 14
期刊
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