52 research outputs found

    An Infrastructure to Support Interoperability in Reverse Engineering

    Get PDF
    An infrastructure that supports interoperability among reverse engineering tools and other software tools is described. The three major components of the infrastructure are: (1) a hierarchy of schemas for low- and middle-level program representation graphs, (2) g4re, a tool chain for reverse engineering C++ programs, and (3) a repository of reverse engineering artifacts, including the previous two components, a test suite, and tools, GXL instances, and XSLT transformations for graphs at each level of the hierarchy. The results of two case studies that investigated the space and time costs incurred by the infrastructure are provided. The results of two empirical evaluations that were performed using the api module of g4re, and were focused on computation of object-oriented metrics and three-dimensional visualization of class template diagrams, respectively, are also provided

    An Open Visualization Toolkit for Reverse Architecting

    Get PDF

    The Design & Implementation of an Abstract Semantic Graph for Statement-Level Dynamic Analysis of C++ Applications

    Get PDF
    In this thesis, we describe our system, Hylian, for statement-level analysis, both static and dynamic, of a C++ application. We begin by extending the GNU gcc parser to generate parse trees in XML format for each of the compilation units in a C++ application. We then provide verification that the generated parse trees are structurally equivalent to the code in the original C++ application. We use the generated parse trees, together with an augmented version of the gcc test suite, to recover a grammar for the C++ dialect that we parse. We use the recovered grammar to generate a schema for further verification of the parse trees and evaluate the coverage provided by our C++ test suite. We then extend the parse tree, for each compilation unit, with semantic information to form an abstract semantic graph, ASG, and then link the ASGs for all of the compilation units into a unified ASG for the entire application under study. In addition, to relieve the cognitive burden of information that may inundate a developer, we describe our development of extensions to Hylian to build abbreviated abstract semantic graphs, which incorporate information about user code, but not about compiler provided library code. Finally, we describe the various approaches that we adopted to provide assurance for the developer that the ASGs that Hylian builds, correctly represent the program under study

    A Comparison of Class Diagram Construction at Three Different Phases of Compilation

    Get PDF
    In maintaining, designing, and testing of OO systems, understanding the relationships between the classes and corresponding objects is imperative. Class diagrams provide program visualization that promotes easier understanding of large systems. Class diagrams are especially helpful when systems become too large to conceptualize without automated graphical illustration. There are many tools available to software developers that permit generation of class diagrams for large scale computing applications, many of which use various parsing approaches to extract information for a class diagram. In this paper, we compare and evaluate three tools that extract information for class diagrams from different phases of the compilation process: a fuzzy parse of the program, a parse tree representation of the program, and an abstract syntax graph to represent the program. Using three tools we generate class diagrams from a test suite of OO systems, and compute metrics on these diagrams as a means of comparing them

    Engineers and technicians : the effect of cognitive style and gender on visual information processing

    Get PDF
    The purpose of this project was to identify in a subject group of engineers and technicians (N = 62) a preferred mode of representation for facilitating correct recall of information from complex graphics. The modes of representation were black and white (b&w) block, b&w icon, color block, and color icon. The researcher's test instrument included twelve complex graphics (six b&w and six color - three per mode). Each graphics presentation was followed by two multiple-choice questions. Recall performance was better using b&w block mode graphics and color icon mode graphics. A standardized test, the Group Embedded Figures Test (GEFT) was used to identify a cognitive style preference (field dependence). Although engineers and technicians in the sample were strongly field-independent, they were not significantly more field-independent than the normative group in the Witkin, Oltman, Raskin, and Karp study (1971). Tests were also employed to look for any significant difference in cognitive style preference due to gender. None was found. Implications from the project results for the design of visuals and their use in technical training are discussed

    Evaluating Extensible 3D (X3D) Graphics For Use in Software Visualisation

    No full text
    3D web software visualisation has always been expensive, special purpose, and hard to program. Most of the technologies used require large amounts of scripting, are not reliable on all platforms, are binary formats, or no longer maintained. We can make end-user web software visualisation of object-oriented programs cheap, portable, and easy by using Extensible (X3D) 3D Graphics, which is a new open standard. In this thesis we outline our experience with X3D and discuss the suitability of X3D as an output format for software visualisation

    Komentar Semi Otomatis Untuk Memudahkan Pemahaman Pada Bahasa Pemrograman Java

    Get PDF
    Studi memperkirakan bahwa biaya perawatan perangkat lunak meningkat dengan sangat cepat hingga mencapai 90% dari biaya keseluruhan dalam daur hidup pengembangan perangkat lunak. Perawatan perangkat lunak menjadi sangat sulit dikarenakan tidak adanya dokumentasi pada program yang ada. Salah satu bentuk dokumentasi program adalah pemberian komentar program. Komentar sangat berguna dalam pemahaman program dan pemeliharaan program. Komentar memungkinkan pengembang dalam memahami kode lebih cepat dalam pembacaan kode program. Pemberian komentar program biasanya dilakukan manual oleh programmer. Pada tesis ini, dilakukan dua kegiatan pemberian komentar pada bahasa pemrograman java, yaitu pemberian komentar secara otomatis dan pemberian komentar secara semi otomatis. Komentar semi otomatis yang diberikan pada program secara langsung dapat mempermudah proses pemahaman pada program khususnya bahasa pemrograman java. Penggunaan ekspresi regular sangat membantu dalam mempolakan baris kode sumber. Aplikasi yang dibangun oleh peneliti telah mampu memberikan kontribusi pemahaman terhadap program sebesar 14.29% sampai dengan 42.86% ==================================================================================================================The study estimates that the cost of software maintenance is increasing very rapidly until it reaches 90% of the overall cost of the software development life cycle. Software maintenance becomes very difficult due to the lack of documentation on the existing program. One form of program documentation was commenting program. Comments are very useful in understanding the program and maintenance program. The comment allows developers to understand the code faster in reading the program code. Commenting program is usually done manually by the programmer. In this thesis, carried out two activities commenting on the Java programming language, the automatic comment and semi-automatic comment. Semi-automatic comments given on direct program is expected to simplify the process of understanding the particular program java programming language. The use of regular expressions is helpful in patterns of lines of source code. Applications built by the researchers have been able to contribute to the understanding of the program at 14.29% to 42.86%
    • …
    corecore