102 research outputs found

    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

    GIS- Driven Translations of Film Narratives: A Space-Time Cube of Christopher Nolan\u27s Dunkirk

    Get PDF
    Space-time cubes are a form of 3D cartography ideal for the synthesis of temporal and spatial data, and have thus been used to construct qualitative narratives that map the pathways of stories and life histories over time. This project extends this methodology into the realm of filmmaking by translating Christopher Nolan’s 2017 film Dunkirk into a space-time cube. In doing so, this project in turn offers a synthesis of GIS and digital humanities. Through deliberate cutting across multiple characters’ perspectives, Dunkirk tells a tripartite narrative that is emotionally gripping yet logistically confusing. This project transforms Dunkirk’s non-linear narrative into a space-time cube for the purpose of chronological elucidation in a GIS environment. Multiple sets of temporal and spatial data were derived through the study of Dunkirk’s fictional plot and research of true historical events. The data were then mapped in a space-time cube in linear chronological order. The results of this project analyze the proficiency of GIS in translating stories from the medium of film into 3D cartographic space, as well as the wider application of spacetime cubes in film narrative storyboarding

    Verification, slicing, and visualization of programs with contracts

    Get PDF
    Tese de doutoramento em Informática (área de especialização em Ciências da Computação)As a specification carries out relevant information concerning the behaviour of a program, why not explore this fact to slice a program in a semantic sense aiming at optimizing it or easing its verification? It was this idea that Comuzzi, in 1996, introduced with the notion of postcondition-based slicing | slice a program using the information contained in the postcondition (the condition Q that is guaranteed to hold at the exit of a program). After him, several advances were made and different extensions were proposed, bridging the two areas of Program Verification and Program Slicing: specifically precondition-based slicing and specification-based slicing. The work reported in this Ph.D. dissertation explores further relations between these two areas aiming at discovering mutual benefits. A deep study of specification-based slicing has shown that the original algorithm is not efficient and does not produce minimal slices. In this dissertation, traditional specification-based slicing algorithms are revisited and improved (their formalization is proposed under the name of assertion-based slicing), in a new framework that is appropriate for reasoning about imperative programs annotated with contracts and loop invariants. In the same theoretical framework, the semantic slicing algorithms are extended to work at the program level through a new concept called contract based slicing. Contract-based slicing, constituting another contribution of this work, allows for the study of a program at an interprocedural level, enabling optimizations in the context of code reuse. Motivated by the lack of tools to prove that the proposed algorithms work in practice, a tool (GamaSlicer) was also developed. It implements all the existing semantic slicing algorithms, in addition to the ones introduced in this dissertation. This third contribution is based on generic graph visualization and animation algorithms that were adapted to work with verification and slice graphs, two specific cases of labelled control low graphs.Tendo em conta que uma especificação contém informação relevante no que diz respeito ao comportamento de um programa, faz sentido explorar este facto para o cortar em fatias (slice) com o objectivo de o optimizar ou de facilitar a sua verificação. Foi precisamente esta ideia que Comuzzi introduziu, em 1996, apresentando o conceito de postcondition-based slicing que consiste em cortar um programa usando a informação contida na pos-condicão (a condição Q que se assegura ser verdadeira no final da execução do programa). Depois da introdução deste conceito, vários avanços foram feitos e diferentes extensões foram propostas, aproximando desta forma duas áreas que até então pareciam desligadas: Program Verification e Program Slicing. Entre estes conceitos interessa-nos destacar as noções de precondition-based slicing e specification-based slicing, que serão revisitadas neste trabalho. Um estudo aprofundado do conceito de specification-based slicing relevou que o algoritmo original não é eficiente e não produz slices mínimos. O trabalho reportado nesta dissertação de doutoramento explora a ideia de tornar mais próximas essas duas áreas visando obter benefícios mútuos. Assim, estabelecendo uma nova base teórica matemática, os algoritmos originais de specification-based slicing são revistos e aperfeiçoados | a sua formalizacão é proposta com o nome de assertion-based slicing. Ainda sobre a mesma base teórica, os algoritmos de slicing são extendidos, de forma a funcionarem ao nível do programa; alem disso introduz-se um novo conceito: contract-based slicing. Este conceito, contract-based slicing, sendo mais um dos contributos do trabalho aqui descrito, possibilita o estudo de um programa ao nível externo de um procedimento, permitindo, por um lado, otimizações no contexto do seu uso, e por outro, a sua reutilização segura. Devido à falta de ferramentas que provem que os algoritmos propostos de facto funcionam na prática, foi desenvolvida uma, com o nome GamaSlicer, que implementa todos os algoritmos existentes de slicing semântico e os novos propostos. Uma terceira contribuição é baseada nos algoritmos genéricos de visualização e animação de grafos que foram adaptados para funcionar com os grafos de controlo de fluxo etiquetados e os grafos de verificação e slicing.Fundação para a Ciência e a Tecnologia (FCT) através da Bolsa de Doutoramento SFRH/BD/33231/2007Projecto RESCUE (contrato FCT sob a referência PTDC / EIA / 65862 /2006)Projecto CROSS (contrato FCT sob a referência PTDC / EIACCO / 108995 / 2008

    Rethinking the Delivery Architecture of Data-Intensive Visualization

    Get PDF
    The web has transformed the way people create and consume information. However, data-intensive science applications have rarely been able to take full benefits of the web ecosystem so far. Analysis and visualization have remained close to large datasets on large servers and desktops, because of the vast resources that data-intensive applications require. This hampers the accessibility and on-demand availability of data-intensive science. In this work, I propose a novel architecture for the delivery of interactive, data-intensive visualization to the web ecosystem. The proposed architecture, codenamed Fabric, follows the idea of keeping the server-side oblivious of application logic as a set of scalable microservices that 1) manage data and 2) compute data products. Disconnected from application logic, the services allow interactive data-intensive visualization be simultaneously accessible to many users. Meanwhile, the client-side of this architecture perceives visualization applications as an interaction-in image-out black box with the sole responsibility of keeping track of application state and mapping interactions into well-defined and structured visualization requests. Fabric essentially provides a separation of concern that decouples the otherwise tightly coupled client and server seen in traditional data applications. Initial results show that as a result of this, Fabric enables high scalability of audience, scientific reproducibility, and improves control and protection of data products

    17th Edition of ECOOP Doctoral Symposium and PhD Workshop : Proceedings

    Get PDF

    The Medium of Visualization for Software Comprehension

    Get PDF
    Although abundant studies have shown how visualization can help software developers to understand software systems, visualization is still not a common practice since developers (i) have little support to find a proper visualization for their needs, and once they find a suitable visualization tool, they (ii) are unsure of its effectiveness. We aim to offer support for identifying proper visualizations, and to increase the effectiveness of visualization techniques. In this dissertation, we characterize proposed software visualizations. To fill the gap between proposed visualizations and their practical application, we encapsulate such characteristics in an ontology, and propose a meta-visualization approach to find suitable visualizations. Amongst others characteristics of software visualizations, we identify that the medium used to display them can be a means to increase the effectiveness of visualization techniques for particular comprehension tasks.We implement visualization prototypes and validate our thesis via experiments. We found that even though developers using a physical 3D model medium required the least time to deal with tasks that involve identifying outliers, they perceived the least difficulty when visualizing systems based on the standard computer screen medium. Moreover, developers using immersive virtual reality obtained the highest recollection. We conclude that the effectiveness of software visualizations that use the city metaphor to support comprehension tasks can be increased when city visualizations are rendered in an appropriate medium. Furthermore, that visualization of software visualizations can be a suitable means for exploring their multiple characteristics that can be properly encapsulated in an ontology

    A Review of Platforms for the Development of Agent Systems

    Full text link
    Agent-based computing is an active field of research with the goal of building autonomous software of hardware entities. This task is often facilitated by the use of dedicated, specialized frameworks. For almost thirty years, many such agent platforms have been developed. Meanwhile, some of them have been abandoned, others continue their development and new platforms are released. This paper presents a up-to-date review of the existing agent platforms and also a historical perspective of this domain. It aims to serve as a reference point for people interested in developing agent systems. This work details the main characteristics of the included agent platforms, together with links to specific projects where they have been used. It distinguishes between the active platforms and those no longer under development or with unclear status. It also classifies the agent platforms as general purpose ones, free or commercial, and specialized ones, which can be used for particular types of applications.Comment: 40 pages, 2 figures, 9 tables, 83 reference

    User Interfaces and Difference Visualizations for Alternatives

    Get PDF
    Designers often create multiple iterations to evaluate alternatives. Todays computer-based tools do not support such easy exploration of a design space, despite the fact that such support has been advocated. This dissertation is centered on this. I begin by investigating the effectiveness of various forms of difference visualizations and support for merging changes within a system targeted at diagrams with node and edge attributes. I evaluated the benefits of the introduced difference visualization techniques in two user studies. I found that the basic side-by-side juxtaposition visualization was not effective and also not well received. For comparing diagrams with matching node positions, participants preferred the side-by-side option with a difference layer. For diagrams with non-matching positions animation was beneficial, but the combination with a difference layer was preferred. Thus, the difference layer technique was useful and a good complement to animation. I continue by investigating if explicit support for design alternatives better supports exploration and creativity in a generative design system. To investigate the new techniques to better support exploration, I built a new system that supports parallel exploration of alternative designs and generation of new structural combinations. I investigate the usefulness of my prototype in two user studies and interviews. The results and feedback suggest and confirm that supporting design alternatives explicitly enables designers to work more creatively. Generative models are often represented as DAGs (directed acyclic graphs) in a dataflow programming environment. Existing approaches to compare such DAGs do not generalize to multiple alternatives. Informed by and building on the first part of my dissertation, I introduce a novel user interface that enables visual differencing and editing alternative graphsspecifically more than two alternatives simultaneously, something that has not been presented before. I also explore multi-monitor support to demonstrate that the difference visualization technique scales well to up to 18 alternatives. The novel jamming space feature makes organizing alternatives on a 23 monitor system easier. To investigate the usability of the new difference visualization method I conducted an exploratory interview with three expert designers. The received comments confirmed that it meets their design goals

    Visualisations novatrices pour la compréhension de réseaux et de logiciels complexes

    Get PDF
    La visualisation d’information a le potentiel de pouvoir exploiter nos capacités visuelles, acquises au fil de centaines de millions d’années d’évolution, afin de faciliter la découverte de secrets enfouis dans les données, de nouveaux patrons ou de relations insoupçonnées. Il existe toutefois une grande variété de données, plus ou moins structurées, que l’on cherche à comprendre sous diverses perspectives. En particulier, les données sous forme de réseaux servent à modéliser des phénomènes importants, tels que les communautés sociales ou les transactions financières, mais peuvent être difficiles à représenter si les réseaux sont grands, hiérarchiques, et/ou dynamiques. Cette thèse se concentre sur la conception de nouvelles techniques de visualisation de réseaux, dans le but de faciliter la compréhension de données. Les techniques de visualisation présentes dans la littérature sont utiles dans certains contextes et comportent chacune des limitations. Néanmoins, il existe encore des possibilités inexplorées pour créer des nouvelles façons de représenter des données. La validation de ces nouvelles techniques demeure un défi. En outre, les interfaces doivent être simples à utiliser, mais aussi faciliter l’analyse et l’exploration de données. Dans le but d’étudier de nouvelles options de visualisations pour faciliter des tâches de compréhension des données, nous avons d’abord classifié les travaux antérieurs avec des taxonomies. De cette manière, nous avons aussi pu mettre en lumière des nouvelles pistes d’hybrides (c’est-à-dire, des combinaisons d’approches) potentiellement intéressantes pour visualiser des réseaux statiques et dynamiques. Les contributions présentées dans cette thèse couvrent différents aspects de la visualisation de réseaux complexes et dynamiques. D’abord, le premier chapitre se concentre sur la visualisation de réseaux statiques comportant des hiérarchies, par la combinaison d’approches. Le prototype décrit dans le deuxième chapitre permet également de combiner des représentations visuelles, mais peut être aussi utilisé afin de modéliser des graphes dynamiques. Enfin, le troisième chapitre présente une nouvelle méthode visuelle appliquée afin de tracer l’évolution de structures de conception complexes dans des logiciels (modélisés par des réseaux). Ainsi, dans le premier prototype (TreeMatrix), des parties de graphes sont montrées avec des matrices et des diagrammes noeuds-liens, alors que les arborescences sont représentées par des diagrammes en glaçons et des regroupements. Contrairement aux autres visualisations dans la littérature, cette nouvelle technique aide à montrer des réseaux denses, sans nuire à la compréhension des liens à plus haut niveau. Une expérience avec des utilisateurs a montré certains avantages afin de découvrir et organiser les liens de modules au sein d’un logiciel, en comparaison avec le logiciel commercial Lattix. Nous avons également combiné des approches de manière novatrice pour notre second prototype (DiffAni) afin de visualiser des réseaux qui évoluent dans le temps. DiffAni est le premier hybride interactif de graphes dynamiques et sa validation avec des participants a permis de faire ressortir certains avantages. Ainsi, l’utilisation d’animation doit être modérée et est surtout utile lors de mouvements significatifs. Ces résultats, avec nos taxonomies, pourraient contribuer à guider la création de nouveaux hybrides dans le futur. Le troisième prototype (IHVis) a facilité l’exploration et le traçage de structures de conception dans des logiciels en évolution (modélisés par des réseaux) à partir de répertoires de code source. Cette nouvelle visualisation a notamment révélé des cas d’introduction de points de stabilité et des refactorings, et certains participants ont aussi trouvé d’autres informations intéressantes, telles que l’extension de fonctionnalités par l’implémentation d’interfaces. En résumé, cette thèse présente des façons novatrices et utiles de visualiser des réseaux complexes et dynamiques. Nos principales contributions sont (1) l’exploration d’espaces de conception de nouvelles visualisations de réseaux à l’aide de taxonomies, (2) la conception de prototypes combinant des approches pour visualiser des réseaux hiérarchiques et dynamiques, (3) la conception d’une nouvelle méthode visuelle d’exploration des variations et des instabilités au sein de logiciels en évolution, (4) l’évaluation de ces techniques à l’aide d’expériences avec des participants
    • …
    corecore