erdoğan doğdu tobb uml

12
1 BİL211 Ders 3: UML ile Nesnesel Modelleme (Ch.2 Jia) Erdoğan Doğdu TOBB Ekonomi ve Teknoloji Üniversitesi Bilgisayar Mühendisliği Bölümü Ankara 7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 2 İçerik Esaslar ve Kavramlar Yapıların ve ilişkilerin modellenmesi Dinamik hareketlerin (behavior) modellenmesi Gereksinimlerin ‘kullanım şekilleri’ (use cases) ile modellenmesi Örnek bir çalışma: E-Kitapçı 7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 3 UML tarihçesi UML: Unified Modelling Language Many modelling methodologies by 1990s Booch method, Rumbaugh’s OMT, Jacobson’s OOSE unified in Rational Object Management Group (OMG) www.omg.org UML 1.0 (1997) UML 2.0 (2004) 7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 4 UML nedir? Yazılım tasarımı için kullanılan bir modelleme dili Tasarlanan sistemin 3 önemli yönünü modeller Fonksiyonel (işlevsel) model Kullanıcının bakışı ile sistem (kullanım şekilleri) UML Use Case Diagrams Nesne modeli Sistemin yapısı: nesneler, özellikleri, işlemler, yapısal ilişkiler UML Class Diagrams Dinamik model Sistemin iç işleyişi UML Sequence, Avtivity, State-Chart Diagrams 7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 5 Nesneler ve Sınıflar Nesne (object) Gerçek dünyada, ayrı ayrı tanımlanabilen herşey bir nesnedir. Modelde, her nesnenin bir kimliği, durumu, ve davranışı vardır. Sınıf (class) Gerçek dünyada, benzer karakteristik ve davranışlara sahip nesneler bir sınıf (class) ile temsil edilir. Modelde, bir sınıf, nesneler tarafından paylaşılan durum ve davranışları temsil eder. 7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 6 Nesneler ve Sınıflar Bir sınıf, nesneler tarafından paylaşılan durum ve davranışları temsil eder Benzer karakteristik ve davranışlara sahip nesneler bir sınıf (class) ile temsil edilir Sınıf (Class) Her nesnenin bir kimliği (identity), durumu (state), ve davranışı (behavior) vardır Ayrı ayrı tanımlanabilen herşey bir nesnedir Nesne (Object) Model de Gösterimi Gerçek Dünya da Yorumlanması

Upload: ahmet-goegebakan

Post on 12-Sep-2014

85 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Erdoğan Doğdu TOBB UML

1

BİL211Ders 3: UML ile Nesnesel Modelleme (Ch.2 Jia)

Erdoğan DoğduTOBB Ekonomi ve Teknoloji Üniversitesi

Bilgisayar Mühendisliği BölümüAnkara

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 2

İçerik

Esaslar ve KavramlarYapıların ve ilişkilerin modellenmesiDinamik hareketlerin (behavior) modellenmesiGereksinimlerin ‘kullanım şekilleri’ (use cases) ile modellenmesiÖrnek bir çalışma: E-Kitapçı

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 3

UML tarihçesi

UML: Unified Modelling LanguageMany modelling methodologies by 1990sBooch method, Rumbaugh’s OMT, Jacobson’s OOSE unified in RationalObject Management Group (OMG) www.omg.orgUML 1.0 (1997)UML 2.0 (2004)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 4

UML nedir?

Yazılım tasarımı için kullanılan bir modelleme diliTasarlanan sistemin 3 önemli yönünü modeller

Fonksiyonel (işlevsel) modelKullanıcının bakışı ile sistem (kullanım şekilleri)

UML Use Case Diagrams

Nesne modeliSistemin yapısı: nesneler, özellikleri, işlemler, yapısal ilişkiler

UML Class Diagrams

Dinamik modelSistemin iç işleyişi

UML Sequence, Avtivity, State-Chart Diagrams

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 5

Nesneler ve Sınıflar

Nesne (object)Gerçek dünyada, ayrı ayrı tanımlanabilen herşey bir nesnedir.Modelde, her nesnenin bir kimliği, durumu, ve davranışı vardır.

Sınıf (class)Gerçek dünyada, benzer karakteristik ve davranışlara sahip nesneler bir sınıf (class) ile temsil edilir.Modelde, bir sınıf, nesneler tarafından paylaşılan durum ve davranışları temsil eder.

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 6

Nesneler ve Sınıflar

Bir sınıf, nesneler tarafından paylaşılan durum ve davranışları temsil eder

Benzer karakteristik ve davranışlara sahip nesneler bir sınıf (class) ile temsil edilir

Sınıf(Class)

Her nesnenin bir kimliği (identity), durumu (state), ve davranışı (behavior) vardır

Ayrı ayrıtanımlanabilen herşey bir nesnedir

Nesne(Object)

Modelde GösterimiGerçek Dünyada Yorumlanması

Page 2: Erdoğan Doğdu TOBB UML

2

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 7

Nesne (object)

Kimlik (identity)Nesneyi birtek (unique) olarak tanımlar ve onu diğer nesnelerden ayırır

Durum (state)Özellikler (fields veya attributes) ile belirtilirÖzellik =

ad (name) + tür (type) + değer (value) Davranış (behavior)

Metotlar (methods veya operations): nesnenin durum bilgilerine erişebilen ve değiştirebilen işlemler. Metot, metot adı, aldığı parametre türleri, ve döndürdüğü tür ile tanımlanır. Herhangi bir değer döndürmeyen metotlar void ile belirtilir.

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 8

Nesne (object): Örnek

Öğrenci123456:Durum:

ad: “Serdar Doğdu”öğrenciNo: “st123456”yıl: 2005

Metotlar:dersEkle()dersSil()danışmanAta()

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 9

Nesne (object)

İki nesne:“eşit” (equal): durumları aynı; özellik değerleri aynı.“aynı” (identical): aynı nesne

Metotlar:“erişim metotları” (accessors): özellik değerlerini değiştirmeyen metotlar“değişim metotları” (mutators): özellik değerlerini değiştiren metotlar

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 10

Sınıf (class)

Nesneler (objects veya instances) sınıf(class) tanımı kullanarak oluşturulurlar (instantiation).Sınıf (class) aşağıdakileri tanımlar:

Alanlar (fields): Nesne özelliklerini tanımlayan değişkenler, adları ve türleri ile.Metotlar (methods): Metot adları, döndürdüğü tür, parametreleri, ve metotu gerçekleştiren program kodu

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 11

Sınıf (class): Örnek

ÖğrenciAlanlar (fields)

String adString öğrenciNoint yıl

Metotlar (methods)boolean dersEkle(String dersKodu,

String dönem)boolean dersSil(String dersKodu, String dönem)boolean danışmanAta(Danışman yeniDanışman)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 12

UML’de sınıf (class) gösterimi

Sınıfİsmialan1alan2..alann

metot1metot2..metotm

Sınıf Adı

Alanlarıntanımları

Metotlarıntanımları

ÖğrenciString adıString öğrenciNoint yılboolean dersEkle(String dersKodu, String dönem)

boolean dersSil(String dersKodu, String dönem)

boolean danışmanAta(Danışman yeniDanışman)

Page 3: Erdoğan Doğdu TOBB UML

3

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 13

UML sınıf tanımları

Alanlar[Erişim][Tür] Ad [[Sayı]] [=İlkDeğer]Örnek: private String ad = “Serdar”Standart UML gösterimi

[Erişim] Ad [[Sayı]] [:Tür] [=İlkDeğer]Örnek: private yıl:int = 2005

Metotlar[Erişim][Tür] Ad ([Parametre, ...])Örnek: public boolean dersAl (String dersKodu)Standart UML gösterimi

[Erişim] Ad ([Parametre, ...]) [:Tür] Örnek: public danışmanAta(Danışman d):boolean

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 14

Erişim (visibility)

Public: diğer sınıflar erişebilirProtected: aynı paketteki (package) diğer sınıflar ve bütün alt sınıflar (subclasses) tarafında erişilebilirPackage: aynı paketteki (package) diğer sınıflar tarafında erişilebilirPrivate: yalnızca içinde bulunduğu sınıf tarafından erişilebilir (diğer sınıflar erişemezler)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 15

Erişim (visibility)

-privateprivate

~package

#protectedprotected

+publicpublic

UMLJavaErişim(visibility)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 16

UML alan örnekleri

Date doğumGünü (Java)doğumGünü:Date (UML)

public int süre = 100 (Java)+süre:int = 100 (UML)

private Öğrenci öğrenciler[0..MAX_ÖĞR] (Java)

-öğrenciler[0..MAX_ÖĞR]:Öğrenci(UML)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 17

UML metot örnekleri

boolean dersEkle(String dersKodu, String dönem) (Java)

~dersEkle(String dersKodu, String dönem):boolean (UML)

public int getSize() (Java)+getSize():int (UML)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 18

UML sınıf örnekleri

Pointprivate int xprivate int ypublic void move(int dx, int dy)

UML (Java syntax):

Point- x:int- y:int+move(dx:int, dy:int)

UML (standart):

Pointxymove()

UML (kısaltılmış):

Point veya

Page 4: Erdoğan Doğdu TOBB UML

4

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 19

UML nesne (object) gösterimi

nesneAdı : SınıfAdıalan1= değer1

alan2= değer2..alann= değern

Nesne ve Sınıf Adı;altı çizili

Alanlar ve aldıkları değerler

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 20

UML nesne gösterimi

p1:Pointx = 0y = 0

p2:Pointx = 24y = 40

UML

Java Point p1 = new Point();p1.x = 0;p1.y = 0;

Point p1 = new Point();p1.x = 24;p1.y = 40;

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 21

Mesaj Geçme (message passing)

Nesneler birbirleriyle mesaj geçerek iletişim kurarlar

Mesaj geçme (message passing) veyaMetot çağırma (method invocation)

Mesajı bir nesneye gönderilir (alıcı –recipient) ve alıcı nesne çağırılan metodu çalıştırırÖrnek: p1.move(10, 20)(p1 nesnesi: x’de 10, y’de 20 pixel kay)Alıcı: p1, metot: move(), parametreler: (10,20)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 22

UML Paket (package) gösterimi

Birbirleriyle ilişkili sınıflar bir paket (package) içine yerleştirilirler.Paket isimler küçük harflerle yazılır.Yaygın olarak kullanılacak paket isimleri internet domain ismini tersten yazarak kullanırlar.

tr.edu.etu.bilPaket adı

Paket adıpaket1

paket2

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 23

UML Paket: Örnekler

java.awt

datatransfer Point

event image

java.lang

sınıf

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 24

Nesnesel Yazılım Geliştirme Prensipleri

Modülerlik (modularity)Soyutlama (abstraction)Kapama (encapsulation)Polymorphism

Page 5: Erdoğan Doğdu TOBB UML

5

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 25

Modülerlik (modularity)

Karmaşık sistemler, parçalara bölünerek geliştirilmeli ve denetlenmelidirParçala-fethet (divide-and-conquer) tekniğiSistem modüllere parçalanmalıdır (decomposition)

Tek bir yolu yok; bu bir sanatKriter:

Cohesion: Modül içindeki nesneler birbirleriyle fonksiyonel olarak ilişkili olmalıdırCoupling: Modüller arası iletişim basit olmalıdır

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 26

Soyutlama (abstraction)

Esas olanın, esas olmayandan ayrılmasıBir modülün davranışları, veya işlevleri, bir kontrat arayüzü (contractual interface) ile belirlenmelidir. Bu arayüz modülün soyutlanmış halidir; modülün ne yaptığınıbelirtir.Modül: servis sağlayıcı (service provider)Kontrat arayüzü: servis kontratı

Hangi servisler sağlandığı belirtilir (what)Servislerin nasıl sağlandığı belirtilmez (not how)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 27

Soyutlama: Örnek

TelefonOldukça karmaşık bir sistem: sesin elektronik sinyallere ve tekrar sese çevrimi, sinyallerin analog ve dijital olarak aktarımı, sinyallerin enkript/dekript edilmesi, bağlantı kurulması vs.

Telefon kullanıcı açısındanEl kitabı kullanılarak

(1) Arama, (2) konuşma, ve (3) kapamaTelefon servisinin kullanıcı açısından soyutlanmış haliBu servislerin telefon servisi tarafından “nasıl”yapıldığı (detaylar) servis kullanıcıyıilgilendirmemektedir

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 28

Kapama (encapsulation)

Müşteri (servis kullanıcı) servisi kullanmak için servis kontratı dışında hiçbirşey bilmek zorunda değildirBir modül gerçekleştirilirken, detaylar kullanıcılardan gizlenmelidir; yalnızca kontrat arayüzü aracılığı iletişim kurulmalıdırBilgi gizleme (information hiding)Arayüz sabit kaldığı sürece, program kodu diğer kullanıcıları etkilemeden değiştirilebilir..

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 29

Kapama: Örnek

Telefon servisi eskiden yalnızca analog’duŞimdi dijital telefon servisi de sağlanıyor, ayrıca encription (kodlama) ile güvenlik de sağlanabiliyorFakat servis arayüzü (interface) değişmediKullanıcılar servisi eskisi gibi kullanıyorlar, fakat ses ve servis kalitesi arttıJava’da servis arayüzü, gerçekleştirimden tamamen ayrılabilir

interface ve interface’i gerçekleştiren sınıf(class)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 30

Polymorphism

Birden fazla servis sağlayıcı aynı servis kontratını kabul edebilir (honor)Servis sağlayıcı, kullanıcıyı etklilemeden, yer değiştirilebilir (başka bir servis sağlayıcıya geçilebilir)

Page 6: Erdoğan Doğdu TOBB UML

6

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 31

Polymorphism: Örnek

Bazı cep telefonları hem analog hem dijital telefon kullanma kapasitesine sahiplerKullanılan alan hangisi ise, telefon otomatik olarak dijital veya analog servise geçmektedir.Kullanıcılar hangi servisin kullanıldığınıbilmemekteler; servis arayüzü her iki durumda da aynı(GSM, TDMA, CDMA servislerini, yada değişik frekansları

kullanma kapasitesine sahip telefonlar da bunun bir örneğidir)7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 32

İkişkilerin ve Yapıların Modellenmesi

UML Class Diagram

Inheritance (kalıt)Association (ilişkili)Aggregation ve Composition (agregasyon ve kompozisyon)Dependency (bağımlılık)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 33

Inheritance (kalıt)

Sınıf ve arayüzler arasındaki ilişki3 tür

Extension: üstsınıf (superclass) ve altsınıf (subclass) arasındaArayüzler arası extensionImplementation: bir sınıf bir arayüzügerçekleştiriyor

UML’ce:Specialization (extension)Realization (implementation)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 34

Inheritance (kalıt)

UML notasyonu

Superclass

Subclass

Superinterface

Subinterface

Interface

Implementation

Extension ofclasses

Extension ofinterfaces

Implementationof interfaces

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 35

Inheritance: Örnek

Öğrenci

Lisans YüksekLisansDışarıdanÖğrenci

Master DoktoraInheritance = “is-a”Kalıt = “dir”

Her Lisans öğrencisi bir Öğrencidir.Her Master öğrencisi bir YüksekLisans öğrencisidir

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 36

Inheritance

Multiple Inheritance (çoklu kalıt): Bir sınıf birden fazla üstsınıftan kalıt alabilir (inherit from multiple superclasses)Single Inheritance (tekli kalıt): Çoğu nesnesel programlama dili tekli kalıta izin verir. Java gibi.Java’da kısıtlı olarak çoklu kalıta izin vardır; ancak bu arayüzlerden (interface) olabilir.

Page 7: Erdoğan Doğdu TOBB UML

7

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 37

Soyutlama Düzeyleri (levels of abstraction)

Kalıt ilişkileri sınıfları bir hiyerarşi içerisine koyar.Hiyerarşi içinde yukarı çıkıldıkça, sınıflar “genelleşir”, aşağıya inildikçe “özelleşir”.Süpersınıflar daha genel soyutlamalardır.Altsınıflar daha özel soyutlamalardır.

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 38

Association (ilişkili)

Sınıflar arası ikili (binary) ilişkiler

Sınıf1 Sınıf2rol rol

ad

Öğrenci Ders

Danışman

danışan

danışılan

dersveren

kayıtlı

11

*

*İlişki yönü

1,*: Sayı/çokluk

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 39

İlişkinin çokluğu (sayısı)

a .. ü : alt değerden üst değere kadar.i : tek bir değer* : 0 .. n

Örnekler:0 .. * 0 veya daha fazla1 .. * 1 veya daha fazla2 .. 5 2’den 5’e kadar2, 5, 7 2, 5, veya 71, 3, 5 .. * 1, 3, 5, veya daha fazla

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 40

Aggregation ve Composition (agregasyon ve kompozisyon)

Association’ının özel bir haliParça-Bütün (part-whole)ilişkisini temsil ederParça veya bütün’ün hayat süresi konusunda bir yaptırımı yokturAggregasyonun daha güçlü bir hali komposizyon (composition) dur.Kompozisyonda, parçalar bütün olmadan olmazlar (ortadan kalkarlar)Association’daki multiplicity, isimlendirmeler, navigasyon (ilişkilerin yönü) (agregasyon ve kompozisyonda) aynen uygulanır.

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 41

Aggregation ve Composition

Aggregate

Component

rol

rolad

Aggregation

Aggregate

Component

rol

rolad

Composition

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 42

Aggregation/Composition : Örnek

Bölüm

ÖğretimÜyeleri

1

1başkanı

1

1üyesi

Öğrenci1 *Fakülte

1 *Üniversite1 *

Fakülte olmadan bölümler olamaz (kompozisyon)Üniversite olmazsa fakülteler de olamaz (kompozisyon)Bölüm olmadan öğretim üyeleri ve öğrenciler(?) olabilir (agregasyon)

Page 8: Erdoğan Doğdu TOBB UML

8

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 43

Bağımlılık (dependency)

Bir sınıfın diğer bir sınıfa bağlı olmasıÖrneğin: bir sınıfın diğer bir sınıfı“kullanması” (use) (sınıfın diğer sınıfın metotlarını çağırması gibi, yada o sınıftan bir nesneyi döndürmesi gibi..

Sınıf1 Sınıf2

Sınıf1, Sınıf2’ye bağımlı (dependent)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 44

Bağımlılık (dependency): Örnek

Öğrenciİşleri DersProgramı

void dersEkle(DersProgramı p, Ders d)void dersSil(DersProgramı p, Ders d)Ders dersBul(String ad)void kaydet(Ders d, Öğrenci ö)void sil(Ders d, Öğrenci ö)

Ders

Öğrenci

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 45

Dinamik davranışların modellenmesi

“Class diagrams” : statik yapıDinamik davranışlar?

Nesneler arası aktiviteler, bir nesne üzerinde olayların ve hareketlerin sıralanması

“Sequence” diyagramları“State” (durum) diyagramları

İç-içe durum (nested state) diyagramları

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 46

Sequence Diagrams

Nesneler arası metot çağırma işlemlerinin zaman çizgisinde sıralı gösterimiZaman çizgisi y-ekseni üzerinde yukarıdan aşağı gösterilirİlgili nesneler x-ekseni üzerinde en üstte soldan sağa sıralanır

nesne:Sınıf

Method çalışıyor

nesne

Hayat çizgisi

<<oluştur>> Nesne oluşturma(new)

metot(param) Metot çağır

Metot geri döner

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 47

Sequence Diagrams : Örnek

client:

pj:PrintJob

:PrintQueue

<<create>>

submit(myDoc)add(this)

assignJobNo()

print()

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 48

State Diagram (durum diyagramı)

Finite State Machine (sonlu durum makinesi) nin genelleştirilmişiDurumlar (states) ve bunlar arasındaki geçişlerin (transitions) gösterilmesiGeçiş (transition): nesnenin bir durumdan diğerine geçmesi. Bu bir olayla tetiklenebilir (triggered) ve hiçbir sebep olmadan olabilir (triggerless).

[Olay-listesi][[Kontrol]][/Aksiyon]

Page 9: Erdoğan Doğdu TOBB UML

9

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 49

State Diagram (durum diyagramı)

Durum

İlk durum

Son durum

KaynakDurum

HedefDurum

Bir geçiş

Bir durum olaylar[koşul]/aksiyon

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 50

State Diagram: Telefon örneği

Kapalı

bekliyorAçık

Aktif

konuşuyorBağlantı-sağlandı

Tuşlar-açıldı

çalıyor

Gelen-arama

Tuşlar-kapandı

Tuşlar-basılıyor

son

arıyor

Tuşlar-açıldıaçıldı

kapandı

bağlanıyorkonuş

Bağlantıdüştü

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 51

Gereksinimlerin modellenmesi

Sistem gereksinimleri UML Use Case (kullanım şekilleri) diyagramları ile belirtilirYazılım geliştirme için gerekli değildir, fakat gereksinimler ve nesnesel modeller arasında en önemli bağlantıdırUse Case: Kullanım şekli

Bir sistem fonksiyonunun dışarıdan gözlemlenen davranışıSistemle, sistem dışı aktörler (kullanıcı veya diğer sistemler gibi) arasında etkileşimler..Sistem “ne” yapıyorla ilgili, “nasıl” yapıyorla ilgili değil..

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 52

Gereksinimlerin modellenmesi

Use Cases (Kullanım şekilleri)Bir adı varBirkaç senaryordan oluşabilir

Bunlardan birisi ana senaryo, diğerleri alternatif senaryolar olabilir

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 53

Use Cases (grafik gösterim)

Kullanıcı Aktör

Kullanım şekli (Use case)Şekil1

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 54

Aktörler arası ilişki

Kullanıcı

ÖğretimÜyesiÖğrenci Yönetici

Page 10: Erdoğan Doğdu TOBB UML

10

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 55

Kullanım şekilleri: Örnek

Öğrenci

ÖğretimÜyesi

Yönetici

Kullanıcı

Notlarıkontrol et

Sınıf listesial

Notlarıgir

Notlarıdoğrula

Kullanıcıyıdoğrula

<<extend>> <<include>>

<<include>>

<<include>>

<<include>>

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 56

Örnek Çalışma: eKitapçı

Kavramsallaştırma (conceptualization)Kullanım şekilleri (use cases)Nesnesel model (class diagrams)

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 57

eKitapçı: Kavramsallaştırma

Sitemin temel gereksinimleri:Müşterilerin kitapları, müzik CD’lerini, ve bilgisayar yazılımlarını İnternet üzerinden taramalarını ve satın almalarını sağlamak

Sistemin temel fonksiyonları:Müşterilere satın almalarında yardımcı olacak bilgileri vermek,Müşterilerin kayıtlarını, siparişlerini, ve adres bilgilerini almak,Sistem yönetimi: kayıt girme, silme, ve değiştirme; müşteri bilgilerinin güncellenmesi

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 58

eKitapçı: Kullanım şekilleri(Use Case Diagram)

Müşteri

Sistemyöneticisi

Katalogyöneticisi

Kullanıcı

Kayıt

Alışveriş

Siparişişleme

Katalogyönetimi

Giriş

<<include>>

<<include>>

<<include>>

Depoyöneticisi

Kayıtyönetimi

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 59

eKitapçı: Use CaseÖnkoşul (precondition): Müşteri kayıtlıAna senaryo:

Aktör: MüşteriGiriş eylemi Sistem eylemi ve cevabı

Giriş isteği Hoşgeldin mesajı, kullanıcı adı ve şifresi isteğiKullanıcı adı ve şifre girilir Kullanıcı doğrulanır ve girişe izin verilirTekrarla:Arama ve listeleme Satılan şeylerin listelenmesiAlmak üzere seçme Seçilen şeyin sepete eklenmesiAlışveriş tamamlandı Sepettekileri, ödeme/gönderme adresleri gösterSiparişi doğrula, Ödeme metodunu doğrulave ödeme yap Ödeme tamamlanır

Sipariş işlenir, e-fiş verilir; depoya sipariş emriÇıkış

Alternatif senaryo:Müşteri alışverişi tamamlamadan, alışveriş sepetini saklar, çıkar

Aykırı senaryo (exceptional):Müşteri girişi başarısız olur; giriş yinelenir

Aykırı senaryo (exceptional):Ödeme işlemi başarısız olur; müşterinin başka bir ödeme yöntemi girmesi..

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 60

eKitapçı: Nesne modelleri

Sınıfların belirlenmesiUse case’lerde geçen sınıfların belirlenmesiNe sınıftır, hangi özellikler sınıfta olmalıdır?

Sınıflar, nesneleri ifade etmelidir, eylemleri değilFiziki nesneler (araç, gereç, ürün, vs.)Kişiler (öğrenci, öğretim üyesi, müşteri, ve bunların rolleri, gibi)Organizasyonlar (üniversite, şirket, bölüm, vb.)Yer (bina, oda, koltuk, vb.)Olaylar (farenin tıklanması, servis isteği, alım siparişi, vb.)Kavramlar (çokboyutlu uzaylar, işlemler, hava raporu haritaları, vb.)

Eylemler, sınıfların metotları olarak modellenmeliBasit kural:

Sınıf -> İSİMLER (NOUN)Metotlar -> EYLEM (VERB)

Page 11: Erdoğan Doğdu TOBB UML

11

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 61

eKitapçı: Sınıfların belirlenmesi

Müşterilerin kitapları, müzik CD’lerini, ve bilgisayar yazılımlarını İnternet üzerinden taramalarını ve satın almalarını sağlamakSistemin temel fonksiyonları:

Müşterilere satın almalarında yardımcı olacak bilgileri vermek,Müşterilerin kayıtlarını, siparişlerini, ve adresbilgilerini almak,Sistem yönetimi: kayıt girme, silme, ve değiştirme; müşteri bilgilerinin güncellenmesi

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 62

eKitapçı: Sınıflar

EKitapçı: Tüm sistemMüşteri: eKitapçı müşterileriKitap: eKitapçıda satılan kitaplarMuzikCDYazılım

Ayrıca:Sepet: Müşterinin almak istediklerini tutan

geçici listeSipariş: Müşterinin siparişiAdres: Müşteri adresi

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 63

eKitapçı: Classes

Müşteri

admüsteriNoşifregöndermeAdresifaturaAdresi

Adres

sokakşehirülkepostaKodu

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 64

eKitapçı: Classes

Kitap

adıyazaryayıncıyılbaskıciltISBNfiyat

MüzikCD

adısanatçıyayıncıyılsayıISBNfiyat

Yazılım

adıyayıncıyılversiyonISBNfiyat

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 65

eKitapçı: Classes

Kitap

yazarbaskıcilt

MüzikCD

sanatçısayı

Yazılım

versiyon

Öge

adıyayıncıyılISBNfiyat

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 66

eKitapçı: Class Diagram

Öge

SepetÖge

Öge ögeint sayı

Sepet

SiparisÖgesi ögeler[*]

ekle(Öge öge, int sayı)sil(Öge öge)sayıDeğiştir(Öge öge, int sayı)

*1

Page 12: Erdoğan Doğdu TOBB UML

12

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 67

eKitapçı: Class Diagram

Sepet

MüşteriSipariş

Müşteri müşteriSepet ögelerfloat satışVergisifloat kargoÜcretifloat toplamÖdeme ödeme

* 1

11

Ödeme* 1

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 68

eKitapçı: Class Diagram (son)

Sepet

MüşteriEKitapçı1

SiprarişÖgesi

1

*

Öge

1

*Sipariş

1*

Kitap MüzikCD Yazılım

*

1

1

*

1

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 69

Ödev

Exercise 2.3 (Jia) Sayfa 52-53 (Teslim: 28 Eylül)Aşağıdaki sistemin nesnesel modelini geliştirin

Aktörleri ve ‘use case’leri belirleyin, UML ‘use case’diyagramını çizinSistemin UML ‘class diagram’ını çizin

Havayolu Rezervasyon Sistemi:Sistem bir müşterinin uçak seyahati rezervasyonu yapmasını sağlar. Müşteri, seyahatin başlangıçşehrini, gidilecek yeri, gidiş ve dönüş tarihlerini, uçuşsaatlerini, tercih edilen havayolu şirketini, kaç kişilik yer ayırtılacağını belirtir. Sistem müşterinin tercihlerine uygun uçuşları ve yer olup olmadığınılisteler. Müşteri uygun bir uçuşu ve yeri seçer, biletleri satın alır.

7 Ekim 2005 TOBB Ekonomi ve Teknoloji Üniversitesi, Bilgisayar Müh.Böl., Ankara 70

Özet

Nesnesel yazılım geliştirmede temel esaslar: modularity, abstraction, encapsulation, levels of abstraction. Amaç: karmaşıklığı azaltmak, esnekliği artırmak.Decomposition (sistemin parçalarına ayrılması): İki temel kıriter uygulanır, “cohesion” (modüller içinde sınıfların uyumluluğu) ve “coupling” (modüller arasında bağların gevşek olması). UML nesnesel modelleme için yaygın olarak kullanılan bir modelleme dilidir.Sistemin statik yapısı “class” diyagramları ile modellenir,Sistemin dinamik yapısı ise “sequence” ve “state” diyagramlarıkullanılarak modellenir. “Use case” diyagramları ise sistemin kullanım gereksinimlerini modellemek için kullanılır (to model “what” the system does, not “how”).