UML Nedir? Birleşik Modelleme Dili ve Diyagram Türleri
UML, bir sistemin yapısını ve davranışını ortak bir diyagram diliyle anlatmayı sağlar. Hangi diyagramın hangi soruya cevap verdiğini bilmek, ekip içi anlaşmazlığı büyük ölçüde azaltır.
Bir bakışta
- UML bir yöntem değil, bir dildir. Nasıl çalışılacağını söylemez; sistemin nasıl çizileceğini ortaklaştırır.
- Diyagramlar yapı, davranış ve etkileşim olarak gruplanır. Her grup farklı bir soruyu cevaplar.
- Sınıf diyagramı ve dizi diyagramı en sık kullanılanlardır. Biri kavramları ve ilişkileri, diğeri mesajların sırasını gösterir.
- Her şeyi çizmek hedef değildir. Okuyacak kişinin sorusuna yanıt veren az sayıda diyagram, çok sayıda eski diyagramdan değerlidir.
UML nedir
UML (Unified Modeling Language, birleşik modelleme dili), yazılım sistemlerinin modellerini tanımlamak, görselleştirmek ve belgelemek için kullanılan standart bir diyagram dilidir. Standardı Object Management Group (OMG) yönetir. Yalnızca yazılım için değil, iş ve diğer yazılım dışı sistemleri modellemek için de kullanılabilir.
UML belirli bir geliştirme yöntemine bağlı değildir; çevik de çalışsanız şelale de, aynı diyagram dilini kullanabilirsiniz. Bir programlama dili de değildir: diyagram doğrudan çalışan bir şey üretmez, ekiplerin sistem hakkında aynı resmi görmesini sağlar.
Diyagram aileleri
UML diyagramları aileler altında toplanır. Yapı diyagramları sistemin neyden oluştuğunu, davranış diyagramları sistemin ne yaptığını, etkileşim diyagramları ise parçaların birbirine nasıl mesaj gönderdiğini anlatır.
Pratikte hepsi birlikte kullanılmaz. Analist genelde kullanım durumu ve etkinlik diyagramıyla başlar; geliştirici sınıf ve dizi diyagramına yönelir; mimari konuşmasında bileşen ve dağıtım diyagramı öne çıkar.
Her diyagram ailesi farklı bir soruyu cevaplar
| Yapı | Davranış | Etkileşim | |
|---|---|---|---|
| Cevapladığı soru | Sistem neyden oluşuyor? | Sistem ne yapıyor? | Parçalar nasıl konuşuyor? |
| Örnek diyagramlar | Sınıf, bileşen, dağıtım | Kullanım durumu, etkinlik, durum makinesi | Dizi, iletişim, zamanlama |
| Tipik kullanıcı | Geliştirici, mimar | Analist, ürün sahibi | Geliştirici, test uzmanı |
Örnek: sınıf diyagramı
Bir sipariş sistemini düşünelim. Sınıf diyagramında Müşteri, Sipariş ve Ürün birer kutu olur. Kutuların içinde özellikler yer alır: müşterinin adı, siparişin tarihi, ürünün adı gibi.
Çizgiler ilişkileri gösterir: • Bir müşterinin birden çok siparişi olabilir. • Bir sipariş, birden çok ürün satırı içerebilir. • Her sipariş yalnızca tek bir müşteriye aittir.
Bu çokluk bilgisi, veritabanı ve kod tasarımında doğrudan karşılığını bulur; bu yüzden sınıf diyagramı, analist ile geliştirici arasındaki en kullanışlı ortak belgedir.
Örnek: dizi ve kullanım durumu diyagramı
Kullanım durumu diyagramı, sistemi dışarıdan, aktörlerin gözünden anlatır. Müşteri aktörü "sipariş ver" ve "siparişi izle" kullanım durumlarına bağlanır; yönetici ise "ürün ekle" gibi başka durumlarla ilişkilidir. Sistemin içinde ne olduğu görünmez, yalnızca ne sunduğu görünür.
Dizi diyagramı ise bir senaryonun zaman içindeki akışını verir. Kullanıcı arayüze sipariş verir, arayüz sipariş servisini çağırır, servis ödeme servisine istek gönderir ve sonucu geri iletir. Her katılımcının altından inen yaşam çizgisi, mesajların sırasını okunur kılar. Hata durumunda mesajın nerede takıldığını bulmak için bu diyagram çok kullanışlıdır.
UML, BPMN ve C4 ile ilişkisi
UML yazılım sistemini modeller; BPMN ise iş sürecini. İş akışını anlatmak için BPMN, sistemin iç yapısını ve davranışını anlatmak için UML daha doğal bir seçimdir. Bu ikisinin ayrıntılı karşılaştırması için ayrı rehbere bakılabilir.
C4 modeli ise mimariyi farklı yakınlaştırma düzeylerinde anlatan, daha hafif bir yaklaşımdır. Birçok ekip mimariyi C4 ile, ayrıntılı tasarımı UML diyagramlarıyla anlatır.
Sık yapılan hatalar
UML'de en yaygın sorun aşırı modellemedir. Her sınıfı çizmeye çalışan ekip, diyagramı güncel tutamaz; eski diyagram ise belge yerine yanıltıcı bir kaynağa dönüşür. Diyagram, okuyacak kişinin cevabını aradığı soruya göre seçilmelidir.
Bir diğer hata, tek diyagramda her şeyi göstermektir. Yapıyı ve davranışı aynı çizimde karıştırmak okunabilirliği bozar. İyi pratik, her diyagrama tek bir soru yüklemek ve başlığını o soruyla koymaktır.
Mindset programlarında UML
Sistem Analistliği Sertifika Programı, UML ile sistem modelleme ve BPMN ile iş süreci modelleme konularını ayrı modüllerde işler. Bu birlikteliğin faydası, analistin iş sürecini sistem modeline nasıl çevireceğini aynı programda görmesidir.
İlgili Mindset programı
Sistem Analistliği Sertifika Programı
Sık sorulan sorular
UML bir programlama dili midir?
Hayır. UML diyagramlarla sistem anlatmaya yarayan bir modelleme dilidir ve çalıştırılabilir kod üretmek zorunda değildir. Bazı araçlar diyagramdan kod iskeleti çıkarabilir, ama UML'nin asıl işlevi insanlar arasındaki ortak anlayışı sağlamaktır.
UML öğrenmek için programcı olmak gerekir mi?
Gerekmez. Kullanım durumu ve etkinlik diyagramları analist, ürün sahibi ve iş birimi için de anlaşılırdır. Sınıf ve dizi diyagramları ise biraz yazılım bilgisi ister, ancak temel kavramlar kısa sürede öğrenilir.
Çevik ekiplerde UML kullanılır mı?
Kullanılır, ama genelde hafif biçimde. UML belirli bir yöntemden bağımsızdır; çevik ekipler çoğunlukla tahtada çizilen bir sınıf ya da dizi diyagramıyla yetinir ve ağır belgeleme yapmaz. Önemli olan ihtiyaç duyulan anda doğru diyagramı çizmektir.
En çok hangi UML diyagramı kullanılır?
Sınıf diyagramı ve dizi diyagramı yaygındır; kullanım durumu diyagramı da gereksinim aşamasında sık görülür. Ancak bu her ekip için doğru olmayabilir. En kullanışlı diyagram, ekibin o an cevaplaması gereken soruya karşılık gelendir.