However, I am still unsure how or where I am supposed to describe the functionality that a method of a class offers.
In code, I would simply put a docblock above a method in which I describe that method's purpose. Where would I put that information in a UML diagram?
Usa i buoni nomi
UML è un linguaggio di modellazione che è visivo , generalmente più del codice sorgente. Tuttavia, le buone strategie di denominazione si applicano allo stesso modo ai metodi di classe, indipendentemente dalla loro rappresentazione (UML o codice sorgente). Un buon nome cattura il "cosa" di un metodo. Di solito, questo nome si adatta bene al nome della classe. È il principio di strong (alta) coesione .
Se usi un buon nome, non ti serviranno molte spiegazioni! Suggerirei di usare il codice sorgente per commentare cose come autori che hanno modificato il codice, le date, ecc.
Puoi applicare il refactoring ai modelli UML (ad es., i diagrammi di sequenza che generano nuovi diagrammi di classe), proprio come fai con il sorgente. I metodi di ridenominazione e i metodi di estrazione sono un modo per rendere la tua soluzione più comprensibile (e anche più riutilizzabile). Di nuovo, questo va lungo le linee di alta coesione. Attenzione, tuttavia, che come refactoring, i docblock scritti (nel testo) non si aggiornano da soli. È facile che la soluzione diventi incoerente con il tuo docblock.
So I am wondering: How would I 'translate' a docblock description into UML?
Le descrizioni di Docblock sono fondamentalmente commenti . Il modo migliore per scrivere commenti è un argomento controverso nell'ingegneria del software, dal momento che è molto facile che i commenti diventino incoerenti con il codice (o il modello, se si utilizza UML).
I diagrammi di sequenza per un metodo mostreranno il "come" del metodo e sono migliori di qualsiasi docblock perché sono visivi e dovrebbero essere coerenti con la soluzione reale. Alcuni strumenti UML consentono la generazione di diagrammi di sequenza dal codice sorgente (o viceversa), in modo da poter vedere immediatamente come funziona un metodo. Tuttavia, la qualità di questa generazione è soggetta allo strumento e alla complessità del metodo.
Se il tuo metodo sta davvero facendo qualcosa di non scontato, una nota UML sarebbe un buon modo per mostrare quelle cose, proprio come i commenti di linea sono usati in un linguaggio di programmazione. Ecco un esempio del libro Applying UML and patterns di Craig Larman: