UML (Unified Modeling Language) Nedir

       UML , anlaşılması güç yazılımları basit bir dille ifade etmeye yarayan mühendislik tekniğidir. UML sayesinde yazılım sürecindeki hatalar kolayca fark edilir ve en düşük seviyeye indirilir. Bu da riskleri minimize ettiğinden zaman ve maliyet açışından kazanç sağlar. Ayrıca UML sayesinde yazılımın tamamı basit bir dille ve şekillerle anlatıldığından tasarım aşamasında ayrıntıları görmemizi sağlar. Yazılımı dokümante etmemizi sağlar bu da bize yapacağımız yazılımı daha yazmaya başlamadan kolayca tanıtabilmemizi sağlar.

       UML diyagramları daha yazılım başlamadan tasarlanır ve yazılımcılara kodlama için avantaj sağlar. Yazılımda tekrar eden kodlamalar kolayca ayırt edilebilir ve bu sayede tekrar tekrar kodlama yapmak yerine aynı işi gören kodlamalar tek bir seferde yazılır zaman ve maliyet açısından kazanımlar getirir. Yazılımda oluşabilecek mantıksal hataların daha kolay görülmesini ve giderilmesini sağlar.

      Yazılım daha başlamadan UML diyagramları çizildiğinde, yapılan işin tamamını görebileceğimiz için, nerede hatalar oluşabilir?, performans açısından nerelerde kayıplar yaşanabilir?, yazılımın hangi kısmı ne kadar bellek kullanır? gibi soruların cevaplarını bulma şansını elde ederiz

       Büyük ölçekli yazılımlarda bir değişiklik yapmak istediğimizde UML diyagramları sayesinde nerelerde değişiklik yapmak istiyorsak kolayca görebiliriz ve sistemin akışını bozmadan yapmak istediğimiz değişiklikleri kolayca yapabiliriz. Ayrıca UML diyagramları yapılmış olan yazılımlarda yazılımcılar için büyük kolaylıklar sağlar. Aslında UML diyagramı ile yazılım dokümante edilmiş olur. Bu da kodları düzenlemek isteyen yazılımcı için bulunmaz bir nimettir. Yaılımcı bütün bir sistemi incelemek yerine UML diyagramını inceleyerek sistemin tamamını anlama şansı bulur. Yazılımı yazan diğer yazılımcılar da aynı şekilde UML diyagramlarından yararlanarak sistemi daha kolay anlayabilirler.

       9 tane UML diyagramı vardır. Bunlar :

       Kullanıcı ve sistem arasındaki etkileşimi anlatan Use Case Diyagramı. Use case diyagramı aslında sistemin kullanıcı gözünden bakılarak yapılan bir modellemedir. Genel hatlarıyla sistemin ne yapacağını anlamamıza yarar. Örneğin kullanıcının üye olarak yada üye olmadan yapabileceği işlerin diyagramını çizmek isteyebiliriz. Kullanıcı üye olmadan indirme işlemleri yapamaz, makalelerin sadece başlıklarını görebilir yada üye olursa indirme yapabilir makalelerin tamamını görebilir makalelere yorum yapabilir gibi. Use case diyagramlarında aktörleri belirtmek için şekil olarak cin ali kullanılır ve use caseleri anlatmak için oval şekli kullanılır.

       Classlar ve claslar arasındaki ilişkileri anlatan Class Diyagramı. Class diyagramları yazılımda kullanılacak classların işlev ve özelliklerini gösterirler. Bu sayede yazılımda kullanılacak olan veya kullanılan classların ne işe yaradıkları hakkında blgi sahibi olmamızı sağlarlar. Class diyagramında gösterim olarak dikdörtgen şekli kullanılır ve bu dikdörtgen şeklinin en üst kısmında classın adı olur. Class adının altında classın özellikleri, onun altında da işlevleri olur.

        Nesnelerle ilgili bilgileri barındıran Object Diyagramı.

        Sistemin davranışlarını gösteren State Diyagramı.

        Nesnelerin yaptıkları işleri zaman bağlantılı gösteren Sequence Diyagramı. Burada zaman bağıntılı derken nesnelerin yaptıkları işlerin ard arda gerçekleşmesi ve bunun bellirli zamanlarda gerçekleşmesi kastedilmektedir.

        Nesnelerin birbirleriyle olan ilişkilerini gösteren Colloboration Diyagramı.

        İş akışını gösteren Activity Diyagramı.

        Yazılımın alt modüllerini ve aralarındaki iletişimi gösteren Component Diyagramı. 

         Sistemde kullanılan donanımlarla , bu donanımların içinde yer alan bileşenlerin yazılımla olan ilişkisini gösteren Deployment Diyagramı


(Yazılarımda başka sitelerden alıntılar olabilir. Okuduklarımdan anladığım kadarını burada anlatmaya çalıştım )

Yorumlar

Bu blogdaki popüler yayınlar

Spring Boot ve Hibernate Anotasyonları

CI(Continuous Integration) / CD(Continuous Delivery)

Tasarım Desenleri(Design Patterns) Nedir?