For months I've been designing an architecture for a fictious system, which is required for the second part of the Sun Certified Enterprise Architect (SCEA) exam. Today I came to my computer to make few final but important finishing touches to my UML diagrams. The notebook run out of battery and thus lost its in-memory suspended state – nothing special, it happens. But what an horror! When I started Visual Paradigm (which was running when I suspended the computer), my UML tool, it asked me whether to restore the auto-saved project – which could have been expected, and I agreed – and opened the project – with all texts lost!
As you can see on the screenshot,even the package name got lost. It’s not only that the text isn’t visible – all the information about the model has simply disappeared from the project!
After a short period of panic I remembered that Dropbox, which I use to back up my SCEA folder and to share it with my home computer (I’m kind of paranoid since having may first computer that used to crash regularly due to overheating), keeps few recent versions of each file. Of course the latest version was corrupted because the notebook has already synchronized with Dropbox, but there were also two previous versions and the originally added one – what a relief!!!
While exploring the folder, I noticed two strange files, namely <my VP project file>.vpp~270 and <my VP project file>.vpp~271. Looks like VP is keeping backups of its own! And indeed, when I renamed the .vpp~271 file to .vpp and opened it with VP, my lovely diagrams were back in their latest state with all other information in place! And thus VP hasn’t ruined my day (rather many days) after all and I didn’t need Dropbox to save me.
Conclusion: Back up, back up, back up!
For the curious: I use Visual Paradigm for UML Modeler Edition 3.6 (I’ve also tried the latest community edition but it allows only a very limited number of diagrams – perhaps one? – before putting an unacceptably obtrusive watermark on each). I’ve a couple of reservations against its usability, responsivness, unnecessary limitations of what can be done on a diagram and its behavior, but it is the best tool I have.