Nik's Technology Blog

Travels through programming, networks, and computers

Implementing UML 2.0 Use-Cases with Visio 2007

I've been busy creating some use-cases in Visio 2007 for an upcoming project and from what I can gather either Microsoft has not implemented the current UML 2.0 standard and stuck with an older version, or it decided what parts of the specification to implement.

Either way it's a little annoying, I'm having to spend extra time working out what was the equivalent diagram or notation in UML 1.2 was in order to draw it in Visio.

An example of this would be where you link two Use-Cases with the «include» relationship. This doesn't seem to exist in Visio, so it looks like you have to make do with the «uses» stereotype instead, which was replaced in the current standard.

A few other Visio bug-bears would be the sparse Use-Case documentation interface. It doesn't allow rich text, so adding more than a few lines of text could become very hard to read. Microsoft also seem to leave it up to the modeller to format their own use-case specification; but with such a poor interface I can't see how you could use table-orientated steps to make a sequence of events more readable.

Surely allowing attachments (in the form of Microsoft Word) to be added would make more sense?

When it comes to programming two heads are better than one!

On the last Learning Tree ASP.NET course I took I never thought to inquire why we were made to work in pairs sitting in front of one PC workstation. Well it seems this is not a cost cutting exercise, which were my first thoughts. Apparently Learning Tree bases this on research and programming methodologies (namely Extreme Programming, which I may have to look into further at some point). According to the lecturer the perfect number of programmers crafting a piece of code is 1.8 (Some pieces of code are too trivial for two developers to work on simultaneously), but in a learning environment it is 2.2, with the extra help coming from the teacher and other peers in the class room.

Essentially what he was trying to say was; developers can't think and type at the same time, the product of pair programming is less errors and better quality, structured code.