UML (UNIFIED MODELING LANGUAGE)

Transkript

UML (UNIFIED MODELING LANGUAGE)
UML
(UNIFIED MODELING LANGUAGE)
SUNUM PLANI







MODELLEME NEDİR?
YAZILIM GELİŞTİRMEDE MODELLEMENİN
ÖNEMİ -FAYDALARI
UML NEDİR?
UML’NİN GELİŞİMİ
UML İLE GÖRSEL MODELLEME
UML DİYAGRAMLARI
ÖZET VE SORULAR
MODELLEME NEDİR?




Modelleme kanıtlanmış ve kabul edilmiş bir mühendislik
tekniğidir.
Model sayesinde karmaşık bir sistemi daha basit bir dille ifade
ederiz böylece modellediğimiz sistemi daha iyi anlarız.
Gerçek hayatta modeller karmaşıklıktan ve detaylardan korunmak
için oluşturulur
Modelleme yoluyla sistemi oluşturan yapılar tanımlanabilir ve
bunlar arasındaki ilişkiler gösterilebilir.
YAZILIM MODELLERİ





Proğram kodlanmaya başlamadan önce geniş bir analizi ve tasarımı
yapıldığı için kodlama işlemi daha kolay olur.
Beklenmedik hatalar minimuma indirgenmiş olur.
Tekrar kullanılabilen kodların sayısı artar.Bu da programın maliyetini
azaltır
Ortak projelerde ekibin iletişimi daha kolay olur.
Modellemede önemli olan yazılım sektöründeki herkesin ortak bir
modelleme dili kullanmasıdır.
UML NEDİR?




Unified Modelling Language
UML bir proğramlama dili değildir.
Yazılım Mühendisliğinde nesne tabanlı
sistemleri modellemede kullanılan açık
standart Görsel Modelleme dilidir
UML standartlaşmış notasyonlar ve görsel
öğeler sunar.
UML NİN TEMEL FONKSİYONLARI

UML temelde aşağıdaki fonksiyonları yerine
getirir.
Görsel Tasarım
 Tanımlama
 Yapılandırma
 Dökümantasyon

UML DİYAGRAMLARI
USE CASE(KULLANIM VAKALARI)




Sistemin kullanıcısının bakış açısıyla
sistemin davranışlarınının diyagramlarla
gösterilir
Sistemin ne yaptığı ile ilgilenilir.
Aktörler
Senaryolar
KULLANIM VAKASI
DİYAGRAMLARI
Kullanım vakası örnek
Basit bir örnek Senaryo:
Katoloğa bak alınacakları seç
Satış Temsilcisini ara
Nakliye Bilgilerini Ver
Ödeme Bilgilerini Ver
Satış Temsilcisinden Onay Al
USE CASE devam
Siparilş
Durumunu
Güncelle
Sipariş
Envanterini
güncelle
Nakliye
Ürün bilgisini
al
Sipariş
durumunu
kontrol et
Müşteri Hizmetleri
ürünü sipariş
listesine ekle
Müşteri
sipariş Formunu
görüntüle
<<uses>>
sipariş ver
<<extends>>
Kredi Kartı
kabul edilmedi
<<uses>>
Toplamı
Hesapla
<<uses>>
Siteyi Tavsiye etme
Üye olma
Makale Basliklarini
Görme
Makale
okuma
Online Kullanici
Kaynak Kod
İndirme
<<
use
s>
>
Üye girişi Yapma
>>
ses
u
<<
SINIF DİYAGRAMLARI



Nesneler, yazılım modeli içerisindeki , belirli ve sonlu sayıda
olan sistem elemanlarıdır.
Nesnelerin karakterleri ve bu karakterlerin üzerinde duran
davranışları vardır
Nesneler bu yapılarıyla (karakter , davranış ) sistem üzerinde
kendilerine verilen görevi yerine getirirler.
• Sınıf , nesnelerin sistem içerisinde oynadıkları rolü yani
nesnelerin yapısını tayin eder.
• Sınıflar nesneler için kalıp görevi görürler.
• Sistem içerisinde nesneler , bu kalıba göre oluşturulur,
faaliyette bulunur ve sonlanırlar.
Sınıf Diyagramları
SınıfAdı
Özellik 1:Tür1
Özellik2:yaş=19
..............
işlev1()
işlev2(parametreler)
işlev 3():geri dönen değer tipi
•Sınıf Adı
•Özellikler(properties)
•Metodlar(functions)
SINIFLAR ARASI İLİŞKİLER






Bire-bir
Bire-çok
Bire –bir veya daha çok
Bire –sıfır veya bir
Bire-sınırlı aralık
Bire-n (*)
Reflexive(Kendine dönen)ilişki:Bir
sınıfın sistemde birden fazla rolu
vardır.
Sınıflar arası ilişki(Assocation)





Birliktelik nesneler arası uzun süreli ilişkidir.
Gerçek hayatta , örneğin , insanlar ve arabaları bir
ilişki oluştururlar. Bu ilişki bir birlikteliktir, bir yerden
başka bir yere gitme olayında , ne kullanıcı arabasız
düşünülebilir nede araba kullanıcısız düşünülebilir.
İki tür birliktelik vardır:
* İçerme (Aggregation)
* Kompozisyon - Oluşum (Composition)
İçerme(aggretations)kavramı


Bütün parça yukarıda olacak şekilde ve bütün
parçanın uçuna içi boş elmas yerleştirilecek şekilde
gösteririz.
İçi boş elmas ile gösterilen ilişkilerde herbir parça
ayrı bir sınıftır ve tekbaşlarına anlam ifade
eder.Parça bütün arasında sıkı bir ilişki yoktur.
Kompozisyon(composite)ilişki


Bazı durumlarda bütün nesne yaratıldığında
parçalarının da yaratılmasını isteriz.
Bu ilişki daha sıkıdır.
Türetme(inheritance)kavramı





Sınıflar arası türetme işlemi ucu açık üçgen ve düz bir çizgiyle
yapılır.
Ana sınıf(parent Class)
Alt sınıf(sub Class)
Türetme sınıflar arası ilişki açısından türetmenin “is kind of”(bir
çeşit) ilişkisinin olduğu görülür(Bird is a kind of Animal)gibi
Abstract(soyut) sınıf
Arayüz(interface) kavramı

Herhangi bir sınıfla ilişkisi olmayan ve standart bazı işlemleri yerine getiren sınıfa benzer
yapılara arayüz denir.Arayüzlerin özellikleri yoktur .Sadece bazı işlemleri yerine getirmek için
başka sınıflar tarafından kullanılırlar.

Kesik çizgilerle ve çizginin ucunda boş bir üçgen olacak şekilde gösterilir.
Gerçekleme(Realization) Bir sınıfın bir arayüze erişerek , arayüzün fonksiyonlarını
gerçekleştirmesine denir.
Ara yüz kavramı , nesnelerin davranışlarını belirleyen kurallar bütünü olarak düşünülebilir.
Ara yüzler kuralları belirlerler ancak ,bu kuralların nasıl uygulanacağına karışmazlar.
Bir sınıf , ilgili ara yüzün yordamlarını gerçekleyerek , ara yüzün belirlediği kurallara uymuş olur.


Görünürlük(visibility)kavramı


Bir sınıfın fonksiyonlarına ve özelliklerine ilişkin kullanım alanını
belirler.
Görünürlük Seviyeleri(visibility levels)
 Public+
 Protected#
 Private -
SINIF DİYAGRAM ÖRNEGİ
ÖRNEK SINIF DİYAGRAMI ONLİNE ALIŞVERİŞ
Alışveriş Sepeti
altToplam:Money
vergi:Money
toplam:Money
1
SiparişVer
()
Siparişİptal ()
Müşteri
1 isim
adres
emailAdres
KullanılabilirKredi
*
1
1
Kredi Kartı
şirket
Numara
bitişTarihi
Çekmeİzni()
1
*
Kabul Edilen
Müşteri
indirimOranı:
{Kullanılabilir Kredi Miktarı iyi
Ürünler*
Alınacak Ürün
miktar:Integer
birimFiyat:Money
ekle ()
çıkar ()
Alışveriş Sepeti
sadece bir kredi
kartı ile
ilişkilidir.
*
1
Ürün
Durum(State Chart)Diyagramları



Nesnelerin herhangi bir zaman içindeki durumunu
gösterir.
State chart diyagramları , yazılım sistemi içindeki
sınıfların , dışarıdan yapılan uyarılara tetiklemelere
karşı sahip olduğu davranışları gösterirler.
State chart diyagramlarının , nesnelerin gelişen
olaylara karşı sahip olduğu durum(state) üzerinde
durmasından dolayı modellemede önemli bir yeri
vardır.
Durum diyagramı





State(durum)
Event(Olay)
Action(Aksiyon)
Transiton(Geçiş)
Self Transition(öz Geçiş)
initial State(ilk durum)
Final State(son durum)
State(durum)diyagramları
Bekleme
Kullanım için
bekle
Kartı Yerleştir
Arama
Veritabnını ara
3 defa
tekrarla
İptal
Geçersiz İşlem
Kayıt Bulundu
Bulunamadı
Doğrulama
Parola Sor
Kayıt Bulundu)
hesaba
para
yatırma
,çekme,
kontrol
etme
BilgiAlma
Ne tür bir işlem
yapılacak?
BilgiAlma
Başka bir işlem
yapılacakmı?
Bekleme
Yeni işlem için
bekle
Arama
İsteği yerine
getir
İşlem
Hesabı güncelle
BilgiAlma
Para miktarını al
Doğrulama
hesaptaki Para
miktarını
yeterlimi
SEKANS DİYAGRAMLARI







Sekans Diyagramları , belirli bir
zaman dilimine yayılmış nesne
etkileşimlerini gösteren bir tür
etkileşim diyagramıdır.
Nesneler ile , zamanla nesneler
arasında taşınan , fonksiyoneliteyi
gösteren mesajlara odaklanmıştır.
Nesneler
* Birbirleri ile mesajlaşma
yapan yapılardır.
Mesajlar
* Synchronous mesajlar ,
yanıtı beklerler.
* Asynchronous mesajlar ,
sinyal olarak düşünülebilir. Yanıt
beklemezler. Çağrı yapan nesneyi
bloke etmezler.
Sekans(Sequence)Diyagramı
Tarayıcı
Web Sunucu
SunucuTaraflı
Script
Veritabanı
arama isteği ()
arama isteği ()
* SQL Komutu ()
* sonuçlar
dinamik HTML sayfası
dinamik HTML Sayfası
Sequence Diagram: HTML Page
Sekans Diyagramı Örnek
Nesneler
Müşteri
Kasiyer
Diğer
siparişler
Döner Ustası
İçecekler
Sipariş Ver
zaman
sipariş gönder
Sipariş gönder
Sipariş gönder
Kasiyere gönder
Müşteriye gönder
Müşteri
Etkinlik
Diyagramı
Sipariş ver
Kredi Kartı
numarsını ver
Bir nesnenin
durumu zamanla
kullanıcı tarafından
ya da nesnenin
kendi içsel işlevleri
tarafından
değiştirilebilr.Bu
değişim sırasını
etkinlik
diyağramlarıyla
gösteririz.
Sipariş
Muhasebe
Dağıtım
Siparişi
Al
Kredi Kartı
Bilgisini al
Siparişi
İşleme Al
Kredi Kartı
Bilgilerini
Değerlendir
Ambalajlaa
işlemini yap
Nakliye
Kayıtlarına
kaydet
Nakliyeye
bilgilerini
Kaydet
Siparilşi Al
Nakliyeye Ver
Muhasebeye
Bildir
Nakliyeyi
Bildir
İşbirliği(Colloboration)Diyagramları



Bir sistemin amacını yerine getirebilmesi için sistemin bütün parçaları işlerini
yerine getirmesi gerekir.Bu işler genellikle birkaç parçanın beraber çalışmasıyla
mümkün olabilir.Bu tür ilişkileri göstermek için işbirliği diyagramları kullanılır
Collaboration (işbirliği) diyagramları , mesajlar yollayan ve alan nesnelerin
yapısal organizasyonları üzerinde duran bir tür etkileşim diyagramıdır.
Collaboration (işbirliği) diyagramları , yazılım sisteminin statik yapısını ve
dinamik davranışlarını birlikte gösterir
.
İşbirliği(Colloboration)Diyagramı
: Veritabanı
3:* Sql Komutu
4:* Sonuç Kümesi
: Sunucu-Taraflı Script
2: Arama İsteği
5: Dinamik HTML sayfası
: Web Sunucu
1: Arama İsteği
6: Dinamik HTML sayfası
: Tarayıcı
Bileşen(Component) Diyagramı
 Component(Bileşen) diyagramı , yazılım sistemi üzerindeki bileşenlerin
(component) organizasyonu ve birbirleriyle olan bağlılıklarını gösterir.
 Sistem öyle parçalarara(component)bölünmelidir ki her geliştirici
bağımsız olarak çalışabilsin
Component Diagram
Kayıt.exe
fatura.exe
Ödeme Sistemi
Ödeme
Kullancı.dll
Kullanıcılar
Ders.dll
Ders
Öğrenci
Ders
Ders Seçenekleri
Copyright © 1997 by Rational Software Corporation
Öğretim Üyesi
Teslimat Diyagramları

Deployment(Teslimat) diyagramlar , yazılım
sistemi üzerindeki düğümler (node) ,
bileşenler (component) ve bağlantılar gibi
fiziksel kaynakları göstermek için kullanılır
Teslimat(Deployment)Diyagramları
INTERNET
Web
Sunucu
TCP/IP
Şirketin Extranet Erişim Sunucusu
Firewall
Proxy
Sunucusu
Yönetici
Yönetici
Firewall
yöneticisi
Proxy server
Yöneticisi
TCP/IP
PC
Tarayıcı
Tarayıcı
Eklentileri
Şirketin İntranet
Sunucusu
Web
Sunucusu
KAYNAKLAR





www.omg.org
www.uml.org
www.rational.com
www.csharpnedir.com
www.smartdraw.com

Benzer belgeler

UML Sınıf Diyagramları

UML Sınıf Diyagramları Bire-sınırlı aralık Bire-n (*) Reflexive(Kendine dönen)ilişki:Bir sınıfın sistemde birden fazla rolu vardır.

Detaylı