Pub Date : 2013-09-01DOI: 10.1109/VISSOFT.2013.6650546
Michael Homer, J. Noble
“Jigsaw puzzle” programming environments manipulate programs primarily by drag-and-drop. Generally these environments are based on their own special-purpose languages, meaning students must move on to another language as their programs grow. Tiled Grace is a tile-based editor for Grace, an educational programming language with a conventional textual syntax. Using Tiled Grace, programmers can move seamlessly between visualising their programs as tiles or source code, editing their programs via tiles or text, and continuing on to traditional textual environments, all within the same programming language.
{"title":"A tile-based editor for a textual programming language","authors":"Michael Homer, J. Noble","doi":"10.1109/VISSOFT.2013.6650546","DOIUrl":"https://doi.org/10.1109/VISSOFT.2013.6650546","url":null,"abstract":"“Jigsaw puzzle” programming environments manipulate programs primarily by drag-and-drop. Generally these environments are based on their own special-purpose languages, meaning students must move on to another language as their programs grow. Tiled Grace is a tile-based editor for Grace, an educational programming language with a conventional textual syntax. Using Tiled Grace, programmers can move seamlessly between visualising their programs as tiles or source code, editing their programs via tiles or text, and continuing on to traditional textual environments, all within the same programming language.","PeriodicalId":392495,"journal":{"name":"2013 First IEEE Working Conference on Software Visualization (VISSOFT)","volume":"56 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126856554","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}
Pub Date : 2013-09-01DOI: 10.1109/VISSOFT.2013.6650544
G. Scanniello, U. Erra
In this paper, we present a novel approach based on the distributed behavioral model proposed by Reynolds to simulate animal motion such as bird flocks and fish schools. Our proposal has been used to group similar source code classes and has been implemented in a prototype of a supporting system. The approach and the software prototype have been preliminarily assessed on six open source object-oriented software systems implemented in Java. The results indicate that our proposal is promising in source code comprehension and could be successfully applied in the architecture recovery field.
{"title":"Software entities as bird flocks and fish schools","authors":"G. Scanniello, U. Erra","doi":"10.1109/VISSOFT.2013.6650544","DOIUrl":"https://doi.org/10.1109/VISSOFT.2013.6650544","url":null,"abstract":"In this paper, we present a novel approach based on the distributed behavioral model proposed by Reynolds to simulate animal motion such as bird flocks and fish schools. Our proposal has been used to group similar source code classes and has been implemented in a prototype of a supporting system. The approach and the software prototype have been preliminarily assessed on six open source object-oriented software systems implemented in Java. The results indicate that our proposal is promising in source code comprehension and could be successfully applied in the architecture recovery field.","PeriodicalId":392495,"journal":{"name":"2013 First IEEE Working Conference on Software Visualization (VISSOFT)","volume":"5 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114493697","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}
Pub Date : 2013-09-01DOI: 10.1109/VISSOFT.2013.6650541
Bradley Wehrwein
Empirical studies show that understanding existing software is a cost driver in maintenance activities and throughout the software development lifecycle. Presenting large software systems visually to support reverse engineering requires having the right summary to convey the important details. An experienced engineer knows the important details and can customize the view accordingly. In a reverse engineering context without this upfront knowledge and experience, any derived insights are strongly dependent on the (perhaps incorrectly) chosen view. We propose a lightweight visual approach to reverse engineering that supports users in interactively extracting high-level information from software at large scales with little or no upfront system knowledge. To support this we provide a matrix-based visualization method capable of displaying full systems in space-constrained views. The view visually emphasizes high level structural properties and employs a novel dependency display method to summarize and aggregate dependencies as the view changes, eliminating the need for user-directed aggregation decisions. We describe the visualization concept and a prototype tool that supports it, provide an example from the Apache HttpComponents Client open source project, and offer some areas of future work.
{"title":"Lightweight software reverse engineering using augmented matrix visualizations","authors":"Bradley Wehrwein","doi":"10.1109/VISSOFT.2013.6650541","DOIUrl":"https://doi.org/10.1109/VISSOFT.2013.6650541","url":null,"abstract":"Empirical studies show that understanding existing software is a cost driver in maintenance activities and throughout the software development lifecycle. Presenting large software systems visually to support reverse engineering requires having the right summary to convey the important details. An experienced engineer knows the important details and can customize the view accordingly. In a reverse engineering context without this upfront knowledge and experience, any derived insights are strongly dependent on the (perhaps incorrectly) chosen view. We propose a lightweight visual approach to reverse engineering that supports users in interactively extracting high-level information from software at large scales with little or no upfront system knowledge. To support this we provide a matrix-based visualization method capable of displaying full systems in space-constrained views. The view visually emphasizes high level structural properties and employs a novel dependency display method to summarize and aggregate dependencies as the view changes, eliminating the need for user-directed aggregation decisions. We describe the visualization concept and a prototype tool that supports it, provide an example from the Apache HttpComponents Client open source project, and offer some areas of future work.","PeriodicalId":392495,"journal":{"name":"2013 First IEEE Working Conference on Software Visualization (VISSOFT)","volume":"437 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132620507","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}
Pub Date : 2013-09-01DOI: 10.1109/VISSOFT.2013.6650548
J. Fabry, Alexandre Bergel
AspectMaps is a visualization that shows the structure of aspectual source code. In its design and implementation we made a number of design decisions that we present and discuss in this text. This in the light of more than two years of using, extending and maintaining the AspectMaps visualization and tool. The purpose of this paper is to share our experience with other visualization designers and implementers, as an aid in the making of their design decisions.
{"title":"Design decisions in AspectMaps","authors":"J. Fabry, Alexandre Bergel","doi":"10.1109/VISSOFT.2013.6650548","DOIUrl":"https://doi.org/10.1109/VISSOFT.2013.6650548","url":null,"abstract":"AspectMaps is a visualization that shows the structure of aspectual source code. In its design and implementation we made a number of design decisions that we present and discuss in this text. This in the light of more than two years of using, extending and maintaining the AspectMaps visualization and tool. The purpose of this paper is to share our experience with other visualization designers and implementers, as an aid in the making of their design decisions.","PeriodicalId":392495,"journal":{"name":"2013 First IEEE Working Conference on Software Visualization (VISSOFT)","volume":"69 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116881898","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}
Pub Date : 2013-09-01DOI: 10.1109/VISSOFT.2013.6650532
Ayush Shrestha, Ying Zhu, B. Miller
Free/Libre and Open source software are generally maintained by a group of developers contributing to the software voluntarily without the presence of any governing institution. Online collaboration platforms and sub-version systems allow developers from all over the world with the necessary skills to contribute to the software. Recently, there has been much interest in analyzing the developers' geographic location since it also serves as a socio-economic marker. In this paper we present our spatio-temporal visualization technique called Storygraph that shows the developers, developer locations and the frequency of commits based on the commit log in one integrated view. We also apply our techniques to the VCS of Rails, Homebrew and D3.js obtained from GitHub.
{"title":"Visualizing time and geography of open source software with storygraph","authors":"Ayush Shrestha, Ying Zhu, B. Miller","doi":"10.1109/VISSOFT.2013.6650532","DOIUrl":"https://doi.org/10.1109/VISSOFT.2013.6650532","url":null,"abstract":"Free/Libre and Open source software are generally maintained by a group of developers contributing to the software voluntarily without the presence of any governing institution. Online collaboration platforms and sub-version systems allow developers from all over the world with the necessary skills to contribute to the software. Recently, there has been much interest in analyzing the developers' geographic location since it also serves as a socio-economic marker. In this paper we present our spatio-temporal visualization technique called Storygraph that shows the developers, developer locations and the frequency of commits based on the commit log in one integrated view. We also apply our techniques to the VCS of Rails, Homebrew and D3.js obtained from GitHub.","PeriodicalId":392495,"journal":{"name":"2013 First IEEE Working Conference on Software Visualization (VISSOFT)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131233190","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}
Pub Date : 2013-09-01DOI: 10.1109/VISSOFT.2013.6650549
Ala Abuthawabeh, Dirk Zeckzer
Many visualization techniques are used by software engineers to understand and to analyze the static structure of software systems, with the static structure being extracted from the source code. However, the need for scalable visualizations, which take into account the increasing number of code entities (classes and interfaces) and different types of code couplings (relations between them) in software systems, is still not sufficiently fulfilled. In this paper, we extend the design of an existing multi-matrix visualization approach to represent the static structure of software systems in a scalable way. First, we extended the data model and the algorithms. Second, we added more visualization and interaction elements. Finally, we incorporated the folding (collapsing) and the unfolding (expanding) of the package hierarchy, which have quadratic time complexity and quadratic space complexity in the number of nodes. This extended approach can be applied to support program comprehension and to analyze the static structure of software systems.
{"title":"IMMV: An interactive multi-matrix visualization for program comprehension","authors":"Ala Abuthawabeh, Dirk Zeckzer","doi":"10.1109/VISSOFT.2013.6650549","DOIUrl":"https://doi.org/10.1109/VISSOFT.2013.6650549","url":null,"abstract":"Many visualization techniques are used by software engineers to understand and to analyze the static structure of software systems, with the static structure being extracted from the source code. However, the need for scalable visualizations, which take into account the increasing number of code entities (classes and interfaces) and different types of code couplings (relations between them) in software systems, is still not sufficiently fulfilled. In this paper, we extend the design of an existing multi-matrix visualization approach to represent the static structure of software systems in a scalable way. First, we extended the data model and the algorithms. Second, we added more visualization and interaction elements. Finally, we incorporated the folding (collapsing) and the unfolding (expanding) of the package hierarchy, which have quadratic time complexity and quadratic space complexity in the number of nodes. This extended approach can be applied to support program comprehension and to analyze the static structure of software systems.","PeriodicalId":392495,"journal":{"name":"2013 First IEEE Working Conference on Software Visualization (VISSOFT)","volume":"80 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133227799","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}
Pub Date : 2013-09-01DOI: 10.1109/VISSOFT.2013.6650521
S. Reiss, A. Tarvo
Code Bubbles is an integrated development environment that concentrates on the user experience. The environment is very visual and includes a number of different visualizations, both static and dynamic. We will demonstrate the environment and the various visualizations on a realistic scenario based on our current work.
{"title":"Tool demonstration: The visualizations of code bubbles","authors":"S. Reiss, A. Tarvo","doi":"10.1109/VISSOFT.2013.6650521","DOIUrl":"https://doi.org/10.1109/VISSOFT.2013.6650521","url":null,"abstract":"Code Bubbles is an integrated development environment that concentrates on the user experience. The environment is very visual and includes a number of different visualizations, both static and dynamic. We will demonstrate the environment and the various visualizations on a realistic scenario based on our current work.","PeriodicalId":392495,"journal":{"name":"2013 First IEEE Working Conference on Software Visualization (VISSOFT)","volume":"440 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115857721","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}
Pub Date : 2013-09-01DOI: 10.1109/VISSOFT.2013.6650531
Roberto Minelli, Michele Lanza
Developers use the Integrated Development Environment (IDE) to develop a system at hand, by reading, understanding, and writing its source code. They do so by exploiting the tools and facilities provided by the IDE. This also allows them to build a mental model of the system to perform informed changes. It is however not clear how and when developers use which facility and tool, and to what extent the current services offered by the IDE appropriately support the navigation. We present an approach to visualize the activities of developers within the IDE, implemented in a tool: DFLow. DFLOW records all IDE interactions that occur during a development session and visualizes them through a web-based visualization platform.
{"title":"Visualizing the workflow of developers","authors":"Roberto Minelli, Michele Lanza","doi":"10.1109/VISSOFT.2013.6650531","DOIUrl":"https://doi.org/10.1109/VISSOFT.2013.6650531","url":null,"abstract":"Developers use the Integrated Development Environment (IDE) to develop a system at hand, by reading, understanding, and writing its source code. They do so by exploiting the tools and facilities provided by the IDE. This also allows them to build a mental model of the system to perform informed changes. It is however not clear how and when developers use which facility and tool, and to what extent the current services offered by the IDE appropriately support the navigation. We present an approach to visualize the activities of developers within the IDE, implemented in a tool: DFLow. DFLOW records all IDE interactions that occur during a development session and visualizes them through a web-based visualization platform.","PeriodicalId":392495,"journal":{"name":"2013 First IEEE Working Conference on Software Visualization (VISSOFT)","volume":"15 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121597121","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}
Pub Date : 2013-09-01DOI: 10.1109/VISSOFT.2013.6650545
Fabian Beck, Fabrice Hollerich, S. Diehl, D. Weiskopf
Numeric variables are one of the most frequently used data types. During the execution of a program, their values might change often. Tracing these changes can be necessary for understanding specific behavior of the program or for locating bugs. However, using a breakpoint debugger requires tedious stepping, and logging changes implies analyzing large text files. To make the monitoring of numeric variables easier, this work introduces a visualization approach that augments the source code view of an IDE by small, word-sized graphics: the visualizations accompanying the declarations of monitored variables plot read and write accesses on a timeline; detail views can be retrieved on demand. As suggested by a case study, this approach might support program comprehension and debugging.
{"title":"Visual monitoring of numeric variables embedded in source code","authors":"Fabian Beck, Fabrice Hollerich, S. Diehl, D. Weiskopf","doi":"10.1109/VISSOFT.2013.6650545","DOIUrl":"https://doi.org/10.1109/VISSOFT.2013.6650545","url":null,"abstract":"Numeric variables are one of the most frequently used data types. During the execution of a program, their values might change often. Tracing these changes can be necessary for understanding specific behavior of the program or for locating bugs. However, using a breakpoint debugger requires tedious stepping, and logging changes implies analyzing large text files. To make the monitoring of numeric variables easier, this work introduces a visualization approach that augments the source code view of an IDE by small, word-sized graphics: the visualizations accompanying the declarations of monitored variables plot read and write accesses on a timeline; detail views can be retrieved on demand. As suggested by a case study, this approach might support program comprehension and debugging.","PeriodicalId":392495,"journal":{"name":"2013 First IEEE Working Conference on Software Visualization (VISSOFT)","volume":"13 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"130885018","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}
Pub Date : 2013-09-01DOI: 10.1109/VISSOFT.2013.6650547
Francisco Servant, James A. Jones
In this paper, we present CHRONOS-a tool that enables the querying, exploration, and discovery of historical change events to source code. Unlike traditional Revision-Control-System tools, CHRONOS allows queries across any subset of the code, down to the line-level, which can potentially be contiguous or disparate, even among multiple files. In addition, CHRONOS provides change history across all historical versions (i.e., it is not limited to a pairwise “diff”). The tool implements a zoom-able user interface as a visualization of the history of the queried code to provide both a high-level view of the changes, which supports pattern recognition and discovery, and a low-level view that supports semantic comprehension for tasks such as reverse engineering and identifying design rationale. In this paper, we describe use cases in which CHRONOS may be helpful, provide a motivating example to demonstrate the benefits brought by CHRONOS, and describe its visualization in detail.
{"title":"Chronos: Visualizing slices of source-code history","authors":"Francisco Servant, James A. Jones","doi":"10.1109/VISSOFT.2013.6650547","DOIUrl":"https://doi.org/10.1109/VISSOFT.2013.6650547","url":null,"abstract":"In this paper, we present CHRONOS-a tool that enables the querying, exploration, and discovery of historical change events to source code. Unlike traditional Revision-Control-System tools, CHRONOS allows queries across any subset of the code, down to the line-level, which can potentially be contiguous or disparate, even among multiple files. In addition, CHRONOS provides change history across all historical versions (i.e., it is not limited to a pairwise “diff”). The tool implements a zoom-able user interface as a visualization of the history of the queried code to provide both a high-level view of the changes, which supports pattern recognition and discovery, and a low-level view that supports semantic comprehension for tasks such as reverse engineering and identifying design rationale. In this paper, we describe use cases in which CHRONOS may be helpful, provide a motivating example to demonstrate the benefits brought by CHRONOS, and describe its visualization in detail.","PeriodicalId":392495,"journal":{"name":"2013 First IEEE Working Conference on Software Visualization (VISSOFT)","volume":"77 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2013-09-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121591884","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}