UML'in ağır olduğu yönünde bir ünü var, ama mühendislerin çoğu kesin olmaları gerektiğinde hâlâ ona uzanır: bir modeli netleştirmek için sınıf diyagramı, bir etkileşimi oturtmak için sıralama diyagramı, geçişleri açık hâle getirmek için durum makinesi. Sorun hiçbir zaman UML değildi. Sorun çizimdi. Bir düzine sınıfı alanları ve ilişkileriyle elle yerleştirmek, kimsenin iki kez yapmak istemediği türden titiz, mekanik bir iştir; yapay zekâ ile UML diyagramları oluşturmanın değeri de tam burada.
Bu da onu yapay zekâ için neredeyse kusursuz bir iş yapar. Yapı iyi tanımlı, notasyon standart, yerleşim kurallara dayalı. Niyeti sen getirirsin; yerleştirmeyi araç yapar.
İki giriş yolu: anlat ya da koda yönlendir
Yapay zekâ ile üretilmiş bir UML diyagramı için iki dürüst başlangıç noktası var ve farklı anlara uyarlar.
- Bir açıklamadan, tasarım henüz kafandayken. "Bir User'ın birçok Order'ı var; her Order'ın Line Item'ları var; bir Line Item bir Product'a referans verir." Modeli yüksek sesle taslak hâline getiriyorsun ve görmek istiyorsun.
- Mevcut koddan ya da şemadan, tasarım zaten varken ve resmi istediğinde. Sınıfların, SQL tabloların, tiplerin ilişkileri zaten kodluyor. Onlardan üretmek, diyagramın senin hafızanla değil gerçekle örtüşmesi demektir.
İkincisi sessiz bir süper güç. Gerçek tiplerden türetilen bir sınıf diyagramı alanlar hakkında yalan söyleyemez; gerçek DDL'den üretilen ER tarzı bir model de orada olmayan bir ilişkiyi uyduramaz.
Tek cümleden bir sınıf diyagramı
Diyelim ki küçük bir sipariş modeli anlattın. Üretilen diyagram sana gerçek kutular verir: her sınıf öznitelikleriyle birlikte ve ilişkiler düz çizgilerle değil, doğru çokluk değerleriyle çizilmiş.
Sıralama diyagramları: nesneler değil, etkileşim
Sınıf diyagramları yapıyı gösterir; sıralama diyagramları zaman içindeki davranışı. Elle çizmek daha da sıkıcıdır, çünkü her mesaj lifeline'lar arasına tam yerine konmuş bir oktur. Bunun yerine akışı anlat: "İstemci API'yi çağırır, API cache'e bakar, ıskalar, veritabanını sorgular, cache'e yazar ve yanıt döner." Sonradan budayıp not ekleyebileceğin lifeline'lar ve sıralı mesajlar alırsın.
Notasyon standart ve yerleşim kurallara dayalı. Bir makinenin onu taslak hâline getirebilmesinin ve senin de onu düzelteceğine güvenebilmenin sebebi tam olarak bu.
Dürüst tut: gerçek şeyden, koddan UML üret
En kalıcı UML hayal gücünden çizilmez; zaten var olandan türetilir. Modellerin kayarsa elle çizilmiş bir diyagram da kayar. Sınıf diyagramını gerçek tiplerinden, bir veri modelini de gerçek şemandan üretmek, kod güncellendiğinde resmin de güncellenmesi demektir. Yeniden çizme, yeniden üret; diyagram bir müze parçası olmaktan çıkar.
Sonra okunur hâle getir, çünkü UML yoğunlaşabilir
Eksiksiz UML hızla bir kutu duvarına dönüşebilir. Düzenlenebilir çıktının avantajı, onu gerçekten anlatmak istediğin noktaya kadar budayabilmendir. Bu diyagram için önemli olmayan öznitelikleri gizle. Tek bir aggregate'teki sınıfları grupla. Okuyucunun fark etmesi gereken ilişkiyi vurgula. Tek bir şeyi net söyleyen bir diyagram, kimsenin okumadığı eksiksiz bir diyagramı geçer.
Yapıyı üret, ayrıntıları düzelt, mesaja göre buda ve kalıcı bir versiyon export et. UML angarya olmaktan çıkar ve asıl amacına geri döner: sistemin nasıl bir araya geldiğinin kesin, ortak bir resmi.