Professional Documents
Culture Documents
Erdoğan Doğdu TOBB UML
Erdoğan Doğdu TOBB UML
Esaslar ve Kavramlar Yaplarn ve ilikilerin modellenmesi Dinamik hareketlerin (behavior) modellenmesi Gereksinimlerin kullanm ekilleri (use cases) ile modellenmesi rnek bir alma: E-Kitap
7 Ekim 2005
UML tarihesi
UML: Unified Modelling Language
Many modelling methodologies by 1990s Booch method, Rumbaughs OMT, Jacobsons OOSE unified in Rational Object Management Group (OMG) www.omg.org UML 1.0 (1997) UML 2.0 (2004)
UML nedir?
Yazlm tasarm iin kullanlan bir modelleme dili Tasarlanan sistemin 3 nemli ynn modeller
Fonksiyonel (ilevsel) model
Kullancnn bak ile sistem (kullanm ekilleri)
UML Use Case Diagrams
Nesne modeli
Sistemin yaps: nesneler, zellikleri, ilemler, yapsal ilikiler
UML Class Diagrams
Dinamik model
Sistemin i ileyii
UML Sequence, Avtivity, State-Chart Diagrams
7 Ekim 2005
7 Ekim 2005
Nesneler ve Snflar
Nesne (object)
Gerek dnyada, ayr ayr tanmlanabilen herey bir nesnedir. Modelde, her nesnenin bir kimlii, durumu, ve davran vardr.
Nesneler ve Snflar
Gerek Dnyada Yorumlanmas Nesne (Object) Ayr ayr tanmlanabilen herey bir nesnedir Modelde Gsterimi
Snf (class)
Gerek dnyada, benzer karakteristik ve davranlara sahip nesneler bir snf (class) ile temsil edilir. Modelde, bir snf, nesneler tarafndan paylalan durum ve davranlar temsil eder.
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 5
Snf (Class)
Her nesnenin bir kimlii (identity), durumu (state), ve davran (behavior) vardr Benzer karakteristik Bir snf, nesneler ve davranlara sahip tarafndan nesneler bir snf paylalan durum ve (class) ile temsil davranlar temsil edilir eder
TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 6
7 Ekim 2005
Nesne (object)
Kimlik (identity)
Nesneyi birtek (unique) olarak tanmlar ve onu dier nesnelerden ayrr
Durum (state)
zellikler (fields veya attributes) ile belirtilir zellik =
ad (name) + tr (type) + deer (value)
Davran (behavior)
Metotlar (methods veya operations): nesnenin durum bilgilerine eriebilen ve deitirebilen ilemler. Metot, metot ad, ald parametre trleri, ve dndrd tr ile tanmlanr. Herhangi bir deer dndrmeyen metotlar void ile belirtilir.
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 7 7 Ekim 2005
Metotlar:
dersEkle() dersSil() danmanAta()
Nesne (object)
ki nesne:
eit (equal): durumlar ayn; zellik deerleri ayn. ayn (identical): ayn nesne
Snf (class)
Nesneler (objects veya instances) snf (class) tanm kullanarak oluturulurlar (instantiation). Snf (class) aadakileri tanmlar:
Alanlar (fields): Nesne zelliklerini tanmlayan deikenler, adlar ve trleri ile. Metotlar (methods): Metot adlar, dndrd tr, parametreleri, ve metotu gerekletiren program kodu
Metotlar:
eriim metotlar (accessors): zellik deerlerini deitirmeyen metotlar deiim metotlar (mutators): zellik deerlerini deitiren metotlar
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 9 7 Ekim 2005
10
Metotlar (methods)
boolean dersEkle(String dersKodu, String dnem) boolean dersSil(String dersKodu, String dnem) boolean danmanAta(Danman yeniDanman)
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara
Metotlarn tanmlar
12
Eriim (visibility)
Public: dier snflar eriebilir Protected: ayn paketteki (package) dier snflar ve btn alt snflar (subclasses) tarafnda eriilebilir Package: ayn paketteki (package) dier snflar tarafnda eriilebilir Private: yalnzca iinde bulunduu snf tarafndan eriilebilir (dier snflar eriemezler)
13 7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 14
Metotlar
[Eriim][Tr] Ad ([Parametre, ...]) rnek: public boolean dersAl (String dersKodu) Standart UML gsterimi
[Eriim] Ad ([Parametre, ...]) [:Tr] rnek: public danmanAta(Danman d):boolean
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara
Eriim (visibility)
Eriim (visibility) public protected package private
7 Ekim 2005
(Java) (UML)
public int sre = 100 (Java) +sre:int = 100 (UML) private renci renciler[0..MAX_R] (Java) -renciler[0..MAX_R]:renci(UML)
15 7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 16
private
Point x y move()
18
7 Ekim 2005
17
7 Ekim 2005
Java
Point p1 = new Point(); p1.x = 0; p1.y = 0; Point p1 = new Point(); p1.x = 24; p1.y = 40;
7 Ekim 2005
19
7 Ekim 2005
20
Mesaj bir nesneye gnderilir (alc recipient) ve alc nesne arlan metodu altrr rnek: p1.move(10, 20) (p1 nesnesi: xde 10, yde 20 pixel kay)
Alc: p1, metot: move(), parametreler: (10,20)
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 21
7 Ekim 2005
22
java.lang
image
7 Ekim 2005
23
7 Ekim 2005
24
Modlerlik (modularity)
Karmak sistemler, paralara blnerek gelitirilmeli ve denetlenmelidir Parala-fethet (divide-and-conquer) teknii Sistem modllere paralanmaldr (decomposition)
Tek bir yolu yok; bu bir sanat Kriter:
Cohesion: Modl iindeki nesneler birbirleriyle fonksiyonel olarak ilikili olmaldr Coupling: Modller aras iletiim basit olmaldr
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 25
Soyutlama (abstraction)
Esas olann, esas olmayandan ayrlmas Bir modln davranlar, veya ilevleri, bir kontrat arayz (contractual interface) ile belirlenmelidir. Bu arayz modln soyutlanm halidir; modln ne yaptn belirtir. Modl: servis salayc (service provider) Kontrat arayz: servis kontrat
Hangi servisler saland belirtilir (what) Servislerin nasl saland belirtilmez (not how)
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 26
Soyutlama: rnek
Telefon
Olduka karmak bir sistem: sesin elektronik sinyallere ve tekrar sese evrimi, sinyallerin analog ve dijital olarak aktarm, sinyallerin enkript/dekript edilmesi, balant kurulmas vs.
Kapama (encapsulation)
Mteri (servis kullanc) servisi kullanmak iin servis kontrat dnda hibirey bilmek zorunda deildir Bir modl gerekletirilirken, detaylar kullanclardan gizlenmelidir; yalnzca kontrat arayz aracl iletiim kurulmaldr Bilgi gizleme (information hiding) Arayz sabit kald srece, program kodu dier kullanclar etkilemeden deitirilebilir..
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 28
Kapama: rnek
Telefon servisi eskiden yalnzca analogdu imdi dijital telefon servisi de salanyor, ayrca encription (kodlama) ile gvenlik de salanabiliyor Fakat servis arayz (interface) deimedi Kullanclar servisi eskisi gibi kullanyorlar, fakat ses ve servis kalitesi artt Javada servis arayz, gerekletirimden tamamen ayrlabilir
interface ve interfacei gerekletiren snf (class)
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 29
Polymorphism
Birden fazla servis salayc ayn servis kontratn kabul edebilir (honor) Servis salayc, kullancy etklilemeden, yer deitirilebilir (baka bir servis salaycya geilebilir)
7 Ekim 2005
30
Polymorphism: rnek
Baz cep telefonlar hem analog hem dijital telefon kullanma kapasitesine sahipler Kullanlan alan hangisi ise, telefon otomatik olarak dijital veya analog servise gemektedir. Kullanclar hangi servisin kullanldn bilmemekteler; servis arayz her iki durumda da ayn (GSM, TDMA, CDMA servislerini, yada deiik frekanslar kullanma kapasitesine sahip telefonlar da bunun bir rneidir)
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 31
Inheritance (kalt)
Snf ve arayzler arasndaki iliki 3 tr
Extension: stsnf (superclass) ve altsnf (subclass) arasnda Arayzler aras extension Implementation: bir snf bir arayz gerekletiriyor
Inheritance (kalt)
UML notasyonu
Superclass Superinterface Interface
UMLce:
Specialization (extension) Realization (implementation)
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 33
7 Ekim 2005
34
Inheritance: rnek
renci
Inheritance
Multiple Inheritance (oklu kalt): Bir snf birden fazla stsnftan kalt alabilir (inherit from multiple superclasses) Single Inheritance (tekli kalt): ou nesnesel programlama dili tekli kalta izin verir. Java gibi. Javada kstl olarak oklu kalta izin vardr; ancak bu arayzlerden (interface) olabilir.
Dardanrenci
Lisans
YksekLisans
Master
Doktora
Her Lisans rencisi bir rencidir. Her Master rencisi bir YksekLisans rencisidir
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 35 7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 36
Association (ilikili)
Snflar aras ikili (binary) ilikiler
Snf1
ad rol rol
Snf2
renci
danan *
kaytl
Ders
1 1 dersveren
danlan
Danman
7 Ekim 2005
37
7 Ekim 2005
38
Aggregation ve Composition
Aggregation Aggregate
rol ad rol ad rol
Aggregation/Composition : rnek
1 1 * 1 1 yesi 1 1 *
Composition Aggregate
rol bakan
niversite
Faklte
Blm
1
renci
Component
Component
retimyeleri Faklte olmadan blmler olamaz (kompozisyon) niversite olmazsa faklteler de olamaz (kompozisyon) Blm olmadan retim yeleri ve renciler(?) olabilir (agregasyon)
7 Ekim 2005
41
7 Ekim 2005
42
Bamllk (dependency)
Bir snfn dier bir snfa bal olmas rnein: bir snfn dier bir snf kullanmas (use) (snfn dier snfn metotlarn armas gibi, yada o snftan bir nesneyi dndrmesi gibi..
Snf1 Snf2
7 Ekim 2005
43
7 Ekim 2005
44
Sequence Diagrams
Nesneler aras metot arma ilemlerinin zaman izgisinde sral gsterimi Zaman izgisi y-ekseni zerinde yukardan aa gsterilir lgili nesneler x-ekseni zerinde en stte soldan saa sralanr
nesne:Snf
nesne <<olutur>> metot(param) Method alyor Hayat izgisi Nesne oluturma (new) Metot ar Metot geri dner
46
7 Ekim 2005
45
7 Ekim 2005
:PrintQueue pj:PrintJob
add(this) assignJobNo()
print()
7 Ekim 2005
47
7 Ekim 2005
48
Bir durum
Durum
Kaynak Durum
olaylar[koul]/aksiyon
ald
Gelenarama
kapand balanyor
konu
Tularald konuuyor
Balant-saland
7 Ekim 2005
49
7 Ekim 2005
50
Gereksinimlerin modellenmesi
Sistem gereksinimleri UML Use Case (kullanm ekilleri) diyagramlar ile belirtilir Yazlm gelitirme iin gerekli deildir, fakat gereksinimler ve nesnesel modeller arasnda en nemli balantdr Use Case: Kullanm ekli
Bir sistem fonksiyonunun dardan gzlemlenen davran Sistemle, sistem d aktrler (kullanc veya dier sistemler gibi) arasnda etkileimler.. Sistem ne yapyorla ilgili, nasl yapyorla ilgili deil..
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 51
Gereksinimlerin modellenmesi
Use Cases (Kullanm ekilleri)
Bir ad var Birka senaryordan oluabilir
Bunlardan birisi ana senaryo, dierleri alternatif senaryolar olabilir
7 Ekim 2005
52
Aktr
ekil1
7 Ekim 2005
53
7 Ekim 2005
54
<<include>>
Snf listesi al
<<include>>
Kullancy dorula
Kullanc
retimyesi
<<extend>>
<<include>>
7 Ekim 2005
55
7 Ekim 2005
56
eKitap: Kavramsallatrma
Sitemin temel gereksinimleri:
Mterilerin kitaplar, mzik CDlerini, ve bilgisayar yazlmlarn nternet zerinden taramalarn ve satn almalarn salamak
Kullanc
<<include>>
Mteri Alveri
<<include>>
Katalog ynetimi
Katalog yneticisi
Sistem yneticisi
7 Ekim 2005
Kayt ynetimi
Sipari ileme
Depo yneticisi
58
7 Ekim 2005
60
10
eKitap: Snflar
EKitap: Tm sistem Mteri: eKitap mterileri Kitap: eKitapda satlan kitaplar MuzikCD Yazlm Ayrca: Sepet: Mterinin almak istediklerini tutan geici liste Sipari: Mterinin siparii Adres: Mteri adresi
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 62
eKitap: Classes
Mteri ad msteriNo ifre gndermeAdresi faturaAdresi Adres sokak ehir lke postaKodu
eKitap: Classes
64
eKitap: Classes
ge ad yaync yl ISBN fiyat
* 1
ge Kitap yazar bask cilt
7 Ekim 2005
Yazlm versiyon
65
7 Ekim 2005
66
11
1 1
Mteri
1 1 1
Sepet
* *
ge
Sipari
1 *
Siprarigesi
deme
* 1 1
Kitap
MzikCD
Yazlm
Sepet
7 Ekim 2005
67
7 Ekim 2005
68
dev
Exercise 2.3 (Jia) Sayfa 52-53 (Teslim: 28 Eyll)
Aadaki sistemin nesnesel modelini gelitirin
Aktrleri ve use caseleri belirleyin, UML use case diyagramn izin Sistemin UML class diagramn izin
zet
Nesnesel yazlm gelitirmede temel esaslar: modularity, abstraction, encapsulation, levels of abstraction. Ama: karmakl azaltmak, esneklii artrmak. Decomposition (sistemin paralarna ayrlmas): ki temel kriter uygulanr, cohesion (modller iinde snflarn uyumluluu) ve coupling (modller arasnda balarn gevek olmas). UML nesnesel modelleme iin yaygn olarak kullanlan bir modelleme dilidir. Sistemin statik yaps class diyagramlar ile modellenir, Sistemin dinamik yaps ise sequence ve state diyagramlar kullanlarak modellenir. Use case diyagramlar ise sistemin kullanm gereksinimlerini modellemek iin kullanlr (to model what the system does, not how).
7 Ekim 2005 TOBB Ekonomi ve Teknoloji niversitesi, Bilgisayar Mh.Bl., Ankara 70
12