Bölüm 13 Programlama Dilleri ve Program Geliştirme Bilgisayarların Discovering Keşfi 2010 Computers 2010 Living in a Digital World Dijital Dünyada Yaşamak Hedefler Makine dili ve assembly dili arasındaki farkları belirtmek. Yöntemsel programlama dillerinin amaçların üzerinde tartışmak ve C ve COBOL dillerinin özelliklerini açıklamak. Diğer programlama dili ve programlama araçlarının kullanımın yerlerini öğrenmek. Nesneye yönelik programlama dilleri ve program geliştirme araçlarının karakteristiklerini tanımlamak. Web sayfası geliştirmenin çeşitli yollarını açıklamak. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 2 Hedefler Popüler multimedia yazarlığı programlarının kullanımını tanımlamak. Program geliştirme yaşam döngüsündeki altı adımı listelemek. Yapısal tasarım ve nesneye yönelik tasarım arasındaki farkları belirtmek. Programlama problemleri için çözümlerin tasarlanmasında kullanılan temel kontrol yapıları ve tasarım araçlarını açıklamak. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 3 Bilgisayar Programları ve Programlama Dilleri • Bilgisayar programı, bir bilgisayarı görevleri yerine getirmesi için yönlendirilen talimatlar serisidir. – Programcı tarafından bir programlama dili kullanılarak oluşturulur. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 4 Alt Düzey Diller • Makine dili, programlama dillerinin birinci kuşağıdır. • Bilgisayarın doğrudan tanıdığı tek dildir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 5 Alt Düzey Diller • Assembly dili, programlama dillerinin ikinci kuşağıdır. • Programcı sembolik komut kodlarını kullanarak komutları yazar. • Kaynak program makine diline dönüştürülecek olan kodu içerir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 6 Yöntemsel Diller • Bir yöntemsel dilde, programcı bilgisayara ne yapacağını ve bunu nasıl yapacağını söyleyen komutlar yazar. – Üçüncü kuşak dil (3GL) Bir derleyici çalıştırmadan önce tüm programı çevirir. Yorumlayıcı, bir anda tek bir kod komutunu dönüştürür ve yürütür. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 7 Yöntemsel Diller Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 8 Yöntemsel Diller • COBOL (COmmon Business-Oriented Language İşe Yönelik Ortak Dil), ticari uygulamalar için tasarlanır ve İngilizce benzeri ifadelerden dolayı kolayca okunabilir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 9 Nesneye Yönelik Programlama Dilleri ve Program Geliştirme Araçları • Nesneye yönelik programlama (OOP) dili, programcıların mevcut nesneleri yeniden kullanmasına ve değiştirmelerine izin verir. • Diğer avantajları: Nesneler yeniden kullanılabilir. Programcılar, uygulamaları daha hızlı oluştururlar. Bir RAD ortamında düzgün çalışır. Çoğu program geliştirme aracı IDE’dir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 10 Nesneye Yönelik Programlama Dilleri ve Program Geliştirme Araçları • Java, Sun Microsystems tarafından geliştirilen bir nesneye yönelik programlama dilidir. • Just-in-time (JIT) derleyicisi byte kodunu bilgisayar tipine bağlı koda dönüştürür. Click to view Web Link, click Chapter 13, Click Web Link from left navigation, then click Java Platforms below Chapter 13 Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 11 Nesneye Yönelik Programlama Dilleri ve Program Geliştirme Araçları • Microsoft .NET Framework neredeyse her program tipinin internette veya bir dahili iş ağında, bilgisayarlarda ve mobil aygıtlarda çalışmasını sağlar. • Özellikleri: CLR (Ortak Dil Çalışma Zamanı) Sınıflar Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 12 Nesneye Yönelik Programlama Dilleri ve Program Geliştirme Araçları • C++, C programlama dilinin gelişmiş bir versiyonudur. – Nesneler, sınıflar, olaylar ve diğer nesneye yönelik konseptler ile çalışabilmek gibi ek özelliklere sahiptir. • C#, C++ baz alınarak Microsoft tarafından geliştirilmiştir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 13 Nesneye Yönelik Programlama Dilleri ve Program Geliştirme Araçları Visual Studio, Microsoft’un program geliştirme araçları paketidir. Visual Basic, BASIC programlama dilini temel alır. Visual C++, C++’yı baz alır. Visual C#, C++ programlama elemanlarını daha kolay, hızlı geliştirme ortamı ile birleştirir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 14 Nesneye Yönelik Programlama Dilleri ve Program Geliştirme Araçları Click to view Web Link, click Chapter 13, Click Web Link from left navigation, then click Visual Studio Tools for Office below Chapter 13 Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 15 Nesneye Yönelik Programlama Dilleri ve Program Geliştirme Araçları Görsel programlama dili, tüm kaynak kodlarını oluşturmak için görsel veya grafiksel bir arayüz kullanan dildir. Borland’ın Delphi’si büyük ölçekli kuruluşlar veya bir RAD ortamında Web uygulamalarını oluşturmak için ideal olan güçlü bir program geliştirme aracıdır. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 16 Nesneye Yönelik Programlama Dilleri ve Program Geliştirme Araçları Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 17 Nesneye Yönelik Programlama Dilleri ve Program Geliştirme Araçları • PowerBuilder, güçlü bir program geliştirme RAD aracıdır. • Web tabanlı, .NET ve büyük ölçekli kuruluş nesneye yönelik uygulamaları için en uygunudur. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 18 Diğer Programlama Dilleri ve Program Geliştirme Araçları • 4GL (Dördüncü kuşak dil), yöntemsel olmayan bir dildir. Kullanıcıların ve programcıların veritabanındaki bir veriye ulaşmalarını sağlar. – SQL popüler bir 4GL dir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 19 Diğer Programlama Dilleri ve Program Geliştirme Araçları • Klasik programlama dilleri: Ada ALGOL APL BASIC Forth FORTRAN HyperTalk LISP Logo Modula-2 Pascal PILOT PL/1 Prolog RPG Smalltalk Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 20 Diğer Programlama Dilleri ve Program Geliştirme Araçları • Uygulama oluşturucu, istenilen işlevselliğe ait belirtimiden, kaynak kodu veya makine kodu oluşturan bir programdır. – Genellikle bir DBMS parçası olarak yazılımla birlikte gelir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 21 Diğer Programlama Dilleri ve Program Geliştirme Araçları • Makro, bir uygulamanın görevi nasıl tamamlayacağını belirten komutlar serisidir. • Makroyu genellikle iki şekilde oluşturursunuz: – Bir makro kaydedici ile makroyu kaydedebilirsiniz. – Makroyu kendiniz yazabilirsiniz. Click to view Web Link, click Chapter 13, Click Web Link from left navigation, then click Macros below Chapter 13 Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 22 Diğer Programlama Dilleri ve Program Geliştirme Araçları Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 23 Web Sayfası Geliştirme • HTML, programcının belgeleri Web üzerinde görüntülenecek şekilde biçimlendirmek için kullandığı özel bir biçimlendirme dilidir. • XHTML, Web sitelerinin mobil aygıtlarda daha kolay görüntülenmesine izin veren bir biçimlendirme dilidir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 24 Web Sayfası Geliştirme • XML, Web geliştiricilerin özelleştirilmiş etiketler oluşturmasına ve bunları çeşitli aygıtlarda içeriği uygun şekilde görüntülemelerine izin verir. – WML, XML’in bir alt kümesidir ve mikro tarayıcılara yönelik sayfaları tasarlamak için kullanılır. • RSS 2.0 ve ATOM XML’in iki uygulamasıdır. Click to view Web Link, click Chapter 13, Click Web Link from left navigation, then click XML below Chapter 13 Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 25 Web Sayfası Geliştirme Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 26 Web Sayfası Geliştirme • Web tarayıcılar, küçük programları çalıştırarak, Web sayfalarına eklenen etkileşimli elemanları gösterebilir. • Bu programlar bilgisayarınız ve bir Web sunucusu arasında bilgi alışverişi yapmak için CGI (ortak geçit arayüzü) kullanır. Scriptler Küçük uygulamalar Servletler ActiveX kontrolleri Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 27 Web Sayfası Geliştirme Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 28 Web Sayfası Geliştirme • Programcılar scriptleri, küçük uygulamaları, servletleri veya ActiveX kontrollerini çeşitli dilleri kullanarak yazarlar. JavaScript Perl PHP Rexx Tcl VBScript Click to view Web Link, click Chapter 13, Click Web Link from left navigation, then click PHP below Chapter 13 Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 29 Web Sayfası Geliştirme Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 30 Web Sayfası Geliştirme Dinamik HTML (DHTML), Web geliştiricilerin daha fazla grafiksel öğe ve etkileşim içermelerini sağlar. • Basamaklı stil sayfaları (CSS) belirli bir nesnenin görüntülenmesi için biçimleri içerir. Ruby on Rails (RoR), nesneye yönelik, veritabanı güdümlü Web sitelerini geliştirmek için teknolojiler sağlar. Click to view Web Link, click Chapter 13, Click Web Link from left navigation, then click Cascading Style Sheets below Chapter 13 Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 31 Web Sayfası Geliştirme • Web 2.0, Web sitelerinin kullanıcılar için aşağıdaki hizmetleri gerçekleştirmelerini sağlar: Kişisel bilgi paylaşımı Kullanıcıların Web sitesi içeriğini değiştirebilmelerine izin verme Sitede eklenmiş uygulama yazılımına sahip olmak Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 32 Web Sayfası Geliştirme • Çoğu Web 2.0 siteleri API’leri kullanır. – API, programcıların bir Web sitesi veya işletim sistemi gibi ortamlar ile etkileşimde olmasını sağlar. Click to view Web Link, click Chapter 13, Click Web Link from left navigation, then click APIs below Chapter 13 Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 33 Web Sayfası Geliştirme • Web sayfası yazarlığı yazılımı, görüntü, video, ses, animasyon ve diğer efektlerin yer aldığı gelişmiş Web sayfaları oluşturabilir. Dreamweaver Expression Web Flash SharePoint Designer Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 34 Multimedia Program Geliştirme • Multimedia yazarlık yazılımı, programcıların etkileşimli bir sunumda metin, grafik, animasyon, ses ve videoyu birleştirmelerine izin verir. ToolBook Director Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 35 Multimedia Program Geliştirme Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 36 Program Geliştirme • Program geliştirme, programcının bilgisayar programlarını oluşturmak için kullandığı adımlar serisidir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 37 Adım 1 –Gereksinimleri Analiz Eder • Program geliştirmeyi sürecini başlatmak için, programcı: – İhtiyaçları belirler – Sistem uzmanı ve kullanıcılar ile görüşür – Girdi, işlem ve çıktıyı tanımlar. • IPO tablosu Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 38 Adım 2 –Çözümü Tasarlar • Bir çözüm algoritması tasarlar. • Yapısal tasarımda, programcı genellikle bir genel tasarım ile başlar ve daha ayrıntılı tasarıma doğru ilerler. • Programcılar, program modüllerini grafiksel olarak göstermek için bir hiyerarşi tablosu kullanırlar. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 39 Adım 2 – Çözümü Tasarlar Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 40 Adım 2 – Çözümü Tasarlar • Nesneye yönelik (OO) tasarımda, programcı veriyi ve programı tek bir nesnede paketler. – Kuşatma Click to view Web Link, click Chapter 13, Click Web Link from left navigation, then click Object-Oriented Design below Chapter 13 Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 41 Adım 2 – Çözümü Tasarlar • Sıralı kontrol yapısı birbirini izleyen bir veya daha fazla eylemi gösterir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 42 Adım 2 – Çözümü Tasarlar • Seçim kontrol yapısı, programın belirli bir koşula bağlı olarak hangi eylemi seçeceğini söyler. – Eğer-ise-değilse – Durum Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 43 Adım 2 – Çözümü Tasarlar Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 44 Adım 2 – Çözümü Tasarlar • Tekrarlı kontrol yapısı bir programcının belirli koşul karşılandığında bir veya daha fazla eylemi tekrarlayarak gerçekleştirmesine izin verir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 45 Adım 2 – Çözümü Tasarlar • Bir programın akış diyagramı, çözüm algoritmasındaki mantığı grafiksel olarak gösterir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 46 Adım 2 – Çözümü Tasarlar • Akış diyagramı yazılımı akış diyagramlarının oluşturulmasını, değiştirilmesi ve güncellenmesini kolaylaştırır. – SmartDraw – Visio Click to view Web Link, click Chapter 13, Click Web Link from left navigation, then click Flowcharting Software below Chapter 13 Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 47 Adım 2 – Çözümü Tasarlar • Yalancı kod, program mantığını göstermek amacıyla, yapılacak işlemlerin İngilizce olarak kısaltılmış şekilde yazılmasıdır. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 48 Adım 2 – Çözümü Tasarlar • UML (Birleşik Modelleme Dili) nesne modelleme ve geliştirme için standart bir gösterim olarak kabul edilir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 49 Adım 3 – Tasarımı Doğrular • Test verisini kullanarak mantık hatalarını kontrol eder. Çeşitli durumlarda ortaya çıkabilecek test verileri oluşturulur Beklenen sonuçlar belirlenir Algoritma çalıştırılır Sonuçlar karşılaştırılır Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 Test verisinin her seti için adımları tekrarlanır 50 Adım 4 – Tasarımı Uygulamaya Koyar • Tasarımın uygulamaya konulması, aşağıdaki hususlarda programcıya yardımcı olan bir program geliştirme aracının kullanılmasını içerir: – Bazı kodların veya tümünün oluşturulması veya sağlanması – Tasarımı bir bilgisayar programına dönüştüren kodun yazılması – Kullanıcı arayüzü oluşturulması • Uç programlama, programcıların gereksinimler belirlendikten hemen sonra çözümleri kodlamaya ve test etmeye başladıkları bir stratejidir. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 51 Adım 5 – Çözümü Test Eder Programı test etmenin amacı, doğru ve hatasız şekilde çalıştığından emin olmaktır. • Karşılaşılacak hatalar sözdizim(yazım) hataları ve mantık hatalarıdır • Programda hataların ayıklanması ile hatalar giderilir. • Beta, uygulamaya konulan özelliklerin ve işlevselliğin çoğuna veya tümüne sahip olan bir programdır. Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 52 Adım 6 – Çözümü Belgeler • Çözümün belgelenmesinde programcı iki aktiviteyi gerçekleştirir: Program kodunu inceler Tüm dokümantasyonu inceler Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 53 Video: Electronic Arts Artık Cepte BAŞLAMAK İÇİN TIKLAYIN Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 54 Yapısal Tasarım & Nesne Yönelimli Tasarım Yapısal Tasarım Programcı genellikle genel bir tasarım ile başlar ve daha ayrıntılı bir tasarıma doğru ilerler. Nesne Yönelimli Tasarım Programların okunması ve korunmasında güvenilir ve kolay sonuçlar doğurur. Discovering Computers 2010: Living in a Digital World Chapter 13 Programcı veriyi ve programı (veya prosedürü) tek bir birimde, bir nesnede paketler. Programcı, yöntemleri program komutlarına çevirir. 55 Temel Kontrol Yapıları ve Tasarım Araçları • Kontrol yapısı, program komutlarının mantıksal sırasını belirler. • Sıralı kontrol yapısı, birbirini takip eden bir veya daha fazla eylemi gösterir. • Seçim kontrol yapısı, programın belirli bir koşula göre hangi eylemi gerçekleştireceğini söyler. Discovering Computers 2010: Living in a Digital World Chapter 13 56 Seçim Kontrol Yapısı Seçim Kontrol Yapısı İf-then-else Durum Kontrol Discovering Computers 2010: Living in a Digital World Chapter 13 57 Özet Bilgisayar programlarını oluşturmada kullanılan çeşitli programlama dilleri Çeşitli Web geliştirme ve multimedia geliştirme araçları Program geliştirme yaşam döngüsündeki adımlar ve bu süreci daha etkili kılmak için kullanılan araçlar Bilgisayarların Keşfi 2010: Dijital Dünyada Yaşamak Bölüm 13 58 Bölüm 13 Programlama Dilleri ve Program Geliştirme Bilgisayarların Discovering Keşfi 2010 Computers 2010 Living in a Digital World Dijital Dünyada Yaşamak Chapter 13 Complete