Birleşik Modelleme Dili Sınıf ve Sıra Diyagramları

 

"Hiç kimse, UML'nin yaratıcıları bile, onun tamamını anlamıyor ya da kullanmıyor." (Fowler, 2004)

Genel olarak diyagramların tartışılmasından sonra, bu bölüm iki yaygın Birleşik Modelleme Dili (UML) diyagram türünü kapsar: sınıf diyagramları ve sıra diyagramları.

Diyagramlar Nasıl Yardımcı Olur?

Diyagramlar en az iki önemli şekilde yardımcı olabilir:

  1. Oluşturacağınız yazılımı planlamanıza yardımcı olabilirler. Yazılımınızı planlamak için diyagramlar oluşturduktan sonra, bunları geliştirme ekibine neyin uygulanacağını / uygulanması gerektiğini iletmek ve planlarınızın iyi olup olmadığına karar vermek (değerlendirmek) için kullanabilirsiniz (örneğin, açıktır, mantıklıdır, projenizin istenen kalite özelliklerini yansıtır, vb.)
  2. Halihazırda oluşturduğunuz yazılımı tanımlamanıza yardımcı olabilirler. Yazılımınız zaten oluşturulmuşsa, diyagramlar dokümantasyon için ve yukarıda belirtildiği gibi yazılımınızın ne kadar tatmin edici olduğunu değerlendirmek için iyidir. Diyagramları dokümantasyona dahil etmenin amacı, yazılımınız hakkında birilerine bir şeyler iletmektir. İletişim kurmaya çalışabileceğiniz pek çok farklı kitle vardır.

Diyagramlarınız için örnek hedef kitleler arasında projedeki diğer geliştiriciler, amiriniz veya yöneticiniz, ekibe katılmak isteyebilecek geliştiriciler, sisteminizle entegre olmak isteyen geliştiriciler, meraklı son kullanıcılar ve yazılım mühendisliği öğrencileri yer alır. Kullandığınız entegre geliştirme ortamına (IDE)/araçlarına bağlı olarak, diyagramlar kodunuzdan otomatik olarak oluşturulabilir, bu da dokümantasyon bakımını daha kolay ve daha olası hale getirmeye yardımcı olur.

Diyagramlar Neyi İyi Yapmalı?

Diyagramların faydalı olabilmesi için hedef kitlenize açık ve uygun bir ayrıntı düzeyinde iletişim kurması gerekir. Hedef kitleniz diyagramınızı anlamıyorsa veya yanlış anlıyorsa, diyagramınız başarısız olmuştur.

UML Nedir?

Birleşik Modelleme Dili, diyagramlar aracılığıyla yazılımı tanımlamak ve tasarlamak için kullanılan bir grafik gösterim ailesidir. Özellikle nesne yönelimli yazılımlar için geçerlidir, ancak UML'nin bazı bölümleri birçok yazılım türüne uygulanabilir. Her birinin belirli bir amacı olan farklı UML diyagramları için farklı UML notasyonları kullanılır. UML ilk olarak 1994 yılında yayınlanmış, 1997 yılında Object Management Group'un (OMG) bir standardı haline gelmiş ve 2005 yılında bir ISO standardı olmuştur. UML şu anda 2. sürümdedir.

Neden UML Kullanılmalı?

UML kullanarak diyagram oluşturmanın birçok faydası vardır:

  • UML size (1) uygulamanızın yapılandırılmış olması için yazılım tasarlama notasyonu ve (2) tasarımın iyi olup olmadığını değerlendirebilmeniz için mevcut yazılım tasarımını tanımlama notasyonu verir.
  • UML diyagramı sizi yazılım tasarımı hakkında yapılandırılmış bir şekilde düşünmeye zorlar. İnsanlar zihinlerinde yazılım tasarlamaya çalıştıklarında, tasarımın düşünmek istedikleri yönlerini düşünerek bu konuda özensiz davranabilirler. UML sizi yazılım tasarımının daha zor kısımlarıyla yüzleşmeye teşvik edebilir.
  • UML diyagramı, yazılımın farklı tasarım seviyelerinde (örneğin, sınıf seviyesi, bileşen seviyesi, paket seviyesi) bir görünümünü verir.
  • UML, yazılım profesyonelleri arasında ortak bir dil sağlar. UML iyi bilindiği için, geliştiricilere ve yöneticilere yazılım hakkında ayrıntılı iletişim kurmanın bir yolunu sunar. Bununla birlikte, UML gösteriminin nasıl kullanıldığına dair farklılıklarla karşılaşmayı bekleyin - UML gösterimini hatırlamak zor olabilir; geliştiriciler hatalar yapacak veya gösterimi kendi düşünce tarzlarına uyarlayacaklardır. Notasyonunuzun ne anlama geldiğine dair bir açıklama veya gösterge sunmak yardımcı olabilir.
  • UML diyagramları, kodlara bakmalarını istemeden insanlara yazılımınızın yapısı hakkında bilgi vermenin bir yolunu sunar. Bu, örneğin yeni geliştiricileri işe alırken veya yöneticilerle iletişim kurarken güzeldir.

Neden UML Kullanmayalım?

Bazı IDE’ler kodunuzdan otomatik olarak bazı UML diyagramları oluşturur. Bu güzel bir özelliktir çünkü kodunuz değiştiğinde diyagramınızı yeniden oluşturmak kolaydır. Bununla birlikte, oluşturulan diyagramlar bazen istediğinizden daha fazla ayrıntıya sahip olabilir, bu da onları iletişim için daha az iyi hale getirir.

UML şeması oluşturmanın bazı dezavantajları vardır:

  • İnsanlar UML gösterimlerini çeşitlendirme eğilimindedir, bu da kafa karışıklığına neden olabilir. Bu sorundan kaçınmak için bazı ipuçları (1) notasyonunuzu basit tutmak ve (2) daha karmaşık notasyonları açıklamaktır.
  • UML gösterimini doğru yapmak çok zaman alabilir. Diyagramların iletişim kurmak için olduğunu unutmayın. Diyagramı oluşturmak, kodu farklı bir şekilde açıklamaktan daha uzun sürüyorsa, diyagram yardımcı olmuyor demektir.
  • UML diyagramları çok fazla bakım gerektirebilir. Yazılım tasarımınız sık sık değişiyorsa, doğru olmalarını istiyorsanız UML diyagramlarınız da değişmelidir. Neyse ki, bazı IDE'ler kodunuzdan bazı UML diyagramları oluşturabilir.

Sınıf Diyagramları

Bir sınıf diyagramı, bir sistemin sınıflarını ve bunlar arasında var olan statik ilişkileri tanımlar. Sınıf diyagramları ayrıca bir sınıfın özelliklerini ve işlemlerini de gösterir. Özellikler bir sınıfın yapısını (örneğin, örnek değişkenler), işlemler ise sınıf tarafından sağlanan işlevselliği (örneğin, yöntemler; Fowler, 2004) temsil eder.

Şekil 4.1'de örnek bir sınıf diyagramı gösterilmektedir. Diyagramda, üç sınıf arasında ilişkiler vardır: Customer, Order ve SharedOrder. Bir Siparişin bir Müşterisi vardır, ancak aynı Müşteri birden fazla Siparişte yer alabilir. SharedOrder, birden fazla Müşteriye sahip olabilen bir Sipariş türüdür. Sınıfların öznitelikleri (örn. id) ve işlemleri (örn. getId()) vardır.

Şekil 4.1 Basit Sınıf Diyagramı

Bir sonraki bölüm, örnekte gösterilen gösterimsel unsurların her birini açıklamaktadır.

UML Sınıf Diyagramı Gösterimi

Bu bölüm, en yaygın UML sınıf diyagramı gösterimlerinden bazılarını içerir.

Şekil 4.2 Not

Notlar. Notlar, sınıf diyagramlarına yorum yerleştirmek içindir.

Şekil 4.3 Sınıf

Not. Nitelikler bir sınıf kutusu içinde listelenen özelliklerdir, işlemler ise yöntemlerdir. + işareti genel bir yöntemi, - işareti özel yöntemi ve # işareti korumalı yöntemi gösterir. Notasyon, öznitelik türlerini (örn. int, Token, vb.), yöntem parametrelerini ve dönüş türlerini ve öznitelikler için varsayılan değerleri içerir.

Şekil 4.4 İlişkilendirme

Not. İlişkilendirme, bir sınıfın diğer sınıfın nesne(ler)ine bir özellik şeklinde referans içermesi anlamına gelir. Bu örnekte, Class1'in Class2'ye referans verip vermediği veya tam tersinin olup olmadığı bize söylenmemektedir.

Şekil 4.5 Tek Yönlü İlişkilendirme

Not. Ok, Sınıf1'in bir Sınıf2'ye sahip olduğunu gösterir.

Şekil 4.6 Özellik Adı ile Tek Yönlü İlişkilendirme

Not. Sınıf1'in örnek1 adında bir özelliği vardır. Bu, Class2'nin bir örneğidir.

Şekil 4.7 Özellik Adı ve Hedef Çokluğu ile Tek Yönlü İlişkilendirme

Not. Sınıf1, Sınıf2'nin sıfır veya bir örneğini içeren instance1 adlı bir özelliğe sahiptir.

Şekil 4.8 Özellik Adı, Hedef Çokluğu ve Kaynak Çokluğu ile Tek Yönlü İlişkilendirme

Not. Sınıf1'in sıfır veya daha fazla örneği, Sınıf2'nin sıfır veya bir örneğini içeren instance1 adlı özelliklere sahiptir.

Şekil 4.9 Çift Yönlü İlişkilendirme ve Hedef/Kaynak Çokluğu

Not. Sınıf1, Sınıf2'nin sıfır veya daha fazla örneğine sahiptir. Sınıf2, Sınıf1'in tam olarak bir örneğine sahiptir.

Şekil 4.10 Miras

Not. Sınıf2, Sınıf1'in bir alt sınıfıdır; Sınıf2 bir Sınıf1'dir.

Gerçek Dünyadan Sınıf Diyagramı Örnekleri

Bu PDF'ler gerçek yazılımlar için sınıf diyagramları içerir.

Bağlantılardan herhangi biri bozuksa Wayback Machine'i deneyin.

Sıra Diyagramları

Herhangi bir diyagram oluştururken, hedef kitlenizi ve ne iletmeye çalıştığınızı bilin. Eğer hedef kitleniz bir insansa, küçük ayrıntıları kavramak için sınırlı kapasiteleri (ve muhtemelen sınırlı zamanları) vardır. Onlara neyin en önemli olduğunu anlayacakları şekilde göstermeye odaklanın.

Sıra diyagramı, nesneler arasındaki etkileşimleri açıklar. Diyagram genellikle tek bir kullanım durumunu veya senaryoyu gösterir. Sıra diyagramları bir tür etkileşim diyagramıdır ve nesne uygulama ayrıntılarını göstermek için o kadar iyi değildir.

Bu bölümde örnek bir sıra diyagramı ve yaygın olarak kullanılan sıra diyagramı notasyonu verilmektedir. Daha ayrıntılı bilgi için Fowler'a (2004) bakınız.

Şekil 4.10'daki örnek sıra diyagramı, Yönetici, Çalışan ve Sipariş sınıflarının örnekleri arasındaki etkileşimleri temsil etmektedir. Yönetici Çalışandan bir durum güncellemesi ister, Çalışan buna uyar, Çalışan bir Sipariş oluşturur, Yönetici Çalışandan dükkanı kapatmasını ister, Çalışan Siparişi kapatır.

Örnekte, sütunlar (katılımcılar olarak adlandırılır) nesnelerdir, ancak durum her zaman böyle değildir. Örneğin, bir katılımcı bir kullanıcı olabilir. Kullanıcılar, eğer insan iseler, bazen çubuk figürler olarak temsil edilirler (kutu olmadan). Nesne olmayan bir başka olası katılımcı da bir veritabanı olabilir (bazı durumlarda veritabanı bir nesne olarak kabul edilir). Diyagramları oluştururken en önemli şey kurallara veya geleneklere uymak değil, izleyicilerinizle iletişim kurmaktır.

Şekil 4.11 Basit Sıra Diyagramı

UML Sıra Diyagramı Gösterimi

Şekil 4.12 Katılımcı

Not. Bir sekans diyagramının "sütunları" birer katılımcıdır. Katılımcılar genellikle nesnelerdir. Katılımcının adı kutuya yazılır.

Şekil 4.13 Yaşam Hattı

Not. Dikey kesikli çizgi katılımcının yaşam süresini temsil etmektedir. Üst kısım yaşamın başlangıcı, alt kısım ise sonudur. Katılımcı silindiğinde yaşam sona erer.

Şekil 4.14 İleti

Not. Bir katılımcıdan diğerine etkileşim, oklu düz çizgi ile gösterilir. Genellikle bir yöntem çağrısıdır.

Şekil 4.15 Etkinleştirme Çubuğu

Not. Yaşam çizgisi üzerindeki kutu katılımcının ne zaman aktif olduğunu gösterir. Yöntemin çağrı yığınında olduğunu gösterir.

Şekil 4.16 Geri Dönüş

Not. Oklu kesikli çizgi yöntem dönüşünü gösterir. Yalnızca etkileşim hakkında önemli bir şeyi iletmeye yardımcı olduğunda kullanın.

Şekil 4.17 Kendi Kendine Çağrı

Not. Kendini çağıran yöntem. Oklu düz çizgi katılımcının kendi yaşam çizgisine işaret eder.

Şekil 4.18 Silme işlemi

Not. Katılımcının yaşamının sonu. Yaşam çizgisi üzerinde bir X işareti ile gösterilir.

Gerçek Dünyadan Sıra Diyagramı Örnekleri

Bu PDF'ler gerçek yazılım için sıra diyagramları içerir.

Bağlantılardan herhangi biri bozuksa Wayback Machine'i deneyin.

Özet

UML diyagramları, kodunuzun nasıl çalıştığını anlatmak için yardımcı olabilir. Sınıf diyagramları ve sıra diyagramları yaygın olarak kullanılan iki UML diyagramı türüdür. Her diyagram türü kod tasarımının bir kısmını vurgularken diğer kısımlarını dışarıda bırakır. UML diyagramları insanlarla iletişim kurmak içindir, bilgisayarlarla değil.




Yorumlar

Bu blogdaki popüler yayınlar

Gelişim ve Kalıtım Eleştirel Düşünme Soruları

Periodonsiyum Klinik Uygulamalar

Dentin Oluşumu