Every application is different, it conforms to what the user wants. It has to be broken down into systematic blocks, with as much detail taken from the client. Flowcharts are my main method, but thats me personally, although sometimes guilty of ploughing into it from my own head. I must say that as the programme becomes more complex, I quickly regret not having done a flowchart. It would be a dream if ready made templates were out there, but even so I cannot see how it could truly benefit, as it would have to be bent in so many directions for a user.