003 uml semalari [94 slides]

92
UML/UP ile Yazılım Geliştirme Bölüm 3 / 7

Upload: erol-bozkurt

Post on 15-Dec-2014

2.931 views

Category:

Documents


1 download

DESCRIPTION

Unified Process ve UML ile Yazılım Geliştirme - 3 - UML Şemaları

TRANSCRIPT

Page 1: 003 Uml Semalari [94 Slides]

UML/UP ile Yazılım Geliştirme

Bölüm 3 / 7

Page 2: 003 Uml Semalari [94 Slides]

İç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]

İçerik

• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar

Page 4: 003 Uml Semalari [94 Slides]

UML 2.0 Şema Türleri

*

*

*

*

*

Page 5: 003 Uml Semalari [94 Slides]

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]

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]

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]

İçerik

• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar

Page 9: 003 Uml Semalari [94 Slides]

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]

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]

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]

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]

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]

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]

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]

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]

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]

• 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]

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]

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]

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]

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]

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]

İçerik

• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar

Page 25: 003 Uml Semalari [94 Slides]

UML 2.0 Şemaları

Page 26: 003 Uml Semalari [94 Slides]

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]

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]

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]

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]

‘Sihirli’ Use Case Sayısı Nedir?

Page 31: 003 Uml Semalari [94 Slides]

İ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]

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]

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]

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]

Şema Örneği 1

Page 36: 003 Uml Semalari [94 Slides]

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]

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]
Page 39: 003 Uml Semalari [94 Slides]

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]

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]

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]

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]

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]

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]

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]

İ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]

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]

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]

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]

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]

Ş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]

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]

Activity Şeması Örnekleri 3

Page 54: 003 Uml Semalari [94 Slides]

Activity Şeması Örnekleri 4

Page 55: 003 Uml Semalari [94 Slides]

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]

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]

Temel Kavramlar 1

Page 58: 003 Uml Semalari [94 Slides]

Temel Kavramlar 2

Page 59: 003 Uml Semalari [94 Slides]

Temel Kavramlar 3

Action ve Output:

Page 60: 003 Uml Semalari [94 Slides]

Temel Kavramlar 4Event ve State Machine örtüşmesi:

Page 61: 003 Uml Semalari [94 Slides]

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]

Temel Kavramlar 6

Hiyerarşik State Machine’ler:

Page 63: 003 Uml Semalari [94 Slides]

İlgili Roller

• Şemayı Hazırlayanlar:– Sistem Analisti– Tasarımcı– Programcı

• Şemayı Kullananlar:– Sistem Analisti– Tasarımcı– Programcı

Page 64: 003 Uml Semalari [94 Slides]

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]

İçerik

• UML Modeli Kavramları• UML Tanımını Genişletme Mekanizmaları• Davranış Şemaları• Yapısal Şemalar

Page 66: 003 Uml Semalari [94 Slides]

UML 2.0 Şemaları

Page 67: 003 Uml Semalari [94 Slides]

Yapısal Şemalar

– class şeması*– package şeması*– composite structure şeması– object şeması– component şeması– deployment şeması

Page 68: 003 Uml Semalari [94 Slides]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

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]

İlgili Roller

• Şemayı Hazırlayanlar:– Tasarımcı– Programcı

• Şemayı Kullananlar:– Tasarımcı– Programcı

Page 82: 003 Uml Semalari [94 Slides]

Class Şeması Örneğicd Design

Hayvanlar

EteburlarOtoburlar Omnivorlar

Tur

Ucanlar Surunenler

FotosentezYapanlar

Bitkiler

Page 83: 003 Uml Semalari [94 Slides]

Class ŞemasıEgzersiz # 1

Page 84: 003 Uml Semalari [94 Slides]

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]

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]

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]

Temel Kavramlar

Paket UML modeli elemanlarından oluşan bir gruptur.

Page 88: 003 Uml Semalari [94 Slides]

Paket Şeması Sembolleri

Page 89: 003 Uml Semalari [94 Slides]

İlgili Roller

• Şemayı Hazırlayanlar:– Herkes

• Şemayı Kullananlar:– Herkes

Page 90: 003 Uml Semalari [94 Slides]

Paket Şeması Örnekleri

SiparişMüşteri

Yer CD

Stok Sipariş

Depo

Satış

Page 91: 003 Uml Semalari [94 Slides]

Ş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]

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