Algorithms for drawing trees (abstract)
Peter Eades · ACM SIGACT News · 1993
In several application areas of software engineering intermediate and final products of the design activity are represented by means of diagrams. Diagrams present several advantages over other representations, since they are an aid to clear thinking (a diagram is better that a thousand words). Diagrams are external representations of organization charts, data and function schemas, structure of procedure calls, pieces of code, etc. A diagram is characterized by a meaning (the "piece of reality" it draws), and a syntax, expressed by: a graphic grammar, that defines the types of symbols and connections allowed, aesthetic criteria adopted in drawing the diagram. an underlying diagram model (e.g. hierarchical, planar, connected, etc). In software engineering tools, diagram are manipulated by several functions, such as beautification, modification, refinement, merging of several diagrams, animation, etc. Each one of such functions is characterized by specific algorithms needed for the final activity of diagram drawing. E.g. when we beautify a diagram we are interested to achieve some aesthetic criteria that were previously not respected; when we refine a diagram into a more detailed one, we are interested to maintain monotonicity of shape. Producing incrementally such a library by dynamically tailoring and merging paradigmatic algorithms, results in a new and interesting research area.