We present a graph drawing algorithm that was developed for real-life call graphs, data flows and class hierarchies. The algorithm is an extension of the hierarchical layout method of Sugiyama. The main difference is that we achieved an orthogonal layout with the maximum number of edge bends equal to 2. For that purpose we have designed a special algorithm for horizontal coordinate assignment and solved the task of minimizing the number of orthogonal edge crossings between any pair of adjacent hierarchy levels. We have also tried out a new heuristic approach for creation of an initial position of nodes before starting a crossing reduction step of the algorithm. Finally, we provide some experimental results and references to applications that already use our algorithm.

baburin.pdf171.11 KB