3.4. UML Diagram

Surprisingly for a UML tool there were no UML diagrams of the code behind Umbrello. I imported the classes from the source into a model and created the class diagram by manually checking each file for inherited and associated classes. I included only the core classes which provide the main functionality of storing and drawing class diagrams. Sections of the program which are clearly separated, such as code import, export and the clipboard were not included. This makes the diagram easier to read, and at only a few classes each these sections can be understood without the need for a diagram. The class diagram[umbrello-class-diagram] has been extremely useful in understanding the structure of the code and when working with the code to know which classes are aware of which other classes' attributes and operations.

Creating the diagram also gave me a chance to actually use Umbrello for a real world use. This highlighted some user interface issues and I discovered some small technical bugs as well.

Class diagram of the main code for Umbrello

The functionality is split between model and view. UMLDoc contains the model represented by derivatives of UMLObject. UMLView displays the diagrams and uses UMLWidget as widgets. Classes beginning Q or K are from Qt or KDE's libraries.