3  program tasarım

3.1 Genel Bakış

Program tasarımı, kodlamaya başlamadan önce yapılması gereken adımlardan oluşur. Bu adımların doğru yapılması ve belgelenmesi, programın gelecekte daha kolay bir şekilde geliştirilmesini sağlayacaktır. Genel olarak, ders için yazdığımız programlarda bu adım ya atlanır yada çok kısa geçilir. Üç adım olarak düşünülür.

  1. Programı anlama
  2. Tasarım oluşturulması
  3. Test verilerinin oluşturulması

3.2 Programı Anlamak

Eğer bir ders programı değil daha büyük bir projede çalışıyorsanız, sistemi gereksinim analizinin (sistem gereksinimleri, yazılım gereksinimleri, analiz) yapılmış olmalıdır. Bir yazılımcının yukarıdaki adımları yapabiliyor olması değerli bir özelliktir. Bu gereksinimler ekran protipleri, yazılı çalışma adımları vb. olabilir. Özellikle ekran protipleri çok yararlıdır.

Eğer daha basit bir projede çalışıyorsanız veya bir ders programını yazıyorsanız. Programı anlama için aşağıdaki adımlar yeterli olacaktır.

  • Girişler
  • İşleme
  • çıktılar

Örneğin kullanıcıya adını sorma arkasından ekrana merhaba ad yazma için

  • girişler: Ad
  • işleme: ekrana yazma
  • çıktı: merhaba ad

olacaktır. Örneğin:

  • girişler: Atilla
  • işleme: ekrana yaz
  • çıktı: merhaba Atilla

Bu yaklaşım özellikle başlangıç programcıları için yararlıdır.

3.3 Tasarım oluşturulması

Derslerdeki gibi programlarınız için akış şemalarına ve sahte kodlara ihtiyacınız olmayacaktır. Ama yazılımlarınız büyüdükçe daha karmaşık yapılara, daha fazla fonksiyon veya mödüle ihtiyacınız olacaktır.

Benim açımdan yazdığım kodları hiç bir zaman sahte kod veya akış diagramı olarak düşünmedim. Genellikle yazmaya çalıştığım programlama dilinin temel yapılarından çok ilk öğrendiğim programlama dilleri olan basic ve assembler yapıları üzerinden düşündüm. Yani burada bir döngü, döngü içinde bir eğer (if) kontrolü olacak gibi.

Ama akış diagramı ve sahte kod dizimleri makale ve dokümantasyondan tercih edilir çünkü farklı programlama dillerinin ortak noktası gibidirler. Bir programlama dilini orta seviye üstünde öğrendikten sonra sahte kod veya akış diagramlarını anlamak son derece kolaydır.

Bu kitap içinde tasarım:

  • kontrol yapılarının kullanılması, eğer..
  • döngü yapılarının kullanılması
  • fonksion kullanımı

şeklinde düşünelebilir.

3.4 Test verilerinin oluşturulması

Test verisi programcının giriş değerlerinin vermesi ve sonuçların ne olacağını tahmin etmesidir. Her programcı yazdığı kodu test etmelidir. Basit programlar için bu bir kaç giriş değeri ile test etmekten ibaret olabilir. Daha karmaşık programlar için sınır değerleri ve karmaşık girişler ile test edilmesi yararlı olacaktır. Basit test için, bir çok programlama dilinde olan assert komutu bu aşama için yararlıdır. Daha iyi test için her programlama dilinde olan birim test kütüphaneleri (nunit,junit,pytest …) kullanılabilir.