Nesneye Yönelik Programlama

Slides:



Advertisements
Benzer bir sunumlar
Yazılım Geliştirme ve Java
Advertisements

FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
WEB SERVİCE İDRİS YÜRÜK MAHMUT KAYA.
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
İSİM UZAYLARI.
Problemi Çözme Adımları
Kurumsal KEP Entegrasyon ve Yönetim Çözümü KEP Gateway
GENETİK ALGORİTMALAR (1-15.slayt).
Yazılım Mühendisliği Bölüm - 7 Yazılım Doğrulama ve Geçerleme
Yazılım Mühendisliği Bölüm - 6 Gerçekleştirim
Nesneye Yönelik Programlama
OOP Tanımlar.
Dizi (array) değişkenleri
BTP 108 BİLGİSAYAR AĞ SİSTEMLERİ AĞ KAVRAMI Birden çok bilgisayarın birbirine bağlı olarak kullanılmasıyla oluşturulan çalışma biçimine bilgisayar ağı.
BİLİŞİM TEKNOLOJİLERİ & BİLGİ TOPLUMU
RAID Nedir?.
NESNEYE DAYALI MODELLEME VE TASARIM
NESNEYE YÖNELİK PROGRAMLAMA
NESNE TABANLI PROGRAMLAMA -METOTLAR-
Nesneye Dayalı Programlama
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : KAPSÜLLEME.
ELEKTRONİK ORTAMDA DENETİME GENEL BAKIŞ Prof. Dr
İSİM UZAYLARI (NAMESPACE)
MART 2013 İŞLETİM SİSTEMLERİ.
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.
Windows Server 2008’e Genel Bakış Microsoft Windows Server 2008, bilgi teknolojileri (BT) uzmanlarının altyapıları üzerindeki kontrollerini maksimum seviyeye.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 8: Windows Formları
VERİ TABANI VE YÖNETİM SİSTEMLERİ
Web Tasarımı Nedir?.
FMEA Failure Mode and Effects Analysis-Hata Türü ve Etkileri Analizi
( HATA VE AKIŞ KONTROLU – PROTOKOLLER – AĞ YAPILARI )
İŞLETİM SİSTEMLERİ Öğr. Gör. S.Serkan TAN.
Sedat Uslu / AVG 1991 yılında kurulup cihazları, verileri ve insanları korumak için öncü yazılım ve hizmetler sağlayan bir çevrimiçi güvenlik.
Şişecam S ayısal Yönetimle Verim VIII. "Türkiye'de İnternet" Konferansı 20 ARALIK 2002 Canan Özcan Türkiye Şişe ve Cam Fab. A.Ş.
NESNEYE-YÖNELİK PROGRAMLAMA
İŞLETİM SİSTEMLERİ İşletim sisteminin, kolay ve hızlı kullanım, kaynak verimliliği gibi kıstasların dışında, ortamında saklanan bilgilerin, gerekse izinsiz.
JAVA’DA DÖNGÜLER.
Kalıtım , Sınıf Asli Ergün.
İŞLETİM SİSTEMİ.
KALITIM Yılmaz Kılıçaslan.
BULUT BİLİŞİM İKRAM DARA BİLEM
Bilgi Teknolojisinin Temel Kavramları
Programlama Dilleri Visual Basic C# C++ Pascal Delphi.
ÇOK KATMANLI MİMARİLER. Katman: Ortak işi yapan kodların bir yerde toplanması Örneğin hemen hemen her projemizde veri tabanı kullanırız, bunun için veritabanı.
İnternet Programlama-I
İnsan Kaynakları Bilgi Sistemleri
PROJENİN ADI “Doğrusal Konumlandırıcılar” için Profesyonel Kontrol Ara yüz Tasarımı ve İmalatı.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Programlama Dillerinin Prensipleri
WEB’DEN KİŞİSELLEŞTİRİLMİŞ KART DOLUMU KILAVUZU. WEB’DEN DOLUM AŞAMALARI Webden dolum için öncelikle internet tarayıcımızın adres Kısmına
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.
Bilgisayar Mühendisliğindeki Yeri
Sistem Analizi ve Tasarımı
Nesne Tabanlı Yazılım Geliştirme Bora Güngören Portakal Teknoloji EMO Ankara Şubesi
BİLGİ İŞLEM ORGANİZASYONU -Voice/VoIP
Yeni Nesil Laboratuvar
Asp.Net Veritabanı İşlemleri
BİLİŞİM TEKNOLOJİLERİNİN EVRİMİ – BİLİŞİM TEKNOLOJİLERİNİN TARİHİ
İşletim Sistemleri Hazırlayan Hakan YİĞİT.
METHODLAR VE KOŞULLAR.
PROGRAMLAMA TEMELLERİ
Active Directory.
Nesneye Dayalı Programlama Temel Kavramlar Hüseyin ESKİ.
VISUAL STUDIO İÇERİSİNDE VERİ TABANI BAĞLANTISI ACCESS DATA SOURCE SAVAŞ TUNÇER
Problem Çözme Yaklaşımları
Ontoloji Tabanlı Bir Kitap Sorgulama Sistemi Gerçekleştirimi
Amazon Web Servisleri ve Javascript Dilinin Birlikte Kullanımı
NİŞANTAŞI ÜNİVERSİTESİ
Web Tasarımı Nedir?.
GARBAGE COLLECTOR (  ÇÖP TOPLAYICI ).
Sunum transkripti:

Nesneye Yönelik Programlama Hafta 1

Programlama Yaklaşımları Nesneye yönelik programlamanın sunduğu olanakların yeterli şekilde değerlendirilebilmesi için önce geleneksel yordamsal (procedural) programlama yaklaşımından kaynaklanan sorunların ele alınması gerekir. Prosedürel Yaklaşım (klasik programlama) Nesneye Yönelik Yaklaşım

Prosedürel Yaklaşım Yordamsal programlamada yazılımlar birbirini çağıran bir dizi yordam (procedure) ve işlevler topluluğu olarak geliştirilir. Her yordam ve işlev kendi yerel verisini, yine kendi yerel değişkenlerinde tutar. Paylaşılması gereken veriler yordam çağırma komutlarında parametre olarak yordamdan yordama geçirilir. Parametrelere sığmayacak büyük veriler ise genel (global) değişkenler içerisinde herkesin kullanımına açılır.

Prosedürel Yaklaşım(Devam) Yordamsal programlama yaklaşımının ilke çizimi aşağıdadır: Şekil’de dört adet genel kullanıma açılmış veri (D1-D4) ve bunları doğrudan ya da dolaylı olarak kullanan 7 adet yordam (P1-P7) yer almaktadır.

Prosedürel Yaklaşımın Zayıf Yanları Genel kullanıma açılan veriler tümüyle korumasız kalır. Verinin kullanım amacı veri üzerinde yapılabilecek işlemleri hiçbir biçimde sınırlamaz. Veriyi tutan değişken genel kullanıma açıldıktan sonra, o değişken türünün desteklediği her türlü işlem veriye uygulanabilir. Amaç dışı kullanımdan kaynaklanan yanlışlıklar ortaya çıktıktan sonra, yanlışlığa neden olan program kısmının saptanması zordur. Bunun için söz konusu veriye erişen tüm yordamların tek tek incelenmesi gerekir.

Prosedürel Yaklaşımın Zayıf Yanları Örnek: Bir banka hesabının bakiyesini tutan sayısal türde bir değişkeni ele alalım ve bu değişkenin arada bir hiç beklenmedik biçimde değer değiştirdiğini saptadığımızı varsayalım. Bu genel değişkeni kullanan tüm yordamlar incelendikten sonra programcının yanlışlıkla çok benzer adlı bir değişken yerine bakiye değişkeni tutan değişkendeki değerin karekökünü aldığı belirlenmiş olsun. Bu tür bir yanlışlığın önlenmesi için aşağıdaki önlemlerin programcı tarafından alınması gerekecektir: Hesap bakiyeleri üzerinde sayısal değişkenlere sadece toplama ve çıkarma işlemlerinin uygulanması anlamlıdır. Ek olarak bakiye değişkeni üzerinde toplama ve çıkarma işlemlerinde de sınırlamalar söz konusudur. Bakiyeyi eksi değere düşüren çıkarma işlemlerine izin verilmemelidir. Bankacılık uygulamasında hesap bakiyesini değiştiren her işlem hesap özetinde görülen izleme kayıtları yaratır. İzleme kaydı yaratmaksızın yapılan toplama ve çıkarma işlemleri de engellenmelidir. Yordamsal programlamada bu tür denetimler uygulama içerisinde dolaylı yoldan programcı tarafından yapılır.

Prosedürel Yaklaşımın Zayıf Yanları Yordamsal programlamada verinin saklanma biçimi, veriye erişim ve verinin işlenme biçimini doğrudan etkiler. Aynı verinin sayısal bir değişken yerine karakter türü bir değişkende tutulmasına karar verildiğinde, tek boyutlu dizi yerine iki boyutlu dizi kullanıldığında vs. Söz konusu veriye erişen tüm yordamların elden geçirilmesi gerekir. Bu durumda yöntem değişikliğinden etkilenen tüm kod kesimleri eksiksiz saptanmalı ve gereken güncellemeler hatasız olarak yapılmalıdır. Daha sonra programlar yeniden sınanır, derlenir ve kullanıcılara dağıtılır. Bu işlemler sırasında bazı kod kesimlerinin atılması ve yenilerinin eklenmesi de gerekebilir. Sonuç olarak, her aşamada sisteme yeni yanlışların sızması ya da dolaylı ilişkilerden ötürü ancak belli süre sonunda saptanabilecek ve bulunması daha zor hataların ortaya çıkması olasılığı yüksektir.

Prosedürel Yaklaşımın Zayıf Yanları Yordamsal programlamada eldeki kodun yeniden kullanımına dönük altyapı zayıftır. Farklı işletmelerdeki belli işlevlerdeki küçük farklılıklar geliştirilen programın özel durumlar için özel kesimler içermesine ya da programın farklı durumlar için farklı kopyalarının üretilmesine neden olur. İlk seçenekte var olan genel amaçlı parametrik programların tasarımı, gerçekleştirilmesi ve sınanması daha zor, pahalı ve zaman alıcıdır. Bunların anlaşılması ve bakımı da zordur. İkinci seçenekte ise bir kopyada saptanan hatanın diğer kopyalarda düzeltilmesi, güncellemelerin yapılması çok zahmetli ve tekrarlıdır. Uygulamada bir kopyada yapılan değişikliğin her kopyaya yansıtılamadığı ve her kopyanın başarısının farklılaştığı görülmektedir.

Prosedürel Yaklaşımın Zayıf Yanları Sonuç olarak yordamsal programlamadaki zorluklar şöyle özetlenebilir: Hataların saptanma ve düzeltilmesindeki zorluk Programın kullanıcı gereksinmelerini ve yenilik isteklerini tam karşılayacak biçimde hızla değiştirilebilir olmaması ve her yapılan ek ya da değişikliğin programın daha önce çalışan ve değiştirilmeyen kesimlerinde bile hataların oluşmasına yol açabilmesi Eldeki sınanmış kod kesimlerinin ciddi değişiklikler yapılmaksızın yeni gereksinmelerin karşılanmasında kolayca kullanılamaması

Nesneye Yönelik Programlama Nesneye yönelik programlamada yazılımlar birbirleriyle iletişim kurabilen nesneler topluluğu olarak tasarlanır ve gerçekleştirilirler. Kod işletimi nesnelerin içinde yapılır ve her nesne bir diğer nesneye ileti göndererek ondan hizmet alabilir. Bu nedenle nesneye yönelik programlama “nesnelere ileti gönderme yoluyla programlama” olarak da isimlendirilir.

Nesneye Yönelik Programlama Nesneler metodlar (methods) ve nitelikler’den (attributes) oluşur. Nitelikler, nesnelerin sahip oldukları verilere, metodlar ise bunlar üzerinde yapılabilecek işlemlere karşılık gelir. Bir başka deyişle nesne, kendisini işleyecek kod kesimini kendisi ile birlikte tanımlayan ve taşıyan ve kendi tanımladığı biçimden daha farklı amaçlarla kullanılamayan veri türü olarak yorumlanabilir.

Nesnelerin genel özellikleri Nesneler sınıflar’dan (class) yaratılırlar. Sınıf, nesnenin yaratılmasını sağlayan bilgileri içeren yapının adıdır. Bu nedenle sınıf, bir nesne şablonu olarak tanımlanabilir. Bir sınıftan türetilen tüm nesneler aynı şekilde davranır; bir diğer deyişle, hepsi aynı metot çağrılarına cevap verirler.

Nesnelerin genel özellikleri Nesnelerin, niteliklerinde tutulan değerlerle tanımlanan durumları (state) vardır. Bir başka deyişle, aynı sınıfa bağlı nesneleri birbirinden ayıran şey işleyiş biçimleri ya da yetenekleri değil, içlerinde tuttukları verilerin değerleridir. Nesnelerin yaşam döngüleri vardır. Bu yaşam döngüsü içinde yaratılırlar, kullanılırlar ve yok edilirler. Nesneler dış dünyada arayüzleri (interface) ile bilinirler ve kullanılırlar. Bir nesnenin arayüzü, o nesnenin dış dünyanın kullanımına açtığı metotların listesinden oluşur. Bir diğer deyişle, arayüzler nesnelerin hangi hizmetleri sağladığını belirtir, ancak bunları nasıl yapacağı konusunda bilgi içermezler.

Nesnelerin genel özellikleri Bir müşterinin ad, soyad, telefon ve bakiye bilgilerini tutan bir sınıf (class) tanımı görülmektedir. Müşterinin bilgilerini içeren değişkenlere dış dünyadan erişim olanaklı değildir. Bu bilgilere erişmek, okumak ya da değiştirmek isteyen bir program, bu sınıfın metotlarından birini - Bakiye göster () ya da Adres Güncelle () gibi - kullanmak zorundadır.

Yazılımlar giderek daha fazla kullanıcı tarafından kullanıldıkça, yeni ihtiyaç ve isteklerin ortaya çıkması kaçınılmazdır. Öte yandan her iyileştirme, eklenti ve değişiklik isteminin yazılımın tasarımını az ya da çok etkilediği ve ek çaba gerektirdiği açıktır. Dolayısıyla her yazılımcının değişiklik istemlerinin ana tasarım üzerindeki sarsıcı etkilerini olabildiğince en aza indirgeyerek bu istekleri karşılamasını sağlayacak araçlara ihtiyacı vardır.

Nesneye yönelik programlama, olası değişikliklerin etkisini kısıtlamak üzere aşağıdaki mekanizmaların kullanımını önermektedir: Kalıtım (inheritence) Çok biçimlilik (polymorphism) Sarmalama (encapsulation)

Kalıtım, eldeki sınıfları kullanarak yeni sınıflar yaratabilme özelliğidir. Bu işlem sırasında, yeni yaratılan sınıfın tüm özellikleri yerine yalnızca varolan sınıftan hangi noktalarda farklı olduğunun belirtilmesiyle yetinilir.

Verilen genel banka hesabı sınıfından (class) türetilen vadesiz hesap sınıfı, genel hesap sınıfında tanımlanan metotlarda herhangi bir değişiklik yapılmasını gerektirmemiştir. Ticari hesap sınıfı ise yalnızca faiz hesaplama metodunu yeniden tanımlamakla kalmamış, diğer hesap sınıflarında bulunmayan çeklerle ilgili yeni bir metot daha tanımlamıştır. Vadeli hesap sınıfı ise faiz hesabını farklı yaptığı için faiz hesaplama metodunu yeniden tanımlamıştır.

Kalıtım mekanizması, eldeki kodun yeniden kullanımı, değişiklik ve eklemelerin kolayca yapılabilmesi konusunda yordamsal programlama yaklaşımına oranla daha esnek bir yapı sunmaktadır. Örneğin üs-sınıfın (superclass) HesapÖzetiDök() metodunun gerçekleştirimi değiştirilip iyileştirildikçe tüm alt-sınıf (subclass) nesneleri bundan otomatik olarak yararlanır. Yeni bir hesap türünün sisteme eklenmesi ise Banka Hesabı sınıfından yeni bir alt-sınıf türetilmesiyle gerçekleştirilmektedir. Bu yeni hesap sınıfının eklenmesi esnasında diğer alt-sınıf kodlarının bundan etkilenip etkilenmediğinin denetlenmesi gerekli değildir, çünkü eklentinin etkileri yeni alt-sınıf ile sınırlıdır.

Alt-sınıf nesneleri, üst-sınıf nesneleri ile aynı temel özelliklere ve metotlara sahiptir. Bu özellik üst-sınıf nesnelerinin kullanıldığı her yerde alt- sınıf nesnelerinin kullanımına olanak verir ve çokbiçimlilik (polymorphizm) olarak isimlendirilir. Sarmalama (encapsulation) ise veri ve işlevlerin tek bir nesne biçiminde tanımlanabilmesi olarak açıklanabilir.

Java Nedir

Java Nedir? Java ™ platformu , ağ(network) ‘ın önemi hesaba katılarak ve aynı yazılımın birçok değişik bilgisayar ortamında veya değişik tür makinalarda çalışması fikri ile geliştirilmiş yeni bir teknolojidir. Java teknolojisi kullanılarak aynı uygulamayı değişik ortamlarda çalıştırabiliriz – örneğin Pc’lerde , Macintosh bilgisayarlarda, hatta cep telefonlarında. Java diğer programlama dilleri gibi başlı başına bir ürün değildir.

Java ile neler yapılabilir? Java Programlama dili ile projelerimizi diğer programlama dillerine göre daha kolay ve sağlıklı bir şekilde yapmamız mümkündür . Kısaca göz atacak olursak , Java ile ; GUI (graphical user interface , grafiksel kullanıcı ara yüzü) uygulamaları , Appletler. Servlet, Jsp (web tabanlı uygulamalar). Veri tabanlarına erişim ile ilgili uygulamalar. Cep telefonları, Smart kartlar için uygulamalar . Ve daha niceleri… için uygulamalar yazmamız mümkündür.

Bir kere yaz her yerde çalıştır Java uygulamaları JVM (Java Virtual Machine) tarafından yorumlanır( interpreted ). JVM , işletim sisteminin en tepesinde bulunur Java uygulamaları değişik işletim sistemlerinde , herhangi bir değişiklik yapmadan çalışabilir, Java’nın felsefesi olan “bir kere yaz her yerde çalıştır” sözü gerçekleşmiş olur.

Çalışma evreleri

Çalışma evreleri