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ı
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.