For those who don't know me, I make up words like those in the title. It's kind of a catchy introduction as well as a WTF moment for anyone reading it, but seriously can you turn down a story that starts that way?!
Anyway, I've been splitting time between fixing bugs as well as documenting the iTunesDSM program in an official Software Design - iness way. I thought I would first start with UML Class diagrams. For those who don't know UML is the defacto way of diagramming software components otherwise known as Classes.
In order to start UML diagramming, I thought I might start with Visio 2007, but quickly learned Java is not really integrated into the UML support Visio already has. Google saves the day. I first found some stop gap solutions, but then lo and behold a plugin exists for Netbeans that creates UML specifications that are reversed engineered from java files.
Now I know, it's a bad to design software in your head, but I feel that if you can do it, and you are the only person working on it, it's a small project, there aren't to many dependencies involved, and the sky is still blue, it's sorta ok. So I've had to go back and actually diagram the classes using the Netbeans plugin. The picture is an example of an automatically generated UML class diagram for my iTunesDSM project.
Neat huh??!! It saves a lot of time especially since my design-in-head theory is vindicated by automated tasks. I won't go into much detail of how to read this diagram, but for those who do know how you can see the methods of my SongTable class.
Next up is combining the Class diagrams into a comprehensible hierarchy. I also automated Use Case diagrams can be generated by the Netbeans plugin. It may be easier to use Visio for that though, I'll find out.