Unified Modeling Language (UML) class diagrams depict structural design of software. They present a set of classes and relationships between classes. Current state-of-the-art tools generate class diagram layouts solely based on aesthetics and not on how easy the diagram is to comprehend. In prior work, a family of empirical studies investigated the impact of diagram layout on comprehension. The layouts were based on architectural importance of classes defined by entity, control, and boundary stereotypes defined in the UML. The results from prior work show that layout plays a significant role in the comprehension of UML class diagrams and does not favor aesthetics as much. Given a diagram produced by current tools, the goal of this work is to adjust the layout of a class diagram to make it more comprehensible. The thesis presents preliminary work in developing such an algorithm with the goal of clustering classes that are related based on certain user-defined criteria and not just aesthetics. The algorithm takes a dynamic force-based approach. The user-defined criteria are configurable via a script. A prototype of the algorithm was tested on reverse engineered diagrams from open source GUI frameworks Qt and wxWidgets and satisfactory results were produced within seconds.Given a diagram produced by current tools, the goal of this work is to adjust the layout of a class diagram to make it more comprehensible.
|Title||:||Layout Adjustment Algorithm for Class Diagrams|