UML diyagramlarının yalnızca , kodunuzdan daha yüksek bir soyutlama düzeyindeki bir şeyi ifade etmeleri durumunda yararlı olabileceğini düşünüyorum .
UML'yi yazmak sadece UML yazmak uğruna gereksiz bürokrasiye dönüşür ve projeyi ve kodu, hiçbir yararı olmadan değişikliklere daha az adapte eder hale getirir.
Örneğin, bir paketteki tüm sınıfları, özniteliklerini ve yöntemlerini - kolayca otomatik olarak oluşturulabilecek bir şey - gösteren, tüm değerleri gösteren bir UML sınıf diyagramı hiç bir değer sağlamaz: kodunuzla aynı düzeyde soyutlama yapar . Ayrıca, kod kesinlikle bu bilgi için daha iyi bir kaynak olacaktır, çünkü her zaman güncel olacaktır ve muhtemelen hangi yöntemlerin / niteliklerin / şeylerin daha önemli olduğunu bilmek daha kolay bir şekilde belgelendirilecek ve organize edilecektir.
Öte yandan, kodda ifade edilebilecek olandan daha yüksek bir soyutlama seviyesine sahipseniz, bunları bir diyagramda belgelemek iyi bir fikir olabilir.
Örneğin, karmaşık bir sistemdeki üst düzey soyut modülleri, bağımlılıklarıyla ve belki de sorumluluklarının küçük bir tanımını ve kaynak kodunda hangi paket / ad alanlarını haritaladıklarını gösteren yeni bir ekip üyesi için gerçekten yararlı olabilir. Projeye tanıtılması gereken veya yeni bir sınıfın / işlevselliğin nereye atılması gerektiğini bulmak için de kullanılabilir.
Yararlı bir diyagramın bir başka örneği, bir iletişim protokolünde atılacak olan yüksek seviyeli adımları gösteren bir dizi diyagramı olabilir. Belki bunların her adımı küçük tuhaflıklar ve karmaşıklıklara sahiptir, ancak bunları kodun içinde tanımlamak muhtemelen yeterlidir. Daha yüksek seviye şeması, bir programcının her etkileşimin karmaşıklığı hakkında endişelenmenize gerek kalmadan şeylerin "büyük resmini" kolayca anlamasına yardımcı olabilir.
Neyse, bunlar sadece bazı örnekler; Basit bir diyagramın çok yardımcı olabileceği birçok durum vardır. Sadece bunları yalnızca kodun içindeki bir şeyi ifade edemediğiniz zaman yapmanız gerektiğini unutmayın. Kendinizi kaynak kodun kendisini açıklamak için UML diyagramlarını kullanarak bulursanız, soruce kodunu daha çok kendi kendine belgeleyin.
Son olarak, koda uygulanan genel kurallardan bazıları diyagramlara da uygulanabilir: kendinizi tekrar etmekten kaçının, basit tutun, bir şeyleri değiştirmekten korkmayın (yalnızca bir UML diyagramında belgelendiği için yapamazsınız anlamına gelmez) değiştirilmeli) ve her zaman gelecekte bu diyagramları kimin yazacağını / sürdüreceğini düşünün (muhtemelen gelecekteki kendiniz) bunları yazarken :)