Umbrello UML Modeller

A Diagramming Programme for the Unified Modelling Language Developed Using Bazaar Methods

BSc Honuors Dissertation, Final Report

University of Stirling, Department of Computing Science and Mathematics

April 2003

Jonathan Riddell

I am the lead developer and project manager for Umbrello UML Modeller, a computer programme for drawing diagrams of software. I am developing it using the bazaar method, a collaborative and open development style with contributions welcome from anyone. I took control of the programme from the original author in summer 2002.

As project manager I have encouraged and organised feedback and contributions to the programme and managed a growing group of regular contributors. I have successfully incorporated Umbrello into the larger KDE (K Desktop Environment) project, working with a number of KDE developers to ensure a smooth transition. Successful project management requires good handling of programming resources such as CVS and the bug tracker and communication resources such as the mailing lists and the website.

When I took over Umbrello many features had been added which had not been sufficiently debugged. There had been no stable release in almost a year and the programme crashed frequently. My initial development work focused on bringing the stability of the programme to a state where a new release could be made, this involved a great deal of debugging. Since then I have added new features and diagram types, while refactoring the internal code to make it much more easily maintainable in future.

Through my work on Umbrello I have created a thriving programme with an increasing number of real world users which will help to bring effective software engineering and modelling to the development of Free Software.


I would like to thank the following people for their help in making this project possible:

Table of Contents
1. Introduction
1.1. Background and Context
1.1.1. UML
1.1.2. Bazaar Development Method
1.1.3. Umbrello UML Modeller
1.1.4. Technologies Used
1.2. Scope and Objectives
1.3. Achievements
1.4. Overview of Dissertation
2. State of the Art
2.1. Argo UML
2.2. Ideogramic
2.3. Rational Rose
2.4. Together
2.5. General Diagram Tools: Dia, Kivio, Visio
2.6. Umbrello
3. Developing Umbrello UML Modeller
3.1. Rescuing the Programme
3.2. Porting to KDE 3
3.3. Tidying the Code
3.4. UML Diagram
3.5. Debugging
3.6. Features
3.6.1. Canvas Zoom and Resize
3.6.2. Undo and Redo
3.6.3. Parameterised Classes
3.6.4. Interfaces
3.6.5. Component Diagrams and Deployment Diagrams
3.6.6. Cut and Delete Selected
3.7. User Interface
3.8. Refactoring Classes
3.8.1. UMLAssociation
3.8.2. UMLObject
3.8.3. Data Classes
3.9. Use of Multiple Inheritance
3.10. Use of XMI
3.11. Compatibility with Solaris
4. Project Tools
4.1. Hosting on
4.2. CVS Revision Control
4.3. Bug and Feature Trackers
4.4. Website
4.5. Releases
4.6. Translations
4.7. Mailing Lists
4.8. IRC
4.9. Class Documentation
4.10. Handbook
4.11. Text Editor
5. Using The Bazaar Development Process
5.1. Developer Motivation
5.2. Umbrello Leadership
5.2.1. Programme Forks
5.2.2. Release Plan
5.2.3. Encouraging Participation
5.2.4. Publicity
5.2.5. Inclusion in KDE
5.2.6. Competition to Umbrello
5.2.7. Extendible API
5.2.8. Free Software
6. Conclusion
6.1. The Bazaar Method
6.2. Future Work