Unified Modeling Language Çigdem Yüksel Sivil Ögrenci HAVA HARP OKULU Havacilik ve Uzay Teknolojileri Enstitüsü
TAKDIM Modelleme UML UML Diyagramlari UML Mimarisi UML Yazilim Gelistirme Yasam Döngüsü
Modeller Farkli disiplinlerde modeller tasarimci için bir dildir Modeller yapilandirilan ya da yapilandirilacak sistemin gösterimleridir Modeller iletisim için araçtirlar Modeller gerçek sistemin özelliklerini tespit etmeye yararlar.
Nesne Modelleme Nesne tabanli analiz teknikleri: Nesnelerin yeni kullanimlar için tekrar kullanilabilir ve elde edilebilir olup olmadiklarini görmek için nesneleri inceler. Kullanisli is hesaplama uygulamalarinda var olan nesnelerle birlestirilmis yeni ve degistirilmis nesneleri tanimlar. Nesne modelleme sistemdeki nesneleri ve bu nesneler arasindaki iliskileri tanimlamak için bir tekniktir.
UML UML Unified Modeling Language i simgeler UML in birlestirdigi modeller Veri Modelleme kavramlari (E-R Diagrams) Is Modelleme (is akisi) Nesne Modelleme Bilesen Modelleme The UML, yazilim mühendisliginde nesne tabanli sistemleri modellemede kullanilan açik standart olmus bir görsel modelleme dilidir. Gelistirme hayat döngüsü boyunca olan tüm islemlerle ve farkli uygulama teknolojileri ile kullanilabilir.
Açik bir standarttir UML in Önemi Tüm yazilim gelistirme yasam döngüsünü destekler. Farkli uygulama alanlarini destekler. Deneyime dayalidir ve kullanici topluluguna ihtiyaç duyar. Birçok araç tarafindan desteklenir.
Endüstride UML Birçok Farkli Amaç için Kullanilir Dil uygulamalarina dogrudan eslesme saglar. (Java,C++,Corba IDL gibi...) round trip engineering Dilden bagimsiz yazilim spesifikasyonu Web site yapilari Is akisi spesifikasyonlari Is modelleme
UML in Tarihi OMG tarafindan kabul, Kasim 1997 OMG ye son teslim edilis, Eylül 97 OMG ye ilk teslim edilis, Ocak 97 UML ortaklari UML 1.0 UML 1.1 UML 1.3 Temmuz 96 UML 0.9 OOPSLA 95 Unified Method 0.8 Diger metotlar Booch metod OMT OOSE
UML e Yapilan Katkilar Rumbaugh OMT Booch Booch method Meyer Önce ve sonra sartlari Harel Statecharts Gamma, et al Frameworkler and patternler, HP Fusion Operasyon tanimlamalari ve Mesaj numaralama Embley Singleton classes and Yüksek-seviye görünüm Jacobson OOSE Shlaer - Mellor Nesne yasam döngüsü Odell Siniflandirma Wirfs-Brock Sorumluluklar
UML Uygulama Gelistirmeyi Destekler ORDBMS Oracle Objects Classes Business Objects Relationships large scale system application partitioning Components Microsoft Scenarios Use Cases ActiveX/COM Microsoft Business Process CORBA OMG
UML in Partnerlari Rational Software Corporation Hewlett-Packard I-Logix IBM ICON Computing Intellicorp MCI Systemhouse Microsoft ObjecTime Oracle Platinum Technology Taskon Texas Instruments/Sterling Software Unisys
UML Kavramlari Use caseleri ve aktörleri kullanarak sistemin sinirlarini ve baslica fonksiyonlarini gösterir. Etkilesim diyagramlari ile use case gerçeklestirmesini gösterir. Class diyagramlarini kullanarak bir sistemin statik yapisini gösterir. State transition(durum geçis) diyagramlari ile nesnelerin davranisini modeller. Component & deployment diyagramlari ile fiziksel uygulama mimarisini gösterir. Stereotiplerle islevselliginizi arttirir.
UML deki Elemanlar Yapisal Elemanlar Daha çok bir modelin statik parçalari class, interface, collaboration, use case, active class, component, node Davranissal Elemanlar UML modellerinin dinamik parçalari etkilesim, durum makinasi(state machine) Gruplama Elemanlari UML in organizasyonel parçalari package, subsystem Diger Elemanlar UML in açiklayici kisimlari notlar
Iliskiler Bagimlilik(Dependency) Birindeki(bagimsiz eleman) degisimin digerinin(bagimli degisken) semantigini degistirebilecegi, iki eleman arasindaki anlamsal iliski. Birlik(Association) Baglantilar setini tanimlayan yapisal iliski.
Genellestirme Iliskiler Child in parentin yapisini ve davranisini paylastigi bir özellestirme/genellestirme iliskisi. Gerçeklestirme Interface ya da use case gibi bir siniflandiricinin sinif ya da isbirligi gibi diger bir siniflandiricinin isi yerine getirecegini garantileyen bir anlasma tanimlar.
UML deki Diyagramlar Scenario Diagrams Scenario Diagrams Statechart Diagrams Use Case Diagrams Use Case Diagrams Use Case Diagrams State Diagrams State Diagrams Class Diagrams State Diagrams State Diagrams Object Diagrams Scenario Diagrams Scenario Collaboration Diagrams Diagrams Models State Diagrams State Diagrams Component Diagrams Use Case Diagrams Use Case Diagrams Sequence Diagrams Activity Diagrams Component Diagrams Component Diagrams Deployment Diagrams
Use Case Diyagrami Sistemin çok basit bir sekilde modellenmesini ve islerin detayinin (senaryonun) metin olarak anlatilmasini içerir. Aktörden gelen bazi isteklere karsi sistemin yaptigi aktiviteleri gösterir.
Use Case Diyagrami Kullanici tarafindan görülen sistem fonksiyonelitesini gösterir. Gelismenin erken safhalarinda yapilandirilir. Amaç Sistemin içerigini belirtmek Sistemin gereksinimlerini elde etmek Sistemin mimarisini geçerli kilmak Analistler ve uzmanlar tarafindan gelistirilir.
Class Diagram Class diyagrami farkli varliklarin birbiriyle nasil iliskili oldugunu gösterir. Sinif, arayüzleri, isbirlikleri ve iliskileri gösterir.
Class Diyagrami Sistemin statik tasarim görünümünü adresler. Gelistirme boyunca yapilandirilir ve aritilir. Built and refined throughout development Amaç Sistemdeki kavramlari isimlendirme ve modelleme. Isbirliklerini belirtmek Mantiksal veritabani semalarini belirtmek Analizciler, tasarimcilar ve uygulayicilar tarafindan gelistirilir.
Component Diagram Bilesen kümeleri arasindaki organizasyonlari ve bagimliliklari gösterir.
Component Diagram Bilesen diyagrami sistemin fiziksel görünüsünü saglar. Yazilimin sistemde bulunan diger yazilim bilesenlerinin (yazilim kütüphaneleri gibi) üzerinde sahip oldugu bagimliliklari gösterir. Mimari spesifikasyonun bir parçasi olarak yapilandirilir. Amaç Kaynak kodu organize eder. Uygulanabilir sürüm olusturmak Specify a physical database Programcilar tarafindan gelistirilir.
Deployment Diyagrami Bir sistemin donanim ortaminda fiziksel olarak nasil yerlestirildigini dagitildigini gösterir.
Deployment Diyagrami Sistemin donanim topolojisini gösterir. Mimari spesifikasyonun bir parçasi olarak yapilandirilir. Amaç Bilesenlerin dagilimini göstermekspecify the distribution of components Performans engellerini teshis etmek Sistem mühendisleri ve network mühendisleri tarafindan gelistirilir.
Aktivite Diyagrami Bir aktiviteyi islerken iki ya da daha fazla sinif objelerinin arasindaki kontrolün prosedürel akisini gösterir
Aktivite Diyagrami Aktivite tabanli dinamik davranisi gösterir. Statechart diyagraminin özel bir seklidir. Amaç Sistemin fonksiyonunu modeller. Nesneler arasi kontrol akisini modeller. Is akislarini modeller. Operasyonlari modeller.
Sequence Diyagrami Mesajlarin zaman siralamasini vurgular.
Sequence Diagram Zaman tabanli dinamik davranisi gösterir Sira diyagrami iki boyutludur: Dikey boyut mesajlarin/çagrilarin sirasini olusma zamani siralarina göre gösterir; yatay boyut mesajin gönderildigi nesne örneklerini (object instances) gösterir Amaç Kontrol akisini modeller Tipik senaryolari göstermek
Collaboration Diyagrami Mesajlari gönderen ve alan nesnelerin yapisal organizasyonunu vurgular.
Collaboration Diyagrami Mesaj tabanli dinamik davranisi gösterir. Nesneler arasi akan verileri ve bunlarin zamana bagli numaralanmis akis sirasini ifade eden diyagramlardir Amaç Kontrol akisini modellemek Nesne yapisinin ve kontrolünün koordinasyonunu göstermek
Statechart Diyagrami Durumlari, geçisleri,olaylari(events) ve aktiviteleri içeren durum makinasini(state machine) gösterir.
Statechart Diyagrami Olay tabanli dinamik davranisi gösterir. Amaç Nesne yasam am döngd ngüsünü modellemek Kullanici arayüzleri zleri,, araçlar lari gibi reaktif nesneleri modellemek
Mimari ve UML Tasarim Bakisi Gerçeklestirme View Classes, interfaces, collaborations Use cases Use Case View Components Islem Bakisi Deployment View Active classes Nodes
UML Yazilim Gelistirme Yasam Use-case driven Döngüsü Sistem mimarisini dogrulamak ve geçerlilemek, test etmek ve projenin stakeholderlari arasindaki iletisim için sistemin istenen davranisini olusturmak için en önemli artifact olarak kullanilirlar. Mimari-merkezli Sistemin mimarisi gelismekte olan sistemi gelistirmek, yönetmek ve kurmak ve kavramsallastirmak için baslica artifact olarak kullanilir.
UML Yazilim Gelistirme Yasam Iteratif Döngüsü Uygulanabilir sürümlerin yönetimini içerir. Artan Bu sürümleri üretmek için sistem mimarisinin sürekli entegrasyonunu içerir.
Yasam Döngüsü Asamalari Baslangiç Olgunlasma Yapilandirma Geçis zaman Baslangiç Projenin kapsami tanimlanir ve is mantigi gelistiriir. Olgunlasma Proje planlanir, özellikler tanimlanir ve mimari biçimlendirilir. Yapilandirma Geçis Ürün yapilandirilir. Ürünün kullanicilara geçisi saglanir.
Örnek Banka ATM Sisteminin Modellenmesi
Use Case Diyagrami Customer Bank Officer Credit System Use Case Diagram for an ATM (Automated Teller System).
Sequence Diyagrami Card Reader ATM Screen Joe's Account Cash Dispenser 1: Insert Card 2: Read Card No. 3: Initialize Screen Sequence Diagram for Joe withdrawing $20.
Collaboration Diyagrami ATM Screen Card Reader Joe's Account Cash Dispenser Collaboration diagram for Joe withdrawing $20.
SORULAR?