Waterfall
Şelale Modeli
- Türkçe karşılığı
- çağlayan modeli
- Okunuşu
- votırfol
Günlük kullanımda iki ad da yaygın.
Kısaca
Waterfall, gereksinimlerin, tasarımın, geliştirmenin, testin ve yayının birbiri ardına gerçekleştiği ardışık bir yazılım geliştirme yaklaşımıdır.
Waterfall modeli nedir?
Waterfall modeli bir yazılım projesini, genellikle gereksinimler, tasarım, uygulama, test, dağıtım ve bakım olmak üzere, her aşamanın bir sonrakine başlamadan önce tamamlanıp onaylandığı bir dizi aşama olarak düzenler. İsim, ilerlemenin bir dizi basamaktan düşen su gibi tek yönde akmasından gelir. Genellikle Winston Royce'un 1970 tarihli bir makalesine dayandırılır; ilginç biçimde Royce tümüyle ardışık sürümü riskli olarak tanımlamış ve geri bildirim döngüleri eklenmesini önermişti.
Bir Waterfall projesi planlamayı en başa yığar. Gereksinimler başlangıçta ayrıntılı olarak toplanıp yazılır, çoğu zaman müşterinin onayladığı bir şartnamede; tasarımcılar da tek satır kod yazılmadan önce bu belgeyi bir mimariye dönüştürür. Ardından geliştiriciler tüm sistemi inşa eder, test uzmanları sona doğru doğrular ve sistem tek bir sürümle teslim edilir. Onaydan sonraki değişiklikler resmî bir değişiklik kontrol sürecinden geçer; çünkü yeni bir gereksinim önceki her aşamaya yansıyabilir.
Waterfall bir ev inşa etmek gibi çalışır: temeli dökmeden önce planları kesinleştirirsiniz, çünkü bir duvarı sonradan taşımak pahalıdır. Gereksinimlerin sabit ve iyi anlaşıldığı, değişikliğin maliyetli olduğu ya da tıbbi cihazlar için gömülü yazılım, havacılık sistemleri ve bazı sabit fiyatlı kamu sözleşmeleri gibi yönetmeliklerin kapsamlı dokümantasyon istediği projelere hâlâ uygundur. Başlıca zayıflığı, kullanıcıların çalışan yazılımı ancak sonunda görmesidir; bu yüzden yanlış anlamalar geç, düzeltilmesi en pahalı olduğu zaman ortaya çıkar.
Waterfall genellikle Agile ile karşılaştırılır. Agile kısa planlama, geliştirme ve gözden geçirme döngülerini tekrarlar, birkaç haftada bir çalışan yazılım teslim eder ve değişen gereksinimleri memnuniyetle karşılar; Waterfall ise her etkinliği uzun bir sıra içinde yalnızca bir kez yapar. Pratikte birçok kurum, içinde Agile sprint'leri olan Waterfall tarzı genel bir plan gibi hibritler kullanır ve V-modeli, her geliştirme aşamasını karşılık gelen bir test düzeyiyle eşleştiren, bilinen bir Waterfall varyantıdır.
Önemli noktalar
- Waterfall, bir projeyi sabit ve ardışık aşamalarda yürütür.
- Her aşama bir sonrakine başlamadan önce tamamlanıp onaylanmalıdır.
- Ayrıntılı gereksinimler ve tasarım en başta yazılır.
- Kullanıcılar çalışan yazılımı ancak projenin sonlarına doğru görür.
- Kararlı, iyi anlaşılmış ya da yoğun biçimde düzenlemeye tabi projelere uygundur.
Örnek
Waterfall project plan (each phase starts only after the previous one is signed off)
1. Requirements months 1-2 Output: approved requirements specification
2. Design months 3-4 Output: architecture and detailed design
3. Implementation months 5-8 Output: complete, integrated code
4. Testing months 9-10 Output: test reports and fixed defects
5. Deployment month 11 Output: system released to users
6. Maintenance ongoing Output: bug fixes and small updatesSık sorulan sorular
Waterfall ile Agile arasındaki fark nedir?
Waterfall her şeyi baştan planlar ve gereksinim, tasarım, geliştirme ve test aşamalarından yalnızca bir kez, sırayla geçer. Agile ise her biri çalışan yazılım teslim eden kısa döngülerde çalışır; böylece plan geri bildirime göre değişebilir.
Waterfall modeli hâlâ kullanılıyor mu?
Evet, esas olarak tıp, havacılık ve savunma yazılımları gibi sabit, iyi anlaşılmış gereksinimleri veya katı düzenleyici dokümantasyonu olan projelerde. Diğer birçok kurum ise Waterfall tarzı planlamayı Agile teslimatla birleştiren hibritler kullanır.
Waterfall modelinin aşamaları nelerdir?
Olağan aşamalar gereksinimler, tasarım, uygulama, test, dağıtım ve bakımdır. Bazı sürümler aşamaları birleştirir veya yeniden adlandırır, ama tanımlayıcı kural bunların sırayla gerçekleşmesidir.
Sık karşılaştırılanlar
İlgili sayfalar
- AgileEkipler ve Süreç, s. 3Agile, çalışan yazılımı küçük ve sık parçalar halinde teslim eden ve planları düzenli geri bildirime göre ayarlayan bir yazılım geliştirme yaklaşımıdır.
- ScrumEkipler ve Süreç, s. 21Scrum, küçük bir ekibin tanımlı roller, olaylar ve çıktılarla ürünü sprint denen sabit uzunluklu döngülerde teslim ettiği bir Agile framework'üdür.
- MVPEkipler ve Süreç, s. 14MVP, gerçek kullanıcıların kullanabileceği en sade ürün sürümüdür; temel bir varsayımı test etmek ve en az emekle en çok şeyi öğrenmek için geliştirilir.
- Extreme ProgrammingEkipler ve Süreç, s. 10Extreme Programming, eşli programlama, test odaklı geliştirme ve sürekli entegrasyon gibi mühendislik pratikleri üzerine kurulu bir Agile yöntemidir.
- Lean Software DevelopmentEkipler ve Süreç, s. 12Lean yazılım geliştirme, yalın üretim fikirlerini yazılıma uygulayarak israfı kaldırıp akışı iyileştirerek müşteri değerini hızla teslim etmeyi amaçlar.
- Kabul TestiTest ve Kalite, s. 11Kabul testi, yazılımın kullanıcılarla ya da müşterilerle anlaşılan gereksinimleri karşılayıp karşılamadığını kontrol eder; ekip sürüm kararını buna göre verir.
- SDLCEkipler ve Süreç, s. 23Yazılım geliştirme yaşam döngüsü (SDLC), bir yazılımın geçtiği aşamalar dizisidir: planlama, tasarım, geliştirme, test, yayın ve bakım.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin