UML ve Modelleme
Modelleme bir
mühendislik tekniğidir. Model sayesinde anlaşılması güç yazılımları basit bir
dille ifade edebiliriz. Bu da yazılımın anlaşılmasını kolaylaştırır ve hataları
kolaylıkla görüp en düşük seviyeye indirgememizi sağlayacaktır.
UML nedir?
UML’ in
Türkçe deki karşılığı “Birleşik Modelleme Dili” olsa da aslında bir programlama
dili değil yazılım mühendisliğinde nesne tabanlı modellemede kullanılan
standart olmuş görsel modelleme dilidir.
Yazılım yaşam döngüsü içerisinde farklı görev
tanımlamaları bulunmaktadır (Analistler, tasarımcılar, parogramcılar,
testçiler, kalite sorumluları, müşteriler / kullanıcılar, teknik yazarlar).
Her birinin sisteme yada projeye bakış açısı birbirinden farklıdır. Müşteri
açısından projeye baktığımızda müşteriyi işlerin sıralandırılması, sisteme
artıları ve eksileri , işler arasındaki ilişkiler ilgilendirirken bir
fonsiyonun detayları ilgilendirmemektedir. Analist açısından baktığımızda nesne
özellikleri, fonksiyonlar ve alacakları parametreler yeterli iken tasarımcı
açısından parametrelerin veri tipleri, fonsiyonun performansı, yaşam süresi
gibi bilgiler de önemli olmaktadır. Bu nedenle UML bu ekip için gerekli
farklı diyagramlar içermektedir. Yazılım geliştirme işinde yer alacak farklı
ekiplerin farklı bakış açılarına uygun farklı UML diyagramları
bulunmaktadır. UML, yazılım geliştirmede analiz ve tasarım aşamalarında
büyük rol oynamaktadır.
UML’ye Neden
Gerek Var?
- Hataların kolaylıkla fark edilip en düşük
seviyeye indirgenmesi.(Risk, zaman, maliyet)
- Yazılım üretiminde başarı oranının düşük olması.
(%16 )
- Yazılımda paylaşım önemlidir. Tüm ekibin aynı
dili konuşabilmesi gerekmektedir.
- Sistemin tamamını basit bir dille ve görsellikle
görebilmek ve tasarlayabilmek gerekli.
- Modellenmiş ve dökümante edilmiş bir yazılımın
tanıtımının kolay olması.
- Yazılım kalitesini arttırma.
UML’nin
avantajları
Yazılım da kodlama başlamadan tasarlanacağından;
· Kodlama
kolaylığı sağlar.
· Kullanılan
tekrar kod sayısı ayırt edilebilir bu sayede verim sağlanır.
· Mantıksal
hataların minimum seviyeye düşürülmesini sağlar.
· Geliştirme
maliyetinin düşmesini sağlar.
· Resmin
tamamının görülmesini sağlar.
· UML
diagramları ile yazılım tamamını görebileceğimiz için verimli bellek
kullanımı sağlanabilir.
· Karmaşık
sistemlerde değişiklik yapmayı kolaylaştırır.
· UML ile
dokümanlandırılmış kodları düzenlemek daha az zaman alacaktır
· UML
diyagramlarını kullanan yazılımcılar aynı dili konuşacaklarından kolay iletişim
sağlanır.
UML’de
Diyagram Türleri
UML
modellemede nesneler arasındaki ilişki kurmak için gereken 9 adet diyagram
türü bulunmaktadır.
|
|
Şekil 1. UML Model ve Diyagramlar |
1. Use Case Diyagram: Bir kullanıcı ve bir sistem arasındaki
etkileşimi anlatan senaryo topluluğudur. Use case diyagramlarda use case’ler
ve aktörler adını verdiğimiz iki ana bileşen bulunmaktadır.
|
|
|
2. Class (Sınıf) Diyagram: Nesne tabanlı programlamada
kullanılan sınıflar ve bunların arasındaki ilişkileri modelleyebileceğimiz
diyagramlardır. Sınıflar isim, özellikler ve işlemler den oluşmaktadır.
|
|
Şekil 3. Class
Diyagram
|
3. Object (Nesne) Diyagram: Gerçekleşmiş nesne bilgilerinin bulunduğu
diyagramlardır. Sınıfın nesne kullanılmış halidir.
4. State(Durum) Diyagram: State diyagramları sistem davranışlarını gösterir.
Her diyagram tek bir sınıfın nesnelerini ve bu sistem içerisinde nesnelerin
durumlarını göstermektedir.
|
|
Şekil 4. State Diyagram
|
5. Sequence Diyagram: Sequence diagramları use case içerisinde bulunan
nesnelerin davranışlarını gösteren diyagramlardır. Bu diyagramlar soldan sağa
okunur.
|
|
Şekil 5. Sequence Diyagram
|
6. Colloboration
Diyagram: Collaboration
diagramların çizimi oldukça basittir. Nesnelerin birbirleri arasındaki
ilişkiyi belirten diyagramlardır. Bu diyagramların sequence diyagramlardan
farkı mesajlar nesneler arasında farklı şekilde iletilir.
|
|
Şekil6. Colloboration Diyagram
|
7. Activity Diyagram: Aktivite diyagramları sistemin iş
akışını gösteren diyagramlardır.
|
|
Şekil 7. Activity Diyagram
|
8. Component Diyagram: Component diyagramları sistemin
yazılım bileşenlerinden ve birbirleri arasındaki bağlantının nasıl olduğunu
gösterir.
|
|
Şekil 8. Component Diyagram
|
9. Deployment Diyagram: Deployment diyagramlar sistemin
donanım ve yazılım ilişkilerinin fiziksel gösterimidir. Deployment
Diyagramlarda connection (bağlantı) ve node (uç birim)lar kullanılır.
|
|
Şekil 9. Deployment Diyagram
|
USE CASE
DİYAGRAMLARI
Sistem üzerindeki muhtemel kullanıcı
senaryolarını modellemek için kullanılır. Belirlenen senaryolarda sistemin ne
yaptığı yüzeysel olarak aktarılır; sistemin amacını ve ayrıntılarını vermez.
Use case diyagramları dört ana
elemandan oluşmaktadır:
- Aktörler
- Sistem
- Use caseler
- İlişkiler
Bu modelde aktör olarak tanımlanan
kullanıcı bir senaryoyu başlatır ve varsa oluşan sonucu başka bir kullanıcıya
aktarır. Diyagram üzerinde senaryolar elips şeklinde çizilir. Kullanıcı ile
senaryo arasındaki ilişki düz bir çizgiyle belirtilir.
Bu diyagramlarda senaryolar aktör
tarafından tetiklenmektedir. Aşağıdaki örnekte aktör senaryoyu başlatır, use case
sonucunda elde edilen değer diğer aktöre verilmektedir.
Bu modelde senaryolar arasında içerme (include, uses) ve genişleme (extend) olmak üzere iki tür
ilişki kurulabilir.
İçerme (include, uses)
İçerme ilişkisi bir ana senaryonun
bir alt senaryo içerdiğini belirtir. Söz konusu alt senaryo birden fazla
senaryo tarafından kullanılır. İçerme ilişkisi senaryo içerisinde iki veya daha fazla
tekrarlanan adım var ise tekrar edilen kısımlar ayrı use case olarak bölünüp
içerme ilişkisi kurulur.
Genişleme (extend)
Genişleme ilişkisi ana senaryodan
ayrılma noktasından sonra yapılanları belirtir. Genişleme ilişkisinde mevcut
senaryoya yeni bir senaryo eklenir.
Örnek 1.
Örnekte kullanıcının sipariş
oluşturması için öncelikle sisteme giriş yapması ve sözleşmeyi kabul etmesi
gerekir. Müşteri siparişini iptal ettikten sonra sistemin log dosyasına not
düşmesi de ek bir adım olarak eklenmiştir.
Örnek 2.
Örnekte bir otel rezervasyon
sisteminde, sistemle etkileşimde olan dört aktör bulunmaktadır. Muhasebe aktörü
genel bir kullanıcı olmayıp, otel rezervasyon sisteminden etkilenen dış sisteme
ait bir yazılımı temsil etmektedir. Sistem, Otel Giriş/Çıkış, Yeni Rezervasyon,
Rezervasyon Değişiklik şeklinde üç ana Use Case’den oluşmaktadır, diğer Use
Case’ler ana Use Case’lerle ilişkide bulunan alt Use Caselerdir.
|
|
Örnek 2. Use case dökümantasyonu
Adı: Yeni
Rezervasyon
Aktörler: Resepsiyon
Görevlisi, Rezervasyon Görevlisi, Muhasebe
Ön Koşullar: Sisteme
login olunmalıdır, son Durumda: Muhasebe sistemi ve rezervasyon kayıt sistemi
güncellenir.
Genişleme
Noktası: Rezervasyon Tipi, müşteri bilgi kaydı
Başarılı
Senaryo:
·
Müşteriye oda tipleri sunulur
· · Müşteri oda tipini seçer
· Müşteri konaklama başlangıç tarihini ve konaklama süresini girer
· Müşteri mevcut odalar üzerinde arama yapar
· Eğer oda bulunamamışsa (A1)
· Oda bulunmuştur, fiyat görüntülenir
· Müşteri teklifi reddederse (A2)
· Müşteri bilgilerini girer
· Rezervasyon Yapılır
· Rezervasyonda anlaşılan fiyat kayıt edilir ve rezervasyon numarası verilir
· Muhasebe sistemi haberdar edilir
· · Müşteri oda tipini seçer
· Müşteri konaklama başlangıç tarihini ve konaklama süresini girer
· Müşteri mevcut odalar üzerinde arama yapar
· Eğer oda bulunamamışsa (A1)
· Oda bulunmuştur, fiyat görüntülenir
· Müşteri teklifi reddederse (A2)
· Müşteri bilgilerini girer
· Rezervasyon Yapılır
· Rezervasyonda anlaşılan fiyat kayıt edilir ve rezervasyon numarası verilir
· Muhasebe sistemi haberdar edilir
Alternatif Yollar:
A1. Farklı bir oda tipi yada tarih deneyin mesajı ile 2. adıma geri döner












Yorumlar
Yorum Gönder