UML’i Nasıl Öğrenebiliriz?

Bugünlerde UML’den bahsediyorken nasıl öğrenileceğinden bahsetmezsem ayıp olur diye düşündüm ve bu yazıya başladım.

En iyi UML kitaplarından birisi, Martin Fowler’ın UML Distilled‘dir. 2003 yılında 3. sürümünü yapmış bu kitap dilimize de “Rafine UML” olarak çevrildi ve ben de zamanında satın aldım çeviriyi. Malesef pek çok çeviri kitap gibi ne İngilizce ne de yazılım modellemesi konusunda yetkin birisi tarafından çevrilmiş. Bu konuda bu yazıya da bakabilirsiniz. Dolayısıyla bu kitaptan yararlanmak isteyenler için öncelikle Ingilizce aslını tavsiye ederim.

UML Distilled, 200’den az sayfada UML 1.x’in her diyagramını, o diyagramları oluşturmak için gerekli çalışmalarla birlikte son derece anlaşılır bir şekilde sunmakta. Kitap, UML’in 2.x sürümlerini kapsamasa da hala bence UML ögrenmek için, bildiklerim arasında, bir numaraları kaynaktır. Bu kitap yazılım geliştirme sırasında modelleme amacıyla UML’in nasıl uygulanacağını çok güzel ve kısa bir şekilde anlatır.

Giriş seviyesinde UML 2.0’i ele alan “Learning UML 2.0” ise O’Reilly’nin hem anlaşılır hem de pratik kitaplarından bir diğeri.

UML konusundaki bir başka güzel kitap da Meilir Page-Jones‘ın “Fundamentals of Object-Oriented Design in UML“dir. 2000 yılında piyasaya çıkmış olan bu kitap nesne-merkezli tasarımı nefis bir şekilde anlatırken UML’i de okuyucusuna öğretmektedir. Zaten Page-Jones eskiden bu yana çok teknik ve derin tasarım kitapları yazmaktadır. Bu kitap da nesne-merkezli paradigmanın en temel kavramalrından olan encapsulation, cohesion ve coupling kavramlarını akademik ve pratik olarak açıklamaktadır.

UML kullanarak yazılım geliştirme konusunda bir başka güzel yazar ise ABD’den benim de hocam olan Hasan Gomaa‘dır. Kendisinin “Designing Concurrent, Distributed, and Real-Time Applications with UML” isimli kitabını ben yıllarca elimden düşürmedim. Zaten kitabı da GMU’da verdiği “Software Modeling and Architectural Design” isimli ders sayesinde almıştım. Hasan hoca bu kitabın yeni sürümünü “Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures” ismiyle 2011 yılında çıkardı. Bu kitabını okuttuğu dersinin ikinci kaynağı da yukarıda bahsettiğim UML Distilled’dir. Hasan hoca bir akademisyen olmasına rağmen kitapları son derece pratik ve uygulanabilir bir şekilde yazılmıştır.

Scott Ambler’ın “Elements of UML 2.0 Style” kitabı da küçük ama hoş bir kitaptır. Daha etkin UML kullanımmak amacıyla okuyabilirsiniz.

Türkçe olarak UML üzerine yazılmış tek bir kitap biliyorum: UML ile Nesne Tabanlı Çözümleme ve Tasarım. Yazarı Bora Güngören olan bu kitap, dilimizdeki nadir güzel yazılım kitaplarından birisi. Kitap adından da anlaşılacağı gibi aslen UML üzerine değil; nesne tabanlı çözüleme (analiz) ve tasarımı ele alırken tabi olarak UML’i kullanıyor. Kitap da zaten temelde kullanım şekli (use case) tabanlı analiz, yazılım mimarisi tasarımı ve fonksiyonel tasarıma odaklanmış durumda. Kitap 2009 yılında basılmış ama yazarının yeni baskısı üzerine çalıştığını biliyorum.

Bahsettiğim kitapların içeriğinden de anlayacağınız gibi, UML’i tek başına notasyon olarak öğrenmeye çalışmak çok da anlamlı değildir. UML ancak yazılım geliştirme sürecinin farklı noktalarında anlam kazanır. Bu yüzden her ne kadar “The Unified Modeling Language Reference Manual” ya da “The Unified Modeling Language User Guide” vb. isimli kitaplar olsa da kitapların ciddi bir kısmı bir UML referans kitabından öte analiz ve tasarım kitaplarıdır.

Bu kitapların büyük çoğunluğunu internette online olarak da bulabilirsiniz.

Bol modelli ve UML’li projeler dilerim.

Bu yazı toplam 1919 defa görüntülenmiştir.