Sınıf Diyagramı Çizmek: İş Analizinde Alan Modelini Görünür Kılmak
Sınıf diyagramı, bir alandaki kavramları, bunların taşıdığı bilgiyi ve aralarındaki ilişkileri tek şekilde gösterir. İş analizi düzeyinde nasıl çizileceğini, ilişki ve çokluk gösteriminin nasıl okunacağını sipariş örneğiyle öğreneceksiniz.
Bir bakışta
- Sınıf diyagramı bir alanın yapısını gösterir, akışını değil. Hangi kavramların olduğunu ve birbirine nasıl bağlandığını anlatır; sürecin adımlarını aktivite ya da sequence diyagramı gösterir.
- İş analizinde diyagram bir alan modeli olarak çizilir. Yazılım ayrıntısı değil, işin kavramları ve kuralları öne çıkar; geliştirici ayrıntıyı sonra ekler.
- Sınıf kutusu ad, nitelik ve işlem bölmelerinden oluşur. Alan modelinde çoğunlukla ad ve nitelikler yeterlidir; işlemler tasarım aşamasına bırakılabilir.
- Çokluk, iş kuralını taşır. Bir siparişin en az bir kalemi olması gibi kurallar, ilişkinin uçlarındaki çokluk gösteriminde görünür.
- İlişki türünü seçmek anlamı belirler. Düz ilişki, toplama, bileşim ve kalıtım farklı şeyler söyler; yanlış seçim yanlış kuralı iletir.
Sınıf diyagramı ne işe yarar?
Bir yazılım projesinde herkesin "sipariş", "müşteri", "ürün" gibi sözcükleri farklı anlamlarla kullandığı çok görülür. Sınıf diyagramı bu kavramları ve aralarındaki bağları bir şekle koyar; böylece iş birimi, analist ve geliştirici aynı resme bakarak konuşur.
UML ailesinde sınıf diyagramı yapı diyagramlarındandır. Durum diyagramı tek nesnenin yaşam döngüsünü, sequence diyagramı nesnelerin mesajlaşmasını, use case diyagramı kullanıcı hedeflerini gösterir. Sınıf diyagramı ise "neler var ve nasıl ilişkili" sorusunu yanıtlar.
İş analizinde çoğu zaman kavramsal bir alan modeli çizilir. Bu model teknik ayrıntıdan arınmıştır: tablo ya da veri türü yoktur; iş kavramları, taşıdıkları bilgiler ve aralarındaki kurallar vardır. Aynı model sonradan veri tabanı tasarımı ve yazılım sınıflarına temel olur.
Sınıf kutusunun okunuşu
Sınıf, ad, nitelik ve işlem bölmelerinden oluşan bir dikdörtgendir. Üst bölme sınıfın adını, orta bölme niteliklerini, alt bölme işlemlerini taşır.
- Ad: tekil ve iş dilinde olmalıdır. "Müşteri" doğrudur; "Müşteriler" ya da "MüşteriTablosu" değil.
- Nitelikler: sınıfın tuttuğu bilgi. Müşteri için ad, e-posta, kayıt tarihi.
- İşlemler: sınıfın yapabildiği davranışlar. Alan modelinde çoğu zaman boş bırakılır ya da yalnızca iş açısından önemli olanlar yazılır.
Nitelik adının önüne artı, eksi ya da diyez işareti konabilir; bunlar görünürlüğü, yani niteliğe dışarıdan erişilip erişilemeyeceğini gösterir. İş analizinde nadiren gerekir. Tasarım aşamasında geliştirici bu bilgiyi ekler.
Bir nitelik ile ayrı bir sınıf arasındaki sınırı çizmek önemlidir. Müşterinin adresi tek bir satırdan ibaretse nitelik olabilir; birden çok adresi olabiliyor, her adresin türü ve geçerliliği varsa ayrı bir sınıf olmalıdır.
İlişkiler ve çokluk
Sınıflar çizgilerle bağlanır. Çizginin türü ilişkinin anlamını belirler.
- Düz çizgi (ilişkilendirme): sınıflar birbirini bilir. Müşteri sipariş verir.
- Boş eşkenar dörtgenli çizgi (toplama): bütün ve parça ilişkisi; ancak parça bütünden bağımsız var olabilir. Bir ekip ve üyeleri gibi.
- Dolu eşkenar dörtgenli çizgi (bileşim): parça bütünle birlikte var olur; bütün silinirse parça da anlamını yitirir. Sipariş ve sipariş kalemleri gibi.
- Boş üçgenli ok (kalıtım): alt sınıf, üst sınıfın özelleşmiş halidir. Bireysel müşteri ve kurumsal müşteri, müşterinin alt sınıflarıdır.
- Kesikli oklu çizgi (bağımlılık): bir sınıf diğerini geçici kullanır.
Çizginin her ucuna çokluk yazılır. Çokluk, alt sınır ve üst sınırdan oluşur; üst sınır sınırsızsa yıldız işareti kullanılır. "Bir müşteri sıfır ya da daha fazla sipariş verebilir; bir sipariş tam olarak bir müşteriye aittir" cümlesi, müşteri ucunda "bir", sipariş ucunda "sıfır ya da daha fazla" gösterimine dönüşür. Çokluk, bir iş kuralını taşıdığı için paydaşla doğrulanmalıdır: gerçekten her siparişin bir müşterisi var mı, misafir siparişi mümkün mü?
İlişki türü, kavramların nasıl bağlandığına göre seçilir
Bir bakışta karar
- Biri diğerinin özelleşmiş türüKalıtımBireysel müşteri, müşterinin alt sınıfıdır.
- Parça, bütün olmadan anlamını yitiriyorBileşimSipariş silinirse kalemleri de silinir.
- Parça bütünden bağımsız var olabiliyorToplamaEkip dağılsa da üyeler var olmaya devam eder.
- Yalnızca birbirini biliyorlarİlişkilendirmeMüşteri sipariş verir.
Adım adım çizim: çevrim içi sipariş alanı
Çevrim içi bir mağazanın sipariş alanını modelleyelim.
Önce kavramları bulun. Gereksinim metninden, görüşme notlarından ve mevcut ekranlardan isimleri çıkarın: müşteri, sipariş, sipariş kalemi, ürün, ödeme, adres. Fiiller ilişkileri, sıfatlar ve ölçülebilir bilgiler nitelikleri verir.
Sonra sınıfları çizip niteliklerini yazın. Müşteri: ad, e-posta. Sipariş: sipariş tarihi, durum. Sipariş kalemi: adet, birim fiyat. Ürün: ad, stok kodu. Ödeme: tutar, yöntem.
İlişkileri ekleyin. Müşteri ile sipariş arasında ilişkilendirme vardır. Sipariş ile sipariş kalemi arasında bileşim vardır, çünkü kalem siparişsiz anlam taşımaz. Sipariş kalemi ürüne bağlanır. Sipariş ile ödeme arasında da bir ilişki kurulur.
Çoklukları yazın ve paydaşla sorgulayın. Bir siparişin en az bir kalemi olmalı mı? Bir siparişe birden çok ödeme yapılabilir mi? Bu soruların yanıtları gerçek iş kurallarıdır ve çoğu zaman beklenmedik farklar çıkarır.
Son olarak sade tutun. Her kavramı değil, çözümün anlaşılması için gerekenleri çizin. Diyagram bir sayfaya sığmıyorsa alt alanlara bölün.
Alan modeli, kavramdan kurala doğru adım adım kurulur
Her adım bir öncekine dayanır
- Kavramları bulMetinlerdeki isimlerden sınıf adaylarını çıkar.
- Nitelikleri yazHer sınıfın taşıdığı bilgiyi ekle.
- İlişkileri çizDoğru ilişki türünü seç.
- Çoklukları belirleHer ucun alt ve üst sınırını yaz.
- Paydaşla doğrulaÇokluğun taşıdığı kuralı sor.
Sık hatalar ve kontrol listesi
Başlangıçta en sık yapılan hata, sınıf diyagramını veri tabanı şeması gibi çizmektir. Yabancı anahtar alanlarını ve teknik veri türlerini alan modeline koymak, iş paydaşını diyagramdan uzaklaştırır.
Bir diğer hata, her ismi sınıf yapmaktır. Tek bir değer taşıyan şeyler nitelik olmalıdır. "Sipariş durumu" bir sınıf değil, siparişin niteliğidir; ancak durumların kendi kuralları ve geçişleri varsa durum diyagramı ayrıca çizilir.
Başka bir hata, çokluğu yazmamak ya da varsayımla yazmaktır. Çokluksuz bir çizgi, kuralı belirsiz bırakır.
Kalıtımı gereğinden fazla kullanmak da yaygındır. Alt sınıflar yalnızca ad bakımından farklıysa kalıtım yerine bir tür niteliği yeterlidir.
Çizimi bitirmeden önce şu soruları sorun: Her sınıfın iş dilinde bir karşılığı var mı? Her ilişkinin ucunda çokluk yazılı mı? Bir paydaş diyagramı okuyup "bu doğru" ya da "şurası eksik" diyebiliyor mu? Alan sözlüğünde her sınıfın tanımı var mı?
Diyagramı paydaşla gözden geçirirken bir yöntem de örnek nesnelerle ilerlemektir. "Ayşe adlı bir müşteri, geçen ay verdiği siparişle birlikte bu diyagramda nasıl görünür?" sorusu, çokluk ve ilişki hatalarını soyut tartışmadan çok daha çabuk ortaya çıkarır. Örnekle çelişen bir kenar varsa diyagram düzeltilir.
Bu beceriyi Mindset programlarında nerede çalışırsınız
İş Analizi Uzmanlığı Sertifika Programı'nın gereksinim analizi ve tasarım tanımı başlığı, gereksinimleri modellerle ifade etme çalışmasına yakındır. Alan modeli, bu çalışmanın veri tarafındaki karşılığıdır ve analist için gereksinimleri tutarlı hale getirmenin araçlarından biridir.
Programın temel kavramlar ve teknikler başlıkları ise farklı model türlerini birlikte görmek, hangi sorunun hangi diyagramla ele alınacağını ayırt etmek isteyenler için bir çerçeve sağlar.
İlgili Mindset programı
İş Analistliği Uzmanlığı Sertifika Programı (BABOK® v3 Temelli)
Sık sorulan sorular
Sınıf diyagramı ile varlık ilişki diyagramı aynı şey midir?
Benzerdirler ancak aynı değildir. Varlık ilişki diyagramı veri tabanı tasarımına odaklanır ve tablo, anahtar gibi kavramlar taşır. Sınıf diyagramı ise nesne yönelimli bir bakış sunar; nitelikler ve işlemler birlikte düşünülür. İş analizinde kavramsal alan modeli olarak çizildiğinde bu diyagramlar birbirine yaklaşır.
İş analisti sınıf diyagramındaki işlemleri de yazmalı mı?
Alan modelinde genellikle gerekmez. Analist kavramları, niteliklerini ve ilişkileri netleştirir; işlemleri ise tasarım aşamasında geliştirici ekler. Yalnızca iş açısından kritik bir davranış, örneğin siparişin onaylanması, kavramın anlaşılması için gerekiyorsa işleme yer verilir.
Toplama ile bileşim arasındaki fark ne zaman önemlidir?
Parçanın bütün olmadan yaşayıp yaşayamayacağını belirlediğinde önemlidir. Bileşimde bütün silinince parça da silinir; bu, veri silme ve arşivleme kurallarını doğrudan etkiler. Emin değilseniz sade bir ilişkilendirme çizip paydaşla sahiplik sorusunu konuşabilirsiniz.
Sınıf diyagramı hangi araçla çizilmeli?
Aracın seçimi ikincildir; önemli olan kavramların doğru ve okunabilir olmasıdır. Beyaz tahta ya da kâğıtla başlayıp ardından bir modelleme aracında düzenlemek yaygın bir yoldur. Standart gösterim kullanıldığı sürece, diyagramı paylaştığınız kişi hangi araçla çizildiğini merak etmez.
Alan modeli ile veri sözlüğü birbirinin yerine geçer mi?
Hayır, birbirini tamamlarlar. Alan modeli yapıyı ve ilişkileri gösterir; sözlük her kavramın ve niteliğin tanımını, kabul edilen değerlerini yazılı olarak verir. Birlikte kullanıldığında paydaşlar hem şekle hem anlama aynı yerden bakabilir.