7 Ekim 2016 Cuma

C Programlama Dilinin Tarihçesi


C programlama dili, geniş amaçlı, orta seviyeli, yapısal bir programlama dilidir.
C, temelde iki eski dile dayanır : BCPL ve B.
BCPL, 1967 yılında Martin Richards tarafından işletim sistemleri ve derleyiciler yazmak için geliştirilmiştir.
C programlama dili 1972 yılında Bell Laboratuvarlarında Dennis Ritchie tarafından geliştirilmiştir.
C programlama dili, UNIX işletim sisteminin kodlama ve geliştirilmesinde kullanılarak popülerliğini arttırmıştır.
1970'lerin sonunda C, şu anda geleneksel C olarak bilinen haline geldi. 1978 yılında Kernighan ve Ritchie tarafından yazılan, «The C Programming Language» adlı kitabın yayınlanmasından sonra, C'ye olan ilgi artmıştır.
ANSI C, C programlama dilinin, 1989 yılında Amerika'da «American National Standards Institute (ANSI)» ve tüm dünyada «Internationals Standards Organization (ISO)» tarafından standart hale getirilmiş sürümüdür.
ANSI C standardı, 1989 yılında onaylanmış, 1999 yılında gözden geçirilmiş ve Mart 2000'de C99: ISO/IEC 9899:1999 standardı Standart C olarak kabul edilmiştir

4 Ekim 2016 Salı

Yazılımı kullanacak müşterinin ihtiyaçları nasıl belirlenir?

  • Planlama oyunu toplantıları.
  • Anket ile bilgi toplama.
  • Yazılımının bir önceki sürüme bakılır.
  • Benzer yazılımları inceleme.
  • Prototip çıkarma
  • Başka?
  • Sanırım böyle olmalı (tahmin)? (Tahminlerden uzak durulmalıdır.)


Müşteriden elde edilen bilgiler bizim için bir harita niteliği taşıyacaktır!

Testin yazılım yaşam çevrimi içerisindeki yeri nedir?

Yazılım testti; yazılım geliştirmenin her aşamada ayrıca ele alınmalıdır. Sadece kodlamadan sonraki test kısmında değil.

Yazılım işi için harcanması gereken efor nelerdir?

1.Proje başlangıç çalışmaları
2.Gereksinimleri belirle ve Gereksinim dökümanını oluştur.
(Planlama oyunu,benzer sistemleri inceleme,vb teknikleri kullan)
3.Şartnameyi oluştur.
4.Görevlendirme
5.Yazılım testlerini ve test planları
6.Tasarım dokmanlarını oluştur.
(Donanım ve yazılıma ait çalışma ortamı için arayüzleri oluştur.)
7.Kaynak kodu
(Yazılım mimarisi,Programlama)
8.Bakım safası
... Başka neler olabilir?

Yazılımı Test Eden Kişinin Amacı Nedir?


  • Hataları bulmak.
  • Yazılımın gelişimine mümkün olan en büyük katkıyı sağlamak.
  • Hatanın giderildiğinden emin olmak.

Hatasız yazılım üretilebilir mi?

Yazılımların sahip oldukları özelliklerin artması. İsterlerin farklılaşması hatasız yazılımların üretilmesini neredeyse imkansız hale getirmiştir!!!

Teknik bariyerleri kaldıracak imkanı ve zaman sorununu giderebilmek mümkün olsa o zaman
hatasız yazılımlar üretilebilir.
(Sonsuz işlemci gücüne sahip bir bilgisayar & Sonsuz zaman)

Yazılım Hatalarının bulunduğu noktaya göre maliyeti

Erken safhalarda bulunan bir yazılım hatasının birim maliyeti daha az olacaktır.

İsterler                         1$
Tasarım                     10$
Kodlama                 100$
Kullanım              1000$

Yazılımda hata hangi safhalarda daha çok meydana gelir?

Yazılım geliştirilmesi sırasında karşılaşılan hataların çoğu, yazılımların gereksinimlerini yanlış belirlenmesindendir. Aşağıda istatiksel olarak yazılım hatalarının yaşam döngüsü içerisindeki oranları verilmiştir.

1.Tanımlama (~= 55?%)
2.Design (~= 25?%)
3.Code (~= 15%)
4.Other (~= 5%)

Algoritmada Kullanılan Terimler


Tanımlayıcı: Programcı tarafından oluşturulur. Programdaki değişkenleri, sabitleri, kayıt alanlarını, özel bilgi tiplerini vb. adlandırmak için kullanılan kelimelerdir. Tanımlayıcılar, yerini tuttukları ifadelere çağrışım yapacak şekilde seçilmelidir.

  1. İngiliz alfabesindeki A-Z veya a-z arasındaki 26 harf ile 0-9 arası rakamlar kullanılabilir. 
  2. Sembollerden sadece alt çizgi (_) kullanılabilir. 
  3. Tanımlayıcı isimleri harfle veya alt çizgiyle başlayabilir. 
  4. Tanımlayıcı ismi, rakamla başlayamaz veya sadece rakamlardan oluşamaz.

Değişken: Programın her çalıştırılmasında, farklı değerler alan bilgi/bellek alanlarıdır. Değişken isimlendirilmeleri, tanımlayıcı kurallarına uygun biçimde yapılmalıdır. Aşağıda çeşitli örnekler verilmiştir.

Dikdörtgenin uzun kenarının aktarıldığı değişken:
  • uzun_kenar,
  • UzunKenar,
  • uzunKenar
Bir öğrenciye ait ismin aktarıldığı değişken:
  • isim,
  • ogrenci_isim,
  • ogrenciIsim


Atama:Değişkenlere değer aktarma işlemidir. Değişkenlere atanan bu değerler daha sonra tekrar kullanılabilirler. Sağdaki Değer sonucu Değişken’e aktarılır. Bu durumda Değişken’in bir önceki değeri varsa silinir.

Sayaç: Bazı işlemlerin belirli sayıda yaptırılması ve üretilen değerlerin sayılması gerekebilir.
Bu tür sayma işlemlerine algoritmada Sayaç adı veriler.Sayaçlar da birer değişkendir.

Sayac=Sayac+1 Bu işlemde Sayac değişkenine 1 eklenmekte ve oluşan sonuç yine kendisine yani Sayac değişkenine aktarılmaktadır.


Döngü: Bir çok programda bazı işlemler, belirli ardışık değerlerle gerçekleştirilmekte veya belirli sayıda yaptırılmaktadır.
Programlardaki belirli işlem bloklarını, verilen sayıda gerçekleştiren işlem akış çevrimlerine “döngü” denir.
Örneğin; 1 ile 1000 arasındaki tek sayıların toplamını hesaplayan programda T=1+3+5 …. yerine 1 ile 1000 arasında ikişer artan bir döngü kurulur ve döngü değişkeni ardışık toplanır.