Очень помогают сиквенс диаграммы:
https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D...
По поводу классов - на самом деле не особо важно какой язык используется. Для описания работы приложения его в вашем случае можно разбить на сущности, которые хранят данные и отправляют друг другу сообщения. Первое (данные) - это диаграммы классов, второе (отправка сообщений) - сиквенс диаграммы. Мы используем для этого RSA (
https://ru.wikipedia.org/wiki/Rational_Software_Ar... причем он даже может какой-то код генерить из диаграмм (сам я не пробовал). Но он слишком энтерпрайзен, думаю есть что-то попроще.