Veri Akış Diyagramı (DFD), bir sistem içindeki bilgi akışlarının geleneksel bir görsel temsilidir. Düzgün ve net bir DFD, sistem gereksiniminin doğru miktarını grafiksel olarak gösterebilir. Manuel, otomatik veya her ikisinin birleşimi olabilir.
Verinin sisteme nasıl girip çıktığını, bilgiyi nelerin değiştirdiğini ve verinin nerede saklandığını gösterir.
DFD'nin amacı bir sistemin kapsamını ve sınırlarını bir bütün olarak göstermektir. Bir sistem analisti ile sistemin yeniden tasarlanması için başlangıç noktası görevi gören düzende rol oynayan herhangi bir kişi arasında bir iletişim aracı olarak kullanılabilir. DFD'ye veri akış grafiği veya kabarcık grafiği de denir.
DFD'lerle ilgili aşağıdaki gözlemler önemlidir:
- Tüm adlar benzersiz olmalıdır. Bu, DFD'deki öğelere başvurmayı kolaylaştırır.
- DFD'nin bir akış şeması olmadığını unutmayın. Oklar olayların sırasını temsil eden bir akış şemasıdır; DFD'deki oklar akan verileri temsil eder. Bir DFD herhangi bir olay sırası içermez.
- Mantıksal kararları bastırın. Eğer bir gün DFD'ye elmas şeklinde bir kutu çizme isteği duyarsak, bu dürtüyü bastırın! Akış şemalarında, yalnızca bir tanesinin alındığı birden fazla mevcut yola sahip karar noktalarını temsil etmek için elmas şeklindeki bir kutu kullanılır. Bu, DFD'de hiçbir anlam ifade etmeyen olayların sıralanmasını ima eder.
- Ayrıntılara takılıp kalmayın. Hata koşullarını ve hata yönetimini analizin sonuna kadar erteleyin.
DFD'lere yönelik standart semboller, elektrik devre şeması analizinden türetilmiştir ve Şekil 1'de gösterilmektedir:
Daire: Bir daire (balon), veri girişlerini veri çıkışlarına dönüştüren bir süreci gösterir.
program ve komut dosyası arasındaki fark
Veri akışı: Eğri bir çizgi, bir işleme veya veri deposuna giren veya çıkan veri akışını gösterir.
Bilgi deposu: Bir dizi paralel çizgi, veri öğelerinin toplanması için bir yer gösterir. Bir veri deposu, verilerin daha sonraki bir aşamada veya diğer işlemler tarafından farklı bir sırada kullanılabilecek şekilde saklandığını gösterir. Veri deposu bir öğeye veya öğe grubuna sahip olabilir.
Kaynak veya Havuz: Kaynak veya Havuz, harici bir varlıktır ve sistem girdilerinin kaynağı veya sistem çıktılarının havuzu olarak görev yapar.
Veri Akış Diyagramlarındaki Seviyeler (DFD)
DFD, herhangi bir soyutlama düzeyinde bir sistem veya yazılımı gerçekleştirmek için kullanılabilir. Aslında DFD'ler, artan bilgi akışını ve işlevsel ayrıntıları temsil eden düzeylere bölünebilir. DFD'deki seviyeler 0, 1, 2 veya ötesinde numaralandırılır. Burada veri akış şemasında öncelikle üç seviye göreceğiz: 0 seviyeli DFD, 1 seviyeli DFD ve 2 seviyeli DFD.
0 seviyeli DFDM
Aynı zamanda temel sistem modeli olarak da bilinir veya bağlam diyagramı, tüm yazılım gereksinimini, gelen ve giden oklarla gösterilen giriş ve çıkış verileriyle tek bir baloncuk olarak temsil eder. Daha sonra sistem ayrıştırılır ve çok kabarcıklı bir DFD olarak tanımlanır. Bu kabarcıkların her biri tarafından temsil edilen sistem parçaları daha sonra ayrıştırılır ve giderek daha ayrıntılı DFD'ler olarak belgelenir. Bu süreç, eldeki program iyice anlaşılıncaya kadar gerektiği kadar çok düzeyde tekrarlanabilir. Seviyeler arasında giriş ve çıkış sayısının korunması esastır, bu kavrama DeMacro tarafından seviyelendirme adı verilmektedir. Dolayısıyla, 'A' balonunun iki girişi x varsa1ve x2ve bir çıkış y, ardından 'A'yı temsil eden genişletilmiş DFD, Şekil'de gösterildiği gibi tam olarak iki harici girişe ve bir harici çıkışa sahip olmalıdır:
Sonuç yönetim sisteminin bağlam diyagramı olarak da adlandırılan Seviye-0 DFD, şekil 2'de gösterilmektedir. Baloncuklar giderek daha az soyut baloncuklara ayrıştırıldıkça, karşılık gelen veri akışının da ayrıştırılması gerekebilir.
1 seviyeli DFD
1 seviyeli DFD'de bir bağlam diyagramı birden fazla baloncuğa/sürece ayrıştırılır. Bu seviyede sistemin ana hedeflerini vurguluyor ve 0 seviyeli DFD'nin üst seviye sürecini alt süreçlere ayırıyoruz.
2 Seviyeli DFD
2 seviyeli DFD, 1 seviyeli DFD'nin parçalarına doğru bir süreç daha derine iner. Sistemin işleyişine ilişkin belirli/gerekli ayrıntıları projelendirmek veya kaydetmek için kullanılabilir.