Nevím, jestli má smysl zacházet až do definice tříd. Tohle má smysl pouze v případě, kdy pak aplikaci udržuješ v UMS nástroji a zdrojový kód generuješ. Jinak je to pak dvojí práce - udržovat kód a udržovat diagram.
Většinou si vystačíš s Use Case diagramem, kde si ujasníš chování aplikace z pohledu uživatele, dohodnete si procesy apod.
Návrh aplikace co se týká tříd apod. už pro uživatele není, může sloužit jako dokumentace při programování na zakázku, ale stojí to spoustu práce, kterou musí zákazník zaplatit.