Post on 15-Dec-2014
description
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.