nesneye dayalı tasarımda sınıflar arasında kaybolup kaosa girmemek için önceden tasarımın temiz bir şekilde modellenmesi için geliştirilmiş faideli bir gösterim biçimi. yararlı olduğunu düşünen herkes kullanabilir, coder, programmer ya da software engineer olması pek fark etmez bu açıdan.
omgtarafından oluşturulan bir modelleme dilidir.özellikle çok geniş çaplı yazılım projelerinde kodlamaya geçmeden önce projenin analizi yapılır,gereksinimler belirlenir.use case senaryoları,akış diagramları,state transition diagramları,class ve object diagramları hazırlanır.uml işte bunların yapılmasını sağlayan standartlardır.bence bir projeye başlamadan önce bu adımlar kesinlikle uygulanmalıdır,zamandan tasarruf sağlar.
bir uygulamanın ve geliştirilme aşamasının çeşitli açılardan modellenmesi için kullanılan, standartlaştırılmış bir görsel dili tanımlar. bu dil, bir uygulamanın*değişik yapılarının görüntülenmesi*, belirtilmesi*, inşaası* ve belgelenmesi* için kullanılabilir ve bu işler için 3 yapıtaşı esas alınmıştır.
· things: structural, behavioral, grouping ve annotational olarak 4 tip şey vardır.
· relationships: dependency, association(structural), extends, implements, owned (element)
· diagrams: structural, dynamic behavior, interaction
(bkz: object oriented programming)
uml 2.0 ile parçalı koşullu durumların, if-then-else (bunlarla birlikte haliyle loop) yapılarının da bu diyagramlara dahil edilebilir hale getirilmiş olması lazım.
altına adam gibi bir formalizasyon koymadan yapılan analizler sonucu yine kişiye/duruma/implementasyona dayalı bir boka yaramayan sonuçlar elde edebilirsiniz ancak. altına formalizasyon eklesen bile subjektif analizler ortaya çıkarması çok olası. sağlamcı adama gelmez.