Saya pikir diagram UML hanya dapat berguna jika mereka mengekspresikan sesuatu dalam tingkat abstraksi yang lebih tinggi daripada kode Anda .
Menulis UML hanya demi menulis UML menjadi birokrasi yang tidak dibutuhkan dan membuat proyek dan kode kurang mudah beradaptasi dengan perubahan tanpa manfaat apa pun.
Misalnya, diagram kelas UML yang menunjukkan semua kelas pada suatu paket, dengan semua atribut dan metode mereka - sesuatu yang dapat dengan mudah dibuat secara otomatis - tidak memberikan nilai sama sekali: ia berada pada level abstraksi yang sama dengan kode Anda . Plus, kode pasti akan menjadi sumber yang lebih baik untuk informasi itu karena akan selalu mutakhir, dan mungkin akan didokumentasikan dan diatur dengan cara yang lebih mudah untuk mengetahui metode / atribut / hal mana yang lebih penting.
Di sisi lain, jika Anda memiliki konsep tingkat abstraksi yang lebih tinggi daripada apa yang dapat diekspresikan diungkapkan pada kode, mendokumentasikannya pada diagram dapat menjadi ide yang bagus.
Sebagai contoh, diagram yang menunjukkan modul abstrak tingkat lebih tinggi pada sistem yang kompleks, dengan dependensinya dan mungkin sedikit deskripsi tentang tanggung jawab mereka dan paket / namespace apa yang mereka petakan dalam kode sumber dapat sangat berguna bagi anggota tim baru yang perlu diperkenalkan ke proyek, atau juga dapat digunakan untuk mencari tahu di mana kelas / fungsi baru harus dibuang.
Contoh lain dari diagram yang berguna bisa berupa diagram urutan yang menunjukkan langkah-langkah tingkat tinggi yang harus diambil dalam protokol komunikasi. Mungkin setiap langkah memiliki sedikit keunikan dan kompleksitas, tetapi mungkin cukup untuk menggambarkannya dalam kode itu sendiri. Diagram tingkat yang lebih tinggi dapat membantu seorang programmer untuk memahami "gambaran besar" berbagai hal dengan mudah tanpa perlu khawatir tentang kompleksitas setiap interaksi.
Bagaimanapun, itu hanya beberapa contoh; ada banyak kasus di mana diagram sederhana bisa sangat membantu. Ingatlah bahwa Anda harus melakukannya hanya ketika Anda tidak dapat mengekspresikan sesuatu dalam kode itu sendiri. Jika Anda menemukan diri Anda menggunakan diagram UML untuk menjelaskan kode-sumber itu sendiri, buatlah kode-goda lebih banyak mendokumentasikan diri.
Akhirnya, beberapa aturan umum yang berlaku untuk kode juga dapat diterapkan pada diagram: hindari pengulangan, tetap sederhana, jangan takut mengubah hal-hal (hanya karena sesuatu didokumentasikan pada diagram UML tidak berarti tidak bisa diubah) dan selalu pikirkan siapa yang akan membaca / memelihara diagram tersebut di masa depan (mungkin diri Anda di masa depan) saat menulisnya :)