Page 108 - Bilgisayar Bilimi | Kur 1
P. 108

1.1. Yazılım Geliştirme Süreci

               Bir bilgisayar programı, bilgisayar sistemindeki elektrik sinyallerinin akışını yöneten bir dizi yöner-
            gedir. Bu sinyaller bilgisayarın hafızasını etkileyerek ekran, klavye, fare ve hatta diğer bilgisayarlar ile
            etkileşim sağlar. Bu şekilde insanlar da karmaşık problemleri çözmek, oyun oynamak gibi değişik işlem-
            leri gerçekleştirebilir. Bir program hesap makinesi rolü üstlenirken bir diğeri makineyi satranç tahtasına
            dönüştürebilir. Buradaki iki örnek;
               •  alt düzeyde, elektrik sinyalleri somut biçimde bilgisayarın mevcut durumunu değiştirirken,

               •   üst düzeyde, soyut bir biçimde kullanıcıların eğlenme ya da işleri gereği farklı işlemleri gerçekleş-
                  tirmelerini sağlar.

               Günümüzde, kullanıcı ara yüzüne aktarılan üst düzey işlemler ile alt düzey işlemleri kontrol ede-
            bilmek son derece kolaylaşmıştır ve bu nedenle pek çok programcı bu dilleri kullanarak daha soyut bir
            biçimde kod yazmaktadır. Programlama seçenekleri programlamayı sürpriz bir biçimde basit hâle getir-
            miştir. Programlama kavramları, temelinde mantıksal ve matematiksel olarak sınıflanabilir. Bilgisayar
            programları bir bilgisayar kullanmadan da yazılabilirler. Programcılar, bir programın çalışabilirliğini ve
            doğruluğunu, gerçek yaşamda yeri olmayan soyut semboller kullanarak tartışabilirler. Bu yaklaşımlar
            çok değerli olmakla beraber, programcılar çoğu zaman makinelerden uzak kalamazlar. Yazılımlar, ger-
            çek bilgisayar sistemlerinde kullanılmak üzere yazılırlar. Yazılım mühendisleri belirli sistemler üzerinde
            çalışacak şekilde programları üretirler. Bu sistemler; donanım alt yapıları ve kullandıkları işletim sistemi
            ile tanımlanırlar. Yazılım geliştirenler; derleyici (compiler), hata ayıklayıcı (debugger) ve yanaylaç (profi-
            ler) gibi somut araçları kullanırlar.

            1.2. Yazılım

               Bilgisayar yazılımlarına örnek olarak bilgisayar programları verilebilir. Bir program, bir yazılım
            parçası olarak nitelendirilebilir. Yazılımlar daha soyut, programlar ise biraz daha somuttur. Yazı-
            lımlar CD, DVD, sabit disk, taşınabilir bellek gibi farklı araçlar üzerinde saklanabilir. Yazılımların
            kullanabilmesi için bilgisayarın hafızasında kayıtlı olması gerekir. Bilgisayar programları hafızaya
            belirtilen araçlardan yüklenirler. Bilgisayarın sabit diskine yüklenmiş olan program elektroman-
            yetik bir örüntü oluşturur. Bu elektronik sembollerden oluşan örüntünün, program çalışmadan
            önce hafızaya transfer edilmesi gerekir. Program bir CD ya da İnternet üzerinden yüklenebilir.
            Bu elektronik semboller ikilik sayı sistemini kullanan, sıfır ve bir değerlerinden oluşan bir dizidir.

               Örnek: Bir ikilik program şu şekilde görünür:
               10001011011000010001000001001110
               İşlemci olarak adlandırılan bilgisayar donanımı bu sinyalleri çözümleyerek yapılmak istenen işlemi
            (grafik ara birimine veri göndererek ekranın bir bölümünün mavi görünmesini sağlamak gibi) gerçek-
            leştirir.

            1.3. Yazılım Geliştirme Ortamları

               Yazılımlar, ikilik dizileri daha anlaşılabilir kılan kelime ve sembolleri kullanırlar. Böylece bilgisa-
            yarların dilini öğrenmek ve karmaşık problemleri çözen programlar yazmak kolaylaşır. Bu amaçla, ko-
            mutları üst düzey yazılımlardan alt düzey makine diline çevirebilen araçlar da kullanılabilir. Phyton
            gibi üst düzey diller, programcıların İngilizce konuşma diline çok yakın bir şekilde program kodlarını
            yazabilmelerine olanak sağlar. Geçtiğimiz yaklaşık 60 yıllık süreçten günümüze kadar FORTRAN,
            COBOL, Lisp, Haskell, C, Perl, C++, Java ve C# gibi pek çok üst düzey dil geliştirilmiştir. Bu tür prog-
            ramlama dilleri ile uygulama geliştiren programcılar, donanım ya da makine dili gibi konulardaki de-



                                                                                                     107
   103   104   105   106   107   108   109   110   111   112   113