uml etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
uml etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

15.12.10

UML Diyagramları

YAPISAL DİYAGRAMLAR

  Sınıf (Class) diyagramı: Class odaklı tasarımlarda kullanılır. Sınıfların özelliklerini birbirleri arasındaki ilişkiyi göstermede kullanılır. Özellikle nesne yönelimli projelerde tercih edilirler. Kodlamada kolaylık sağlarlar.



  Nesne (Object) diyagramı: Bir nesne(object) sınıfın (class) bir örneğidir. Bu tür diyagramlarda sınıfın yerine gerçek nesneler kullanılır. Bu sayede modellenen sistemin yapısının belirli bir andaki bütün ya da kısmi  görünüşü tarif edilir.



  Bileşen (Component) diyagramı: Bir yazılım projesi birden fazla bileşene yani component’e ayrılarak programcılar arasında paylaştırılabilir. Bu component’ler programcılar tarafından birbirlerinden bağımsız geliştirilirler ve en sonunda da birleştirilirler. Bu birleştirme işlemi component diyagramındaki gibi olmalıdır.


File:Component-4.png

  Paket (Package) diyagramı, bir sistemin hangi mantıksal gruplara bölündüğünü ve bu gruplar arasındaki bağımlılıkları betimler. Fazla detaya inmeden genel hatlarıyla modelleme yapılır, bu diyagram sistemin temel mantığı oluşturulurken kullanılmalıdır.


File:Package import-1.png

  Dağılım (Deployment) diyagramı, sistemde kullanılan donanımları, bu donanımların içinde yer alan bileşenleri ve bu bileşenlerin arasındaki bağlantıları gösterir.
  
File:UML Diagramme Deploiement.gif

  Birleşik Yapı (Composite Structure) diyagramı: bir sınıfın iç yapısını ve bu yapının mümkün kıldığı iletişimleri tarif eder. Bu daha detay bir diyagramdır. Deneyimsiz bir programcıya bu diyagram deneyimli bir programcı tarafından hazırlanıp bir yol haritası olması için verilebilir.

File:Composite Structure Diagram.png

DAVRANIŞ DİYAGRAMLARI

Kullanım Senaryosu (Use-Case) diyagramı: Aktörler vardır. Bu aktörlerin yaptıkları ve yapamadıkları şeyler bu diyagramla ifade edilir. Bu diyagramı oluşturmanın faydaları:

·         Müşteri ile geliştiriciler arasında iletişimi sağlamak
·         Sistemin sınırlarını belirlemek
·         User Guide oluşturmada yardımcı olmak

  Durum (Statechart) diyagramı: Bir nesnenin sahip olacağı tüm durumların modellendiği diyagramdır. Nesneler çeşitli durumlarda bulunabilirler ve birtakım olaylar sonucunda bir durumdan başka bir duruma geçebilirler ve bu geçiş esnasında başka olayların meydana gelmesini tetikleyebilirler. Tüm bu ilişkiler bu durum diyagramıyla ifade edilirler. Daha çok sistemin genel işleyişinde mantıksal bir hata yapılmaması için kullanılan diyagramlardır.

 Faaliyet (Activity) diyagramı: Modellenen sistemdeki iş akışını adım adım gösterir. Kapsamlı bir şekilde komut akışını tarif eder. En önemli özelliği paralel davranışları desteklemesidir. Multithreaded uygulamalar geliştirirken uygulamanın algoritmik mantığı bu diyagramla gösterilebilmektedir. Karmaşık algoritmalarda da tercih edilebilecek bir diyagramdır. Bu diyagramlar sayesinde gereksiz yere ardışık yapılan işlemler rahatlıkla görülebilir ve bunların paralel yapılması sağlanabilir.



 Sıralama (Sequence) diyagramı: Bir uygulamada nesnelerin birbirleri ile olan ilişkisi zamana göre değişiyorsa, statik bir ilişkiden bahsetmek mümkün değilse, ilişki yapısı dinamikse bu diyagramlar kullanılır. Nesnelerin yaşam süreleri de bu diyagramla gösterilir.

 İletişim (Communication) diyagramı: Sınıf, Sıralama ve Kullanım Senaryoları diyagramlarındaki bilgileri kullanarak sistemin hem statik yapısını hem de dinamik davranışını gösterir. Bu üç diyagramın üzerinde, onları kapsayıcı nitelikte bir diyagramdır ve sistemi daha genel hatlarıyla ortaya koymada kullanılır.

 Etkileşime Bakış (Interaction Overview) diyagramı: Farklı etkileşim diyagramları kullanarak, bunlar arasındaki komut akışını gösterir. Bir başka deyişle, elemanları etkileşim diyagramları olan faaliyet diyagramlarıdır.

  Zaman Akış (Timing) diyagramı: Odağın zaman kısıtlamaları olduğu etkileşim diyagramıdır. Nesnelerin bir zaman akışı içerisinde birbirleri ile etkileşimini göstermede kullanılır.

 KAYNAKLAR


1-) UML Weekend Crash Course, Thomas A. Pender, Wiley Publishing Inc., 2002.
2-) UML Bible, Tom Pender, John Wiley, 2003.
3-) UML Distilled: A Brief Guide to the Standard Object Modeling Language, Martin Fowler, Kendall Scott, Addison Wesley, 1999.
4-) The Elements of UML Style, Scott W. Ambler, Cambridge University, 2003.
5-) Visual Modeling with Rational Rose 2000 and UML, Terry Quatrani, Addison Wesley,1999.
6-) The Object Primer 3rd Edition: Agile Model Driven Development with UML2, Scott W. Ambler, 2003.
7-) UML in a Nutshell , Sinan Si Alhir, O’Reilly, 1998.
8-) UML 2 for Dummies, Michael Jesse Chonoles and James A. Schardt, Hungry Minds, 2003.
9-) www.adtmag.com/article.asp?id=2656
10-) www.visualuml.com/whitepapers/UML%20collaboration%20diagrams.pdf


Konuyla ilgili olarak aşağıdaki yazılarıma da bakabilirsiniz:


9.12.10

UML Kullanmanın Avantajları

File:UML Diagrams.jpg
UML büyük projelerde kesinlikle kullanılması gereken bir modelleme dilidir.  
(Bakın: UML Nedir?

Bu dilin oldukça kapsamlı olduğunu ve bir yazılım projesinde gerekecek her modellemeyi bünyesinde barındırdığını ayrıca belirtmek isterim.  UML kullanmanın faydalarını aşağıdaki gibi sıralayabiliriz:



  • Tasarım ve analiz UML ile yapıldıktan sonra ve mantıksal hatalar ayıklandıktan sonra kodlama işi oldukça kolaylaşacaktır.
  • Takım çalışması yapmak kolaylaşacaktır.
  • Ekipte meydana gelecek değişiklikte yeni gelenlere projenin anlatılması daha rahat olacaktır.
  • Proje başkalarına devredilirken diyagramlar devralanın projeyi rahatlıkla anlamasını sağlayacaktır.
  • Olası tüm senaryolar baştan belirlendiği için programın tutarlılığı artar.
  • Tekrar kullanılabilecek kodların sayısı artar. Bu da maliyeti düşürür. 

Bir sonraki yazımda UML diyagramlarından da bahsetmek istiyorum, özellikle de favori diyagramım olan user case diyagramlarından. Projelerinizde UML kullanırsanız asla pişman olmazsınız, ancak dikkat etmeniz gereken bir nokta var: UML kullanmış olmak için kullanılmamalıdır, sağlayacağı fayda harcatacağı emekten daha az olmamalıdır.  Örneğin çok küçük bir yazılım projesinde gereksiz diyagramlar kullanıldığında bu vakit ve emek kaybına yol açabilir. Amaç kaliteli yazılım geliştirmektir, UML ise sadece araçtır, bunu unutmayalım. 

30.9.10

UML Nedir?



UML (Unified Modelling Language, Birlesik Modelleme Dili) yazılım modellenmesi ve planlanması için kullanılan bir dildir. UML konusunun anlasılabilmesi için ilk önce modelleme kavramının iyi anlasılması gerekmektedir. Modelleme karmasık bir sistemin kagıt üzerinde sembollerle bir benzerinin çıkartılması, karmasık bir sistemin basite indirgenerek ifadesi seklinde tanımlanabilir. Örnegin Gençlik Parkı üzerinde bir düzenlemeye gidilecegi zaman tasarımcılar Gençlik Parkı’nın bir modeli üzerinde çalısırlar, yapacakları degisikliklerin boyut ve biçimine bu modeller üzerinde karar verirler. Burada tek bir modelden degil birden fazla modelden söz etmek mümkün. 3 boyutlu bir makette model olabilecegi gibi kagıt üzerindeki bir çizim de model olabilir. Burada modellemenin çesitliliginde bahsetmek mümkün, yani bir sistem birden fazla yöntemle modellenebilir. Gençlik Parkı’nda bir degisiklik yapmadan önce model üzerinden çalısılacagından bahsettik. Peki degisikligi Ankara Maltepe Zeytin Cafe’nin yanındaki parkta yapmayı düsünseydik böyle bir modellemeye ihtiyaç duyacak mıydık? Elbette modelleme olmaksızın küçük bir parkta degisiklik gayet rahat yapılabilir. Ancak isler büyüdükçe modelleme kaçınılmaz hale geliyor.


Büyük yazılım projeleri için de modelleme konusu parkların modellenmesinden farksızdır. Modelleme olmaksızın büyük bir projeyi saglıklı bir sekilde hayata geçirmek mümkün degildir. Günümüzde basarıya ulasamamıs büyük yazılım projelerinin çogu daha modelleme asamasındaki hatalardan kaynaklanmaktadır. Modellemede dikkat edilecek baslıca hususlar: modelleme yönteminin iyi seçilmesi, modellerin farklı detay seviyelerine sahip olması, modellerin gerçekçi olması ve farklı modelleme yöntemlerinin birlikte kullanılmasıdır.

UML dünya çapında kabul görmüs, yazılım gelistirilirken kullanılan bir modelleme dilidir. Modelleme dillerinin gelisimi asagıda görülmektedir.















































                                                                                                                              M.Ali      
Related Posts Plugin for WordPress, Blogger...