Nesneye Dayalı Programlama 1

Slides:



Advertisements
Benzer bir sunumlar
NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar
Advertisements

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
UML Unified Modeling Language
Nesneye Dayalı (Nesne Tabanlı ) Programlama
WEB SERVİCE İDRİS YÜRÜK MAHMUT KAYA.
NESNEYE YÖNELİK PROGRAMLAMA Nesneye Yönelik Yazılım Geliştirme Süreci Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü.
ÇOKLU ORTAM UYGULAMALARINDA GÖRSELTASARIM.
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
İSİM UZAYLARI.
Bilgi Teknolojisinin Temel Kavramları
Excel’de VBA programlama (Visual Basic Application) Ders I
Nesneye Yönelik Programlama
OOP Tanımlar.
P p 8. Ünitede yinelemeli programlamanın teknikleri anlatılmaktadır. p p Gördüğünüz gibi, yinelemeli programlama bir problemin içinde problemin küçük parçalarını.
NESNEYE DAYALI MODELLEME VE TASARIM
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
Çerez(Cookie) Kullanımı Oturum Yönetimi
Nesneye Dayalı Programlama
Bilgisayar Programlama
Nesneye Yönelik Programlama
NESNEYE DAYALI PROGRAMLAMA
Yazılım Gelişimi. Donanım gelişimine paralel olarak süren yazılım gelişimi, son on yılda kayda değer bir ivmelenme ile bilgisayarları, herhangi bir uzmanlık.
Java Sınıf ve Nesne Kavramı UML Gösterimi
Görsel Programlama Dr. Muhammet Balcılar
FMEA Failure Mode and Effects Analysis-Hata Türü ve Etkileri Analizi
Nesneye Dayalı Programlama
Nesneye yönelİk analİz ve tasarima gİrİş
Chapter 1: Giriş.
Test Driven Development (TDD) Nedir?
JAVA’DA DÖNGÜLER.
İŞLETİM SİSTEMİ.
Quest Atlantis Dünya Üzerine Yayılmış Çok-Kullanıcılı Çevrim-İçi Eğitsel Bir Bilgisayar Oyununun Teknik Yapısı.
1 Öğr. B.Aliyeva Öğr. B.Aliyeva Bilgisayar Yazılımı.
BİLİŞİM TEKNOLOJİLERİ ALANI
, Denizli Akademik Bilişim 2006 YAZILIM GELİŞTİRME SÜRECİNDE OTOMATİK KOD ÜRETİCİLER Çağdaş Can BİRANT Kökten Ulaş BİRANT Prof. Dr. Alp KUT.
Microsoft Office Access
Bilgi Teknolojisinin Temel Kavramları
Şahin BAYZAN Kocaeli Üniversitesi Teknik Eğitim Fakültesi
Programlama Dilleri Visual Basic C# C++ Pascal Delphi.
Karar Bilimi 1. Bölüm.
DOODLE(KARALAMA) İLLÜSTRASYON ÇALIŞMASI
PROGRAMLAMA Doç.Dr. Murat ÇAKIROĞLU 2015 – 2016 Güz Dönemi Kredi : 3+1
Hazırlayan: EMRAH HAS. Eşzamanlı ya da eş zamansız, metin, grafik, animasyon, ses, video gibi içeriğin tamamen işlenmiş, yarı işlenmiş ya da ham veri.
İnsan Kaynakları Bilgi Sistemleri
PROJENİN ADI “Doğrusal Konumlandırıcılar” için Profesyonel Kontrol Ara yüz Tasarımı ve İmalatı.
İÇERİK YÖNETİM SİSTEMİ Öğr. Gör. Emine TUNÇEL Kırklareli Üniversitesi Pınarhisar Meslek Yüksekokulu.
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
JAVA 1. GİRİŞ & TARİHÇE Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmıştır. Açık kodlu. Nesneye yönelik. Düzlemden.
ÇEVİK (Agile) SÜREÇLER Değişen gereksinimler, teknik riskler gibi önceden belirlenemeyen durumlara ve yazılım ürününü etkileyebilecek her tür değişikliğe.
Nesne Tabanlı Yazılım Geliştirme Bora Güngören Portakal Teknoloji EMO Ankara Şubesi
C Programlama Dili Bilgisayar Mühendisliği.
Bilgisayar Donanım ve Sistem Yazılımı
Nesne tabalı Programlamaya giriş
PROGRAMLAMA TEMELLERİ
Nesne Yönelimli Yaklaşım
BİLGİSAYAR DESTEKLİ EĞİTİM İÇİN ÖĞRETİM TASARIMI
FONKSİYONLAR.
Problem Çözme Yaklaşımları
Öğretim Yönetim Sistemleri ve Moodle
YAPISAL PROGRAMLAMA Hafta-6
Öğretim Yönetim Sistemleri ve Moodle
Bilgisayar Bilimi Problem Çözme Süreci-2.
Problemi Çözme Adımları
Veri Tabanı Temel Kavramlar.
Nesneye Dayalı Programlama 1
Öğretim Görevlisi Alper Talha Karadeniz Veri Tabanı 1
BİLGİSAYAR MÜHENDİSLİĞİNE GİRİŞ
NİŞANTAŞI ÜNİVERSİTESİ
Dünya Üzerine Yayılmış Çok-Kullanıcılı Çevrim-İçi Eğitsel
İLERİ VERİ TABANI UYGULAMALARI
Sunum transkripti:

Nesneye Dayalı Programlama 1 Öğretim Görevlisi Alper Talha KARADENİZ

Programlama Nedir ? İnsanlar günlük hayatta kullandıkları konuşma dilleri ile çeşitli kavramları birbirlerine anlatmaya çalışırlar. Benzer şekilde bilgisayar programcıları da çözülmesi gereken problemlerle ilgili kavram ve varlıkları, kullandıkları programlama dili ile bilgisayarda ifade etmeye çalışırlar. Programlama, yaşadığımız gerçek dünyadaki problemlere ilişkin çözümlerin bilgisayarda ifade edilmesidir.

Yordamsal Programlama Basic, Fortran, Pascal, C gibi programlama dillerinin desteklediği bu yöntemde öncelikle gerçeklenmek istenen sistemin yapması gereken iş belirlenir. Büyük boyutlu ve karmaşık işler, daha küçük ve basit işlevlere (fonksiyonlara) bölünerek gerçeklenir.

Yordamsal Programlama İşleve dayalı programlama “Böl ve Yönet” mantığına dayanır. Amaç büyük programları küçük parçalara bölerek yazılım geliştirme işini kolaylaştırmaktır. Ancak yazılımların karmaşıklıkları sadece boyutlarından kaynaklanmaz. Küçük problemler de karmaşık olabilir. Gerçek dünyadaki sistemler sadece fonksiyonlardan oluşmaz. Sistemin gerçeğe yakın bir modelini bilgisayardan oluşturmak zordur. Tasarım aşamasında verilerin göz ardı edilip fonksiyonlara ağırlık verilmesi hatalar nedeniyle verilerin bozulma olasılığını arttırır. Programcılar kendi veri tiplerini yaratamazlar. Programı güncellemek gerektiğinde, yeni öğeler eklemek ve eski fonksiyonları yeni eklenen unsurlar içinde kullanmak zordur.

Yordamsal Programlama İşleve dayalı programlama yöntemini kullanarak kaliteli programlar yazmak mümkündür. Ancak nesneye dayalı programlama yöntemi, kaliteli programların oluşturulması için, programcılara daha çok olanak sağlamaktadır, ve önceki sayfada açıklanan sakıncaları önleyecek mekanizmalara sahiptir.

Nesneye Dayalı Programlama (Object Oriented Programming) Tıpkı gerçek dünyada olduğu gibi nesneler ve nesnelerin birbirleriyle iletimini sağlayan sistemler kurmaktadır. “bu sistem ne iş yapar?” değil, bu “sistem hangi nesnelerden oluşur?” sorusu sorularak tasarım yapılmalıdır. İnsan kaynakları ile ilgili bir programda; memur, işçi, müdür, genel müdür. Grafik programında; nokta, çizgi, çember, silindir. Matematiksel işlemler yapan programda; karmaşık sayılar, matris. Kullanıcı arayüzü programında; pencere, menü, çerçeve.

Nesneye Dayalı Programlama (Object Oriented Programming) Programcılar her zaman gerçek yaşamdaki durumlara yakın senaryolar oluşturmaya çalışırlar. Bu yöndeki ilk adım bilgisayarın yaşadığımız dünyadan nesnelerle ilişki kurmasını sağlamaktır. Hepimizin bildiği gibi, bilgisayar sadece bir elektronik makinedir. Bilgisayarın bizim bildiğimiz nesneleri tanımasını sağlayacak bilgiyi vermek, bizim sorumluluğumuzdadır. İşte bu noktada nesneye dayalı modelleme tekniği devreye girer. Bu modelde gerçek problemlerde karşılaştığımız nesneleri, bilgisayarda benzer nesneler olarak modelleyebiliriz.

Nesneye Dayalı Programlamanın faydaları Gerçek dünya nesnelerden oluştuğundan bu yöntem ile sistemin daha gerçekçi bir modeli oluşturulabilir. Program daha anlaşılır olur. Nesne modellerinin içindeki veriler sadece üye fonksiyonlarının erişebileceği şekilde düzenlenebilir. Veri saklama(data hiding) adı verilen bu özellik sayesinde verilerin herhangi bir fonksiyon tarafından bozulması önlenir. Programcılar kendi veri tiplerini oluşturabilirler. Bir nesne modeli oluşturduktan sonra bu modeli çeşitli şekillerde defalarca kullanmak mümkündür. Nesneye dayalı yöntem takım çalışmaları için uygundur.

Nesneye Dayalı Programlamanın faydaları NDP de belirsiz bir sayıda koda ulaşılırken hala projede herhangi bir tamamlanma oranı oluşmamaktadır. Ancak projelerin ilerleyen kısımlarında bu dezavantaj ortadan kalkmakta ve kod sayısındaki artış oranı oldukça azalmaktadır. Bankacılık, ERP, CRM gibi çok büyük sayılan, sürekli veritabanlarına verilerin işlenip gelen sonuçların değerlendirildiği yazılımlarda bu fark kendisini çok daha kısa zamanda gösterebilmektedir. Yapısal Programlama Kod sayısı NDP 100 Projenin tamamlanma oranı

Nesneye Dayalı Programlamanın faydaları Kod karmaşıklığı NDP de sabit ilerlerken YP de bu oran projenin tamamlanmasına kadar artmaktadır. Tüm bunlarla beraber bakım maliyetleri (zaman ve emek) açısından da incelersek NDP nin getirmiş olduğu avantajlar başta belirtmiş olduğumuz dejavantajı ortadan kaldırmaktadır. Kod Karmaşıklığı YP NDP Projenin tamamlanma yüzdesi

Sınıf (CLASS) kavramı Nesneye dayalı programlamanın esasını sınıf (class) oluşturur. Sınıf aynı cins nesnelerin genel tanımıdır. Örneğin kullandığımız araba bir nesnedir (Ford gibi). Aynı şekilde başkalarının da kullandığı Opel, BMW, Mercedes, Renault arabalarının her biri ayrı birer nesnedir. Bu nesnelerin hepsi araba sınıfı ile tanımlanabilir. Aynı sınıfa ait nesneler ortak özelliklere sahiptir. Örneğin “öğrenci” isminde bir sınıf oluşturabiliriz. Bu sınıftan üretilecek objelerin ortak yani, bir numara, ad, soyad gibi özellikleri olacaktır. Sınıflar, obje üretme yanında aralarında akraba ve is ilişkileri kurmak mümkündür. Sınıf yeni bir tip veri tanımlar. Bu yeni tip, bu tipte yeni nesneler oluşturmada kullanılır. Bu yüzden sınıf nesne için bir şablondur. Ve bir nesne sınıfın bir örneğidir.

Sınıf (CLASS) kavramı Sınıf üyeleri: 1. Alan (field): Sınıf tarafından tanımlanan veriler. 2. Özellik (Properties): Sınıf tarafından tanımlanan sınırlandırılmış veya özelleştirilmiş veriler. 3. Metot (Method): Veri üzerindeki operasyonlar. 4. Olaylar (Events): Diğer nesneler için operasyonel yapılar. 5. Temsilciler (Delegates): Olayları oluşturabilmek için gereken kapsüllenmiş yapılar.

Nesne (Object) kavramı Nesneyi belirlenmis bir islevi yerine getiren, bunun içinde çesitli fonksiyonlar içeren bir yapi olarak tanimlayabiliriz. OOP de objeler sınıflardan üretilir. Objeler, sınıfların aksine canlıdır ve kimlikleri vardır. Aynı sınıftan üretilmiş iki objenin sahip olduğu değişkenler değişik özelliklere sahiptir. Örneğin öğrenci sınıfından üretilen ayşe ve ali isimli iki öğrencinin numaraları değişiktir. Burada adı geçen numarası, sınıf içinde yer alan bir özelliktir. Sınıftan üretilen her obje bu özelliği alır. Objeler üretilirken, obje özellikleri sahip oldukları yapıya göre, değişik olacaktır. Öğrenci örneğinde olduğu gibi, Ali ve Ayşe objeleri değişik numaralara sahiptir.

Sınıf ve nesne kavramı

KAYNAKLAR • Öğr.gör. Özgür çiftçi nesne tabanlı programlama ders notları Bt Akademi Kurs Notları http://www.btakademi.com • Baransel, C., Mumcuoğlu, A., Web Tabanlı, Üç Katmanlı Yazılım Mimarileri: UML, EJB ve ORACLE İle Sistem Modelleme, Tasarım ve Gerçekleştirim, SAS Yayınları, 2003. • Doç.Dr. Erdoğan DOĞDU ders notları • Fowler, Martin (2002). Patterns of Enterprise Application Architecture. Addison-Wesley. ISBN 978-0321127426. • Head First Object Oriented Analysis & Design • http://ceng.gazi.edu.tr/~hkaracan/NYPH1.pdf • http://e-bergi.com • http://e-bergi.com/2008/Subat/Nesne-Yonelimli-Programlama • http://en.wikipedia.org/wiki/Enterprise_Messaging_System • http://nesneyonelimliprogramlama.blogspot.com/ • http://tr.wikipedia.org • http://tr.wikipedia.org/wiki/Hizmet-yönelimli_mîmârî • http://tr.wikipedia.org/wiki/Nesne_Yönelimli_Programlama • http://www.bilgininadresi.net • http://www.bilisim-kulubu.com • http://www.csharpnedir.com • http://www.dofactory.com/Patterns/Patterns.aspx • http://www.findikkurdu.com • http://www.godoro.com • http://www.msakademik.net • http://www.onlineakademi.com/egitim-katalogu.html?page=show_ad&adid=258 • http://www.oreillynet.com/onlamp/blog/2006/10/design_patterns_are_signs_of_w.html • http://www.programlama.com • http://www.soamoa.org/ • http://www.soaturkiye.com/ • http://www.yazilimdevi.com • http://wwwipd.ira.uka.de/~tichy/patterns/overview.html • Object-Oriented Software Development Using Java – Principles, Patterns, and Frameworks,Xiaoping Jia, 2/ed. Addison-Wesley, 2003 • Prof. Dr. Çelebi S., “C++ ve Nesne Yönelimli Programlama, İlave Notlar Sürüm 1.1” Nisan 2005. • Schmidt, Douglas C.; Michael Stal, Hans Rohnert, Frank Buschmann (2000). Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects. John Wiley & Sons. ISBN 0-471-60695-2. • Schildt, Herbert (2005) “Herkes İçin C#” , Alfa Yayınları • www.csharpnedir.com • Y.Doç.Dr. Feza BUZLUCA ders notları