003 uml semalari [94 slides]
DESCRIPTION
Unified Process ve UML ile Yazılım Geliştirme - 3 - UML ŞemalarıTRANSCRIPT
![Page 1: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/1.jpg)
UML/UP ile Yazılım Geliştirme
Bölüm 3 / 7
![Page 2: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/2.jpg)
İçerik
• UML’in Sizin için Anlamı• UML Şemaları, Semboller ve Semantik İlişkileri• Şema ve Model Bazlı UML Çalışmaları
Arasındaki Farklar• Alternatif Yazılım Geliştirme Süreçlerinde
UML'in Yeri• UML ile Gereksinim Yönetimi• UML ile Nesne Yönelimli Tasarım
![Page 3: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/3.jpg)
İçerik
• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar
![Page 4: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/4.jpg)
UML 2.0 Şema Türleri
*
*
*
*
*
![Page 5: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/5.jpg)
Kısaca UML
UML sembolik bir dildir:Yazılım sistemlerinin oluşturulması esnasında
ortaya çıkan iş ürünlerinin– Tasavvur edilebilmesine,– İfade edilebilmesine,– Oluşturabilmesine ve – Dokümante edilebilmelerine yarar.
![Page 6: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/6.jpg)
UML Modeli Oluşturma Nedenleri
• Oluşturulacak sistemin yapısı ve davranışı hakkındaki bilgiyi paylaşmak
• Sistem mimarisini tasavvur ve kontrol edebilmek
• Sistemi daha iyi anlayıp çözümü basitleştirmek ve tekrar kullanılabilirliği artırmak
• Riskleri yönetebilmek
![Page 7: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/7.jpg)
4 Model Kuralı
• Oluşturduğunuz model problemi nasıl çözeceğinizi belirler.
• Her model farklı detay seviyelerinde bilgi verebilir.
• En iyi modeller gerçekle bağlarını koparmayanlardır.
• Tek bir model kesinlikle kafi değildir.
![Page 8: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/8.jpg)
İçerik
• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar
![Page 9: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/9.jpg)
UML Genişletme Mekanizmaları
• UML tanımı çok geniş de olsa bazen özel durumlara uyabilmesi için ‘genişletilmesi’ (extend) gerekebilir.
• UML tanım genişletme mekanizmaları- Yeni model sembolleri oluşturmak, - Yeni özellikler (property) tanımlayabilmek, - Yeni semantik yapılar oluşturabilmek için kullanılır.
• Genişletme mekanizmaları dörde ayrılır:- stereotype, tagged values, kısıtlar ve notlar
![Page 10: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/10.jpg)
Stereotype
• Stereotype genellikle UML sembollerini yeni ortamlarda tanımlamak amacıyla kullanılır:
Örneğin Asansör Kontrol Sisteminin bir modelini oluştururken, bazı class’ları ve durumlarını (state) vurgulamak isteyebiliriz
• «hardware»• «software»
• Stereotype mutlaka tanımlandığı özel durum için ve hep aynı şekilde (mantıkla) kullanılmalıdır.
![Page 11: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/11.jpg)
Stereotype
«button»CancelButton
Stereotypeetiket gösterimi
state
• Stereotype kullanım şekli: - Stereotype’ı UML sembolünün adının üstüne yerleştiriniz
• Stereotype adını «» işaretleri arasına koyunuz: (Örneğin, «node»)
- Yeni ikonu (resmini) tanımlayınız
CancelButton
Stereotypeikon gösterimi
![Page 12: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/12.jpg)
Stereotype“UML Tanımıyla Gelenler”
Tanımlı Stereotype’lar:UML tanımı içinde mevcut, anlamı kesin olarak
belirlenmiş ve işarete karşılık gelen bir ikonu olan işaretlerdir.
<<Stereotype Adı>>
Tanımla Gelenler:• Boundary, Entity, Control• Aktör, vs.
cd Design Model
Class1 ud Use ...
Actor1
![Page 13: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/13.jpg)
Size Ait İşaretler“UML in Color”
Peter Coad (TogetherSoft) entityclass’larının da kendi aralarındagruplara ayrılması gerektiğini söyler:
i. <<Thing>> ii. <<Description>> iii. <<Role>> iv. <<Moment-Interval>>
![Page 14: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/14.jpg)
Tagged Values• Tagged values
–UML sembollerine ek özellikler atarken kullanılır–Mevcut UML sembol ve stereotype’larına eklenebilir–Bir isim-değer (özellik-değer, tag-value) ikilisi olarak
kullanılır.
• Genellikle aşağıdaki konularda kullanılır- Kod üretimi- Versiyon kontrolü- Konfigürasyon yönetimi- Sahiplik (telif hakkı kanıtı)- vs. vs.
![Page 15: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/15.jpg)
Tagged Values
• Tagged value {} parantezi içine yazılan çok kısa bir nottur:- {tag adı, ayraç (=), bir değer}’den oluşur.
{yazan = “Ali”, Versiyon = 2.5}
Eleman
isimadres
tagged value
![Page 16: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/16.jpg)
Tagged Values ve Kısıtlamalar
Gösterimleri aynıdır. UML ürünleri kullanıldığında NOT sembolünün içine yazılırlar. Pek çok farklı yerde belirtilebildiklerinden yaygın bir kullanımı yoktur.
{Tagged Value / Constraint}
{Vermek istediğiniz ek bilgi}
{Vurgulamak istediğiniz kısıtlama}
![Page 17: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/17.jpg)
UML Metamodel
• Metamodel olası modellerin kullanacağı yapısal ve semantik özelliklerin tanımlandığı bir modeldir
• UML modeli, ait olduğu metamodelin bir uygulanış şeklidir
• UML metamodeli –UML sembollerini tanımlar–Tanımlamalar için UML sembollerinin bir alt kümesini
kullanır –Aralarında ilişkiler kurulan paketlerle düzenlenir
![Page 18: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/18.jpg)
• UML metamodeli aşağıdaki konulara yanıtlar bulunarak oluşturulur:
- Syntax Yapısı (Abstract Syntax): Class Şemaları kullanılarak tanımlanır
- Net olarak tanımlanmış kurallar: Model öğelerinin uyması gereken kurallar (sınırlamalar) tanımlanır
-Örneğin, bir class’ın birden fazla adı olamaz
- Semantik Yapı: Model öğelerinin ilşkilendirilme biçimleri gündelik dille tanımlanır
UML Metamodel
![Page 19: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/19.jpg)
UML Profilleri
• UML Profilleri özel konulara yönelik UML modelleri geliştirebilmemizi sağlarla- Örneğin, süreç mühendisliği, gerçek zamanlı sistemler,
web uygulamaları vs. vs.
• Bir profil ‘paketinde’ bir veya daha çok genişletme mekanizması ürünleri bulunur (stereotype, tagged value, kısıtlamalar)
• Bunlar UML model öğelerine uygulanarak kullanılırlar
![Page 20: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/20.jpg)
UML Profilleri• Bir UML profilinde aşağıdaki çalışmalardan gerekenler
yapılır:
- UML metamodelinin ilgili bir bölümü seçilir
- Stereotype’lar ve/veya tagged value çiftleri tanımlanır
- Mevcut kurallara yeni ekler tanımlanır
- Yeni bir semantik yapı tanımlanır
![Page 21: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/21.jpg)
Profil Örneği• Temel GUI bileşenlerine yönelik bir profil tanımlarsak, • GUI yapımız aşağıdaki öğelere sahip olacaktır:
- Formlar- Butonlar
• Kısıtlamalar: – Bir form bir ‘dialog box’ı çalıştırabilir– Formlar ve Dialog Box’ların butonları olabilir
![Page 22: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/22.jpg)
GUI ProfiliClass ve Association UML metamodelinden gelmektedir
GUI Profili
Class
<<stereotype>>Form
<<stereotype>>Button
Association
<<stereotype>>Contains
<<stereotype>>DialogBox
<<stereotype>>Invokes
![Page 23: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/23.jpg)
GUI Profili Uygulaması
<<Form>>MainView
1 1
<<Button>>OkButton
<<Button>>CancelButton
<<Invokes>>
<<Contains>> <<Contains>>
<<DialogBox>>OpenDialogBox
1 1
1 1
![Page 24: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/24.jpg)
İçerik
• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar
![Page 25: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/25.jpg)
UML 2.0 Şemaları
![Page 26: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/26.jpg)
Davranış Şemaları
– use case şeması*– activity şeması*– Etkileşim Şemaları
• sequence şeması• collaboration / communication şeması• interaction overview• timing şeması
– statechart / state machine şeması*
![Page 27: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/27.jpg)
Use Case Şeması
• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering
![Page 28: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/28.jpg)
Temel Kavramlar• Her tasarlanan sistem bir insanla veya başka bir sistemle
etkileşir• Sistemin kullanıcıları onun tahmin edilebilir bir şekilde
çalışmasını beklerler• Use Case sistemin kullanıcılarına sunacağı bir hizmetin
senaryo şeklindeki anlatımıdır. Bu yüzden bir fiil ismine sahiptir: Yap, Et gibi adlandırılır.
Örneğin, “Para Çek”, “Havale Yap”.• Aktör sistemin sunduğu hizmetleri kullanan bir kişi veya başka
bir sistemdir.• Aktörler mutlaka tasarlanan sistemin dışında olmalıdırlar.
![Page 29: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/29.jpg)
Use Case’lerin 3 Temel İşlevi
– Sistemin Sınırlarını Çizmek: Tasarlanan sistemin dışarıdan nasıl görüleceğini programcılara da yol gösterebilecek şekilde belirlemek
– Sistemin Bütünlüğünü Görebilmek: Sunulan hizmetlerin sistem içinde nasıl gerçekleştirileceğini görebilmek
– Test için Referans Oluşturmak: Sistem oluştukça eklenen yeni unsurları kaldırıp kaldıramayacağını anlamak
![Page 30: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/30.jpg)
‘Sihirli’ Use Case Sayısı Nedir?
![Page 31: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/31.jpg)
İlgili Roller• Şemayı Hazırlayanlar:
– İş Analisti– Sistem Analisti
• Şemayı Kullananlar:– Müşteri– Proje Yöneticisi– Tasarımcı– Veri Tabanı Analisti– Kullanıcı Arayüzü Tasarımcısı– Testçi– Kullanım Kılavuzu Hazırlayanlar
![Page 32: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/32.jpg)
Use Case Şeması Sembolleri - 1
Sembol Tanımı Syntax
use case Belli bir hedefe ulaşmak için kullanılabilecek tüm alternatif senaryolar.
aktör Sistemle etkileşen kişilerin canlandırdıkları roller ve dış sistemler.
sistem sınırı
Oluşturulan sistemle aktörleri birbirinden ayıran sınır.
UseCaseNam e
ActorNam e
![Page 33: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/33.jpg)
Use Case Şeması Sembolleri - 2
Sembol Tanımı Syntax
association Aktörlerin veya Use Case’lerin birbirlerini kullanmaları.
generalization Aktörlerin çeşitlerini ve Use Case’lerin özel durumlarını vurgular.
extend Bir Use Case’in kullanıcısının seçimine bağlı olarak çalıştırdığı diğer bir Use Case’i vurgular.
<<extend>>
![Page 34: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/34.jpg)
Use Case Şeması Sembolleri - 3
Sembol Tanımı Syntax
include Bir Use Case’in her zaman çalıştırdığı diğer bir Use Case’i vurgular.
Note Her şemaya dilenen bilgilerin yazılması için ve hyperlink oluşturmak amacıyla kullanılır.
note
Anchor note to item
Notu şemadaki sembollere bağlamaya yarar.
<<include>>
![Page 35: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/35.jpg)
Şema Örneği 1
![Page 36: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/36.jpg)
Use Case Bulma Teknikleri 1ud Use Case Model
Actor2
Actor1
Use Case1
Use Case2
Use Case3
Use Case4
Use Case5
Use Case6
Use Case 2 her zaman Use Case 1 i le birl ikte calisir.
Use Case 3 istegebagli olarak Use Case 4 i le birl ikte calisir.
Use Case 6, Use Case 5'in ozel birdurumudur. Use Case 5'in bazialternatif akislari buradadir.
Use Case 3'den Actor 2'ye birmesaj gitmektedir.
«extend»
«include»
ud Use Case Model
Actor2
Actor1
Use Case1
Use Case2
Use Case3
Use Case4
Use Case5
Use Case6
Use Case 2 her zaman Use Case 1 i le birl ikte calisir.
Use Case 3 istegebagli olarak Use Case 4 i le birl ikte calisir.
Use Case 6, Use Case 5'in ozel birdurumudur. Use Case 5'in bazialternatif akislari buradadir.
Use Case 3'den Actor 2'ye birmesaj gitmektedir.
«extend»
«include»
![Page 37: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/37.jpg)
Use Case Bulma Teknikleri 2
Özne Nesne Fiil Oluşturulanlar Sistemin Cevabı Aday Use Case Aday Aktör
Öğrenci derse kayıt olur Ders listesine eklenme Dersi alabilirmi bakar Kayıt Ol Öğrenci
Haftalık Ders Programı Çakışan derslere bakar
Eğitmen derse kayıt olur Ders listesine eklenme Dersi alabilirmi bakar Kayıt Ol Öğrenci
Haftalık Ders Programı Çakışan derslere bakar
Event Table Çalışması:
![Page 38: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/38.jpg)
![Page 39: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/39.jpg)
Use Case Bulma Teknikleri 3
1. Aktörler Adaylarını Bulun2. Event Table Çalışmasını Yapın3. Aktör ve Use Case’leri Belirleyin4. Aktörleri Çizin ve İlişkilerini Düşünün5. Use Case’leri Çizin ve Aktörlere Bağlayın6. Use Case’ler Arasındaki İlişkileri Belirleyin
![Page 40: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/40.jpg)
Aktör Bulma Soruları• Sistemin gereksinimleri kimleri ilgilendiriyor?• Sistem organizasyonun hangi biriminde kullanılacak?• Sistemden kimler faydalanacak?• Sisteme veri sağlayacak, sistemden bilgi alacak ve sistem kayıtlarını
değiştirecek olanlar kim?• Sistemin bakımını kim yapacak?• Sistemin hizmetlerinden yararlanacağı başka sistemler var mı?• Sistemin hizmetlerini sunacağı başka sistemler var mı?• Sistemin kullanımında birden fazla rolü oynayan kişiler var mı?• Sistemin kullanımında aynı rolü oynayan birden çok kişi var mı?
![Page 41: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/41.jpg)
Use Case Bulma Soruları• Aktörlerin yerine getirecekleri görevler nelerdir?• Aktörlerden herhangi birisi sistem kayıtlarını oluşturma, kaydetme,
değiştirme, silme ve okuma amaçlı olarak kullanacak mı?• Hangi use case’ler yukarıdaki kaydetme, değiştirme, silme ve okuma
işlemlerine yol açacak?• Herhangi bir aktörün sistemi sistem dışındaki ani değişikliklerden
haberdar etmesi gerekli mi?• Herhangi bir aktörün sistem içinde olanlardan haberdar edilmesi
gerekiyor mu?• Hangi use case’ler sistemin bakımı için kullanılacak?• Sistemin vereceği tüm hizmetler (fonksiyonel gereksinimler) bulunan
use case’ler ile yansıtılabiliyor mu?
![Page 42: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/42.jpg)
Use Case ŞemasıEgzersiz # 1
Lütfen şemadan anladıklarınızı bir paragrafta özetleyiniz (10 dk.)
uc Use Case Modeli II
Müşteri
(from Aktörler)
Sistem Yöneticisi
(from Aktörler)
Banka
(from Aktörler)
(from Use Case'ler)
Kataloğa Bak
(from Use Case'ler)
Satın Al
(from Use Case'ler)
Kataloğu Hazırla
(from Use Case'ler)
Sisteme Bağlan
«extend»
«include»
«include»
![Page 43: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/43.jpg)
Use Case ŞemasıEgzersiz # 2
Aşağıdaki tanıma uygun use case şemasını çiziniz (15 dk.).
“Sadece üyelerin bir satın alma yapabileceği bir cd satış portali oluşturmanız gerekmektedir. Bu portali ziyaret edenler üye olmadıkları takdirde portal kataloğuna erişemeyeceklerdir.
Üye olma işlemi sırasında başvuru yapanların: • isim ve soyadları,• e-mail adresleri• favori müzisyenleri (3 isim)• favori cd’leri (3 isim)• arayıp bulamadıkları cd’ler (3 isim)• bilgileri toplanacaktır.
Üyelerden ayrıca bir şifre tanımlamaları istenecek ve e-mail adresleri kullanıcı adları olarak kullanılacaktır.
Web sitesinde şirket kataloğuna bakarak cd satın alabilmenin dışında, üyeler birbirleri arasında cd değiş tokuşu yapabileceklerdir.
Sistem üyelerin hangi cd’leri alıp sattıklarına, hangi cd’leri arayıp bulamadıklarına bakarak, cd önerilerinde bulunacaktır.“
![Page 44: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/44.jpg)
Activity Şeması
• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering
![Page 45: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/45.jpg)
Temel Kavramlar
• Sistem akışı içinde önce ne sonra ne olduğunu koşullarını işaret ederek gösterebiliriz.
• Use Case akışını çizebiliriz.• Sistem genelinin işleyişini çizebiliriz.• Bir hizmete yönelik işlemleri toplu halde
inceleyebiliriz (UC Map).• Tek bir işlemin nasıl gerçekleştirildiğini
inceleyebiliriz.
![Page 46: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/46.jpg)
İlgili Roller• Şemayı Hazırlayanlar:
– İş Analisti– Sistem Analisti– Tasarımcı– Programcı
• Şemayı Kullananlar:– Müşteri– Proje Yöneticisi– Tasarımcı– Programcı– Veri Tabanı Analisti– Kullanıcı Arayüzü Tasarımcısı
![Page 47: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/47.jpg)
Activity Şeması Sembolleri 1
Sembol Tanımı Syntax
Start State Activity Şemasındaki akışın başladığı nokta.
End State Activity Şemasındaki akışın bittiği nokta.
Activity Akış esnasında gerçekleşen bir faaliyet veya bir komut.
![Page 48: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/48.jpg)
Activity Şeması Sembolleri 2
Sembol Tanımı Syntax
State Transition
Activity sembollerini önce hangisinin geldiğini belirterek birbirine bağlar veya bir döngüyü ifade eder..
Decision Akışın koşullara göre dallandığı
noktalarda kullanılır.
Swimlane Faaliyet ve komutları sorumluluklarına göre gruplamaya yarar.
![Page 49: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/49.jpg)
Activity Şeması Sembolleri 3Sembol Tanımı Syntax
Synchronization bars
Eş zamanlılık içeren faaliyetleri ‘ayrılma’ veya ‘birleşme’ noktaları oluşturarak birbirine bağlamaya yarar.
Note Her şemaya dilenen bilgilerin
yazılması için ve hyperlink oluşturmak amacıyla kullanılır.
note
Anchor note to item
Notu şemadaki sembollere bağlamaya yarar.
![Page 50: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/50.jpg)
Activity Şeması Sembolleri 4
Sembol Tanımı Syntax
Object ‘Elle tutulabilir’ nesnelerdir.
OrderItem
ObjectFlow Object’i girdi ve çıktı olarak faaliyet
ve komutlara bağlamaya yarar.
![Page 51: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/51.jpg)
Şema Örnekleri 1act Pizza Siparişi
Ahçıbaşı Garson Müşteri
ActivityInitial
Pizza hamurunu hazırla
Menüyü v erSiparişi Ver
Siparişi mutfağa ilet
Pizza malzemelerinihazırla
Pizzayı fırına v er
Garsona haber v er
Serv is yap
Afiyetle ye
Hesabı iste
Hesabı sun
Hesabı öde
v s. v s.
![Page 52: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/52.jpg)
Activity Şeması Örnekleri 2act Telefon Satış Birimi
Müşteri Telefonla Satış Depo Muhasebe
ActivityInitial
İade isteğini ilet
Vazgeçirmeye çalış
Vazgeçti mi?
Elemana Bonus yaz
ActivityFinal
İade numarası v er
Kargoya v er
«iade edildi»Ürün
Ürünü kabul et
Ürünü tekrar satışa sun
Müşteriye ödeme yap
«satışa sunuldu»Ürün
ActivityFinal
![Page 53: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/53.jpg)
Activity Şeması Örnekleri 3
![Page 54: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/54.jpg)
Activity Şeması Örnekleri 4
![Page 55: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/55.jpg)
Activity ŞemasıEgzersiz
Aşağıdaki bilgileri alternatifleri ve beklenmeyen durumları da ekleyerek activity şemasıyla anlatınız (15 dk.)
• Yemek Tarifi: Arap Usulü Ispanak– Soğanları kızgın yağda 5 dk. kavurunuz,– İsterseniz, sarmısak ve kimyon ekleyerek 1 dk. daha kızartınız.– Ispanakları tavaya yavaş yavaş ekleyiniz. Eklenen ıspanakların yapraklarını iyi
yumuşayıncaya kadar karıştırınız. Taze ıspanak büyük ölçüde pişirilirken ufalacağından, ıspakların hepsi tavaya sığacaktır.
– Daha önce yumuşamaları için gece boyunca suda beklettiğiniz nohutların suyunu süzünüz ve tavaya ekleyiniz.
– Karışıma tereyağı ve baharat (tuz, biber ve kırmızı biber) ekleyiniz.– Karışım köpürmeye başlayana dek ısıtmaya devam ediniz.– Karışımı kendi suyu içinde hafif nemli olarak sununuz.
![Page 56: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/56.jpg)
Statechart Şeması
• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering
![Page 57: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/57.jpg)
Temel Kavramlar 1
![Page 58: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/58.jpg)
Temel Kavramlar 2
![Page 59: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/59.jpg)
Temel Kavramlar 3
Action ve Output:
![Page 60: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/60.jpg)
Temel Kavramlar 4Event ve State Machine örtüşmesi:
![Page 61: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/61.jpg)
Temel Kavramlar 5Bir faaliyet sona erene ve state geçerliliğini yitirene dek eş zamanlıolarak sürekli çalışır:
![Page 62: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/62.jpg)
Temel Kavramlar 6
Hiyerarşik State Machine’ler:
![Page 63: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/63.jpg)
İlgili Roller
• Şemayı Hazırlayanlar:– Sistem Analisti– Tasarımcı– Programcı
• Şemayı Kullananlar:– Sistem Analisti– Tasarımcı– Programcı
![Page 64: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/64.jpg)
State Machine ŞemasıEgzersizi
Kredi Kartı borcunu zamanında ödemeyenlere tutarın % 5.5’i oranında ceza verilmektedir. Borcunu son ödeme tarihinden bir ay sonra hala ödemeyenlerin kartlarına el konulmaktadır. Diğer durumlarda kart kullanımı normal şekliyle sürmektedir.
Kredi Kartı aylık ödeme tutarı 1,000 YTL ve üzerinde olanların kart limitleri iki katına çıkarılmaktadır. 1000 YTL ve üzeri ödeme yapanlara toplam harcamalarının % 2’si oranında hediye çeki gönderilmektedir.
![Page 65: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/65.jpg)
İçerik
• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar
![Page 66: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/66.jpg)
UML 2.0 Şemaları
![Page 67: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/67.jpg)
Yapısal Şemalar
– class şeması*– package şeması*– composite structure şeması– object şeması– component şeması– deployment şeması
![Page 68: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/68.jpg)
Class Şeması
• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering
![Page 69: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/69.jpg)
Temel Kavramlar
• Class kendisinden üretilecek nesneler için ortak değişken ve metodları içeren bir şablondur.
• Bu şablondan üretilecek her nesne sadece şablonunda belirtilen değişken tipine uygun veri yapılarını taşıyabilir.
• Her nesne şablonunda tanımlanmış metodlar aracılığıyla kullanılabilir.
![Page 70: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/70.jpg)
Temel Kavramlar
Değişkinler:Bir tip – değer ikilisidir.Class’lar değişken tipini belirler.Nesneler değişken değerini belirler.
Değişkenler bir ilkel veri veya bir class tipinde olabilirler.
İlkel veri tipi kullanılan yazılım ortamına bağlı olarak değişen integer veya string gibi mevcut veri tipleridir.
![Page 71: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/71.jpg)
Temel Kavramlar
Metodlar:Class’ın tüm nesnelerinin canlandırabileceği
davranışlardır.Metodlar önce birer sorumluluk olarak ortaya
çıkıp daha sonra fonksiyonlara dönüşürler.Fonksiyona dönüştüklerinde parametreleri ve
return tipleri tanımlanmış olmalıdır.
![Page 72: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/72.jpg)
Temel Kavramlar
• Değişkinler ‘private’• Metodlar ‘public’
Hepsi küçük harfle başlar ve kelimeler bitişik yazılır.
Course
- number : Integer- name : String- classSize : Integer- active : Boolean
+ openForEnrollment ( )+ closeEnrollment ( )+ isOpenForEnrollment ( )
![Page 73: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/73.jpg)
Temel Kavramlar
• Her eleman bulunduğu yere erişim haklarını ifade eden bir görünürlüğe sahiptir (visibility).– ‘public’ elemanlar Class dışından görülebilir ve
erişilebilirler. Sembolleri: ‘+’– ‘protected’ elemanlar sadece Class’la generalization
ilişkisine sahip Class’larca görülebilir ve erişilebilirler. Sembolleri: ‘#’
– ‘private’ elemanlar ait olduğu Class dışında görülemez ve erişilemezler. Sembolleri: ‘-’
![Page 74: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/74.jpg)
Temel Kavramlar
Encapsulation:Değişkenlerin ‘private’ olma nedenidir.
Course
- number : Integer- name : String- classSize : Integer- active : Boolean
+ openForEnrollment ( )+ closeEnrollment ( )+ isOpenForEnrollment ( )+ register ( )
![Page 75: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/75.jpg)
Temel Kavramlar
Generalization:Farklı ‘abstraction’
seviyeleri arasında ırsiyet ilişkileri kurmak için kullanılır.
Course
- number : Integer- name : String- classSize : Integer- active : Boolean
+ openForEnrollment ( )+ closeEnrollment ( )+ isOpenForEnrollment ( )+ register ( )
PostGraduateCourse
- Sponsor
+ publishWork ( )+ closeEnrollment ( )+ register ( )
GraduateCourse
- thesisTopic
+ register ( )
![Page 76: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/76.jpg)
Temel Kavramlar
Polymorphism: implementasyonun detaylarını gizleyerek kolay kullanımı sağlar.
Aynı isme sahip fakat farklı çalışan fonksiyonları ifade eder.
Course
- number : Integer- name : String- classSize : Integer- active : Boolean
+ openForEnrollment ( )+ closeEnrollment ( )+ isOpenForEnrollment ( )+ register ( )
PostGraduateCourse
- Sponsor
+ publishWork ( )+ closeEnrollment ( )+ register ( )
GraduateCourse
- thesisTopic
+ register ( )
![Page 77: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/77.jpg)
Temel Kavramlar
Inheritance: oluşmuş class’ların özelliklerinin kademeli olarak zenginleştirilebilmesine olanak verir.
Class’ları özel durumlara istinaden ayırarak farklı ‘abstraction’ seviyeleri oluşturulmasını sağlar.
Böylece katmanlı bir sistem mimarisine imkan vererek tekrar kullanımı kolaylaştırır.
![Page 78: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/78.jpg)
Temel Kavramlar
Abstract Class:Kendisinden nesne üretilmeyen, hiyerarşik yapının en
üstünde yer alan ve kendinden özelleştirilmiş class’lar vasıtasıyla değişkenlerini sistemin kullanımına sunan class’lardır.
cd Design
Hayvanlar
Eteburlar OtoburlarOmnivorlar
![Page 79: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/79.jpg)
Class Şeması Sembolleri 1Sembol Tanımı Syntax
association Nesneleri etkileşen Class’lar arasında çizilir.
aggregation Parça bütün ilişkisi ifade eden bir association türüdür.
generalization Aralarında tür / ırsiyet ilişkisi olan Class’ları birbirlerine bağlar.
dependency Bağımlılık ilişkisini ifade eder.
![Page 80: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/80.jpg)
Class Şeması Sembolleri 2
Sembol Tanımı Syntax
class Aynı veri yapısı ve davranışı sergileyen nesnelerin kaynaklandığı kalıptır.
interface Bir öğenin davranışlarını temsil eden bir fonksiyon grubudur.
«interface»
![Page 81: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/81.jpg)
İlgili Roller
• Şemayı Hazırlayanlar:– Tasarımcı– Programcı
• Şemayı Kullananlar:– Tasarımcı– Programcı
![Page 82: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/82.jpg)
Class Şeması Örneğicd Design
Hayvanlar
EteburlarOtoburlar Omnivorlar
Tur
Ucanlar Surunenler
FotosentezYapanlar
Bitkiler
![Page 83: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/83.jpg)
Class ŞemasıEgzersiz # 1
![Page 84: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/84.jpg)
Class ŞemasıEgzersiz # 2
• “Dinozorlar Paleozoik, Mesozoik ve Senozoik zaman dilimlerinde görülmüşlerdir. Paleozoik’in sonlarına doğru memelileri andıran ilginç bir örnek Dimetrodon’dur. Dimetrodon’un sırtında yelken gibi büyük bir çıkıntı vardı. Dimetrodon yürürken dört ayağını birden kullanıyordu ve etçildi.
• Uçan dinozorlara (Pterosor) örnek olarak Pteranodon’u verebiliriz. Diğerlerinin aksine Pteranodon’un kuyruğu yoktu ve çok geniş kanatları vardı (8 m.). Yine ilginç bir özelliği diğerlerinin aksine dişlerinin olmamasıydı. Uçan dinozorlar etçillerdi.
• Etçil dinozorların en ünlüsü Tiranosorus’dur. Etçil dinazorların en önemli özelliklerinden birisi genellikle ön ayaklarının çok küçük ve kullanışsız olmasıdır. Bu tür etçil dinozorlar arka ayakları üzerinde yürür ve ön ayaklarını hareket amacıyla kullanmazlar.
• Otçul dinozorların en uzunları Diplodokus ve Brontosorus etçil dinazorların aksine dört dev ayağa sahiptiler ve hepsini kullanarak gayet hızlı yürüyebildikleri düşünülmektedir. ”
![Page 85: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/85.jpg)
Package (Paket) Şeması
• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering
![Page 86: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/86.jpg)
Temel Kavramlar
• Paket, Subsystem ve Model – Model içindeki elemanları belli bir referansa göre
gruplamaya yararlar. – Her grubun elemanları arasında farklı bir semantik
ilişki vardır. Farklı bir nedenden dolayı bir araya gelmişlerdir.
• Subsystem (Modül) ve Model aslında birer pakettir.
![Page 87: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/87.jpg)
Temel Kavramlar
Paket UML modeli elemanlarından oluşan bir gruptur.
![Page 88: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/88.jpg)
Paket Şeması Sembolleri
![Page 89: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/89.jpg)
İlgili Roller
• Şemayı Hazırlayanlar:– Herkes
• Şemayı Kullananlar:– Herkes
![Page 90: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/90.jpg)
Paket Şeması Örnekleri
SiparişMüşteri
Yer CD
Stok Sipariş
Depo
Satış
![Page 91: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/91.jpg)
Şema Eksiksizliği Kontrolleri 1
• UML Şeması hazırlamak serbest resim çalışmasına dönüşmemelidir.
• Şemanın hazırlanma amacı asla mevcudiyeti olmamalıdır.
• Şemayı hazırlayan ya düşünüyordur, ya sistemi geliştiriyordur, ya birisine doküman hazırlıyordur ya da bir sistemin yapısını inceliyordur.
• Şemaların belli hazırlayıcıları ve kullanıcıları vardır.
![Page 92: 003 Uml Semalari [94 Slides]](https://reader033.vdocuments.net/reader033/viewer/2022061210/548ea307b47959e0728b482e/html5/thumbnails/92.jpg)
Şema Eksiksizliği Kontrolleri 2
• Bir UML şeması çizmeye karar verdiğimizde belli bir amacımız ve açıkça ifade edilebilen sorularımız olmalıdır.
• Sorularımız yanıt bulduğunda eğer şirketimiz içinde gereken dokümantasyon seviyesine de uyuyorsak çizim çalışması biter.
• Her şemanın aynı konuda olsalar bile farklı yararlılık dereceleri vardır. Bazı şemalar zamana karşı koyar bazılarıysa giderek gözden düşer.