Jussi Koskinen

HyperSoft: Backend Components

Computer Science and Information Systems Reports, Technical Report TR-17. Jyväskylä, Finland: University of Jyväskylä. 1997. 122 pp.

Final technical report/ HyperSoft project phase II.

 

Abstract

This report describes the technical implementation of the back-end components of the HyperSoft system, which has been designed and implemented during the HyperSoft project. HyperSoft is an experimental tool for software maintenance support. HyperSoft generates and visualizes various access structures over the source programs. The access structures are generated based on the program analysis techniques and are represented to the user as transient hypertext through a language-independent, generic graphical user interface (Interface-component). The implementation of the system is based on the HyperSoft model developed related to the project1. The project has been funded mainly by Technology Development Center of Finland (TEKES), and partially by University of Jyväskylä, University of Helsinki, and three major Finnish software houses, which have also partaken to the guidance of the project. The work has mainly been carried out at the Information Technology Research Institute/ University of Jyväskylä.

     HyperSoft works as follows. The static program analyzer component (Analyzer) parses and statically analyzes the source programs as a batch process. The relevant static information is stored into a database. The user navigates through the source files and passes requests for access structure generations and for other information through the Interface. The requested access structures are generated by the access structure generator (Generator) based on the static information stored into the program database and on the application of various program analysis techniques. The access structures are graphs or hypergraphs. Finally access structures are shown to the user through the Interface as hypertext. Changing and browsing of the sources is also supported through the integrated Editor-component (PFE, Programmer's File Editor).

     This report describes the operation of the back-end components of the HyperSoft system, version 1.0 released in January 1997. The back-end consists of the Analyzer and Generator components. Program database is the central information repository used to pass information between the components. HyperSoft supports ANSI-C language and is mainly implemented by using C and C++ languages. HyperSoft also includes an extension implemented within KT-Tietokeskus to support embedded SQL language. The Analyzer components are implemented by using a LALR(1) parser generator. Six access structure types are supported: occurrence lists (of variables, functions and user-defined types), instance lists (of syntactical constructs based on their type), calling dependency structures (both to forward and backward directions), intra-procedural backward slices, and inter-procedural forward slices. The access structures are represented to the user as a set of highlighted nodes and graphical links on top of the original program text. Slicing is based on traversals of parse trees and static iterative solving of data-flow equations. The main limitations, the most prominent areas of possible further investigation and possible extensions are discussed in the last chapter. Technical implementation is detailed in the appendices.

 

Keywords: CASE (Computer Assisted/Aided Software Engineering), hypertext, program dependencies, reverse engineering, slicing, software maintenance

 

Computing Reviews Categories: D.2.2, D.2.5, D.2.7, D.3.4, E.1, H.3.3, H.5.1

 

1 The HyperSoft system has been implemented as a part of the TEKES-project #4429/94.

 

Updated: Sept. 30, 2004, Aug. 10, 2010 by Jussi Koskinen.