Umbrello UML Modeller
Software Engineering and Free Software
- Free Software development has a reputation for not following software engineering processes
Umbrello UML Modeller
Software Engineering and Free Software
- This is a feature, not a bug
- Project usually start to fill a need
- Development continues if people find it useful and have other needs
- Using software modelling doesn't mean taking on the whole software engineering process
Umbrello UML Modeller
Unified Modelling Language
- UML == Unified Modelling Language
- Not to be confused with User Mode Linux
- Industry standard for drawing diagrams of software
- Offers abstraction from code that you can't get with a text editor
- Mostly programming language independant, but...
- Object Orientated
- Syntax has similarities to C++ and Java
UML Diagrams
Use Case diagrams
- Use Case diagrams show relation between program and external users/systems
- Most abstract fromm final code, used for specifying requirements
UML Diagrams
Class Diagrams
- Shows classes, their attributes and operations and the relationships between them
- Probably the most useful diagram type
UML Diagrams
Sequence Diagrams
- Shows the flow of control between objects
- Method calls or general pseudocode, can get fairly close to final implementation
- Also Collaboration diagrams do the same thing in a different layout
UML Diagrams
State and Activity Diagrams
What is UML good for?
- Planning program requirements (use cases)
- Planning class structure
- Sharing plans with other developers being a standard language everyone can understand them
- Documenting your current code structure
- Very useful to refer to when programming
- Helps people new to the code base become familiar with it
even more important for distributed development, might not be anyone willing to explain code base
Umbrello
- UML diagramming tool
- Desktop and programming language independant but written using KDE
- Part of KDE since 3.2.
- Hopefully bringing UML modelling to Free software development
Umbrello Features
- Now implements all the diagram types of UML and most of the features of them
- Imports C++
- Export to a large range of languages
- File format (loosley) based on XMI, an XML language for UML
- Examples of users include Quanta HTML Editor, NASA and Nextphere AS
Umbrello Competition
- ArgoUML (Java swing interface, now propreitry as Poseidon)
- Proprietry: Together (patents!), Rational Rose
- General Diagramming Programs, not as suited to UML:
Future
- Free Software Developers everywhere will design and document their programs in UML!
- Integration with KDevelop (moving target, requires changes to both Umbrello and KDevelop)
- Fix beasties.