Bir yazılım ürünü geliştirirken Agile ya da Waterfall metodolojileri (Şelale Yöntemi) kullanılır. Geliştirme metodolojisi, geliştiren mühendislik ekibinin belirli bir ürünü oluşturacağı süreçtir. Bu konuda Waterfall yazılım geliştirme yönteminden bahsedeceğim.

Aynı zamanda, Waterfall Model (Şelale Modeli) olarak da bilinen Waterfall Medhodology (Şelale Metodolojisi), bir projenin aşamaları (analiz, tasarım, geliştirme, test) boyunca istikrarlı bir şekilde sonuca doğru aktığı sıralı bir yazılım geliştirme sürecidir.

 

Waterfall Yazılım Geliştirme Yöntemi

 

Analiz: Ürün geliştirme ekibi gereksinimlerin analizini yapar ve sorunları tam olarak tespit eder. Ekip, ürün gereksinimi oluşturmak için ihtiyaç duydukları tüm soruları sormaya ve tüm yanıtları güvence altına almaya çalışır. Kısacası analiz aşaması kullanıcılar ile birlikte olma, servisleri tespit etme, kısıtlamalar ve amaçlar kapsar.

Sistem ve Yazılım Tasarımı: Yazılım geliştiriciler, senaryolar, düzenler ve veri modelleri dahil olmak üzere ürün gereksinimleri tarafından belirlenen sorunlara teknik bir çözüm tasarlar. Bu aşamaya genellikle, ekibin diğer üyelerinin doğrulama için gözden geçirmelerini sağlayan her gereksinim için belgeler eşlik eder. Özet olarak, Donanım ve yazılım gereksinimlerinde bölümleme ve temel yazılım soyutlamalarını ve bunların ilişkilerini belirleme Sistem ve Yazılım tasarımı aşamasıdır.

Uygulama ve Birim Testi: Bir dizi program birimi olarak “gerçekleştirilmiş” tasarım (örneğin, metotlar/sınıflar); sonra, birim testi, her birimin kendi spesifikasyonunu karşıladığını kontrol eder.

Entegrasyon ve Birim Testi: Yazılım gereksinimlerinin karşılandığından emin olmak için bağımsız birimler bir araya getirilir ve eksiksiz bir sistem olarak test edilir.

Operasyon ve Bakım: Yazılım uygulamaya konur. Bakım, hataları düzeltmeyi, uygulamayı iyileştirmeyi ve yeni gereksinimlere uyum sağlamayı içerir.

 

Prensipte:

  • Bir aşama ancak önceki aşama bittikten sonra başlar,
  • Bir aşama onaylanmış (imzalanmış) belgelerin üretilmesiyle sona erer.

Uygulamada:

  • Bu aşamalar birbirleri ile biraz çakışabilir, bilgiler birbirini besler ancak yine de kısa bir süre sonra bir önceki aşama biter.

 

 

Waterfall Metodunun Pozitif Yönleri

  • Her aşamada dokümantasyon üretilir.

 

 

Waterfall Metodunun Negatif Yönleri

Projenin esnek olmayan farklı aşamalara bölünmesi, erken “donma (bitirme)” şu durumlarda tehlikelidir:

1) Gereksinimler: Bir müşterinin, yazılımın kullanıcının istediğini yapmayacağı tüm gereksinimleri açıkça belirtmesi kolay bir şey değildir.
2) Tasarım: Tasarım: Kötü tasarıma yol açabilir ve hatalar uygulamanın hacklenmesi ile problemlere yol açabilir.

Erken aşamada verilen taahhütler (commitments), değişen müşteri gereksinimlerine cevap vermeyi çok zorlaştırır.

Müşterinin sabırlı olması gerekir, çalışan bir sürüm; proje zaman aralığında geç gelir.

 

Hangi Durumlarda Waterfall Metodu kullanılmalıdır?

Yalnızca gereksinimler iyi anlaşıldığında ve geliştirme sırasında kökten değişme olasılığı düşük olduğunda Waterfall Metodolojisi kullanılmalıdır.