  In this paper, we introduce a new approach for drawing diagrams that have
applications in software visualization. Our approach is to use a technique we
call confluent drawing for visualizing non-planar diagrams in a planar way.
This approach allows us to draw, in a crossing-free manner, graphs--such as
software interaction diagrams--that would normally have many crossings. The
main idea of this approach is quite simple: we allow groups of edges to be
merged together and drawn as "tracks" (similar to train tracks). Producing such
confluent diagrams automatically from a graph with many crossings is quite
challenging, however, so we offer two heuristic algorithms to test if a
non-planar graph can be drawn efficiently in a confluent way. In addition, we
identify several large classes of graphs that can be completely categorized as
being either confluently drawable or confluently non-drawable.
