Extending the Sugiyama Algorithm for Drawing UML Class Diagrams: Towards Automatic Layout of Object-Oriented Software Diagrams

The automatic layout of software diagrams is a very attractive graph drawing application for use in software tools. Object-oriented software may be modelled using a visual language called the Unified Modeling Language (UML). In this paper we present an algorithm for the automatic layout of UML class diagrams using an extension of the Sugiyama algorithm together with orthogonal drawing. These diagrams visualize the static structure of object-oriented software systems and are characterised by the use of two main types of edges corresponding to different relationships between the classes. The graph drawing algorithm accounts for these concepts by treating the different edge types in different ways.

[1]  Arne Frick Upper Bounds on the Number of Hidden Nodes in Sugiyama's Algorithm , 1996, Graph Drawing.

[2]  Emden R. Gansner,et al.  A Technique for Drawing Directed Graphs , 1993, IEEE Trans. Software Eng..

[3]  Xuemin Lin,et al.  How to draw a directed graph , 1989, [Proceedings] 1989 IEEE Workshop on Visual Languages.

[4]  Ioannis G. Tollis,et al.  Algorithms for Drawing Graphs: an Annotated Bibliography , 1988, Comput. Geom..

[5]  John N. Warfield,et al.  Crossing Theory and Hierarchy Mapping , 1977, IEEE Transactions on Systems, Man, and Cybernetics.

[6]  Grady Booch Object-oriented design with 2176A , 1992, TRI-Ada '92.

[7]  Petra Mutzel,et al.  An Alternative Method to Crossing Minimization on Hierarchical Graphs , 1996, GD.

[8]  Georg Sander,et al.  A Fast Heuristic for Hierarchical Manhattan Layout , 1995, GD.

[9]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[10]  Karl J. Lieberherr,et al.  Object-oriented design , 1996, CSUR.

[11]  Walter F. Tichy,et al.  Edge: An extendible graph editor , 1990, Softw. Pract. Exp..

[12]  Mitsuhiko Toda,et al.  Methods for Visual Understanding of Hierarchical System Structures , 1981, IEEE Transactions on Systems, Man, and Cybernetics.