Hiyerarşik Yazılım Tasarımı Kavramı
Yazılımda kodlamaya girmeden önce herkesin öğrenmesi gereken en önemli kavramlardan biriside yazılım dizaynında temel hiyerarşik modelleme kavramıdır. Yazılımı tasarlayan kişi verimli bir tasarım için, iyi bir tasarım metedolojisi kullanmalıdır.
Tasarım Metodolojileri
İki çeşit temel dizayn metodolojisi bulunmaktadır. Birincisi Yukardan-Aşağı (Top-Down) dizayn metodoloji ve Aşağıdan-yukarı (bottom-up) dizayn metodoloji. Bu metdolojilerin ana yaklaşımı yapılması istenen büyük işi daha küçük hiyerarşik alt dallara bölmektir. İleri seviye yazılım geliştirmenin ana prensipleri: yazılımın modüler, anlaşılır, erişilebilir ve grup çalışmalarına uygun olmasıdır. Bu prensipler ancak bu iki yöntem ile sağlanabilir.
Top-down metodolojisinde yazılacak programın ilk önce top modülü (fonksiyon/sınıf.. v.b.) belirlenir ve daha sonra top modülü oluşturan alt modüller (fonksiyon/sınıf.. v.b.) belirlenir. Daha sonra bu modülleri oluşturan alt modüllerde (sub-modules) belirlenir. Bu en küçük bölünemeyen hücreye kadar devam ettirilir. Aşağıdaki şema (1-2-3) top-down metodolojisini göstermektedir.
Bu dizayna göre ilk olarak yazılım şeması, her aşamada yapılacak işe veya kullanılacak fonksiyonun görevine veya yazılacak fonksiyonun adına veya tasarlanacak sınıfın adına v.b. göre çizilmelidir. Dizayn yapılırken yazılımda hangi bölümlerin olması gerektiği düşünülmeli ve bu bölümler hiyerarşik olarak kimin altında olması gerekiyorsa oraya eklenmelidir. Elbette yazılım ilerledikçe top- down dizayn şeması değişebilir, yeni modüller eklenebilir. Bu şemanın en üstünde main yapısı bulunacaktır. Main yapısı yazılımın ana hedefini belirler.
Yazılım şeması oluşturulduktan sonra Alt kollarda ise her aşamada yapılacak iş (fonksiyonun görevi, fonksiyonun adı, sınıfın adı… v.b.) yazılmalı ve her modül içerisindeki yazılım sahte kodlarla anlatılmalıdır. Şema-3 de verilen top-down dizaynın örnek sahte kodları alt bölümde verilmiştir.
Şema-1: Top-down yazılım tasarımı için fonksiyonların dizaynının modellendiği örnek şema gösterimi
Şema-2: Parti planlamayı alt dallara bölmek
Şema-3: Bir Yazılım top-down modelleme örneği
Bottom-up dizayn metodolojide önce elimizde olan en küçük yazılım modülleri (fonksiyon/sınıf.. v.b.) belirlenir. Bu modüller kullanılarak daha büyük modüller inşa edilir. Bu bloklar daha büyük yazılım bloklarını oluşturmak için kullanılır, ta ki top modül inşa edilene kadar. Aşağıdaki şema-4 bottom-up metodolojisini göstermektedir.
Şema-4: Down-up yazılım tasarımı modelleme gösterimi
ŞEMA-3 SAHTE KODLARI:
Main Level 0
Enter names and numbers into list Put list into alphabetical order Print list
Enter names and numbers into list Level 1 While ( more names)
Enter name
Enter telephone number Enter email address Insert information into list
Enter names and numbers into list (revised) Level 1 Set moreNames to true
While (moreNames)
Prompt for and enter name
Prompt for and enter telephone number Prompt for and enter email address Insert information into list
Write "Enter a 1 to continue or a 0 to stop."
Read response If (response = 0)
Set moreNames to false
Prompt for and enter name Level 2
Write "Enter last name; press return."
Read lastName
Write "Enter first name; press return."
Read firstName
Prompt for and enter telephone number Level 2 Write "Enter area code and 7-digit number; press return."
Read telephoneNumber
Prompt for and enter email address Level 2 Write "Enter email address; press return."
Read emailAddress
Print the list Level 1
Write "The list of names, telephone numbers, and email addresses follows:"
Get first item from the list While (more items)
Write item's firstName + " " + lastName Write item's telephoneNumber
Write item's emailAddress Write a blank line
Get next item from the list