I'm giving a talk next week at the Linux 2003 conference in Edinburgh about UML Modelling with Umbrello. Since I'm not too sure what to say I'm writing notes here in the hope that I'll be struck by inspiration and maybe some useful comments.
Free Software development has a reputation for being done without the software engineering process that I just spent four years studying at university and which is probably used by most software companies. [insert waterfall model or spiral model diagram here]. This of course is a good thing, projects usually start as a hack to serve a need. If the result is useful the project will continue to be developed by those who find it useful either the origional author or someone else. If it isn't useful it will dissappear or if it's useful but the implementation is flawed then it might be re-written from scratch. It has a Darwinian element to it. You can't do that in commercial software development where results are more urgent.
But taking on software modelling (a suit and academic-friendly work for drawing diagrams) doesn't mean taking on the whole commercial software development process.
Maybe here I should ask what process the people present do use for software development
UML is the Unified Modelling Language (not to be confused with User Mode Linux), an industry standard for drawing diagrams of software developed in the late 1990s from various competing standards. It gives you a level of abstraction away from the code that is very hard to get sitting at a text editor. It is programming language independant but is heavily object orientated and is probably best suited to Java and C++ due to some similarities of syntax.
The diagram types in UML are:
What are UML diagrams good for:
Nice screenshots of Umbrello
Copyleft GNU FDL, Jonathan Riddell, July 2003