16 research outputs found

    A usability study on the use of multi-context visualization

    Full text link
    Graph visualization has been widely used in real-world applications, as it provides better presentation of overall data structure. However, there are navigation problems existing in deep and large relational datasets. To address these challenges, a new technique called multi-context visualization, which provides users with rich contextual information, has been proposed as the solution to the navigation in large scale datasets. This paper evaluates the multi-context visualization by conducting an experiment-based user study. To answer whether the more contextual information positively assist in making more accurate and easier decisions, it aims to evaluate the effectiveness and efficiency of the multi-context visualization, by measuring the user performance. Specifically, this usability test was designed to test if the use of multiple context views can improve navigation problems for deep and large relational data sets. © 2008 IEEE

    AN EFFICIENT AND COST-EFFECTIVE MATHEMATICAL MODEL TO ANALYZE BIG DATA

    Get PDF
    An efficient and cost-effective piecewise mathematical model is presented to represent a descriptive huge data mathematically. The techniques of function lines as decision boundaries are applied to incorporate the big data of the organization into slope intercept form. Which may be very helpful for a better understanding of discrete data to obtain sustainable and accurate results. Based on the boundaries limitation results of the collected data of the Federal Board of Revenue, the income tax against the income is studied. And finally the reliability of piecewise function to optimize the role of strategic management in any organization is investigated. The results showed that, the slope rate measured in the boundaries of income in percentage or increased slope rate is in good agreement with that predicted by the organization in descriptive form

    Integrating a graph builder into python tutor

    Get PDF
    Analysing unknown source code to comprehend it is quite hard and expensive task. Therefore, the Program Comprehension (PC) subject has always been an area of interest as it helps to realize how a program works by identifying the code that implements each functionality. This means being able to map the problem domain with the program domain. PC is a complex area, but its importance for programmers is so high that many approaches and tools were proposed along the last two decades. Program Animation is one of those approaches requiring specialized techniques. For each programming language, there are already tools that enable us to execute a program step by step, visualize its execution path, observe the effect of each instruction on its data structures, and inspect the value of its variables at any point. In the present context, we sustain the idea that PC techniques and tools can also be of great value for students taking the first steps in programming using a specific language. To this end, we aim to improve Python Tutor, a well-known program visualization tool, with graph-based representations of source code such as Control Flow Graph (CFG), Data Flow Graph (DFG), Function Call Graph (FCG) and System Control Graph (SCG). This helps novice programmers to understand the source code analyzing not only the variable contents but also a set of automatically generated graph-based visualizations, that were not included in Python Tutor so far. This will allow the students to be focused on certain aspects of the program (depending on the graph), abstracting others such as details of its syntax.This work has been supported by FCT – Fundação para a Ciência e Tecnologia within the Projects Scopes: UIDB/05757/2020 and UIDB/00319/2020.info:eu-repo/semantics/publishedVersio

    Python-tutor on program comprehension

    Get PDF
    Dissertação de mestrado integrado em Informatics EngineeringThe time spent analysing a software with the goal of comprehending it is huge and expensive. Reduce the time necessary to a professional understand a program is essential for the advance of technology. Therefore, the program comprehension has always been an area of interest as realizing how a programmer thinks can help facilitate many of their daily activities, making the developer a more productive worker. As the world begins to reshape itself thanks to the advances of technology, this area of research gains more and more relevance. This project aim to study the tools developed within the comprehension of programs that usually are associated to software maintenance and analysing the animation web tool Python-Tutor. After this study, it’s required to explore Python-Tutor to understand how it can be improved with the addition of important features to program comprehension as Control Flow Graph (CFG), Data Flow Graph (DFG), Function Call Graph (FCG) and System Control Graph (SCG). The idea behind this is to allow new programmers to view their programs and create a visual image of them in order to understand them and improving their skills to understand someone else’s programs.O tempo despendido a analisar um programa de forma a compreendê-lo é enorme e dispendioso. Reduzir o tempo necessário para um profissional compreender um programa é fulcral para o avanço da tecnologia. Assim, a compreensão de programas sempre foi uma área de interesse pois perceber como um programador pensa pode ajudar a facilitar muitas atividades diárias deste, tornando o programador num trabalhador mais produtivo. À medida que o mundo se vai moldando à informática, esta área de pesquisa tem ganho cada vez mais relevância. Neste projecto iremos estudar as ferramentas desenvolvidas no âmbito da compreensão de programas associadas à manutenção de software e analisar a ferramenta de animaçãoweb Python-Tutor. Iremos explorar esta ferramenta de modo a perceber como a podemos melhorar através da inclusão de novos recursos importantes para a compreensão de programas, tais como: o Grafo de Controlo de Fluxo, Grafo de Fluxo de Dados e o Grafo de Chamadas de Funções. A ideia base passa então, por permitir aos novos programadores visualizar os seus programas e criar uma imagem visual destes de modo a os compreenderem e a melhorarem as suas competências para compreenderem programas de outrem

    Space Partitioning Schemes and Algorithms for Generating Regular and Spiral Treemaps

    Full text link
    Treemaps have been widely applied to the visualization of hierarchical data. A treemap takes a weighted tree and visualizes its leaves in a nested planar geometric shape, with sub-regions partitioned such that each sub-region has an area proportional to the weight of its associated leaf nodes. Efficiently generating visually appealing treemaps that also satisfy other quality criteria is an interesting problem that has been tackled from many directions. We present an optimization model and five new algorithms for this problem, including two divide and conquer approaches and three spiral treemap algorithms. Our optimization model is able to generate superior treemaps that could serve as a benchmark for comparing the quality of more computationally efficient algorithms. Our divide and conquer and spiral algorithms either improve the performance of their existing counterparts with respect to aspect ratio and stability or perform competitively. Our spiral algorithms also expand their applicability to a wider range of input scenarios. Four of these algorithms are computationally efficient as well with quasilinear running times and the last algorithm achieves a cubic running time. A full version of this paper with all appendices, data, and source codes is available at \anonymizeOSF{\OSFSupplementText}

    Cabinet Tree: an orthogonal enclosure approach to visualizing and exploring big data

    Get PDF
    Treemaps are well-known for visualizing hierarchical data. Most related approaches have been focused on layout algorithms and paid little attention to other display properties and interactions. Furthermore, the structural information in conventional Treemaps is too implicit for viewers to perceive. This paper presents Cabinet Tree, an approach that: i) draws branches explicitly to show relational structures, ii) adapts a space-optimized layout for leaves and maximizes the space utilization, iii) uses coloring and labeling strategies to clearly reveal patterns and contrast different attributes intuitively. We also apply the continuous node selection and detail window techniques to support user interaction with different levels of the hierarchies. Our quantitative evaluations demonstrate that Cabinet Tree achieves good scalability for increased resolutions and big datasets

    Animating the evolution of software

    Get PDF
    The use and development of open source software has increased significantly in the last decade. The high frequency of changes and releases across a distributed environment requires good project management tools in order to control the process adequately. However, even with these tools in place, the nature of the development and the fact that developers will often work on many other projects simultaneously, means that the developers are unlikely to have a clear picture of the current state of the project at any time. Furthermore, the poor documentation associated with many projects has a detrimental effect when encouraging new developers to contribute to the software. A typical version control repository contains a mine of information that is not always obvious and not easy to comprehend in its raw form. However, presenting this historical data in a suitable format by using software visualisation techniques allows the evolution of the software over a number of releases to be shown. This allows the changes that have been made to the software to be identified clearly, thus ensuring that the effect of those changes will also be emphasised. This then enables both managers and developers to gain a more detailed view of the current state of the project. The visualisation of evolving software introduces a number of new issues. This thesis investigates some of these issues in detail, and recommends a number of solutions in order to alleviate the problems that may otherwise arise. The solutions are then demonstrated in the definition of two new visualisations. These use historical data contained within version control repositories to show the evolution of the software at a number of levels of granularity. Additionally, animation is used as an integral part of both visualisations - not only to show the evolution by representing the progression of time, but also to highlight the changes that have occurred. Previously, the use of animation within software visualisation has been primarily restricted to small-scale, hand generated visualisations. However, this thesis shows the viability of using animation within software visualisation with automated visualisations on a large scale. In addition, evaluation of the visualisations has shown that they are suitable for showing the changes that have occurred in the software over a period of time, and subsequently how the software has evolved. These visualisations are therefore suitable for use by developers and managers involved with open source software. In addition, they also provide a basis for future research in evolutionary visualisations, software evolution and open source development

    Visualization of state transition graphs

    Get PDF
    State transition graphs are important in computer science and engineering where they are used to analyze the behavior of computer-based systems. In such a graph nodes represent states a system can be in. Links, or directed edges, represent transitions between states. Research in visualization investigates the application of interactive computer graphics to understand large and complex data sets. Large state transition graphs fall into this category. They often contain tens of thousands of nodes, or more, and tens to hundreds of thousands of edges. Also, they describe system behavior at a low abstraction level. This hinders analysis and insight. This dissertation presents a number of techniques for the interactive visualization of state transition graphs. Much of the work takes advantage of multivariate data associated with nodes and edges. Using an experimental approach, several new methods were developed in close collaboration with a number of users. The following approaches were pursued: • Selection and projection. This technique provides the user with visual support to select a subset of node attributes. Consequently, the state transition graph is projected to 2D and visualized in a second, correlated visualization. • Attribute-based clustering. By specifying subsets of node attributes and clustering based on these, the user generates simplified abstractions of a state transition graph. Clustering generates hierarchical, relational, and metric data, which are represented in a single visualization. • User-defined diagrams. With this technique the user investigates state transition graphs with custom diagrams. Diagrams are parameterized by linking their graphical properties to the data. Diagrams are integrated in a number of correlated visualizations. • Multiple views on traces. System traces are linear paths in state transition graphs. This technique provides the user with different perspectives on traces. • Querying nodes and edges. Direct manipulation enables the user to interactively inspect and query state transition graphs. In this way relations and patterns can be investigated based on data associated with nodes and edges. This dissertation shows that interactive visualization can play a role during the analysis of state transition graphs. The ability to interrogate visual representations of such graphs allows users to enhance their knowledge of the modeled systems. It is shown how the above techniques enable users to answer questions about their data. A number of case studies, developed in collaboration with system analysts, are presented. Finally, solutions to challenges encountered during the development of the visualization techniques are discussed. Insights generic to the field of visualization are considered and directions for future work are recommended

    Coherent clusters in source code

    Get PDF
    This paper presents the results of a large scale empirical study of coherent dependence clusters. All statements in a coherent dependence cluster depend upon the same set of statements and a↵ect the same set of statements; a coherent cluster’s statements have ‘coherent’ shared backward and forward dependence. We introduce an approximation to efficiently locate coherent clusters and show that it has a minimum precision of 97.76%. Our empirical study also finds that, despite their tight coherence constraints, coherent dependence clusters are in abundance: 23 of the 30 programs studied have coherent clusters that contain at least 10% of the whole program. Studying patterns of clustering in these programs reveals that most programs contain multiple significant coherent clusters. A series of case studies reveals that these major clusters map to logical functionality and program structure. For example, we show that for the program acct, the top five coherent clusters all map to specific, yet otherwise non-obvious, functionality. Cluster visualization can also reveal subtle deficiencies in program structure and identify potential candidates for refactoring e↵orts. Finally a study of inter-cluster dependence is used to highlight how coherent clusters built are connected to each other, revealing higher-level structures, which can be used in reverse engineering

    Virtual software in reality

    Get PDF
    Software visualisation is an important weapon in the program comprehension armoury. It is a technique that can, when designed and used effectively, aid in understanding existing program code. It can achieve this by displaying information in new and different forms, which may make obvious something missed in reading the code. It can also be used to present many aspects of the data at once. Software, despite many software engineering advances in requirements, design and implementation techniques, continues to be complex and large and if anything seems to be growing in these respects. This means that techniques that failed to aid comprehension and maintenance are certainly not going to be able to deal with the current software. Therefore this area requires research to be able to suggest solutions to deal with the information overload that is sure to occur. There are several issues that this thesis addresses; all of them related to the creation of software visualisation systems that are capable of being used and useful well into the next generation of software systems. The scale and complexity of software are pressing issues, as is the associated information overload problem that this brings. In an attempt to address this problem the following are considered to be important: abstractions, representations, mappings, metaphors, and visualisations. These areas are interrelated and the first four enable the final one, visualisations. These problems are not the only ones that face software visualisation systems. There are many that are based on the general theory of the applicability of the technique to such tasks as program comprehension, rather than the detail of how a particular code fragment is shown. These problems are also related to the enabling technology of three- dimensional visualisations; virtual reality. In summary the areas of interest are: automation, evolution, scalability, navigation and interaction, correlation, and visual complexity. This thesis provides an exploration of these identified areas in the context of software visualisation. Relationships that describe, and distinguish between, existing and future software visualisations are presented, with examples based on recent software visualisation research. Two real world metaphors (and their associated mappings and representations) are defined for the purpose of visualising software as an aid to program comprehension. These metaphors also provide a vehicle for the exploration of the areas identified above. Finally, an evaluation of the visualisations is presented using a framework developed for the comparative evaluation of three-dimensional, comprehension oriented, software visualisations. This thesis has shown the viability of using three-dimensional software visualisations. The important issues of automation, evolution, scalability, and navigation have been presented and discussed, and their relationship to real world metaphors examined. This has been done in conjunction with an investigation into the use of such real world metaphors for software visualisation. The thesis as a whole has provided an important examination of many of the issues related to these types of visualisation in the context of software and is therefore a valuable basis for future work in this area
    corecore