003 uml semalari [94 slides]

Post on 15-Dec-2014

2.933 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

Bölüm 3 / 7

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

İçerik

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

UML 2.0 Şema Türleri

*

*

*

*

*

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.

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

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.

İçerik

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

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

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.

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

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

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

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.

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

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}

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

• 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

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

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

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

GUI ProfiliClass ve Association UML metamodelinden gelmektedir

GUI Profili

Class

<<stereotype>>Form

<<stereotype>>Button

Association

<<stereotype>>Contains

<<stereotype>>DialogBox

<<stereotype>>Invokes

GUI Profili Uygulaması

<<Form>>MainView

1 1

<<Button>>OkButton

<<Button>>CancelButton

<<Invokes>>

<<Contains>> <<Contains>>

<<DialogBox>>OpenDialogBox

1 1

1 1

İçerik

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

UML 2.0 Şemaları

Davranış Şemaları

– use case şeması*– activity şeması*– Etkileşim Şemaları

• sequence şeması• collaboration / communication şeması• interaction overview• timing şeması

– statechart / state machine şeması*

Use Case Şeması

• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering

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.

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

‘Sihirli’ Use Case Sayısı Nedir?

İ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

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

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

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

Şema Örneği 1

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»

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

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

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

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?

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»

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

Activity Şeması

• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering

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.

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

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.

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.

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.

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.

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

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

Activity Şeması Örnekleri 3

Activity Şeması Örnekleri 4

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.

Statechart Şeması

• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering

Temel Kavramlar 1

Temel Kavramlar 2

Temel Kavramlar 3

Action ve Output:

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

Temel Kavramlar 5Bir faaliyet sona erene ve state geçerliliğini yitirene dek eş zamanlıolarak sürekli çalışır:

Temel Kavramlar 6

Hiyerarşik State Machine’ler:

İlgili Roller

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

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

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.

İçerik

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

UML 2.0 Şemaları

Yapısal Şemalar

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

Class Şeması

• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering

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.

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.

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.

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 ( )

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: ‘-’

Temel Kavramlar

Encapsulation:Değişkenlerin ‘private’ olma nedenidir.

Course

- number : Integer- name : String- classSize : Integer- active : Boolean

+ openForEnrollment ( )+ closeEnrollment ( )+ isOpenForEnrollment ( )+ register ( )

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 ( )

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 ( )

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.

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

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.

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»

İlgili Roller

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

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

Class Şeması Örneğicd Design

Hayvanlar

EteburlarOtoburlar Omnivorlar

Tur

Ucanlar Surunenler

FotosentezYapanlar

Bitkiler

Class ŞemasıEgzersiz # 1

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

Package (Paket) Şeması

• Temel Kavramlar• Şema İçeriği• Şemayla Aktarılan Bilgiler• Tasarım Teknikleri• Forward ve Reverse Engineering

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.

Temel Kavramlar

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

Paket Şeması Sembolleri

İlgili Roller

• Şemayı Hazırlayanlar:– Herkes

• Şemayı Kullananlar:– Herkes

Paket Şeması Örnekleri

SiparişMüşteri

Yer CD

Stok Sipariş

Depo

Satış

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

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

top related