just what uml has to do with using 'drag and drop' to create a model.
When I was taking the apps course last year, we had to model our applications in uml as an early phase of development. There were tools to do so, but in general I found it faster and easier to just hack out the text definitions anyway in raw uml.
The L stands for Language, and it is in fact a language for creating models, including object models, app module models, or even ER models, let alone using it to model data flow or calls.
I don't see what XML is going to get you except more verbosity.
Edit: that said, I still agree with Peter that pencil and paper are the right first step; uml comes second, and that only if you have other developers on the project with whom you need to communicate protocols and specifications.