NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6. Yrd.Doç.Dr.Hacer Karacan



Benzer belgeler
Nesneler yan yana gösterilir. Etkileşimler (mesajlar) oluştukları sıra ile yukarıdan aşağıya doğru çizilirler.

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 8

Tasarım Modelinin (Design Model) Oluşturulması

Tasarım Modelinin (Design Model) Oluşturulması

Nesneye Dayalı Programlama

NESNEYE YÖNELİK TASARIM SÜRECİ

ARDIŞIL DİYAGRAM YAPI DİYAGRAMI. Sistem Analizi ve Tasarımı Dersi

Sınıf Diyagramları Amaç: Sınıf Diyagramları Nasıl Çizilir?

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

UML ile Nesneye Yönelik Modelleme

NESNEYE YÖNELİK PROGRAMLAMA. Yrd.Doç.Dr. Zeynep ORMAN

Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans:

TÜMLEŞİK MODELLEME DİLİ. UML (Unified Modeling Language)

Nesneye Dayalı Programlama nedir? UML Nedir? Sınıf Diyagramları Nesneye Dayalı Programlamanın Temel Taşları Miras alma (Inheritance) Çok biçimlilik

YAZILIM MODELLEME VE TASARIM

YZM 2105 Nesneye Yönelik Programlama

NESNEYE YÖNELİK PROGRAMLAMA Unified Modelling Language (UML) Bütünleşik Modelleme Dili

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Eylül 2007 de v1.0 ı yayınlanan SysML sayesinde endüstri mühendislerinin de ihtiyacı karşılanmış oldu.

BLGM 343 DENEY 8 * TCP İLE VERİ İLETİŞİMİ

Algoritmalar ve Programlama. Algoritma

C Programlama Dilininin Basit Yapıları

BÖLÜM 6: KARŞILAŞTIRMALI KONTROL YAPILARI

BM208- Nesneye Dayalı Analiz ve Tasarım. Sunum 7

Ders 8: Metotlar. barisgokce.com

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

YAZILIM MODELLEME VE TASARIM

Bilişim Sistemleri. Modelleme, Analiz ve Tasarım. Yrd. Doç. Dr. Alper GÖKSU

UNICASE.... kapsamlı bir CASE* aracı. *

BLGM 344 DENEY 3 * AĞ PROGRAMLAMAYA GİRİŞ

İÇERİK PROGRAMLAMAYA GİRİŞ ALGORİTMA AKIŞ DİYAGRAMLARI PROGRAMLAMA DİLLERİ JAVA DİLİNİN YAPISI JAVA DA KULLANILAN VERİ TİPLERİ JAVA DA PROGRAM YAZMA

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

BİLİŞİM TEKNOLOJİLERİ 6. SINIF DERS NOTLARI 2

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

BTEP243 Ders 3. class Yazım Kuralı:

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

EM205 26/9/2014. Programlamaya giriş Algoritmalar. Amaçlar

Nesneye Yönelik Programlama (OOP) 7.Hafta

TC KİMLİK NO SMS GÖNDERİM SOAP API

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Üst düzey dillerden biri ile yazılmış olan bir programı, makine diline çeviren programa derleyici denir. C++ da böyle bir derleyicidir.

Sunum İçeriği. Programlamaya Giriş

YZM 2108 Yazılım Mimarisi ve Tasarımı

Algoritma ve Akış Diyagramları

AHMET YESEVİ ÜNİVERSİTESİ BİLİŞİM SİSTEMLERİ VE MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ LİSANS DÖNEM ÖDEVİ

İçindekiler. Okuma lisansı info acar, için verilmiştir. Çoğaltılması ve dağıtılması yasaktır.

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

1.Gebelik Bildirim (223)

Algoritma ve Akış Şemaları

9. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Submit metodu birden fazla numaraya aynı içerikli kısa mesaj gönderimi için kullanılmaktadır.

Nesneye Dayalı Yazılım Geliştirme. Her iterasyon sonunda sistem istenene yaklaşır. Nesneye Dayalı Yazılım Geliştirme

Kurumsal Grup E-Posta Eğitim Dokümanı

HSancak Nesne Tabanlı Programlama I Ders Notları

1. LabVIEW ile Programlama

Kod Listeleri Genel Yapısı

SiSTEM ANALiZi ve TASARIMI

8. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

API v1.0

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

Aşağıdaki tabloyu inceleyin. Sorgulama işlemlerini bu tabloya göre yapacağız.

Nesne Yönelimli Programlama

YAZILIM MİMARİLERİ DERSİ BİLGİSAYAR PROGRAMCILIĞI

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

Android Ders Notları

Problem Çözme

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

Unified Modeling Language

BİL-142 Bilgisayar Programlama II

SQL (Structured Query Language)

Programlama Giriş. 17 Ekim 2015 Cumartesi Yrd. Doç. Dr. Mustafa YANARTAŞ 1

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

YZM 2105 Nesneye Yönelik Programlama

Ders Adı Kodu Yarıyılı T+U Saati Ulusal Kredisi AKTS

KULLANICI KULLANIM KILAVUZU

YZM 2105 Nesneye Yönelik Programlama

Operatörlere Yeni İşlevler Yüklenmesi (Operator Overloading)

EBA İŞ SÜREÇLERİ TEDARİKÇİ ÖDEME TALEBİ Ver 1.0

Basit bir web uygulaması

Ders 9 İşlem tanımları. Ders Sorumlusu: Dr. Saadettin Erhan KESEN

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

WEB PROGRAMLAMA II. Öğr. Gör. M. Mutlu YAPICI. Ankara Üniversitesi Elmadağ Meslek Yüksekokulu

NESNEYE DAYALI YAZILIM GELİŞTİRME

Yazılım Tasarımı(Software Design)

GÖRSEL PROGRALAMA HAFTA 2 PROGRAMLAMA DİLLERİNE GİRİŞ

1 JAVASCRIPT NEDİR? 1

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi İNTENT VE İNTENT. BLM401 Dr.Refik SAMET

Timer İle arka plan renk değişimi

Windows Mobile İşletim Sistemleri İçin Veri Giriş Yazılımı

Toplu İleti Gönderimi

Ferhat Cem CİHAN-Bilgisayar Mühendisliği Emre BALCI-Bilgisayar Mühendisliği

12. Kat Oluşturma. Bu konuda mevcut bir katın bilgilerini kullanarak nasıl yeni katlar oluşturulabileceği incelenecektir.

=~ Metodu 92 Karakter Sınıfları 94 sub ve gsub metotları 101 Hızlı Tekrar 102 Kontrol Noktası 103 Düello 106 Sonraki Bölümde 109

Sihirbaz Kullanarak Sorgu Oluştur : Sihirbaz sorguyu hazırlayan kişiye sorular sorar ve yanıtlarına göre sorgu oluşturur.

Transkript:

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 6 Yrd.Doç.Dr.Hacer Karacan

İçerik UML Yapı Diyagramları Eylem Diyagramları Etkileşim Diyagramları

UML

Diyagramlar UML görsel olarak modelleme için birçok diyagrama sahiptir. Yapı Diyagramları Eylem Diyagramları Etkileşim 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ı

Sınıf Diyagramı

Nesne Diyagramları

Paket Diyagramları

Bileşen (Component) Diyagramları

Bileşen (Component) Diyagramları

Birleşik Yapı (Composite Structure) Diyagramları Birleşik yapıların iki ayrı türü vardır: 1. Toplama, bir araya getirme (Aggregation) 2. Meydana gelme (Composition)

Toplama (Aggregation) 1. Toplama, bir araya getirme (Aggregation): İçerilen nesneler (alt parçalar) kendi başlarına da kullanılırlar. Sadece o nesneye ait parçalar değillerdir. Örneğin havaalanında uçaklar vardır.

Meydana gelme (Composition) 2. Meydana gelme (Composition): Alt parçalar o nesneyi meydana getirmek için oluşturulmuşlardır; kendi başlarına kullanılmazlar. Örneğin otomobilin motoru vardır.

Dağıtım (Deployment) Diyagramları

Eylem Diyagramları UML' de üç tür eylem diyagramı vardır: Kullanım Durumu (Use-Case) Diyagramları Durum (State) Diyagramları Aktivite (Activity) Diyagramları

Kullanım Durumu Diyagramları

Durum Diyagramları

Durum Diyagramları

Aktivite Diyagramları

Aktivite (Activity) Diyagramları

Aktivite (Activity) Diyagramları

Etkileşim Diyagramları UML' de iki tür etkileşim diyagramı vardır: İletişim Diyagramları (Communication Diagrams) Ardışıl Diyagramlar (Sequence Diagrams)

İletişim Diyagramları

Ardışıl 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ıftan yaratılan bir nesneye odemeyap(verilennakit) adlı başka bir mesaj gönderilir. :Satis nesnesi bu metodun içinde Odeme adlı sınıftan bir nesne yaratır.

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ı alt numaralar 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.

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.

Nesne Yaratma Bir mesaj nesne yaratılmasını sağlamak için gönderiliyorsa normal olarak bu mesaja create 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 :Satis nesnesini yaratmaktadır.

Koşullu Mesajlar Bu tür mesajlar sadece belli bir koşul gerçekleştiğinde gönderilebilirler. Eğer köşeli parantez içinde verilen koşul gerçekleşmemişse o mesaj gönderilmez, sonraki mesaja geçilir. Şekil de verilen örnekte A sınıfından yaratılan nesnenin mesaj1 metodunun içinde renk değeri sınanmaktadır. Eğer renk = mavi koşulu doğru ise :A nesnesi, :B nesnesine hesapla() 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.

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 biri izlenecektir. Diyagramda gösterilen sistem SınıfA' dan yaratılan nesneye msg1() mesajının gelmesi ile çalışmaya başlar. Bu metodun içinde test koşuluna bakılır. Eğer test=true ise 1a numaralı msg2 SınıfB'den yaratılan nesneye gönderilir ve msg3() ile devam edilir. 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' den yaratılan nesneye koşulsuz olarak 2 numaralı msg6 mesajını gönderir.

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ılan nesne, i = 1' den N' e kadar Random sınıfından yaratılan nesneye nextint() mesajını defalarca gönderecektir. Bu metot çağrısında geri gönderilen değer num adlı bir değişkende tutulmaktadı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 de kullanılabilir.

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ırken oluşturulacak sınıfların adıdır. Bu nedenle Türkçe karakterler kullanılmamıştır.

Geri Dönüşler Mesajlardan geri dönüşleri göstermek çoğunlukla gerekli değildir. Gerekli olduğu durumlarda 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 geri dö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ı ise geriye değer döndürmemektedir.

Kendine Mesaj Şekil deki örnekte :Terminal nesnesi, msg1 metodunun içinde kendi sil metodunu çağırmaktadır.

Nesne Yok Etme Şekil deki örnekte :Satis nesnesi, önce :Odeme nesnesini yaratmakta daha sonra da yok etmektedir. Bu işlemler C++' da new ve delete operatörleri ile yapılır.

Koşullu Mesajlar Bu tür mesajlar sadece belli bir koşul gerçekleştiğinde gönderilebilirler. Eğer köşeli parantez içinde verilen koşul gerçekleşmemişse o mesaj gönderilmez, sonraki mesaja geç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 renk değeri sınanmaktadır. Eğer renk = mavi koşulu doğru ise :A nesnesi, :B nesnesine hesapla() mesajını gönderecektir. Daha sonra (koşul doğru olsa da olmasa da) bir sonraki mesajla (msgy() ) devam edilecektir.

Karşılıklı Dışlamalı Mesajlar (UML 1.X) Nesneler arası etkileşim, belli bir koşula bağlı olarak farklı yollar izleyebilir. Şekil de verilen örnekte "X>10" koşuluna bağlı olarak :B ya da :C nesnelerine hesapla mesajı gönderilir. Bu diyagram UML' in bir önceki sürümünde (1.X) kullanılan gösterilime göre çizilmiştir. Bu gösterilimde nesnelerin isimlerinin altı çizilmektedir.

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 bir kesik çizgiden sonra sıralanır. Bu grubun başına "else" anahtar sözcüğü yazılır. Şekil de UML 2.0' da karşılıklı dışlamalı mesajların ardışıl diyagramlarda nasıl çizildiği gösterilmiştir.

İ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' e kadar Random sınıfından yaratılan nesneye nextint() mesajını defalarca gönderecektir.

İterasyonlar (Döngüler) Önceki örnekle aynı sistem UML' in 2.0 sürümü ile gösterilmiştir. UML in yeni sürümünde döngüler "loop" anahtar sözcüğü ile belirtilmektedir.

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.

Genel Kurallar UML bir programlama (ya da yazılım geliştirme) dili olmaktan ziyade iş sistemlerinin nasıl modellenebileceğini belirleyen ve açıklayan yöntemlerin bir araya toplanmış halidir. Daha çok yazılım geliştiriciler tarafından kullanılıyor olsa da UML ile yapılan modellemeler sadece yazılım projelerinde kullanılmak zorunda değ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ılar ne 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.

Kaynaklar Y.Doç.Dr.Feza BUZLUCA ders notları http://www.buzluca.info/dersler.html