18 Mart 2019 Pazartesi

Programlamaya Giriş ve Algoritmalar Ders Notları - 2


Yazılım Geliştirme
Yazılım Geliştirilirken Bir Programcı ve Yazılım Gurubunun takip edeceği adımlar şu şekildedir.


Bu çizgeden anlaşılacağı gibi adımlardan birinde bir sorunla karşılaşılırsa bu sorunu çözebilmek için bir önceki adıma geri dönmek gerekecektir. Bu geri dönüş bazen bir kaç adım olabilir.


Sistem Analizi : Sorunun çözülebilmesi için tamamen anlaşılmasını sağlayan çalışmalardır.
Tasarım : İsteklerle ilgili olarak belirlenen bir takım çözümlerin tanımlanmasıdır.
Programlama Stili : Her yiğidin yoğurt yiyişi farklıdır. Aynı şekilde her programcı programındaki mantığı farklı kurar bu her programcının kendine özgün bir stili var anlamına gelir. Ancak bunun yanında Her programcının programın sağlığı bakımından dikkat etmesi gereken şeyler vardır. Örneğin kodlar açık olmalıdır. Kullanılan değişkenler kullanıldıkları amacı anlatır tarzda isimlendirilmelidir. Program içi dokümantasyona mutlaka önem verilmelidir.
Algoritma : Çözümün adımlarla ifade edilmesidir. 
Akış Çizgesi : Algoritmanın şekillerle ifade edilmesidir.
Programlama Dili Seçimi : Çözümün netleşmesinden sonra yapılacak işlemleri kolay bir şekilde bilgisayar ortamına aktaracak dilin seçilmesidir. Önemli olan bu dilin özelliklerinin programcı tarafından iyi bilinmesidir.
Programın Yazılması : Seçilen Programlama dilinin kuralları kullanılarak program yazılmaya başlanır. bu amaçla çoğunlukla sade bir metin editörü kullanılır. Bazı durumlarda Syntax highlighting denilen bir özelliğe sahip olan daha akıllı editörler de kullanılabilir. Bazen de editör ile Programlama dilinin derleyicisinin, bağlayıcısının hatta hata ayıklayıcısının iç içe bulunduğu IDE (Integrated Development Environment) denilen türde derleyiciler kullanılır.
Derleme : Programlama Dili ile yazılmış programın yazım hatalarının olup olmadığının kontrol edilmesini ve ara kod olarak Obje kodun üretilmesini sağlama adımıdır.
Bağlama : Derlenmiş ara kod diğer kütüphane ve parça programlarla birleştirilerek Makine dilinde programın oluşturulması adımıdır. Ancak bazı IDE ortamlarda ve derleyicilerde Derleme ve Bağlama bir bütündür ve beraberce halledilirler. Programcının ayrıca bir bağlama işlemi yapması gerekmez işlemi yapması gerekmez.
Çalıştırma : Oluşturulan Makine dili Programının çalıştırılması adımıdır. Yukarıdaki adımların hepsi yolunda gittiyse program sorunsuz olarak çalışabilmelidir.
Test : Programın Mantıksal olarak test edilmesini sağlar ve içerik olarak her ihtimal için doğru sonuçlar üretip üretmediğini kontrol etmenizi sağlar. 

Yaşam Döngüsünün Sağlanması : Yukarıdaki Akış Çizgesi dikkat edilirse aslında bir döngüdür. Hatta test aşamasında sorun çıkmazsa bile Sorunun tanımında yani ihtiyaçlarda bazı değişiklikler olursa adımlar baştan aşağı tekrar incelenmek zorunda kalınır. Bu çizgeye bir Yazılımımın Yaşam Döngüsü de denilebilir. Bu çizimde Yazılımın Bakım süreci göz önüne alınmamıştır. 


Hata Yakalama ve Ayıklama 

Bir Programın bilgisayar başında geçen geliştirme süreci yukarıdaki gibidir. Bu çizimde kırmızı-turuncu renkle gösterilen kısımlar hata durumlarını göstermektedir.

Syntax Error : Yazılan programda programlama dili kurallarına aykırı bir takım ifadelerden dolayı karşılaşılabilecek hatalardır. Düzeltilmesi son derece basit hatalardır. Hatanın bulunduğu satır derleyici tarafından rapor edilir. Hatta bazı derleyiciler hatanın ne olduğunu ve nasıl düzeltilmesi gerektiğini dahi bildirebilirler. Bazen Syntax Error tipi hataları Bağlama zamanında da ortaya çıkabilir.
Eğer bir derlemede Syntax Error alındı ise obje kod üretilememiştir demektir.
Soru: Bir Derleyici hatanın nasıl düzeltileceğini bildirebildiğine göre kendisi niçin düzeltmemektedir?
Run-time Error : Programın çalıştırılması sırasında karşılaşılan hatalardır. Programcının ele almadığı bir takım aykırı durumlar ortaya çıktığında programın işletim sistemi tarafından kesilmesi ile ortaya çıkar. Bu tip hatalarda hata mesajı çoğunlukla çalışan işletim sisteminin dili ile verilir. Eğer bu tip hataları kullanıcı ele almışsa, program programcının vereceği mesajlarla ve uygun şekilde sonlandırılabilir.
Bu tip hataların nerelerde ve hangi şartlarda ortaya çıkabileceğini bazen kestirmek zor olabilir. Çoğunlukla işletim sistemi ve donanım kaynakları ile ilgili sorunlarda bu tip hatalar ortaya çıkar demiştik. Örneğin olamayan bir dosya açmaya çalışmak, var olan bir dosyanın üzerine yazmaya çalışmak, olmayan bir bellek kaynağından bellek ayırtmaya çalışmak, olmayan bir donanıma ulaşmaya çalışmak vs. vs. vs.
Logical Error : Karşılaşabileceğiniz en tehlikeli hatadır. Programlama mantığında bir takım şeylerin yanlış düşünülmesinden kaynaklanır. Hata test aşamasında ortaya çıkar. Hesaplanması gereken veya bulunması gereken değerlerin eksik veya yanlış hesaplanması ile tespit edilir. Bu sorunun giderilebilmesi için Tasarım hatta çözümleme aşamasına geri dönülmesi gerekebilir. Bazen bu hatanın nereden kaynaklandığını bulabilmek çok zor olmaktadır.

Bug : Logical Error diyebileceğimiz Mantıksal hatalara verilen adlar bug yani böcek diye de tanımlanmış olabilir. Bu tip hatalar eğer çok net değil ve zamanla ortaya çıkabiliyor ise veya nedeni çok net olarak anlaşılamamışsa bug diye adlandırılır. Gerek serbest yazılım gerek ticari yazılımların tümünde bug dediğimiz mantıksal hatalar bulunur. Çünkü hatasız program yazabilmek çok zordur. İlk seferde yazılan bir programın tamamen hatasız olmasını beklemek son derece hatalıdır. Günümüzde en meşhur yazılım firmaları bile yazılımlarında bug olduğunu kabul eder ve zaman zaman bu bugları giderebilmek için ya yazılımlarına yama yazılımı üretirler yada o yazılımın yeni bir versiyonunu piyasaya sürerler.
Debug : Mantıksal hataları giderebilmek ve yazılımdaki bug'ları bulabilmek için yapılan işlemin adıdır. Genellikle yazılan programın adım adım ve denetim altında çalıştırılmasıdır. Programın her adımında ilgili değişkenlerin hangi değere sahip olduğunu görmeyi sağlar. ve anormal bir durumu daha kolay izleyip bulmanızı sağlar. Bu işlemi gerçekleştirebilmek için bazı IDE ortamlarında debugger dediğimiz yardımcı komut veya yaz 

Hiç yorum yok:

Yorum Gönderme