Top Banner
Konular UML Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları
42

Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Aug 29, 2019

Download

Documents

hangoc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Konular

UML

Yapı Diyagramları

Eylem Diyagramları

Etkileşim Diyagramları

Page 2: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

UML

2

Page 3: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Diyagramlar

UML görsel olarak modelleme için birçok diyagrama sahiptir.

Yapı Diyagramları

Eylem Diyagramları

Etkileşim Diyagramları

3

Page 4: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Yapı Diyagramları

UML' de altı tür yapı diyagramı vardır:

Sınıf (Class) Diyagramları

Nesne (Object) Diyagramları

Paket (Package) Diyagramları

Bileşen (Component ) Diyagramları

Birleşik Yapı (Composite Structure) Diyagramları

Dağıtım (Deployment) Diyagramları

4

Page 5: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Sınıf Diyagramı

5

Page 6: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Nesne Diyagramları

Page 7: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Paket Diyagramları

7

Page 8: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Bileşen (Component) Diyagramları

8

Page 9: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Bileşen (Component) Diyagramları

9

Page 10: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Birleşik Yapı (Composite Structure) Diyagramları

Birleşik yapıların iki ayrı türü vardır:

Toplama, bir araya getirme (Aggregation)

Meydana gelme (Composition)

10

Page 11: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Toplama (Aggregation)

Toplama, bir araya getirme (Aggregation):İçerilen nesneler (alt parçalar) kendi başlarına dakullanılırlar. Sadece o nesneye ait parçalardeğillerdir.

Örneğin havaalanında uçaklar vardır.

11

Page 12: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Meydana gelme (Composition)

Meydana gelme (Composition): Alt parçalar onesneyi meydana getirmek için oluşturul-muşlardır; kendi başlarına kullanılmazlar.

Örneğin otomobilin motoru vardır.

12

Page 13: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Dağıtım (Deployment) Diyagramları

13

Page 14: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Eylem Diyagramları

UML' de üç tür eylem diyagramı vardır:

Kullanım Durumu (Use-Case) Diyagramları

Durum (State) Diyagramları

Aktivite (Activity) Diyagramları

14

Page 15: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Kullanım Durumu Diyagramları

15

Page 16: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Durum Diyagramları

16

Page 17: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Durum Diyagramları

17

Page 18: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Aktivite Diyagramları

18

Page 19: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Aktivite (Activity) Diyagramları

19

Page 20: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Aktivite (Activity) Diyagramları

20

Page 21: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Etkileşim Diyagramları

UML' de iki tür etkileşim diyagramı vardır:

İletişim Diyagramları (Communication Diagrams)

Ardışıl Diyagramlar (Sequence Diagrams)

21

Page 22: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

İletişim Diyagramları

22

Page 23: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Ardışıl Diyagramlar

23

Page 24: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

İletişim Diyagramları

Terminal adlı sınıftan yaratılmış bir nesnenin odemeYap(verilenNakit)adlı metodu canlandırdığında bu metodun içinde Satis adlı sınıftanyaratılan bir nesneye odemeYap(verilenNakit) adlı başka bir mesajgönderilir.

Satis nesnesi bu metodun içinde Odeme adlı sınıftan bir nesneyaratır.

24

Page 25: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Mesaj Sıra Numaraları

Mesajlar gönderildikleri sıraya göre numaralanırlar. İlk mesaja numara verilmez.

Bir mesajın neden olduğu diğer mesajlara da sebep mesajın numarasına bağlı altnumaralar verilir.

Aşağıdaki şekilde, ClassA' nın bir nesnesi ClassB' nin bir nesnesine msg2 mesajınıyolladığında ClassB' nin nesnesi de ClassC' nin nesnesine msg3 mesajınıgönderecektir. msg3 sonlandığında tekrar msg2' ye dönülecektir.

25

Page 26: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Kendine Mesaj

Nesneler kendilerine de mesaj

gönderebilirler, yani kendi

metotlarını çağırabilirler.

Şekildeki örnekte, Terminal

nesnesi, msg1 metodunun

içinde kendi sil metodunu

çağırmaktadır.

26

Page 27: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Nesne Yaratma

Bir mesaj nesne yaratılmasını sağlamak için gönderiliyorsa normal olarak bu mesajacreate adı verilir ve bir kurucu fonksiyon (constructor) çağrısı olarak yorumlanır.

Eğer başka bir isim verilirse <<create>> tanımlayıcısı kullanılır.

Aşağıdaki şekilde her iki durum da gösterilmiştir. Bu örnekte, Terminal nesnesi Satisnesnesini yaratmaktadır.

27

Page 28: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Koşullu Mesajlar

Bu tür mesajlar sadece belli bir koşul gerçekleştiğinde gönderilebilirler. Eğer köşeliparantez içinde verilen koşul gerçekleşmemişse o mesaj gönderilmez, sonraki mesajageçilir.

Şekil’de verilen örnekte A sınıfından yaratılan nesnenin mesaj1 metodunun içinde renkdeğeri sınanmaktadır. Eğer renk = mavi koşulu doğru ise :A nesnesi, :B nesnesinehesapla() mesajını gönderecektir.

Koşul doğru değilse bir sonraki mesajla (örneğin 2 numaralı) devam edilecektir.

Bu durum programlamadaki if-then yapısına karşı düşmektedir.

28

Page 29: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Karşılıklı Dışlamalı Mesajlar

Nesneler arası etkileşim, belli bir koşula bağlı olarak farklı yollar izleyebilir.

Şekil’de verilen örnekte "test" koşuluna bağlı olarak a ya da b yollarından biriizlenecektir.

Diyagramda gösterilen sistem SınıfA' dan yaratılan nesneye msg1() mesajınıngelmesi ile çalışmaya başlar. Bu metodun içinde test koşuluna bakılır. Eğer test=trueise 1a numaralı msg2 SınıfB'den yaratılan nesneye gönderilir ve msg3() ile devamedilir.

Eğer test=true değil ise 1b numaralı msg4 SınıfD' den yaratılan nesneye gönderilir.

Koşullara bağlı mesajlar gönderildikten sonra SınıfA' dan yaratılan nesne SınıfE' denyaratılan nesneye koşulsuz olarak 2 numaralı msg6 mesajını gönderir.

29

Page 30: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Döngüler (İterasyonlar)

UML iletişim diyagramlarında tekrarlamalar (döngüler) "*" sembolüile gösterilir. Şekil’de verilen örnekte Simulator sınıfından yaratılannesne, i = 1' den N' e kadar Random sınıfından yaratılan nesneyenextInt() mesajını defalarca gönderecektir.

Bu metot çağrısında geri gönderilen değer num adlı bir değişkendetutulmaktadır.

Eğer tekrarın kaç defa yapılacağı tasarım aşamasında belli değilse,kodlama aşamasına bırakılmışsa ya da problemin yapısından dolayıaçıkça belli ise döngü koşulu yazılmadan sadece "*" simgesi dekullanılabilir.

30

Page 31: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Ardışıl (Sequence) Diyagramlar (Örnek)

Market sisteminin ardışıl diyagramı aşağıdaki şekil’de gösterilmiştir.

Bu diyagramda da Terminal, Satis ve Odeme, sistem tasarlanırkenoluşturulacak sınıfların adıdır. Bu nedenle Türkçe karakterlerkullanılmamıştır.

31

Page 32: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Geri Dönüşler

Mesajlardan geri dönüşleri göstermek çoğunlukla gerekli değildir. Gerekli olduğudurumlarda geri dönüşler kesik çizgi ile gösterilir.

Çağırılan metodun geri döndürdüğü değer istenirse mesajın başına yazılır istenirse geridönüş çizgisinin üstüne yazılır. Şekil’de verilen örnekte her iki yöntem de gösterilmiştir.

Örnekte, msg2() mesajı geriye a değerini döndürnketedir. Benzer şekilde msg3()çağrısı da geriye paraUstu değerini döndürmektedir. msg4() ve msg5() çağrıları isegeriye değer döndürmemektedir.

32

Page 33: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Kendine Mesaj

Şekil’deki örnekte Termi-nal nesnesi, msg1metodunun içinde kendi silmetodunu çağırmaktadır.

33

Page 34: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Nesne Yok Etme

Şekil’deki örnekte :Satis nesnesi, önce :Odemenesnesini yaratmakta daha sonra da yok etmektedir. Buişlemler C++' da new ve delete operatörleri ile yapılır.

34

Page 35: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Koşullu Mesajlar

Bu tür mesajlar sadece belli bir koşul gerçekleştiğinde gönderilebilirler. Eğer köşeliparantez içinde verilen koşul gerçekleşmemişse o mesaj gönderilmez, sonraki mesajageçilir.

Şekil’de verilen örnekte A sınıfından yaratılan nesnenin msg1 metodunun içinde önce:B nesnesine msgx() mesajını gönderilmektedir. Ardından msg1 metodunda renkdeğeri sınanmaktadır. Eğer renk = mavi koşulu doğru ise :A nesnesi, :B nesnesinehesapla() mesajını gönderecektir.

Daha sonra (koşul doğru olsa da olmasa da) bir sonraki mesajla (msgy() ) devamedilecektir.

35

Page 36: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Karşılıklı Dışlamalı Mesajlar (UML 1.X)

Nesneler arası etkileşim, belli bir koşula bağlı olarak farklı yollarizleyebilir.

Şekil’de verilen örnekte "X>10" koşuluna bağlı olarak :B ya da :Cnesnelerine hesapla mesajı gönderilir. Bu diyagram UML' in birönceki sürümünde (1.X) kullanılan gösterilime göre çizilmiştir. Bugösterilimde nesnelerin isimlerinin altı çizilmektedir.

36

Page 37: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Karşılıklı Dışlamalı Mesajların Yeni Biçimi (UML 2.x)

UML 2.0' da karşılıklı dışlamalı durumları göstermek için "alt"anahtar sözcüğü kullanılır. Bu sözcüğün yanına koşullardan biri yazılır.Koşul gerçekleşmediği durumlarda gönderilecek mesajlar ise kalın birkesik çizgiden sonra sıralanır. Bu grubun başına "else" anahtarsözcüğü yazılır.

Şekil’de UML 2.0' da karşılıklı dışlamalı mesajların ardışıldiyagramlarda nasıl çizildiği gösterilmiştir.

37

Page 38: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

İterasyonlar (Döngüler)

Şekil’de UML' in eski sürümü 1.5' te tek mesajlı bir döngü yapısıgösterilmiştir.

Bu örnekte Simulator sınıfından yaratılan nesne, i = 1' den N' ekadar Random sınıfından yaratılan nesneye nextInt() mesajınıdefalarca gönderecektir.

38

Page 39: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

İterasyonlar (Döngüler)

Önceki örnekle aynı sistem UML' in 2.0 sürümü ilegösterilmiştir. UML’in yeni sürümünde döngüler "loop"anahtar sözcüğü ile belirtilmektedir.

39

Page 40: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Diyagramlar Arası Etkileşim

Altprogram çağırmak gibidir. Çok tekrarlanan işlemler için kullanılır.

Başka diyagramdan alınacak olan kısım ana diyagramın içinde "ref" bloğu ile belirtilir. Bu bloğun içine aynı isimdeki ardışıl diyagramın yerleşeceği anlaşılır.

40

Page 41: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Genel Kurallar

UML bir programlama (ya da yazılım geliştirme) dili olmaktan ziyadeiş sistemlerinin nasıl modellenebileceğini belirleyen ve açıklayanyöntemlerin bir araya toplanmış halidir.

Daha çok yazılım geliştiriciler tarafından kullanılıyor olsa da UML ileyapılan modellemeler sadece yazılım projelerinde kullanılmak zorundadeğildir. Örneğin bir iş sistemin yapısını sade ve anlaşılır şekilde ortaya çıkarmak için Paket

Diyagramı ("Package Diagram") kullanılabilir.

Altın kural: Diyagramdaki elemanlar ve elemanları açıklayıcı yazılarne kadar az olursa, diyagram o kadar açıklayıcı olur. Detayların tümünü bir diyagramda göstermeye çalışırsanız hem kendiniz hem de

yazılımı kullanacak olanlar temel bakış açısını yitirebilirler.

41

Page 42: Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları · Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları

Y.Doç.Dr.Feza BUZLUCA ders notları

http://www.buzluca.info/dersler.html

KAYNAKÇA