52 research outputs found
An Infrastructure to Support Interoperability in Reverse Engineering
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
The Design & Implementation of an Abstract Semantic Graph for Statement-Level Dynamic Analysis of C++ Applications
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
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
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
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
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%
- …