Mi scuso - ho intenzione di dire "io" molto perché posso solo parlare della mia esperienza. Prendi "I" come qualificatore piuttosto che il contrario.
Ogni volta che sono in una squadra che ha davvero difficoltà a mettere le mani su un problema, disegno diagrammi di sequenza ( link ROCK - è OK per citarli?). Ciò definisce le interazioni di servizio o le interazioni di classe.
Per coincidenza, le interazioni di servizio definiranno direttamente le chiamate API da implementare, se mostro interazioni tra servizi. O metodi da implementare se mostra le interazioni tra le classi.
(Molti dei requisiti dei dati derivano anche da questo, ma devo ammettere che, per brevità, sono abbastanza bravo nel catturare i metodi ma non così bene nei parametri.)
10 anni fa, ho usato uno strumento di modellazione UML che generava Java dal diagramma delle classi, quindi avrei, di fatto, generato un diagramma UML in primo piano. Beh, almeno allo stesso tempo stavo scrivendo le lezioni.
Da allora, faccio molto raramente diagrammi UML oltre a diagrammi di sequenza. A volte un semplice diagramma di entità-relazione è utile se, di nuovo, il modello sta diventando confuso.
EDIT: In realtà, disegno molto diagrammi di stato. Quindi diagrammi di stato e diagrammi di sequenza possono essere davvero utili. Anch'io disegnavo diagrammi di attività UML, ma i diagrammi di sequenza erano appena usciti. Tuttavia, questo definisce il limite massimo dell'acqua. Nessun altro nel team sta facendo quel livello di diagrammi.
Può essere utile andare dall'altra parte: lanciare uno strumento che genera un diagramma di classe dalle classi. Ogni volta che lo faccio, trovo sempre gli errori di modellazione da correggere. Ma sono solo io. ;)
EDIT EDIT: BTW che tira fuori un bel diagramma di sequenza in un'intervista può avere un grande valore wow. Anche con intervistatori non tecnici. Dì solo