Layout methods for improving the readability of graphical representations for programs

Computer-Aided Software Engineering (CASE) tools provide automated or semi-automated support for the activities of the software development cycle. Many of these tools incorporate graphical techniques and automate the graphical representation and manipulation of diagrams. VIC (Visual Interactive C) and VIFOR (Visual Interactive Fortran) are two CASE tools that support the maintenance and development of C and Fortran77 programs respectively. They both display programs on the screen using a graphical representation called two-column graph. When the two-column graph represents large programs, the resulted complex drawings are often difficult-to-read and sometimes not apprehensible. The readability of the two-column display can be improved by rearranging the vertices of each column to reduce crossings of lines. We investigate the problem of minimizing edge intersections in two-column layouts, prove that it is NP-Hard and present a heuristic method for reducing the number of intersections. We study the behavior of the heuristic and compare its performance with existing heuristics for hierarchized and bipartite graphs.