In the context of Alma (a system for program visualization and algorithm animation), we use an internal representation - based on the concept of an attributed abstract syntax tree decorated with attribute values, a DAST - to associate (static) figures to grammar rules (productions) and to step over program dynamics executing state changes in order to perform its animation. We do not rely upon any source program annotations (visual/animation statements, or parameters), neither on any special visual data types. On account of such principle, the approach becomes source language independent. It means that we can apply the same visualizer and animator, that is the Alma's back-end, to different programming languages; all that we need is different front-ends to parse each program into the DAST we use. In this paper we discuss Alma design goals and architecture, and we present the two mappings that associate to productions figures and rewriting rules to systematically draw a visual representation (exhibiting data and control flow) of a given source program and to animate its execution.
{"title":"Visualization/animation of programs based on abstract representations and formal mappings","authors":"M. Pereira, P. Henriques","doi":"10.1109/HCC.2001.995294","DOIUrl":"https://doi.org/10.1109/HCC.2001.995294","url":null,"abstract":"In the context of Alma (a system for program visualization and algorithm animation), we use an internal representation - based on the concept of an attributed abstract syntax tree decorated with attribute values, a DAST - to associate (static) figures to grammar rules (productions) and to step over program dynamics executing state changes in order to perform its animation. We do not rely upon any source program annotations (visual/animation statements, or parameters), neither on any special visual data types. On account of such principle, the approach becomes source language independent. It means that we can apply the same visualizer and animator, that is the Alma's back-end, to different programming languages; all that we need is different front-ends to parse each program into the DAST we use. In this paper we discuss Alma design goals and architecture, and we present the two mappings that associate to productions figures and rewriting rules to systematically draw a visual representation (exhibiting data and control flow) of a given source program and to animate its execution.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126094187","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}
In this article the conceptions of visualization language and visualization metaphor are suggested. The structure of a metaphor and the some conceptions linked with visualization languages are considered. The approaches to evaluating of visualization systems based on the adequacy in visualization are suggested.
{"title":"Towards the conceptions of visualization language and visualization metaphor","authors":"V. Averbukh","doi":"10.1109/HCC.2001.995296","DOIUrl":"https://doi.org/10.1109/HCC.2001.995296","url":null,"abstract":"In this article the conceptions of visualization language and visualization metaphor are suggested. The structure of a metaphor and the some conceptions linked with visualization languages are considered. The approaches to evaluating of visualization systems based on the adequacy in visualization are suggested.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"144 2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129537499","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}
Snapshots of general purpose computation states have found important but limited special purpose uses (e.g. UNIX cores and Smalltalk images). A prototype system is presented for exploring additional uses for computation snapshots in the writing, debugging, testing and documenting of computer programs. These uses center on a Computation Scrapbook, which allows complete copies of program runtime states to be easily saved, organized, and restored. Emphasis is given for using multiple snapshots to benefit intermediate level programmers who have yet to acquire the skills to be comfortable with the intermediate, changing, and mostly invisible nature of computation state. The current system allows snapshots of Emacs Lisp runtime states to be used as context for code documentation, initial and goal states for test cases, and examples for general purpose programming by demonstration.
{"title":"Computation scrapbooks of Emacs Lisp runtime state","authors":"R. Potter","doi":"10.1109/HCC.2001.995267","DOIUrl":"https://doi.org/10.1109/HCC.2001.995267","url":null,"abstract":"Snapshots of general purpose computation states have found important but limited special purpose uses (e.g. UNIX cores and Smalltalk images). A prototype system is presented for exploring additional uses for computation snapshots in the writing, debugging, testing and documenting of computer programs. These uses center on a Computation Scrapbook, which allows complete copies of program runtime states to be easily saved, organized, and restored. Emphasis is given for using multiple snapshots to benefit intermediate level programmers who have yet to acquire the skills to be comfortable with the intermediate, changing, and mostly invisible nature of computation state. The current system allows snapshots of Emacs Lisp runtime states to be used as context for code documentation, initial and goal states for test cases, and examples for general purpose programming by demonstration.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128517287","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}
In an effort to manage increasing complexity and to maximise the reuse of code, the software engineering community has recently put a considerable effort into the design and development of component-based software development systems and methodologies. The concept of building software from existing components arose by analogy with the way that hardware is now designed and built, using cheap, reliable standard "off-the-shelf" modules. Due to the analogy with wiring hardware components, the component-based software development is a natural candidate for visual expression. Various component software technologies have emerged as a result of this attention, but their evolution has been rather ad hoc. In fact, some systems are defined purely by their implementation with little or no precise definition. In an attempt to address this shortcoming, we propose a well-defined syntax and semantics for a component software model that captures the essential concepts.
{"title":"A formal model for component-based software","authors":"P. T. Cox, B. Song","doi":"10.1109/HCC.2001.995278","DOIUrl":"https://doi.org/10.1109/HCC.2001.995278","url":null,"abstract":"In an effort to manage increasing complexity and to maximise the reuse of code, the software engineering community has recently put a considerable effort into the design and development of component-based software development systems and methodologies. The concept of building software from existing components arose by analogy with the way that hardware is now designed and built, using cheap, reliable standard \"off-the-shelf\" modules. Due to the analogy with wiring hardware components, the component-based software development is a natural candidate for visual expression. Various component software technologies have emerged as a result of this attention, but their evolution has been rather ad hoc. In fact, some systems are defined purely by their implementation with little or no precise definition. In an attempt to address this shortcoming, we propose a well-defined syntax and semantics for a component software model that captures the essential concepts.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130351773","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}
M. Burnett, B. Ren, Amy J. Ko, C. Cook, G. Rothermel
Although there has been recent research into ways to design visual programming languages and environments, little attention has been given to systematic testing in these languages, and what work has been done does not address "power" features such as recursion. In this paper, we discuss two possible ways the "What You See Is What You Test" methodology could be extended to accommodate recursion. The approaches are presented in terms of their testing theoretic aspects and then implementation strategies and algorithms. Since the goal is to help the people using these languages, we also present an empirical study and use its results to inform our choice as to which of the two approaches to adopt.
{"title":"Visually testing recursive programs in spreadsheet languages","authors":"M. Burnett, B. Ren, Amy J. Ko, C. Cook, G. Rothermel","doi":"10.1109/HCC.2001.995276","DOIUrl":"https://doi.org/10.1109/HCC.2001.995276","url":null,"abstract":"Although there has been recent research into ways to design visual programming languages and environments, little attention has been given to systematic testing in these languages, and what work has been done does not address \"power\" features such as recursion. In this paper, we discuss two possible ways the \"What You See Is What You Test\" methodology could be extended to accommodate recursion. The approaches are presented in terms of their testing theoretic aspects and then implementation strategies and algorithms. Since the goal is to help the people using these languages, we also present an empirical study and use its results to inform our choice as to which of the two approaches to adopt.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130774881","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}
B. Ibrahim, Honitriniela Randriamparany, Hidenori Yoshizumi
Control-flow diagrams are often criticized as difficult to read because of numerous edge intersections. To improve the readability we propose a solution that manages the visual complexity of graphs with hundreds, or even thousands of nodes. It consists in applying heuristics to choose the best path for an edge and an appropriate color that will help distinguish an edge from its neighbors.
{"title":"Heuristics for edge drawing in a graph-based visual language","authors":"B. Ibrahim, Honitriniela Randriamparany, Hidenori Yoshizumi","doi":"10.1109/HCC.2001.995284","DOIUrl":"https://doi.org/10.1109/HCC.2001.995284","url":null,"abstract":"Control-flow diagrams are often criticized as difficult to read because of numerous edge intersections. To improve the readability we propose a solution that manages the visual complexity of graphs with hundreds, or even thousands of nodes. It consists in applying heuristics to choose the best path for an edge and an appropriate color that will help distinguish an edge from its neighbors.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132820315","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}
We discuss how a CASE-tool supporting the Unified Modeling Language (UML) can be customized and extended using a visual scripting mechanism. We introduce a set of UML model operations that can be used, for example, to transform a UML diagram of one type into another, and to perform set theoretical operations on them. We discuss a visual scripting mechanism that can be used for executing these operations and for combining them to construct new operations with higher-level functionality. The visual scripting mechanism allows the automation of often-repeated software engineering tasks. We present examples of using the proposed techniques in UML based software engineering. We have a prototype implementation integrated to a real world UML modeling tool, the Nokia TED. The aim of this paper is to show how model operations can be exploited to perform interesting model analysis tasks, and how a visual language that uses these operations as primitives may be used for composing useful high-level functions for various software engineering purposes.
{"title":"Processing UML models with visual scripts","authors":"J. Peltonen, Petri Selonen","doi":"10.1109/HCC.2001.995273","DOIUrl":"https://doi.org/10.1109/HCC.2001.995273","url":null,"abstract":"We discuss how a CASE-tool supporting the Unified Modeling Language (UML) can be customized and extended using a visual scripting mechanism. We introduce a set of UML model operations that can be used, for example, to transform a UML diagram of one type into another, and to perform set theoretical operations on them. We discuss a visual scripting mechanism that can be used for executing these operations and for combining them to construct new operations with higher-level functionality. The visual scripting mechanism allows the automation of often-repeated software engineering tasks. We present examples of using the proposed techniques in UML based software engineering. We have a prototype implementation integrated to a real world UML modeling tool, the Nokia TED. The aim of this paper is to show how model operations can be exploited to perform interesting model analysis tasks, and how a visual language that uses these operations as primitives may be used for composing useful high-level functions for various software engineering purposes.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"110 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114977906","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}
This paper introduces a series of graphical notations for the visualisation of algebraic specifications, concentrating on a suitable representation of the equations that are a characteristic feature of such specifications. A user-oriented process was central both to the design of the notations and to the selection of a notation to implement. Details of this process are outlined.
{"title":"Visual representation of algebraic specifications: A user-oriented approach","authors":"Duncan S. Neary, M. Woodward","doi":"10.1109/HCC.2001.995239","DOIUrl":"https://doi.org/10.1109/HCC.2001.995239","url":null,"abstract":"This paper introduces a series of graphical notations for the visualisation of algebraic specifications, concentrating on a suitable representation of the equations that are a characteristic feature of such specifications. A user-oriented process was central both to the design of the notations and to the selection of a notation to implement. Details of this process are outlined.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"05 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129043330","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}
This paper presents an empirical validation of the abstract tasks (ATs), which are operational guidelines driving the inspection activities during a usability evaluation. Two groups of inspectors evaluated a multimedia CD-ROM, one group using the ATs, the other group using a list of heuristics. Results demonstrated a better performance of the AT group but raised some issues concerning the acceptability of the technique.
{"title":"Guiding usability evaluators during hypermedia inspection","authors":"M. Costabile, A. D. Angeli, M. Matera","doi":"10.1109/HCC.2001.995283","DOIUrl":"https://doi.org/10.1109/HCC.2001.995283","url":null,"abstract":"This paper presents an empirical validation of the abstract tasks (ATs), which are operational guidelines driving the inspection activities during a usability evaluation. Two groups of inspectors evaluated a multimedia CD-ROM, one group using the ATs, the other group using a list of heuristics. Results demonstrated a better performance of the AT group but raised some issues concerning the acceptability of the technique.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"81 3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130853179","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}
In exploring how to make programming easier for non-programmers, research into end-user environments has traditionally been concerned with designing better human-computer interaction. That traditional focus has left open the question of how end-user environments might support human-human interaction. Especially in situations in which end-user environments are enlisted to facilitate learning, we hypothesize that a key benefit may be their ability to mediate conversations about a domain of interest. In what ways might end-user environments support human communication, and what design features make them well-suited to do so? Drawing on ethnographic studies of an undergraduate algorithms course in which students constructed and presented algorithm visualizations, we develop a provisional framework of six communicative dimensions of end-user environments: programming salience, typeset fidelity, story content, modifiability, controllability and referencability. To illustrate the design implications of these dimensions, we juxtapose conventional algorithm visualization technology with a prototype end-user environment specifically designed to facilitate communication about algorithms. By characterizing those aspects of end -user environments that impact social interaction, our framework provides an important extension to T.R.G. Green and M. Petre's (1996) cognitive dimensions.
{"title":"Communicative dimensions of end-user environments","authors":"C. Hundhausen, S. Douglas","doi":"10.1109/HCC.2001.995250","DOIUrl":"https://doi.org/10.1109/HCC.2001.995250","url":null,"abstract":"In exploring how to make programming easier for non-programmers, research into end-user environments has traditionally been concerned with designing better human-computer interaction. That traditional focus has left open the question of how end-user environments might support human-human interaction. Especially in situations in which end-user environments are enlisted to facilitate learning, we hypothesize that a key benefit may be their ability to mediate conversations about a domain of interest. In what ways might end-user environments support human communication, and what design features make them well-suited to do so? Drawing on ethnographic studies of an undergraduate algorithms course in which students constructed and presented algorithm visualizations, we develop a provisional framework of six communicative dimensions of end-user environments: programming salience, typeset fidelity, story content, modifiability, controllability and referencability. To illustrate the design implications of these dimensions, we juxtapose conventional algorithm visualization technology with a prototype end-user environment specifically designed to facilitate communication about algorithms. By characterizing those aspects of end -user environments that impact social interaction, our framework provides an important extension to T.R.G. Green and M. Petre's (1996) cognitive dimensions.","PeriodicalId":438014,"journal":{"name":"Proceedings IEEE Symposia on Human-Centric Computing Languages and Environments (Cat. No.01TH8587)","volume":"114 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2001-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131730527","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}