UML Nedir?

Merhaba arkadaşlar, size bu yazımda UML(Unified Modeling Language)’ den bahsedeceğim. UML bir programlama dili değildir, aksine bir modelleme dilidir. Bir projenin her türlü bileşeninin ve bu bileşenlerin aralarındaki ilişkilerin görsel olarak ifade edilebilmesini sağlayan bir standarttır. Büyük çaplı projelerde karmaşık yapıları hem geliştirme takımına kolayca aktarmak hem de projenin mimarisini daha proje geliştirilmeye başlanmadan önce belirlemek için oluşturulmuştur.

UML, programlama dillerinden bağımsızdır, temelde bir notasyon dilidir. Ancak görsel modelleme yaparak, yazılımın daha görülebilir hale gelmesini sağlarız. OOP yaklaşımını kullandığı için temel OOP ilişkilerini bile tanımlamamız mümkündür. Çalıştırılabilir bir dil olmamasına rağmen, Executable UML adı altında birkaç çalışma vardır. UML ile geliştirdiğiniz modellerden size istediğiniz dilde, iskelet bir kod bütünü oluşturma imkanı verir.

UML, bir yazılımın geliştirme sürecinde yer alan farklı yönelimleri modelleyecek farklı diyagramlara sahiptir.

uml 1

UML sadece bir projenin modellenmesi için kullanılmaz. Aslına bakarsak geliştirilmiş UML araçları, UML ‘den çok kullanılmaktadır. UML araçlarıyla modelleme dışında, reverse-engineering de yapmanıza olanak tanır. Yeni bir proje devraldınız ya da bir geliştirme ekibine katıldınız diyelim. Bu durumda proje için “büyük resim” e hakim olmanız gerekmekte, tabi bunun için debug yapabilir ve ayrıntılı şekilde öğrenebilirsiniz. Ancak reverse-engineering ile oluşturulmuş sequence diyagramları kodun genel akışını anlamanızı kolaylaştırır. Yani zamandan tasarruf ve tam hâkimiyet sağlar. Ayrıca sınıf ilişkilerini anlamak için dosya-dosya gezmek de oldukça yorucu oluyor. Ancak bu sizi tam anlamıyla bir UML kullanıcısı yapmaz, siz sadece UML okuyorsunuz. Tabi bunun kötü bir yanı yok.

UML kullanmak, UML diyagramları da yazabilmektir sanırım. Peki UML kullanmak bize gerçekten ne kolaylık sağlar? Yazılım modellemeyi zihinde yapmak en pratiği ancak, bunun da bir sınırı var; aklınıza gelen bir özellik ya da önemli bir hata kurtarma durumu, sınıf sayılarının ve ilişkilerinin fazla olması, bu sınıfların genel kod işleyişi gibi birçok durum var. Bunları takım arkadaşlarınıza anlatmak da kat kat daha zordur. Çünkü somut bir kavram yoktur hâlihazırda, hepsi sizin düşüncelerinizde anlamlıdır. UML kullanarak farklı düşünceler bir araya gelme imkânı bulur, daha iyi çözümleri beraberinde getirir. Ancak UML diyagramlarının hepsini kullanayım de mükemmel bir yazılım geliştireyim sevdasına da düşmemek gerek. UML daha iyi bir yazılım geliştirmenize dolaylı yollardan yardımcı olur ancak asıl işlevi bu değildir. Bu yüzden esas nokta her zaman sizsiniz.

UML diyagramları iki ana başlığa ayrılmıştır. Structure(Yapısal) ve Behaviour(Davranışsal) diyagramlar.

İlk olarak sıklıkla kullanılan ve oldukça faydalı bir diyagram olan Use Case ‘i ele alalım. UC diyagramları projeye ilk bakıldığında görünen davranışları ve fonksiyonlarını, projenin bu davranış ve fonksiyonları üzerinden etkileşimde olduğu insan ya da insan olmayan faktörlerle birlikte kavramsal olarak ifade edilmesidir. Yani projenin ana işleyişi ve özellikleri bu diyagramlardan anlaşılır. Ancak bu diyagramlar tek başına yeterli değildir.

uml 2

Şimdi de diğer bir popüler diyagram olan Activity diyagramlarını ele alalım. Aktivite diyagramı UC diyagramının aktör-sistem etkileşiminin daha iyi betimlenmek için kullanılır. Karmaşık akışlara sahip UC diyagramları için olmazsa olmazdır. Özellikle görseli geliştiricilere hitap etmektedir.

uml 3

Temel olarak UC ve Activity diyagramları, projenin analiz aşamasında oluşturulan ve sistemin davranışsal özelliklerini içeren diyagramlardır.

EOC(End Of Code)  

Yorum bırakın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.