首页 > 最新文献

13th International Workshop on Program Comprehension (IWPC'05)最新文献

英文 中文
Tool demonstration: JIVE and JOVE: Java as it happens 工具演示:JIVE和JOVE: Java
Pub Date : 2005-05-15 DOI: 10.1109/WPC.2005.41
S. Reiss, Manos Renieris
Dynamic software visualization is designed to provide programmers with insights as to what the program is doing. Most current visualizations either use program traces to show information about prior runs, slow the program down substantially, show only minimal information, or force the programmer to indicate when to turn visualizations on or off. We have developed a dynamic Java visualizer that provides a statement-level view of a Java program in action with low enough overhead so that it can be used almost all the time by programmers to understand what their program is doing while it is doing it.
动态软件可视化旨在为程序员提供有关程序正在做什么的见解。大多数当前的可视化要么使用程序跟踪来显示有关先前运行的信息,要么大幅降低程序运行速度,要么只显示最少的信息,要么迫使程序员指示何时打开或关闭可视化。我们已经开发了一个动态Java可视化工具,它以足够低的开销提供运行中的Java程序的语句级视图,因此程序员几乎可以随时使用它来了解程序在运行时正在做什么。
{"title":"Tool demonstration: JIVE and JOVE: Java as it happens","authors":"S. Reiss, Manos Renieris","doi":"10.1109/WPC.2005.41","DOIUrl":"https://doi.org/10.1109/WPC.2005.41","url":null,"abstract":"Dynamic software visualization is designed to provide programmers with insights as to what the program is doing. Most current visualizations either use program traces to show information about prior runs, slow the program down substantially, show only minimal information, or force the programmer to indicate when to turn visualizations on or off. We have developed a dynamic Java visualizer that provides a statement-level view of a Java program in action with low enough overhead so that it can be used almost all the time by programmers to understand what their program is doing while it is doing it.","PeriodicalId":421860,"journal":{"name":"13th International Workshop on Program Comprehension (IWPC'05)","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114143432","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 4
Static techniques for concept location in object-oriented code 面向对象代码中概念定位的静态技术
Pub Date : 2005-05-15 DOI: 10.1109/WPC.2005.33
Andrian Marcus, V. Rajlich, Joseph Buchta, M. Petrenko, A. Sergeyev
Concept location in source code is the process that identifies where a software system implements a specific concept. While it is well accepted that concept location is essential for the maintenance of complex procedural code like code written in C, it is much less obvious whether it is also needed for the maintenance of the object-oriented code. After all, the object-oriented code is structured into classes and well-designed classes already implement concepts, so the issue seems to be reduced to the selection of the appropriate class. The objective of our work is to see if the techniques for concept location are still needed (they are) and whether object-oriented structuring facilitates concept location (it does not). This paper focuses on static concept location techniques that share common prerequisites and are search the source code using regular expression matching, or static program dependencies, or information retrieval. The paper analyses these techniques to see how they compare to each other in terms of their respective strengths and weaknesses.
源代码中的概念位置是识别软件系统在何处实现特定概念的过程。虽然人们普遍认为,概念定位对于维护复杂的过程代码(如用C编写的代码)是必不可少的,但对于维护面向对象的代码是否也需要它就不那么明显了。毕竟,面向对象的代码被构造成类,而设计良好的类已经实现了一些概念,因此问题似乎简化为选择合适的类。我们工作的目标是看看是否仍然需要用于概念定位的技术(它们是),以及面向对象的结构是否促进了概念定位(它没有)。本文的重点是静态概念定位技术,这些技术具有共同的先决条件,并且使用正则表达式匹配或静态程序依赖关系或信息检索来搜索源代码。本文分析了这些技术,看看它们在各自的优势和劣势方面是如何相互比较的。
{"title":"Static techniques for concept location in object-oriented code","authors":"Andrian Marcus, V. Rajlich, Joseph Buchta, M. Petrenko, A. Sergeyev","doi":"10.1109/WPC.2005.33","DOIUrl":"https://doi.org/10.1109/WPC.2005.33","url":null,"abstract":"Concept location in source code is the process that identifies where a software system implements a specific concept. While it is well accepted that concept location is essential for the maintenance of complex procedural code like code written in C, it is much less obvious whether it is also needed for the maintenance of the object-oriented code. After all, the object-oriented code is structured into classes and well-designed classes already implement concepts, so the issue seems to be reduced to the selection of the appropriate class. The objective of our work is to see if the techniques for concept location are still needed (they are) and whether object-oriented structuring facilitates concept location (it does not). This paper focuses on static concept location techniques that share common prerequisites and are search the source code using regular expression matching, or static program dependencies, or information retrieval. The paper analyses these techniques to see how they compare to each other in terms of their respective strengths and weaknesses.","PeriodicalId":421860,"journal":{"name":"13th International Workshop on Program Comprehension (IWPC'05)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127638553","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}
引用次数: 130
What can programmer questions tell us about frameworks? 程序员的问题能告诉我们关于框架的什么?
Pub Date : 2005-05-15 DOI: 10.1109/WPC.2005.47
Daqing Hou, Kenny Wong, H. Hoover
In order to make frameworks easier to use we need to better understand the difficulties that programmers have with them. The questions that programmers ask give clues to the quality of design, documentation, and programmer practice. We describe the method and results of a study on the Java Swing framework. We collected and analyzed a sample of 300 newsgroup questions asked about two Swing components (JButton and JTree), and classified the questions according to the design features of the components. This process revealed key insights that can improve a framework's design, its tutorials, and programmer practice.
为了使框架更容易使用,我们需要更好地理解程序员在使用框架时遇到的困难。程序员提出的问题为设计、文档和程序员实践的质量提供了线索。本文描述了对Java Swing框架的研究方法和结果。我们收集并分析了关于两个Swing组件(JButton和JTree)的300个新闻组问题的样本,并根据组件的设计特征对问题进行了分类。这个过程揭示了可以改进框架设计、教程和程序员实践的关键见解。
{"title":"What can programmer questions tell us about frameworks?","authors":"Daqing Hou, Kenny Wong, H. Hoover","doi":"10.1109/WPC.2005.47","DOIUrl":"https://doi.org/10.1109/WPC.2005.47","url":null,"abstract":"In order to make frameworks easier to use we need to better understand the difficulties that programmers have with them. The questions that programmers ask give clues to the quality of design, documentation, and programmer practice. We describe the method and results of a study on the Java Swing framework. We collected and analyzed a sample of 300 newsgroup questions asked about two Swing components (JButton and JTree), and classified the questions according to the design features of the components. This process revealed key insights that can improve a framework's design, its tutorials, and programmer practice.","PeriodicalId":421860,"journal":{"name":"13th International Workshop on Program Comprehension (IWPC'05)","volume":"34 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132420303","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}
引用次数: 38
Software clustering based on omnipresent object detection 基于无所不在目标检测的软件聚类
Pub Date : 2005-05-15 DOI: 10.1109/WPC.2005.31
Zhihua Wen, Vassilios Tzerpos
The detection of omnipresent objects can be an important aid to the process of understanding a large software system. As a result, various detection techniques have been presented in the literature. However, these techniques do not take the subsystem structure into account when deciding whether an object is omnipresent or not. In this paper, we present a new set of detection methods for omnipresent objects that maintain that an object needs to be connected to a large number of subsystems before it is deemed omnipresent. We compare this novel approach to existing ones. We also introduce a framework that can improve the effectiveness of existing software clustering algorithms by combining them with an omnipresent object detection method. Experiments with two large software systems demonstrate the usefulness of this framework.
对无所不在的对象的检测对于理解大型软件系统的过程是一个重要的辅助。因此,文献中提出了各种检测技术。然而,在决定对象是否无所不在时,这些技术并没有考虑子系统结构。在本文中,我们提出了一套新的无所不在对象检测方法,该方法认为一个对象在被认为无所不在之前需要连接到大量的子系统。我们将这种新方法与现有方法进行比较。我们还引入了一个框架,通过将现有的软件聚类算法与无所不在的目标检测方法相结合,可以提高它们的有效性。两个大型软件系统的实验证明了该框架的有效性。
{"title":"Software clustering based on omnipresent object detection","authors":"Zhihua Wen, Vassilios Tzerpos","doi":"10.1109/WPC.2005.31","DOIUrl":"https://doi.org/10.1109/WPC.2005.31","url":null,"abstract":"The detection of omnipresent objects can be an important aid to the process of understanding a large software system. As a result, various detection techniques have been presented in the literature. However, these techniques do not take the subsystem structure into account when deciding whether an object is omnipresent or not. In this paper, we present a new set of detection methods for omnipresent objects that maintain that an object needs to be connected to a large number of subsystems before it is deemed omnipresent. We compare this novel approach to existing ones. We also introduce a framework that can improve the effectiveness of existing software clustering algorithms by combining them with an omnipresent object detection method. Experiments with two large software systems demonstrate the usefulness of this framework.","PeriodicalId":421860,"journal":{"name":"13th International Workshop on Program Comprehension (IWPC'05)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126769785","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}
引用次数: 25
The CodeSurfer software understanding platform CodeSurfer软件理解平台
Pub Date : 2005-05-15 DOI: 10.1109/WPC.2005.37
P. Anderson, M. Zarins
CodeSurfer is a tool that provides a wide range of program understanding capabilities by exposing the results of a static-semantic analysis to the user in novel and interesting ways. The tool performs a number of whole-program analyses, including pointer analysis, and creates a system dependence graph for the program. The user can browse these dependences through the GUI in a manner akin to surfing the Web. An open architecture fosters the development of plug-ins that can extend the basic functionality. These include tools for reasoning about the paths through the program, and for software assurance.
CodeSurfer是一种工具,通过以新颖有趣的方式向用户公开静态语义分析的结果,提供了广泛的程序理解能力。该工具执行大量的整体程序分析,包括指针分析,并为程序创建一个系统依赖图。用户可以通过GUI以类似于浏览Web的方式浏览这些依赖项。开放体系结构促进插件的开发,这些插件可以扩展基本功能。这些工具包括对贯穿程序的路径进行推理的工具,以及用于软件保证的工具。
{"title":"The CodeSurfer software understanding platform","authors":"P. Anderson, M. Zarins","doi":"10.1109/WPC.2005.37","DOIUrl":"https://doi.org/10.1109/WPC.2005.37","url":null,"abstract":"CodeSurfer is a tool that provides a wide range of program understanding capabilities by exposing the results of a static-semantic analysis to the user in novel and interesting ways. The tool performs a number of whole-program analyses, including pointer analysis, and creates a system dependence graph for the program. The user can browse these dependences through the GUI in a manner akin to surfing the Web. An open architecture fosters the development of plug-ins that can extend the basic functionality. These include tools for reasoning about the paths through the program, and for software assurance.","PeriodicalId":421860,"journal":{"name":"13th International Workshop on Program Comprehension (IWPC'05)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122625939","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}
引用次数: 36
Visualizing the behavior of dynamically modifiable code 可视化动态修改代码的行为
Pub Date : 2005-05-15 DOI: 10.1109/WPC.2005.45
Bradley Dux, A. Iyer, S. Debray, D. Forrester, S. Kobourov
Recent years have seen an increased recognition of some of the advantages offered by dynamically modifiable code, i.e., code that changes during the execution of the program. In its full generality, it can be very difficult to understand the behavior of such self-modifiable code. This paper describes a system that graphically displays the execution behavior of dynamic code, focusing on code modifications and their effect on the structure of the program, i.e., the call graph and control flow graphs of functions. This can help users visualize the structure of runtime code modifications and understand the behavior of dynamically modifiable programs.
近年来,人们越来越认识到动态修改代码(即在程序执行期间更改的代码)所提供的一些优势。总的来说,理解这种自修改代码的行为是非常困难的。本文描述了一个以图形方式显示动态代码执行行为的系统,重点介绍了代码修改及其对程序结构的影响,即函数的调用图和控制流程图。这可以帮助用户可视化运行时代码修改的结构,并理解动态修改程序的行为。
{"title":"Visualizing the behavior of dynamically modifiable code","authors":"Bradley Dux, A. Iyer, S. Debray, D. Forrester, S. Kobourov","doi":"10.1109/WPC.2005.45","DOIUrl":"https://doi.org/10.1109/WPC.2005.45","url":null,"abstract":"Recent years have seen an increased recognition of some of the advantages offered by dynamically modifiable code, i.e., code that changes during the execution of the program. In its full generality, it can be very difficult to understand the behavior of such self-modifiable code. This paper describes a system that graphically displays the execution behavior of dynamic code, focusing on code modifications and their effect on the structure of the program, i.e., the call graph and control flow graphs of functions. This can help users visualize the structure of runtime code modifications and understand the behavior of dynamically modifiable programs.","PeriodicalId":421860,"journal":{"name":"13th International Workshop on Program Comprehension (IWPC'05)","volume":"4 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121045416","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 12
SEAT: a usable trace analysis tool SEAT:一个可用的跟踪分析工具
Pub Date : 2005-05-15 DOI: 10.1109/WPC.2005.30
A. Hamou-Lhadj, T. Lethbridge, Lianjiang Fu
Understanding the dynamics of a program can be made easier if dynamic analysis techniques are used. However, the extraordinary size of typical execution traces makes exploring the content of traces a tedious task. In this paper, we present a tool called SEAT (software exploration and analysis tool) that implements several operations that can help software engineers understand the content of a large execution trace. Perhaps, the most powerful aspect of SEAT is the various filtering techniques it incorporates. In our precious work, we showed that these techniques can reduce significantly the size of traces in order to reveal the main content they convey.
如果使用了动态分析技术,就可以更容易地理解程序的动态。然而,典型执行跟踪的异常大小使得探索跟踪的内容成为一项乏味的任务。在本文中,我们提出了一个称为SEAT(软件探索和分析工具)的工具,它实现了一些操作,可以帮助软件工程师理解大型执行跟踪的内容。也许,SEAT最强大的方面是它所包含的各种过滤技术。在我们宝贵的工作中,我们证明了这些技术可以显着减小痕迹的大小,以揭示它们所传达的主要内容。
{"title":"SEAT: a usable trace analysis tool","authors":"A. Hamou-Lhadj, T. Lethbridge, Lianjiang Fu","doi":"10.1109/WPC.2005.30","DOIUrl":"https://doi.org/10.1109/WPC.2005.30","url":null,"abstract":"Understanding the dynamics of a program can be made easier if dynamic analysis techniques are used. However, the extraordinary size of typical execution traces makes exploring the content of traces a tedious task. In this paper, we present a tool called SEAT (software exploration and analysis tool) that implements several operations that can help software engineers understand the content of a large execution trace. Perhaps, the most powerful aspect of SEAT is the various filtering techniques it incorporates. In our precious work, we showed that these techniques can reduce significantly the size of traces in order to reveal the main content they convey.","PeriodicalId":421860,"journal":{"name":"13th International Workshop on Program Comprehension (IWPC'05)","volume":"31 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122551242","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}
引用次数: 25
Tool demonstration: CHET: checking specifications in Java systems 工具演示:CHET:检查Java系统中的规范
Pub Date : 2005-05-15 DOI: 10.1109/WPC.2005.40
S. Reiss
One of today's challenges is understanding the behavior of complex software. A major challenge here is that libraries, classes, and other components are often not well understood and can easily be used incorrectly. Our system, CHET, lets developers define specifications that describe how a component should be used and checks these specifications statically in real Java systems. Unlike previous systems, CHET is able to check a wide range of complex conditions in large software systems without programmer intervention. CHET comes with an interactive front end that makes both defining specifications and understanding the results of the checks intuitive and easy.
当今的挑战之一是理解复杂软件的行为。这里的一个主要挑战是库、类和其他组件通常不能很好地理解,并且很容易被错误地使用。我们的系统CHET允许开发人员定义描述组件应该如何使用的规范,并在实际的Java系统中静态地检查这些规范。与以前的系统不同,CHET能够在没有程序员干预的情况下检查大型软件系统中的各种复杂条件。CHET带有一个交互式前端,使得定义规范和理解检查结果都直观而容易。
{"title":"Tool demonstration: CHET: checking specifications in Java systems","authors":"S. Reiss","doi":"10.1109/WPC.2005.40","DOIUrl":"https://doi.org/10.1109/WPC.2005.40","url":null,"abstract":"One of today's challenges is understanding the behavior of complex software. A major challenge here is that libraries, classes, and other components are often not well understood and can easily be used incorrectly. Our system, CHET, lets developers define specifications that describe how a component should be used and checks these specifications statically in real Java systems. Unlike previous systems, CHET is able to check a wide range of complex conditions in large software systems without programmer intervention. CHET comes with an interactive front end that makes both defining specifications and understanding the results of the checks intuitive and easy.","PeriodicalId":421860,"journal":{"name":"13th International Workshop on Program Comprehension (IWPC'05)","volume":"156 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128746895","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Detecting and visualizing refactorings from software archives 从软件档案中检测和可视化重构
Pub Date : 2005-05-15 DOI: 10.1109/WPC.2005.18
C. Görg, P. Weißgerber
We perform knowledge discovery in software archives in order to detect refactorings on the level of classes and methods. Our REFVIS prototype finds these refactorings in CVS repositories and relates them to transactions and configurations. Additionally, REFVIS relates movements of methods to the class inheritance hierarchy of the analyzed project. Furthermore, we present our visualization technique that illustrates these refactorings. REFVIS provides both a class hierarchy layout and a package layout and uses color coding to distinguish different kinds of refactorings. Details on each can be displayed on demand using mouse-over tooltips. Finally, we demonstrate by case studies on two open source projects how REFVIS facilitates understanding of refactorings applied to a software project.
我们在软件存档中执行知识发现,以便检测类和方法级别的重构。我们的REFVIS原型在CVS存储库中找到这些重构,并将它们与事务和配置关联起来。此外,REFVIS将方法的移动与所分析项目的类继承层次结构联系起来。此外,我们还展示了演示这些重构的可视化技术。REFVIS提供了类层次结构布局和包布局,并使用颜色编码来区分不同类型的重构。每个工具的详细信息可以根据需要使用鼠标悬停在工具提示上显示。最后,我们通过两个开源项目的案例研究来说明REFVIS如何促进对应用于软件项目的重构的理解。
{"title":"Detecting and visualizing refactorings from software archives","authors":"C. Görg, P. Weißgerber","doi":"10.1109/WPC.2005.18","DOIUrl":"https://doi.org/10.1109/WPC.2005.18","url":null,"abstract":"We perform knowledge discovery in software archives in order to detect refactorings on the level of classes and methods. Our REFVIS prototype finds these refactorings in CVS repositories and relates them to transactions and configurations. Additionally, REFVIS relates movements of methods to the class inheritance hierarchy of the analyzed project. Furthermore, we present our visualization technique that illustrates these refactorings. REFVIS provides both a class hierarchy layout and a package layout and uses color coding to distinguish different kinds of refactorings. Details on each can be displayed on demand using mouse-over tooltips. Finally, we demonstrate by case studies on two open source projects how REFVIS facilitates understanding of refactorings applied to a software project.","PeriodicalId":421860,"journal":{"name":"13th International Workshop on Program Comprehension (IWPC'05)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129109064","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}
引用次数: 56
An investigation into professional programmers' mental representations of variables 对专业程序员对变量的心理表征的调查
Pub Date : 2005-05-15 DOI: 10.1109/WPC.2005.8
J. Sajaniemi, Raquel Navarro-Prieto
Very little is known about professional programmers' mental representations of variables, yet this information is vital in designing effective tools for program comprehension. In order to find out what types of information programmers have about variables and their relations, we conducted a knowledge elicitation study where professional programmers studied programs and the resulting mental representations were elicited using card sorting and interviews. The mental representations were based on fourteen principles that can be organized in four main categories: domain-based, technology-based, execution-based, and strategy-based. Most frequent information types dealt with two execution-based criteria: behavior and utilization.
专业程序员对变量的心理表征所知甚少,但这些信息对于设计有效的程序理解工具至关重要。为了找出程序员对变量及其关系有哪些类型的信息,我们进行了一项知识启发研究,专业程序员学习程序,并通过卡片分类和访谈来引出由此产生的心理表征。心理表征基于14个原则,这些原则可以分为四大类:基于领域的、基于技术的、基于执行的和基于战略的。最常见的信息类型处理两个基于执行的标准:行为和利用率。
{"title":"An investigation into professional programmers' mental representations of variables","authors":"J. Sajaniemi, Raquel Navarro-Prieto","doi":"10.1109/WPC.2005.8","DOIUrl":"https://doi.org/10.1109/WPC.2005.8","url":null,"abstract":"Very little is known about professional programmers' mental representations of variables, yet this information is vital in designing effective tools for program comprehension. In order to find out what types of information programmers have about variables and their relations, we conducted a knowledge elicitation study where professional programmers studied programs and the resulting mental representations were elicited using card sorting and interviews. The mental representations were based on fourteen principles that can be organized in four main categories: domain-based, technology-based, execution-based, and strategy-based. Most frequent information types dealt with two execution-based criteria: behavior and utilization.","PeriodicalId":421860,"journal":{"name":"13th International Workshop on Program Comprehension (IWPC'05)","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-05-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123085820","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 12
期刊
13th International Workshop on Program Comprehension (IWPC'05)
全部 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