NESNEYE YÖNELİK TASARIM SÜRECİ



Benzer belgeler
NESNEYE YÖNELİK ÇÖZÜMLEME SÜRECİ

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

Yaz.Müh.Ders Notları #4 1

Yaz.Müh. Ders Notları 2

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

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

Yaz.Müh. Ders Notları 1

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

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

YAZILIM MODELLEME VE TASARIM

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

SiSTEM ANALiZi ve TASARIMI

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

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

Arayüz Nedir? Arayüz Çeşitleri Arayüz Tasarım Yöntemleri Arayüz Tasarım Hataları. Ömer Faruk MIZIKACI

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

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

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

BMT 101 Algoritma ve Programlama I 3. Hafta. Yük. Müh. Köksal GÜNDOĞDU 1

BİLGİSAYAR PROGRAMLARININ TASARIMLARINDAKİ VE KODLARINDAKİ SORUNLARIN BELİRLENMESİ ALPER FİLİZ MEHMET ALİ SERT

SİSTEM ANALİZİ ve TASARIMI. ÖN İNCELEME ve FİZİBİLİTE

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

Yaz.Müh. Ders Notları 1

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

Aktarımı Çalıştırmak/Geri Almak 146 Alan Seçenekleri 148 Veri Tabanı Şeması 150 Veri Tabanı ile İlgili Bazı Rake Görevleri 162 Modeller 164

Genel Kullanılış 1: [değişken ismi] = [değişken ismi] [işlem] [sayı veya string ifade veya değişken]

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

Üst Düzey Programlama

BEDEN EĞİTİMİ I: Haftalık ders 1 saattir (T-0 ) (U-l) (K-0).

WEB PROJESİ YÖNETİMİ. Belli bir süre içerisinde, belli bir bütçe ile belirlenen hedeflere ulaşmak için uygulanan metodolojik süreçtir.

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

BLG Sistem Analizi ve Tasarımı. Öğr. Grv. Aybike ŞİMŞEK

Görsel Programlama DERS 12. Görsel Programlama - Ders12/

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

YAZILIM MODELLEME VE TASARIM

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

YAZILIM MODELLEME VE TASARIM

Yaz.Müh.Ders Notları #6 1

Veri Tabanı Yönetim Sistemleri Bölüm - 3

BLG 1306 Temel Bilgisayar Programlama

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

Liskov Substitution Principle (LSP) Liskov un Yerine Gecme Prensibi KurumsalJava.com

BİT in Temel Bileşenleri (Yazılım-1)

Microsoft Office Access Ders İçeriği 25 Saat. Access Temel 10 saat

Bire-bir Sahiplik İlişkisi ile İlgili Sorular:

Varlık davranış modeli: Bu aşama her entity ye etki eden durumların tanımlandığı, modellendiği ve dokümante edildiği süreçtir.

Görünümler ve Ötesi Yaklaşımıyla Radar Yazılım Mimarisi Dokümantasyonu Tecrübeleri. Ali Özzeybek M. Devrim Tokcan Murat Tuncer

Bölüm 28 ve 29 : İstemci Sunucu Etkileşimi ve Soket API sine Giriş. Internet Protokolleri ve Ağ Uygulamaları. Internet Protokolleri Üzerinden İletişim

Tümleştirilmiş Süreçte (UP) Yazılım Projesi Aşamaları


ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Ders 8 Konu Özeti ve Problemler

T.C KARABÜK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ

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

Swing ve JDBC ile Database Erişimi

BMH-405 YAZILIM MÜHENDİSLİĞİ

Programlama Dillerinde Kullanılan Veri Tipleri

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Üst Düzey Programlama

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

PROJE YÖNETİMİ. Halil AGAH Antalya, 2012

Üst Düzey Programlama

Kullanım Durumu Diyagramları (Use-case Diyagramları)

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

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

YAZILIM MÜHENDİSLİĞİ Şubat 2012 Yrd.Doç.Dr. Yunus Emre SELÇUK GENEL BİLGİLER

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

License. Veri Tabanı Sistemleri. Konular büyük miktarda verinin etkin biçimde tutulması ve işlenmesi. Problem Kayıt Dosyaları

Mobil Cihazlardan Web Servis Sunumu

Maltepe Üniversitesi Bilgisayar Mühendisliği Bölümü Internet ve Bilgi Teknolojileri (BİL 309) Dersi

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

<Ekip Adı> <Proje Adı> Yazılım Gereksinimlerine İlişkin Belirtimler. Sürüm <1.0>

Kurumsal Masaüstü ve Sunucularda Pardus

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

BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

Üst Düzey Programlama

YZM211 YAZILIM TASARIMI

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Yazılım Mühendisliği 1

Üst Düzey Programlama

Basit bir web uygulaması

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İ

Profelis. Açık Kaynak Dönüşüm. Çağlar ÜLKÜDERNER

=~ 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

NESNEYE YÖNELİK PROGRAMLAMA

T.C. Damla Ok Mesutcan Kurt Ağustos Ali Murat Tiryaki

Kurumlar, Bölümler ya da Diğer kuruluşlar için Kalite ve Mükemmelliyet Kriterleri 1

PROGRAMLAMA DERSİ 1. İNTERNET

Arş.Gör.Muhammet Çağrı Gencer Bilgisayar Mühendisliği KTO Karatay Üniversitesi 2015

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

Nesneye Yönelik Tasarım ve Programlama (COMPE 501) Ders Detayları

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

PARALOG POS ve YAZARKASA Aktarımları. Derece Yazılım 2009

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Android Ders Notları

Nesne Tabanlı Programlama. Ders Notları

Bilgisayar İşletim Sistemleri BLG 312

BÖLÜM 1 YAZILIM TASARIMINA GİRİŞ YZM211 YAZILIM TASARIMI. Yrd. Doç. Dr. Volkan TUNALI Mühendislik ve Doğa Bilimleri Fakültesi / Maltepe Üniversitesi

Transkript:

NESNEYE YÖNELİK TASARIM SÜRECİ GİRİŞ Nasıl? sorusuna yanıt aranır. Nesne modeli: Analizden tasarıma. Doğrudan problem alanı ile ilgili nesnelerden oluşan model, yardımcı nesnelerle zenginleştirilir. Ana işlem grupları: Nesne tasarımı: Problem alanı ile ilgili nesneler Sistem tasarımı: Alt yapıyı ve gereçleri oluşturan nesneler Sistem katmanında bulunabilecek bileşenler: Yazılım mimarisi: İstemci - sunucu, eşler arası, olay tabanlı, vb. Kullanıcı arayüzü Veri yönetimi Ağ programlama Sistem katmanını çoğunlukla kendimiz sıfırdan oluşturmayız, hazır altyapı programlarını (framework) kullanırız. 1

TASARIM ÖLÇÜTLERİ NESNEYE YÖNELİK TASARIM SÜRECİ Tasarım ölçütleri: Ayrılabilirlik: Anlamlı parçalara ayrılabilme. Parça: Sınıf/sınıf grubu. Üstünde çalıştığımız problem hangi düzeyde alt problemlere bölünebiliyorsa, tasarımımız da aynı düzeyde ayrıştırılabilmelidir. Birleştirilebilirlik: Bir parçanın başka tasarımlarda da kullanılabilecek şekilde diğer parçalarla birleştirilebilmesi. Anlaşılabilirlik: Bir parçanın diğer parçalar hakkında bilgiye gerek duyulmadan anlaşılabilmesi. Süreklilik: Yapılacak küçük değişikliklerin etkilerinin en az sayıda parçaya yayılması (tercihen tek sınıfa). Koruma: Olası hataların düzeltilmesine yönelik büyük değişikliklerin etkilerinin geniş bir alana yayılmasının önlenmesi. 2

TASARIM İLKELERİ NESNEYE YÖNELİK TASARIM SÜRECİ İyi bir tasarıma götüren iki temel ilke: Düşük bağlaşım (Low coupling) Yüksek uyum (High cohesion) Bu ilkeler hem birbirlerine hem de uygulama alanına bağımlıdır. Başka ilkeler de öne sürülebilir, ancak bu ikisi en temel ölçütlerdir. 3

NESNEYE YÖNELİK TASARIM SÜRECİ DÜŞÜK BAĞLAŞIM LOW COUPLING Bağlaşım: Bir parçanın diğer parçalara bağımlılık oranı. Parça: Sınıf, alt sistem, paket Bağımlılık: Bir sınıfın diğerinin: Hizmetlerinden yararlanması, İç yapısından haberdar olması, Çalışma prensiplerinden haberdar olması, Özelleşmiş veya genelleşmiş hali olması (kalıtım ilişkisi). Çeşitli sınıf şemaları ile bağlaşım soruları sor. İlişkide bulunulan diğer sınıfların sayısı arttıkça bağlaşım oranı artar. Düşük bağlaşımın yararları: Bir sınıfta yapılan değişikliğin geri kalan sınıfların daha azını etkilemesi, Yeniden kullanılabilirliğin artması 4

NESNEYE YÖNELİK TASARIM SÜRECİ YÜKSEK UYUM HIGH COHESION Uyum: Bir parçanın sorumluluklarının birbirleri ile uyumlu olma oranı. Yüksek uyumun yararları: Sınıfın anlaşılma kolaylığı artar. Yeniden kullanılabilirlik artar. Bakım kolaylığı artar Sınıfın değişikliklerden etkilenme olasılığı düşer. Genellikle: Düşük bağlaşım getiren bir tasarım yüksek uyumu, Yüksek bağlaşım getiren bir tasarım ise düşük uyumu beraberinde getirir. 5

NESNEYE YÖNELİK TASARIM SÜRECİ TASARIMIN BELGELENDİRİLMESİ Bir nesneye yönelimli programın tasarım sürecinin belgelendirilmesinde yer alan önemli belgeler: Ayrıntılı UML sınıf şemaları: Vazgeçilmez. Tasarımın ihtiyaçlarına göre alttaki diğer belgelerin çeşitli bileşimleri de kullanılabilir: Sözleşmeler UML Etkileşim şemaları (Interaction diagrams) Sıralama şemaları (Sequence diagrams) İşbirliği şemaları (Collaboration diagrams) UML Etkinlik şemaları (Activity diagrams) UML Durum diyagramları (State diagrams) 6

NESNEYE YÖNELİK TASARIM SÜRECİ SÖZLEŞME İLE TASARIM DESIGN BY CONTRACT Sözleşme: Kullanım senaryosunun ayrıntılandırılması ile elde edilir. Bir nesnenin bir eylemi, bir sözleşme ile ayrıntılandırılır. Her metota sözleşme yazılacak diye bir koşul yoktur. Zaten kolay anlaşılabilir metotların sözleşmeye ihtiyacı yoktur. 7

NESNEYE YÖNELİK TASARIM SÜRECİ SÖZLEŞME İLE TASARIM DESIGN BY CONTRACT Örnek sözleşme: Sözleşme No: 2 Satış Kalemi Girişi İşlem: ürüngir( barkod: Barkod, adet: integer ) Çapraz Başvurular: Satış kullanım senaryosu Ön Koşullar: Süregelen bir satış işleminin olması Son Koşullar: - Bir SatışKalemi örneği olan satiskalemi oluşturulmuştur. - satiskalemi süregelen satis ile (Satış örneği) ilişkilendirilmiştir. - satiskalemi.adet üyesine o malın satış adedi atanmıştır. - satiskalemi, satılan mal ile uyuşan barkod sayesinde bir UrunTanimi örneği ile ilişkilendirilmiştir. 8

NESNEYE YÖNELİK TASARIM SÜRECİ SÖZLEŞME İLE TASARIM DESIGN BY CONTRACT Sözleşmeler hakkında bazı ayrıntılar: Ön koşullar tüm sistem hakkındaki bilgilerdir. Son koşullar sadece problem alanı ile ilgili nesnelerin durum değişiklikleri hakkındadır. Sözleşmeler her zaman gerekli olmayabilir. Son koşullarda edilgen geçmiş zaman kullanılması, bunların işlemin sonunda tamamlanmış eylemler olduğunu vurgulamak açısından yerinde olacaktır. Sözleşme içerisinde ilişkilerin kurulmasını belirtmeyi unutmayın! Sözleşme yazılması problem alanı çözümlemesinde güncellemelere yol açabilir. 9

ETKİLEŞİM ŞEMALARI AYRINTILARI SIRALAMA ŞEMALARI nesne1: Sınıf1 nesne2: Sınıf2 Mesaj (metot çağırma) Geri dönüş (ihmal edilebilir) [koşul] değişken := birmetot( param1: Tip,... ) [koşul] Koşullu mesaj (if) * [koşul] Döngülü mesajlar (for, while, vb.) new Nesne oluşturma Gizli bilgi: birmetot Sınıf 2 ye aittir. Sınıf 1 in bu çizimde gösterilmemiş başka bir metodunun gövdesinde nesne2.birmetot komutu verilmiştir. Nesnenin kendi metodunu çağırması 10

İŞBİRLİĞİ ŞEMALARI ETKİLEŞİM ŞEMALARI AYRINTILARI ilkmesaj( ) : Class A Bu, a nesnesi ile ilgili bir nottur. 1: methoda(... ) 1.2: [* koşul] msgx( ) 1.1: var := msgb(... ) 2: methodb( ) 1.3 *: msgy( ) * Bu ise genel bir nottur. 11

UYGULAMA ALANLARI ETKİNLİK ŞEMALARI ACTIVITY DIAGRAMS Denetim akışını olaylar üzerinden göstermeye yarar. İş kurallarını göstermek ve paralel çalışma (multithreaded) ayrıntılarına girmek gerektiğinde, etkileşim şemalarından daha yararlıdır.

ETKİNLİK ŞEMALARI ACTIVITY DIAGRAMS ÇİZİM KURALLARI ve ÖRNEK ÇİZİM Denetim akışı Etkinlik başlangıcı Sinyal alma / Olay (event) kabul etme Eylem Karar verme (if) Eşgüdüm Etkinlik sonu Sinyal gönderme

ÇİZİM BİLGİLERİ ETKİNLİK ŞEMALARI ACTIVITY DIAGRAMS Etkinlik şemaları başlangıç işareti veya sinyal alma işareti ile başlar. Sinyal alma: Beklemelidir. Akış, bir sinyal alana kadar bekler. Zamanlı olaylar da (timer) bununla gösterilebilir. Eşgüdüm: Beklemelidir. Eşgüdüm çizgisine varan akış, çizgiyi geçmeden önce diğer akışların hepsini bekler. fork join

ÖRNEK ÇİZİM ETKİNLİK ŞEMALARI ACTIVITY DIAGRAMS Birden fazla aktörün ve aktörler arası bilgi akışının gösterilmesi:

UYGULAMA ALANLARI DURUM ŞEMALARI STATE DIAGRAMS Bir varlığın içinde bulunabileceği durumları ve bu durumların birinden diğerine geçiş yapma kurallarını anlatmaya yarar.

DURUM ŞEMALARI STATE DIAGRAMS ÇİZİM KURALLARI ve ÖRNEK ÇİZİM Başlangıç Durum <<M>> Durum geçişi Bitiş

ÖRNEK ÇİZİM (2) DURUM ŞEMALARI STATE DIAGRAMS Yorumlama: Kullanıma hazır bir uçak için bakım isteği gelmişse, uçak önce bakım sırasına alınır. Bu sırada önceden planlanmış uçuşları varsa onları yapar. Planlanan uçuşlar bitince uçak bakıma alınır.

ÖRNEK ÇİZİM (2) DURUM ŞEMALARI STATE DIAGRAMS Dezavantaj: Tutarlılık denetimi zor olabilir. Karmaşık şemalarda mesajları takip etmek zorlaşır Çünkü aynı mesaj birden fazla durumla ilişkili olabilir Bu durumda aynı mesaj birden fazla yerde geçer. Ör: Uçuş Yap mesajı.

ÖRNEK ÇİZİM (3) DURUM ŞEMALARI STATE DIAGRAMS Durum geçişi sırasında işlenen komutların şemada gösterilmesi:

ANALİZDEN TASARIMA GEÇİŞ NESNEYE YÖNELİK TASARIM SÜRECİ Satışı kasa üzerinden kasiyer başlatır, malların barkodlarını okutur, toplamı bildirir, ödemeyi alır ve satışı sonlandırır. Bu işler nasıl olacak? Alan modelini ayrıntılandırarak tasarımı gerçekleştirelim: 21

TASARIM MODELİ NESNEYE YÖNELİK TASARIM SÜRECİ 22