13 research outputs found

    Architectural visualisation toolkit for 3D Studio Max users

    Get PDF
    Architectural Visualisation has become a vital part of the design process for architects and engineers. The process of modelling and rendering an architectural visualisation can be complex and time consuming with only a few tools available to assist novice modellers. This paper looks at available solutions for visualisation specialists including AutoCAD, 3D Studio Max and Google SketchUp as well as available solutions which attempt to automate the process including Batzal Roof Designer. This thesis details a new program which has been developed to automate the modelling and rendering of the architectural visualisation process. The tool created for this thesis is written in MAXScript and runs along side 3D Studio Max. N.B.: Audio files were attached to this thesis at the time of its submission. Please refer to the author for further details

    Animated Presentation of Some Greedy Algorithms

    Get PDF

    The Design and Implementation of a Notional Machine for teaching Introductory Programming

    Get PDF
    Comprehension of both programming and programs is a difficult task for novices to master, with many university courses that feature a programming component demonstrating significant failure and drop out rates. Many theories exist that attempt to explain why this is the case. One such theory, originally postulated by du Boulay, is that students do not understand the properties of the machine; they do not understand what they are or how they are controlling them by writing code. This idea formed the development of the notional machine, which exists solely as an abstraction of the physical machine to aid with its understanding and comprehension. This work contributes a design for a new notional machine and a graphical notation for its representation. The notional machine is designed to work with object-oriented languages (in particular Java). It provides several novel contributions over pre-existing models -- while existing similar models are generally constrained to line by line operation, the notional machine presented here can scale effectively across many program sizes, from few objects and lines to many. In addition, it is able to be used in a variety of formats (in both electronic and unplugged form). It also melds together three traditionally separate diagrams that had to be understood simultaneously (the stack trace, class diagram and object heap.) Novis, an implemented version of the notional machine, is also presented and evaluated. It is able to create automatic and animated versions of notional machine diagrams, and has been integrated into BlueJ's main interface. Novis can present static notional machine diagrams at selected stages of program execution, or animate ongoing execution in real time. The evaluation of Novis is presented in two parts. It is first tested alongside a selection of methodically chosen textbook examples to ensure it can visualise a range of useful programs, and it then undergoes usability testing with a group of first year computer science students

    Visualization of the Static aspects of Software: a survey

    Get PDF
    International audienceSoftware is usually complex and always intangible. In practice, the development and maintenance processes are time-consuming activities mainly because software complexity is difficult to manage. Graphical visualization of software has the potential to result in a better and faster understanding of its design and functionality, saving time and providing valuable information to improve its quality. However, visualizing software is not an easy task because of the huge amount of information comprised in the software. Furthermore, the information content increases significantly once the time dimension to visualize the evolution of the software is taken into account. Human perception of information and cognitive factors must thus be taken into account to improve the understandability of the visualization. In this paper, we survey visualization techniques, both 2D- and 3D-based, representing the static aspects of the software and its evolution. We categorize these techniques according to the issues they focus on, in order to help compare them and identify the most relevant techniques and tools for a given problem

    Runtime visualisation of object-oriented software

    Get PDF
    Software is a complex and invisible entity, yet one which is core to modem life. The development and maintenance of such software includes one staple task, the need to understand the software at the implementation level. This process of program comprehension is difficult and time consuming. Yet, despite its importance, there remains very limited tool support for program comprehension activities. The results of this research show the role that runtime visualisation can play in aiding the comprehension of object-oriented software by highlighting both its static and dynamic structure. Previous work in this area is discussed, both in terms of the representations used and the methods of extracting runtime information. Building on this previous work, this thesis develops new representations of object-oriented software at runtime, which are then implemented in a proof of concept tool. This tool allowed the representations to be investigated on real software systems. The representations are evaluated against two feature-based evaluation frameworks. The evaluation focuses on generic software visualisation criteria, due to the lack of any specific frameworks for visualising dynamic information. The evaluation also includes lessons learnt in the implementation of a prototype visualisation tool. The object-oriented paradigm continues to grow in popularity and provides advantages to program comprehension activities. However, it also brings a number of new challenges to program comprehension due to the discrepancies between its static definition and its runtime structure. Therefore, techniques that highlight both the static definition and the runtime behaviour of object-oriented systems offer benefits to their comprehension. Software visualisation offers an approach to aid program comprehension activities through providing a means to deal with the size and complexity of the software and its invisible nature. This thesis highlights the generic issues that software visualisation faces, before focusing on how the visualisation of runtime information affects these issues. Many of the issues are compounded by the dynamic nature of the information to be visualised and the explosive growth in the volume of information that this dynamism can bring. Wider results of this research have allowed the proposal of the necessary concepts that should be considered in the design and evaluation of runtime visualisations. Software visualisation at runtime is still a relatively unexplored area and there remains many research challenges within it. This thesis aims to act as a first step to addressing these challenges and aims to promote interest and future development within this area

    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

    Development of a 3d tool for visualization of different software artifacts and their relationships

    Get PDF
    Este trabajo se enfoca en el desarrollo de una herramienta de visualización de software que permite analizar diferentes artefactos de software como código fuente y bases de datos relacionales. Por su naturaleza, la herramienta creada propone una metáfora basada en desarrollos anteriores del campo de visualización de software. La primera parte del documento de tesis presenta un estado del arte en el área de visualización de software, esto incluye la forma en cómo esta área aporta al proceso de evolución de software, punto muy importante en la ingeniería de software. Posteriormente se presenta la fundamentación básica de SeeIT 3D (nombre de la herramienta desarrollada): su metáfora, métricas, mecanismos para entrada de datos y tecnologías que hacen parte de la arquitectura interna. Luego, con el fin de validar la funcionalidad de la herramienta y dar soporte a los fundamentos en los que se basa, se evaluaron un conjunto de proyectos de código abierto escritos en lenguaje Java, que por su tamaño medio e historia bien definida en el área que representan, proveen un buen marco de evaluación. Finalmente como resultado del trabajo de tesis es posible concluir que la visualización de software realmente da un buen soporte a las tareas asociadas al proceso de evolución de software, brindando mecanismos que permiten comprender más fácilmente los artefactos producidos durante el desarrollo de software. De igual manera se concluyen que SeeIT 3D es una buena aproximación y un avance en el campo dadas sus capacidades. / Abstract.This work is focused in the development of a software visualization tool that is able to analyze different software artifacts such as source code and relational databases. Because of its nature, the tool proposes a metaphor based on previous works developed in the software visualization field. The beginning of the thesis document presents a state of art of software visualization; it includes how visualization supports the process of software evolution. After that the basis of SeeIT 3D (name of the developed tool) is presented e.g. the metaphor, metrics, input mechanism and technologies that conform its internal architecture. In order to validate the functionality of the tool and give support to the concepts it is based on, a set of open source projects written in Java language was evaluated. These projects have a medium size and a well-defined history in the field they represent that provide an adequate evaluation framework for the tool. Finally as a result of the thesis work it is possible to conclude that software visualization really provides enough support for the task associated with the evolution process of software systems. It is provided by giving mechanisms that allow understanding the produced software artifacts easily. It is also possible to concluded that SeeIT 3D is a good approximation and a step forward in the field due to its capabilities.Maestrí

    Semi-automatic generation of three-dimensional visual algorithm simulations

    Get PDF
    Algorithms and data structures constitute the theoretical foundations of computer science and are an integral part of any classical computer science curriculum. Due to their high level of abstraction, the understanding of algorithms is of crucial concern to the vast majority of novice students. To facilitate the understanding and teaching of algorithms, a new research field termed "algorithm visualisation" evolved in the early 1980's. This field is concerned with innovating techniques and concepts for the development of effective algorithm visualisations for teaching, study, and research purposes. Due to the large number of requirements that high-quality algorithm visualisations need to meet, developing and deploying effective algorithm visualisations from scratch is often deemed to be an arduous, time-consuming task, which necessitates high-level skills in didactics, design, programming and evaluation. A substantial part of this thesis is devoted to the problems and solutions related to the automation of three-dimensional visual simulation of algorithms. The scientific contribution of the research presented in this work lies in addressing three concerns: - Identifying and investigating the issues related to the full automation of visual simulations. - Developing an automation-based approach to minimising the effort required for creating effective visual simulations. - Designing and implementing a rich environment for the visualisation of arbitrary algorithms and data structures in 3D. The presented research in this thesis is of considerable interest to (1) researchers anxious to facilitate the development process of algorithm visualisations, (2) educators concerned with adopting algorithm visualisations as a teaching aid and (3) students interested in developing their own algorithm animations.Als fundamentale abstrakte Konzepte der theoretischen Informatik sind Algorithmen und Datenstrukturen ein integraler Bestandteil jedes klassischen Kurrikulums eines Informatik-Studiums. Aufgrund ihrer abstrakten Eigenschaften stellt das Verstehen der Arbeitsweise von Algorithmen für viele Studierende eine große Herausforderung dar. Um das Lernen, Lehren und Erforschen von Algorithmen und Datenstrukturen zu vereinfachen, wurde Anfang der 80er Jahre ein Forschungsgebiet namens Algorithmenvisualisierung geschaffen. Als Teildisziplin der Softwarevisualisierung befasst sich dieses Forschungsfeld mit der dynamischen Visualisierung des abstrakten Verhaltens von Algorithmen und den diesen zugrundeliegenden Datenstrukturen. Algorithmenvisualisierung gilt als ein modernes e-Learning- und e-Teaching-Instrument, das Computergraphiktechniken einsetzt, um das Verstehen, Vermitteln und Erforschen von Algorithmen zu erleichtern. Ein Hauptziel dieser Dissertation besteht darin, Ansätze zur Automatisierung von dreidimensionalen visuellen Algorithmensimulationen zu entwickeln und zu implementieren. Eine visuelle Simulation eines Algorithmus ist eine interaktive Animation seines Verhaltens und der Zustandsänderungen seiner Daten, der eine Echtzeitsimulation des Algorithmus zugrunde liegt. Der wissenschaftliche Beitrag dieser Arbeit besteht darin, die bislang unerforschten Probleme der vollautomatischen Visualisierung von Algorithmen zu identifizieren und zu analysieren, mögliche Lösungswege und -ansätze zu entwickeln und diese in eine zu schaffende Algorithmenvisualisierungsumgebung zu implementieren. Desweiteren präsentiert die Arbeit einen Ansatz zur Minimierung des Aufwands für die Entwicklung von visuellen Simulationen paralleler Algorithmen und einen Ansatz zur passiven Animation von Algorithmen zu NP-vollständigen Problemen. ..

    Software Visualization in 3D: Implementation, Evaluation, and Applicability

    Get PDF
    The focus of this thesis is on the implementation, the evaluation and the useful application of the third dimension in software visualization. Software engineering is characterized by a complex interplay of different stakeholders that produce and use several artifacts. Software visualization is used as one mean to address this increasing complexity. It provides role- and task-specific views of artifacts that contain information about structure, behavior, and evolution of a software system in its entirety. The main potential of the third dimension is the possibility to provide multiple views in one software visualization for all three aspects. However, empirical findings concerning the role of the third dimension in software visualization are rare. Furthermore, there are only few 3D software visualizations that provide multiple views of a software system including all three aspects. Finally, the current tool support lacks of generating easy integrateable, scalable, and platform independent 2D, 2.5D, and 3D software visualizations automatically. Hence, the objective is to develop a software visualization that represents all important structural entities and relations of a software system, that can display behavioral and evolutionary aspects of a software system as well, and that can be generated automatically. In order to achieve this objective the following research methods are applied. A literature study is conducted, a software visualization generator is conceptualized and prototypically implemented, a structured approach to plan and design controlled experiments in software visualization is developed, and a controlled experiment is designed and performed to investigate the role of the third dimension in software visualization. The main contributions are an overview of the state-of-the-art in 3D software visualization, a structured approach including a theoretical model to control influence factors during controlled experiments in software visualization, an Eclipse-based generator for producing automatically role- and task-specific 2D, 2.5D, and 3D software visualizations, the controlled experiment investigating the role of the third dimension in software visualization, and the recursive disk metaphor combining the findings with focus on the structure of software including useful applications of the third dimension regarding behavior and evolution

    Analyse, Erzeugung und Evaluation animierter Softwarevisualisierungen

    Get PDF
    Animationen bieten verschiedene Möglichkeiten, um Sachverhalte in der Softwarevisualisierung darzustellen. Die vielfältigen Ausprägungen von Animationen können eingesetzt werden, um die verschiedenen Hauptaspekte von Software, Struktur, Verhalten und Historie, zu visualisieren. Um ihren Einsatz für die Zwecke der Softwarevisualisierung zu optimieren, ist es aber essenziell, die verschiedenen möglichen Formen, deren Einsatzzwecke und ihre Eigenschaften im Bezug auf die Wahrnehmung von Menschen zu untersuchen. Die vorliegende Arbeit untersucht diese Aspekte und bedient sich dabei verschiedener Forschungsmethoden. Zu diesen Forschungsmethoden gehören eine Literaturstudie, die prototypische Implementierung von Werkzeugen und ein Experiment. Die Literaturstudie zeigt den aktuellen Stand der Forschung im Bezug auf die Verwendung und den Einsatzzweck von Animationen im Bereich der Softwarevisualisierung. Die prototypische Implementierung von Werkzeugen wird genutzt, um verschiedene Phasen des Visualisierungsprozesses zu unterstützen. So werden Techniken dargestellt, die es ermöglichen, Informationen über die Struktur, das Verhalten und die Historie von Ruby-Programmen zu gewinnen und diese in geeigneter Weise bereitzustellen. Des Weiteren wird ein Framework vorgestellt, mit dem es möglich ist, durch deklarative Angabe von Ereignissen, verschiedene Arten von Animationen in X3D- und X3DOM-Szenen auszulösen. Um die Visualisierungen zu erzeugen, stellt die Arbeit die Erweiterung eines Generators für Softwarevisualisierungen vor. Diese Erweiterung ermöglicht es, aus den extrahierten Informationen animierte Softwarevisualisierungen für alle drei Hauptaspekte von Software zu erzeugen. Im Rahmen der vorliegenden Arbeit wird ein Experiment zur Untersuchung der Effektivität und Effizienz von Animationen in Softwarevisualisierungen durchgeführt. Um die Durchführung dieses und anderer Experimente im Bereich der Softwarevisualisierung zu erleichtern, werden verschiedene Methoden und Hilfsmittel vorgestellt. Dazu gehört auch ein prototypisch im Rahmen der Arbeit implementierter Evaluationsserver, der Versuchsleiter für vergleichende Visualisierungsexperimente in den Bereichen Planung, Durchführung und Auswertung unterstützen kann. Dieser kommt im Rahmen der vorliegenden Arbeit bei der Durchführung eines Experiments zum Einsatz, das für die Aspekte Struktur, Verhalten und Historie jeweils eine statische mit einer animierten Softwarevisualisierung hinsichtlich der Aspekte Fehlerrate, Zeitbedarf zur Beantwortung von Fragen und von den Probanden durchgeführte Interaktion vergleicht
    corecore