1.2. PROGRAMLAMA NEDİR?
Bilgisayarların isteğe uygun özel işlemler yapması
için programlanması gerekir. Örneğin, bir şirkette kullanılan stok uygulaması,
sipariş uygulaması yada değişik iş takipleri, hastane otomasyonları yada eğitim
kurumlarının kullandığı öğrenci otomasyonları gibi. Programlamaya çok fazla
örnek vermek mümkündür.
Program : Günlük
hayattaki bir sorunu bilgisayarla çözmek, rutin işlemleri kolaylaştırmak için
bilgisayarların isteğe uygun olarak özel bir takım işlemleri gerçekleştirmesi
için programlanması gerekmektedir. İşte yazılan bu yazılımlar ile ortaya çıkan
ürün bir programdır. Bilgisayar oyunu, muhasebe işlem programları ve ticari
şirketlerde kullanılan paket programlar birer programdır.
Programlama Dili : Bilgisayarda
çözülecek bir sorun için çözümün bilgisayara adım adım yazılmasını sağlayan
biçimsel kuralları olan ve bu kurallara sıkı sıkıya bağımlılığı gerektiren bir
tanımlar kümesidir. Yani, programcı ile bilgisayar arasında bir tercüman
durumundadır.
1.3. PROGRAMLAMANIN TARİHİ
Oldukça eskiye dayanan programlamanın tarihine
baktığımızda fazla kodlanmış makine komutları bulunmamaktaydı. 1940 – 1950
yılları arasında fazla kodlanmış makine komutlarıyla yazılan programlar,
programcılar açısından oldukça zordu. Hızın düşük olması, bellek yetersizliği,
işlem sayısının az olması bilgisayarın kullanım alanını sınırlıyor ve işlemler
basit bir uygulamadan ileri gidemiyordu. Tabi bu durum mikroişlemciler ile
alakalı idi. Rekabet halinde olan firmalar işlemcilerin mimarilerini geliştirip
hızlarını arttırdıkça, işlemcilerin işleyebileceği komut sayıları artmış ve
komut setleri daha kullanışlı hale gelmiştir.
İlk programlar makine dili ile hazırlanıyordu.
Makine dili de bir programlama dilidir ama makine dili ile program yazmak çok
zahmetli bir iştir. Çünkü makine dilinde sıfırlar (0) ve birler (1) vardır.
Yani işlemlerde DOĞRU (1) yada YANLIŞ (0) durumlarına göre hareket
edilmektedir. Ayrıca, makine dili programları anlaşılması zor olan ve tamamıyla
donanıma hitap eden programlardır. Günümüze baktığımızda geliştirilen üst düzey
programlama dillerini kullanırken makine dilini bilmeye bile gerek yoktur.
Makine diline yakın Assembly programlama dilinde
mikroişlemcilerin anlayacağı assebly kodları kullanılır. Bu ham şeklinde
bulunan komutlar (MOV, ADD, PUSH gibi) mikroişlemcinin belli bir işlevi yerine
getirmesini sağlamaktadır. Bu komutlara mnemonic
adı verilir. Üst seviye programlama dillerinin geliştirilmesiyle programlar
daha anlaşılabilir komutlarla yazılmaya başlanmıştır (Print, Read, Display,
Circle, Get, vb). 1980’li yıllarda üst
seviye programlama dilleri yaygınlaşarak, programlar belli bir dilin yapısı
içinde tasarlanmış ve yazılmıştır.
1.4. PROGRAMLAMA TÜRLERİ
1.4.1 Yapısal Programlama
Programlama dilleriyle
ilgilenenler kod yazmaya genellikle küçük ve basit kodlar yazarak başlarlar. Bu
kodlar sadece bir “ana (main)” bloğundan oluşur. Bu blok içerisindeki komut ve
deyimler programın tümünde tanımlı olan “global” verileri kullanırlar.
program
|
Şekil
1.1 Yapısal olmayan programlama
Şekilde 1.1’de görüldüğü gibi yapısal olmayan programlama
tekniği kullanılarak yazılan kodlarda, ana program bloğu, global olarak
tanımlanmış veriler üzerinde işlem yürütür.
Bu programlama tekniği oldukça
büyük programlarda büyük dezavantajlara sahiptir. Örneğin aynı komut ve
deyimler bu teknikte yazılan kodlar içerisinde defalarca tekrarlanmak zorunda
kalabilir. Aynı zamanda bu teknikte yazılan kodların okunabilirliği ve
anlaşılabilirliği yazılan kod miktarı arttıkça zorlaşır. Dolayısıyla kod
yazarken hata yapma olasılığı fazladır ve hata ayıklama (debugging) işlemi oldukça zordur. Bu nedenle de doğal olarak
yazılan programın güvenirliği de düşük olacaktır.
Yapısal programa tekniğinde ise altprogramlar (procedures) ve fonksiyonlar (functions)
kullanılır. Böylece program akışının kontrolünde büyük kolaylıklar sağlanmış
olur.
ana program alt program

Şekil
1.2. Alt programların çağrılması
Şekil 1.2’deki program akışı esnasında, ana program
içerisinden altprogramlar çağırılıyor. Bu altprogram çalıştırıldıktan sonra,
program akışı tekrar geri dönecek ve programın işleyişi kaldığı noktadan devam
edecektir. Yapısal programlama tekniğinde kod içerisinde aynı altprogram
defalarca çağırılabilir. Böylece gereksiz kod tekrarıda ortadan kalkmış
olur.

1.4.2 Modüler Programlama
Modüler programlama tekniğinde belli altprogramlar
ayrı ayrı modüller içinde gruplandırılır. Her modül içerinde ana program içinde
tanımlı global değişkenler geçerlidir. Aynı zamanda her modül kendi verisine de
sahiptir.
program

1.4.3 Nesne Tabanlı Programlama
Nesne tabanlı programlama
(Object-Oriented Programming, OOP) dilleri 1980’li yıllarda C++ ile ortaya
çıkmıştır. Nesneye yönelik programlama, programcının kendi sınıfını ve
nesnesini oluşturup bunun üzerinde işlemler yapmasına olanak sağlar. Bu
programlama sisteminin zor olması nedeniyle, çok sayıdaki nesneler önceden
programcıya hazır bir şekilde sunulur. Günümüzdeki programcılar ise nesneye
yönelik olan ve Visual özellikler içeren sürümleri kullanmaktadır. Visual C++,
C++ Builder, Delphi, Java, Visual Basic vb. gibi örnekler sayılabilir.
Bu teknikte nesneler
birbirlerine mesaj göndererek etkileşim içinde bulunurlar. Nesne yönelimli
programlama tekniğinde açık bir biçimde altprogramları çağırmak yerine, direkt
olarak ilgili nesneye bir mesaj gönderilir. Nesne kendine gelen mesajı alır ve
öncelikle nesnenin bir örneğini (kopyasını) oluşturur. Bu kopya gerekli
işlemleri yaptıktan sonra kendini yok eder. Tüm bu işlemlerden nesnenin kendisi
sorumludur.
program

1.4.4. Olay Temelli Programlama
Bilgisayarda bir uygulamayı
kullanırken, ekran üzerinde bir nesnenin hareket ettirilmesi veya bir tuşa
basılarak düğmelerin seçilmesi işlemleri bir olaya dayanır. Olay temelli
programlama (Event – Driven Programmming, EDP) kullanıcıların yapacakları işlemlere
göre programın hareket etmesi temeline dayanır. Daha önceki programlarda ekrana
gelen menülerde daha çok klavyenin
fonksiyon ve yön tuşları aktif olarak kullanılıyordu. Olay temelli
programlamada farenin menüler ve pencereler üzerinde oldukça yaygın olarak
kullanılması sağlanmıştır. Bu şekilde işlemler daha basit, fonksiyonel ve daha
kullanışlıdır.
1.5.
PROGRAM GELİŞTİRME SÜRECİ
1.5.1. İyi Bir Programın Nitelikleri
Yazılan
bilgisayar programlarının basit bir işlevi yerine getirmesi ona iyi bir program
özelliği kazandırmaz. Yazılması düşünülen bir programın bir çok açıdan belli
niteliklere sahip olması gerekmektedir. Bu nitelikleri şu şekilde sıralamak
mümkündür.
• Estetik
olarak görselliği ön plana çıkmalıdır.
• Kullanıcı
açısından kullanımı kolay olmalıdır.
• İşlem
ve hesaplamaları doğru yapmalıdır.
• Hızlı
çalışmalıdır.
• Kolayca
değiştirilebilmeli ve güncellenebilmelidir.
• Fazla
kod yazılmadan etkin bir kodlamaya sahip olmalıdır.
• Yaygın
kullanılan işletim sistemlerinde çalışabilmelidir.
• Büyük
programlar için çoklu kullanıcı desteği olmalıdır.
•
Ticari yazılan programlar ise iyi belgelenerek,
lisanslı satılmalıdır.
1.5.2. Program Tasarlama
Bir yazılım geliştirirken takip
edilmesi gereken adımlar şunlardır:
1.
Gereksinimlerin
belirlenmesi : Problemin tanımı verilir.
2. Analiz
: Problemin çözümü için gerekli tüm girdi ve çıktılar analiz
edilmelidir.
3. Dizayn : Problemin çözümünde
kullanılacak uygun algoritmanın adım adım tanımlanması yapılmalıdır.
4. Akış Diyagramı: Algoritmaya göre uygun
akış diyagramı çizilmelidir.
5. Kod Yazımı : Algoritmanın herhangi bir
programlama dilinde yazılarak kaynak dosyanın hazırlanması gerekir.
6. Test : Bu basamakta ise yazılan
programın bölümleri ve tamamı çalışır halde test edilir.
7. Doğrulama : Programın örnek girdilerle doğru çıktı
ürettiği gözlenmelidir.
8. Bakım : Yazılan programda bulunan
hatalar ayıklanır veya gerekli güncellemeler yapılır.
9. Belgeleme : Yazılan program için belgeleme yapılarak,
toplu çoğaltmalara karşı engelleme konulur.
1.5.3. Arabirim Geliştirme ve Programın
Görünüşü
Nesne tabanlı programlama dillerine baktığımızda iyi
bir arabirim geliştirmek için bir çok nesnenin var olduğu görülmektedir. Araç
çubukları, durum çubukları, menüler, iletişim kutuları gibi uygulamalar
eklenebilir. Ayrıca, fare ve klavye işlemlerini eklemek için ayrıca ek bir
bölüm yazmaya gerek yoktur.
Program yazma ve arabirim geliştirme işlemi, iyi bir
programcılığın yanı sıra büyük bir sanatta gerektirir. “Program yapmak bir
sanattır” ifadesini kullanmak pek de yanlış olmayacaktır. Arabirim geliştirme
işleminde programın kullanılabilirliği, sadeliği, uyumluluğu ve grafik
değerleri dikkate alınarak hazırlanmalıdır. Özellikle nesne tabanlı programlama
türlerini kullanırken görsellik büyük ölçüde ön plana çıkmaktadır.
Renklendirme, yazı tiplerinin biçimleri, gölgeleme, parlaklık, menülerin resim
programlarıyla süslenmesi gibi konuları da dikkate almak gerekmektedir.
Hiç yorum yok:
Yorum Gönder