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.
- Programı anlama
- Tasarım oluşturulması
- 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.