Abstract

The goal of the research is to discover and create a means to convert a text representation of UML class diagrams into its corresponding visual form. UML class diagrams describe the design of a software system and are widely used throughout industry and academics.

The text representation of UML used here is called yUML. The approach translates yUML to a graph representation language, called dot, which is then rendered via the graphical rendering engine Graphviz. Each component of yUML must be parsed and translated into the corresponding graph component in dot. A parser generator, ANTLR, is used to develop the necessary software to parse yUML and convert it into dot. An ANTLR grammar for yUML is created for this process.

The research is realized as a software tool that takes yUML as input and generates the dot representation. Then, Graphviz is used to graphically render the diagram. The yUML is automatically generated from an existing software system that leverages the srcML infrastructure. srcML is an infrastructure to support the analysis and exploration of source code. The results of this research allow the ability to recover a visual UML class diagram for any given software system. A current prototype has been developed and it is being evaluated for accuracy and scalability.

Future work consists of adding different layout algorithms and evaluating their comprehensibility. The resulting tool will be an effective and useful means to assist programmers in understanding large software systems.

Modified Abstract

The goal of the research is to discover and create a means to convert a text representation of UML diagrams (yUML) to the dot language used by Graphviz. Programmers can then easily create and display the design of the software system in an easy to follow UML class diagram to enhance the understanding. The research is realized as a software tool that takes yUML as input and generates the dot representation. The results of this research allow the ability to recover a visual UML class diagram for any given software system. The resulting tool will be an effective and useful addition to the srcML library of tools for programmers to use in understanding large code systems.

Research Category

Computer Science/Mathematics

Primary Author's Major

Computer Science

Mentor #1 Information

Professor Jonathan Maletic Ph.D

Mentor #2 Information

Michael Decker Ph.D Candidate

Presentation Format

Poster

Start Date

21-3-2017 1:00 PM

Headshot.jpg (335 kB)
Headshot

Bio.txt (1 kB)
My bio

Research Area

Software Engineering

Share

COinS
 
Mar 21st, 1:00 PM

Translation of a Text Based UML Class Diagram Representation into a Graphical Rendering Language

The goal of the research is to discover and create a means to convert a text representation of UML class diagrams into its corresponding visual form. UML class diagrams describe the design of a software system and are widely used throughout industry and academics.

The text representation of UML used here is called yUML. The approach translates yUML to a graph representation language, called dot, which is then rendered via the graphical rendering engine Graphviz. Each component of yUML must be parsed and translated into the corresponding graph component in dot. A parser generator, ANTLR, is used to develop the necessary software to parse yUML and convert it into dot. An ANTLR grammar for yUML is created for this process.

The research is realized as a software tool that takes yUML as input and generates the dot representation. Then, Graphviz is used to graphically render the diagram. The yUML is automatically generated from an existing software system that leverages the srcML infrastructure. srcML is an infrastructure to support the analysis and exploration of source code. The results of this research allow the ability to recover a visual UML class diagram for any given software system. A current prototype has been developed and it is being evaluated for accuracy and scalability.

Future work consists of adding different layout algorithms and evaluating their comprehensibility. The resulting tool will be an effective and useful means to assist programmers in understanding large software systems.