1 / 37

Temel Kavramlar

Temel Kavramlar. Kocaeli Üniversitesi Bilgisayar Mühendisliği Nesneye Yönelik Programlama 2010-2011 Bahar. İç erik. Yazilim Gelistirme Asamalari Programlama Nesneye yönelik programlama Nesneye Yonelik Dil Olarak JAVA. Yaz ı l ı m Geli ş tirme A ş amalar ı. Bi ç imsel G ö sterim.

maille
Télécharger la présentation

Temel Kavramlar

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Temel Kavramlar Kocaeli Üniversitesi Bilgisayar Mühendisliği Nesneye Yönelik Programlama 2010-2011 Bahar

  2. İçerik • Yazilim Gelistirme Asamalari • Programlama • Nesneye yönelik programlama • Nesneye Yonelik Dil Olarak JAVA

  3. Yazılım Geliştirme Aşamaları

  4. Biçimsel Gösterim • Algoritma, biçimsel gösterime temel olan kavramlardan biridir. • Herhangi bir işi yapmak veya bir problemi çözmek için sırasıyla uygulananadımlar dizisine algoritma denir. • Örnek: İki sayıdan büyük olanı bulan algoritma (doğal dil ile) • Birinci sayıyı al. • İkinci sayıyı al. • Sayıları karşılaştır: Birinci sayı ikinciden büyük mü? • Evet ise birinci sayı büyüktür. • Hayır ise ikinci sayı büyüktür. • Büyük sayıyı bildir.

  5. Bicimsel Gosterim • Çözüme götürecek her algoritma, aşağıdaki özellikleri göstermelidir: • Algoritma adımları işletme sırasını yönlendirmelidir. • Her algoritma adımı yapılabilir olmalıdır. • Örnek: Tüm pozitif doğal sayıların bir listesini yapın (yapılabilir değil) • Her algoritma adımı net olmalıdır. • Herkes tarafından aynı şekilde işletilebilmelidir. • Her algoritma, sonlu sayıda adım içermelidir. • Bir algoritma, iyi tanımlı öğelerle temsil edilir. • Akış çizeneği (“flowchart”) • Kaba-kod (“pseudocode”)

  6. Programlama • Program (bilgisayar programı): • Bilgisayar tarafından işletilecek görevi veya görev setini tanımlayankomut dizisidir. • Aslında program da bir çeşit biçimsel gösterimdir. • Farklı olarak, bilgisayar tarafından işletilebilecek türde bir biçimsel gösterimdir • Programlama: • Analizi (kavramsal gösterimi) ve tasarımı (biçimsel gösterimi)tamamlanmış bir problemin, bilgisayar tarafından işletilebilecek kaynakkodunu yazma işidir. • Yazma işi bir programlama dili ile yapılır (C, Java, vb.).

  7. Programlama Hiyerarsisi • Programlamatürlerimakinedilineyakınlıktan,insandilineyakınlığınadoğruderecelendirilir. • MakineDiliylebaşlayanprogramlama,zamanlainsandilineyaklaşanseyirizlemiştir. • EnTemelimakinenindoğrudananladığıMakineDiliiken,bugünekadarinsandiliyleprogramlamagerçekleştirilememiştir.

  8. Makine Dili Programlama • Bilgisayarındoğaldilidir • Bilgisayarındonanımsaltasarımınabağlıdır • Makinedili“010101001” ‘lerdenoluşankomutlardırvebunlardoğrudanmakineyehitapeder. • Makinediliişlemcitürüneözelolarakyazılmaktadır.Dolayısıyla,birişlemcitürüiçinmakinediliyleyazılmışprogram,diğerişlemcileriçinuygunolmamaktadır.

  9. Assembly Dili Programlama • Bilgisayarprogramlarınınyazılmasındakullanılanaltseviyelibirdildir. • Assemblyinsanlartarafındananlaşılmasızorolanmakinadilininsayısalifadelerini,insanlartarafındananlaşılarakprogramlanmasıdahakolayolanalfabetikifadelerledeğiştirerekdüşükseviyedeprogramlamaiçinbirortamoluşurur. • Birassemblydilprogramıçevirici(Assembler)olarakadlandırılanfaydalıbirprogramtarafındanhedefbilgisayarınmakinekodunaçevrilir.

  10. Programlama Türleri • Yapısal programlama (“structured programming”) • Programlama birimleri: işlev (“function”), yapı (“struct”) • 1970’ler ve 1980’ler • Yapısal programlama dilleri: Fortran, C, Ada, • Nesneye yönelik programlama (“object-oriented programming”) • Programlama birimi: nesne (“object”) • 1990’lar ve sonrası • Nesneye yönelik programlama dilleri: Smalltalk, C++, Java • Kesite yönelik (“aspect-oriented”) programlama • Bileşene yönelik (“component-oriented”) programlama

  11. Nesneye Yönelik Programlama • Programın temel öğeleri nesnelerdir. • Nesneler genellikle, problem alanında var olan soyut veya somut varlıklarınkarşılığı olarak kodlanır. • Programın işleyişi nesnelere ve aralarındaki iletişime dayalıdır • Nesneye yönelik programlama: • Daha esnek ve daha modüler programlar oluşturmayı sağlar. • Mevcut programlar daha kolay güncellenebilir ve genişletilebilir. • Bakım yapılabilirlik (“maintainability”) • Özellikle geniş kapsamlı yazılım geliştirme için avantaj sağlar

  12. Nesne • Sözlük anlamı “Belli bir ağırlığı ve hacmi, rengi olan her türlü canlı ve cansız varlık.” olan nesne çevremizi saran dokunabildiğimiz, görebildiğimiz her şeydir. • İyi tanımlı bir kapsamı ve kimliği olan, belirli bir durum ve davranışıiçeren, soyut veya somut varlıktır. • Nesne gerçek dünyadaki somut bir varlığı temsil edebilir. • Nesne tamamen kavramsal bir varlığı temsil edebilir. • Her nesnenin gerçekleştirdiği belirli bir rolü veya sorumluluğu vardır. • Bir nesne diğerinden mesaj alabilir veya diğerine mesaj gönderebilir.

  13. Nesne Örnek

  14. Nesnenin Özellikleri • Gerçek hayatta olduğu gibi NYP’da da her bir nesnenin özellikleri vardır. • Nesnelerin özelliklerinin tutukları değerler nesnenin o andaki durumu hakkında bilgi verirler. • Bu değerler değiştikçe nesnenin durumu da değişikliğe uğrar. • Nesnelerin özellikleri genellikle nesnenin içinde ya da dışında oluşan bir olayla değişir

  15. Sınıf Nedir • Nesneye yönelimli programlamada sınıf bir nesnenin tüm özelliklerini ve eylemlerini tanımlayan şablondur. • Bir nesne oluşturulacağı zaman sınıfın verdiği bilgilere bakılır ve bu bilgiler doğrultusunda nesne oluşturulur. • Sınıflar nesnelerin ilk oluşumu sırasında gerekli olan başlangıç durumlarını da belirtirler. • Sınıf oluşturulduktan sonra sınıfın belirttiği özelliklere ve eylemlere sahip nesneler oluşturulabilir. • Gerçek dünyada pekçok nesnenin ismiyoktur. Nesneler ait oldukları sınıflarla adlandırılırlar. • Örneğin binek otomobilimize de pazarcının sebzeleri taşıdığı aracada araba diyoruz

  16. Nesneye Yönelik Dil Olarak JAVA

  17. Java Programlama Dili • Java, Sun Microsystems mühendislerinden James Gosling tarafından1990’ların başında geliştirilmeye başlanmış; • Açık kodlu, • Nesneye yönelik, • Platformdan bağımsız, • Yüksek performanslı, • Çok görevli, • Yüksek seviyeli, • Adım adım işletilen (yorumlanan - “interpreted”) bir dildir

  18. Java Tarihçesi • Java 1.0, 1995. • JDK (“Java Development Kit”) 1.1.4, 1997. • J2SE 1.2 (“Java2 Standard Edition”), 1998. • J2SE 1.3, 2000. • J2SE 1.4.0, 2002. • J2SE 5.0 (1.5.0), 2004 • Java SE 6 (“Standard Edition”) (1.6.0), 2006. • Java SE 7 (1.7.0). • Henüz resmen yayınlanmadı, geliştirme devam ediyor. • Deneme amaçlı kullanıma açık. • http://jdk7.java.net/

  19. Java Temel Özellikleri • Platform bağımsız • Kaynak programları çeşitli bilgisayar sistemlerinde derlenip çalıştırılabilendiller “taşınabilir” (“portable”) olarak nitelendirilir. • “Bir kez yaz ve her yerde çalıştır” (“write once, run anywhere”) • Otomatik çöp toplama (“garbage collection”) • Dinamik bellek yönetimi: Java'da bir nesne oluşturulduktan sonra o nesneile işiniz bittiğinde hiçbir şey yapmanız gerekmez. Akıllı bir biçimde,kullanılmayan bellek bölümleri belirli aralıklarla ya da tetiklenen yordamlarla otomatik olarak temizlenir ve sisteme iade edilir. • Açık kaynak • Sun, Kasım 2006’da Java bileşenlerini, “GNU General Public Licence”altında açık kaynak yayınladı

  20. Java Çalıştırma Ortamı • Java uygulamalarının bilgisayar üzerinde koşturulmasını sağlayanyazılımdır. • Java uygulamaları günümüzde özellikle Internet sayfalarında oldukça yaygınolarak kullanılmaktadır. • Kullanıcılar Java Çalıştırma Ortamınının son sürümünü internetsayfasından yükleyebilir • Java Çalıştırma Ortamı iki kısımdan oluşur: • Java Sanal Makinesi (“Java Virtual Machine” - JVM) • Uygulama Programlama Arayüzü (“Application Programming Interface” – API) • JVM ve API birbiriyle tutarlıdır ve bu yüzden JRE altında birleştirilmiştir. • JRE’nin Java uygulamalarını çalıştıran sanal bir bilgisayar olduğunudüşünürsek; JVM işlemci, API kullanıcı arayüzü olarak isimlendirilebilir

  21. Java Sanal Makinası • Sanal makineyi bir yönden bir tür hayali mikroişlemci gibi düşünebiliriz. • Gerçek tüm mikroişlemciler (Intel Pentium, AMD Athlon, Sun Sparc, vs.)belirli bir grup komutu işlemek üzere tasarlanmıştır. • Bu komutlara işlemcinin komut kümesi adı verilir. Tüm programlarçalışabilmek için önce bu komut kümesine dönüştürülür, daha sonraişlemci bu komutları sıra ile sayısal işlemci komutlarına dönüştürüp işletir. • Java Sanal Makinesi de baytkod komut kümesini tıpkı işlemci gibi, adımadım işletir. Java bu nedenle, yorumlanan (“interpreted”) bir dil olarakadlandırılır.

  22. UygulamaProgramlamaArayüzü (API) • Java API, Java yazılımlarında kullanılan yazılımkütüphanelerine genelolarak verilen isimdir. • Java API ile disk, grafik, ağ, veri tabanı, güvenlik gibi yüzlerce konudakullanıcılara erişim imkanı sunulur. • Java API, J2SDK’nın (“Java2 Software Development Kit”) bir parçasıdır. • Sun->Oracle, farklı uygulama ortamlarını desteklemek için, farklı API’lartanımlamıştır: • Java Platform, Micro Edition (Java ME): Avuçiçi aygıtlar gibi kısıtlı kaynağasahip ortamlar için • Java Platform, Standard Edition (Java SE): Masaüstü bilgisayarlar ve işistasyonları için • Java Platform, Enterprise Edition (Java EE): Geniş dağıtık sistemler ve websunucuları için

  23. Java GelistirmeSeti (“Java Development Kit” - JDK) • Java geliştiricilerine programlama araçlarını sunan geliştirme setidir. Aşağıdakibileşenlerden oluşur: • javac: Kaynak kodu Java baytkoduna çeviren derleyicidir. • Anında derleme (“just-in-time compile” – JIT): Baytkodu sanal makinenin kurulu olduğugerçek sistemin diline derleme yaparak anında dönüştürür. • jar: Kaynak kodla ilişkili kütüphaneleri tek bir .jar dosyasına paketleyen arşivleyicidir. • javadoc: Kaynak kod açıklamalarından otomatik olarak dokümantasyon üretenbileşendir. • jdb: Hata ayıklayıcıdır (“debugger”). • Yukarıdakilere ek olarak, API’nin kullanımını anlatan geniş bir örnek setibulunmaktadır.

  24. Java Nasıl Çalışır • Bir Java programı şu şekilde geliştirilir: • Programcı Java kodunu yazar. • Bu kod Java derleyicisi ile derlenir. • Sonuçta baytkod (“btyecode”) adı verilen bir tür makine kodu ortaya çıkar. • Platform bağımsızlığını sağlayan şey baytkoddur; çünkü bir kere baytkodoluştuktan sonra program, sanal makine içeren tüm işletim sistemlerinde çalışabilir. • Bu baytkod Java Sanal Makinesi (“JVM”) tarafından adım adım işletilir

  25. Java Kaynak Kod Yapısı • Programlama da kodların yazıldığı dosyalara kaynak dosyası denilmektedir. • Java kaynak dosyaları .java uzantısıyla oluşturulurlar. • Java kaynak dosyaları oluşturulurken dikkat edilecek ilk kural, kaynak dosyasının içerisinde dosyayla aynı adı taşıyan bir sınıf yada arayüz bulunması gerekliliğidir. • Bir java kaynak dosyası üç ana bölümden oluşur. Bunlar: • PaketBildirimi • KütüphaneEkleme • KodBloğu

  26. Paket Bildirimi • Java’da kaynak dosyalar veya derlenmiş halleri bilgisayarımızdaki dosya sistemine benzer bir hiyerarşide tutulurlar. • Nasılki bilgisayarımızdaki tüm dosyalar bir dizinde tutuluyorsa kaynak dosyalarımız da mutlaka bir paket içerisinde tutulmalıdır. • Paketler başka paketlerin içerisinde bulunabilirler. • Örneğin java’da dosya işlemlerini yapan File.java kaynak dosyası java paketinin içerisindeki io paketine aittir. Bu nedenle File.java dosyasının en üst kısmında package java.io ifadesi bulunur. Bir kaynak dosya sadece bir pakete ait olabilir dolayısıyla kaynak dosyasında sadece bir adet paket bildirimi olur.

  27. Kütüphane Ekleme • Daha önceden yazılmış ve programcının kullanımına sunulmuş kaynak dosyalar yada bunların derlenmiş hallerine kütüphane denilmektedir. • Java’da kütüphane bildirimi, paket bildiriminin ardından yapılmaktadır. • Örneğin yukarıda bahsettiğimiz File.java kaynak dosyasından üretilmiş File sınıfını yeni yazacağımız kodda kullanmak istersek; import java.io.File; ifadesini kullanmamız gerekmektedir. • Tek tek sınıf dosyalarını eklemektense bir paket içerisindeki tüm dosyaları aynı satırda ekleme imkanı da mevcuttur import java.io.*;

  28. Örnek Kod Bloku

  29. İstemci Tarafı (Applet) • İstemci tarafı (“applet”), uzaktaki sistem üzerinden indirilip Internettarayıcı üzerinde çalıştırılabilien Java uygulamalarına verilen isimdir. • “Applet”ler sisteme zarar veremeyecek bir şekilde tasarlanmıştır vebugün özellikle oyun sitelerinde halen yaygın olarak kullanılmaktadır. • İçerisinde “applet” olan bir sayfayı açmaya çalıştığınızda tarayıcınızotomatik olarak Java Sanal Makinesini çalıştırarak ekranın “applet”eayrılan bölümünde uygulamanın koşturulmasını sağlar

  30. Sunucu Tarafı (Servlet) • Sunucu tarafı (“servlet”), istemcilerden gelen taleplere yanıt veren Javauygulamalarına verilen isimdir. • Örnek: HTTP taleplerine HTML sayfalarıyla yanıt verme • “Servlet”, sunucu tarafında çalışan ve arayüzü olmayan bir “applet” gibi dedüşünülebilir. • “Servlet” teknolojisi, web sunucuların işlevselliğini genişleten ve mevcutiş sistemlerine ulaşmayı sağlayan basit ve tutarlı bir mekanizma sunar

  31. Java SunucuSayfası(Java Server Page -JSP) • Web istemcilerinden gelen HTTP taleplerine; HTML, XML, vb. olarakdinamik şekilde yanıt üreten, sunucu tarafı Java bileşenleridir. • Bir HTML, XML, vb. sayfasına Java kodunu gömer. • Bir Java Sunucu Sayfası (“JSP”) ilk defa ulaşıldığında “servlet” olarakderlenir ve bu “servlet” ilgili yanıtı üretir.

  32. Java Kütüphaneleri • Temel kütüphaneler: • Liste, sözlük, ağaç, küme, vb. veri yapılarını gerçekleştirme • XML işleme • Güvenlik • Dış sistemlerle iletişimi sağlayan kütüphaneler: • Veritabanı iletişimi için “Java Database Connectivity” (JDBC) API • Arama ve keşif işlemleri için “Java Naming and Directory Interface” (JNDI) • Dağıtık uygulama geliştirme için “Remote Method Invocation” (RMI) ve • “Common Object Request Broker Architecture” (CORBA) • Kullanıcı arayüzü kütüphaneleri: • AWT • Swing • Ses işleme API

  33. JavaScript • Web sayfalarında dinamik içerik sağlamak ya da kullanıcıyla iletişimkurmak için kullanılan bir dildir. • Önceleri sadece Netscape tarayıcıları üstünde çalışan JavaScript, artık tümyaygın Internet tarayıcıları tarafından desteklenmektedir. • Ad benzerliğine rağmen Java ile ilişkili değildir. Yaygın yanlışlardan biriJavaScript'in basitleştirilmiş Java olarak tanımlanmasıdır.

  34. Basit Bir Java Programı

  35. “Main()” Yordamı • Her Java programı bir “main ()” yordamı içermek zorundadır. • public static void main (String[] args) • “public” sözcüğü, “main()“ yordamının her nesne tarafından çağrılabileceğinigösterir. • “static“ sözcüğü, “main()“ yordamının nesneye değil, sınıfa ait olduğunugösterir. • “void” sözcüğü, “main()“ yordamının herhangi bir değer döndürmediğinigösterir.

  36. Java Programı • Java kaynak kodları, basit bir metin editörde yazılır. • Tüm program bir sınıf tanımı içine yerleştirilir. class MerhabaDunyaProg { …. } • Java kaynak kodu “.java” uzantısı ile saklanır. • MerhabaDunyaProg.java

  37. Java Programı • Bir java programını derlemek için; • javac MerhabaDunyaProg.java • Java programı derleyiciden hatasız geçerse aşağıdaki dosya oluşur. • MerhabaDunyaProg.class • Derlenen Java programını koşturmak için; • java MerhabaDunyaProg • <Konsol çıktısı:> Merhaba Dünya!

More Related