yapı diyagramları eylem diyagramları etkileşim diyagramları · diyagramlar uml görsel olarak...

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

Upload: hangoc

Post on 29-Aug-2019

312 views

Category:

Documents


0 download

TRANSCRIPT

Konular

UML

Yapı Diyagramları

Eylem Diyagramları

Etkileşim Diyagramları

UML

2

Diyagramlar

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

Yapı Diyagramları

Eylem Diyagramları

Etkileşim Diyagramları

3

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

Sınıf Diyagramı

5

Nesne Diyagramları

Paket Diyagramları

7

Bileşen (Component) Diyagramları

8

Bileşen (Component) Diyagramları

9

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

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

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

Dağıtım (Deployment) Diyagramları

13

Eylem Diyagramları

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

Kullanım Durumu (Use-Case) Diyagramları

Durum (State) Diyagramları

Aktivite (Activity) Diyagramları

14

Kullanım Durumu Diyagramları

15

Durum Diyagramları

16

Durum Diyagramları

17

Aktivite Diyagramları

18

Aktivite (Activity) Diyagramları

19

Aktivite (Activity) Diyagramları

20

Etkileşim Diyagramları

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

İletişim Diyagramları (Communication Diagrams)

Ardışıl Diyagramlar (Sequence Diagrams)

21

İletişim Diyagramları

22

Ardışıl Diyagramlar

23

İ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

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

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

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

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

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

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

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

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

Kendine Mesaj

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

33

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

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

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

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

İ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

İ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

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

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

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

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

KAYNAKÇA