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 topdown 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.
gösterimi Şema-1: Top-down yazılım tasarımı için fonksiyonların dizaynının modellendiği örnek şema Ş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