waterfall model ne demek?
Şelale yönteminde (yaygın kullanılan adı Waterfall Model)
geliştirme süreci
, tasarım, kodlama, test, sürüm ve bakım gibi
safhalardan oluşur. Geleneksel yazılım metotlarında bu safhalar şelale
modelinde olduğu gibi doğrusal olarak işler. Her safha, başlangıç
noktasında bir önceki safhanın ürettiklerini bulur. Kendi bünyesindeki
değişikler doğrultusunda teslim aldıklarını bir sonraki safhanın
kullanabileceği şekilde değiştirir.
Özellikleri
- Şelalenin her basamağında yer alan aktiviteler eksiksiz olarak
yerine getirilir. Bu bir sonraki basamağa geçmenin şartıdır.
- Her safhanın sonunda bir doküman oluşturulur. Bu yüzden şelale
modeli doküman güdümlüdür.
- Yazılım süreci doğrusaldır, yani bir sonraki safhaya geçebilmek için
bir önceki safhada yer alan aktivitelerin tamamlanmış olması
gerekir.
- Kullanıcı katılımı başlangıç safhasında mümkündür. Kullanıcı
gereksinimleri bu safhada tespit edilir ve detaylandırılır. Daha
sonra gelen tasarım ve kodlama safhalarında müşteri ve kullanıcılar
ile diyaloğa girilmez.
Avantajları
- Fazların net bir şekilde sınırlandırılması
- Basit planlama ve kontrol olanakları
- Basit ve anlaşılabilir bir model
- Düşük maliyet
Dezavantajları
- Kullanıcı katılımı sadece tanım aşamasında mümkün
- Doküman güdümlü
- Sıralama, sınırlandırma ve yeterlilik problemleri
Modelin Getirdiği Problemler
- Safhaların birbirinden kesin olarak ayrı tutulmaları gerçekçi
değildir. Projelerde safhalar arasındaki bu sınırlar yok olabilir.
- Teoride safhalar birbirlerini takip edeler. Projelerde bunun bazen
mümkün olmadığını ve önceki safhalara geri dönülmek zorunda
kalındığını görebiliriz.
- Safhalar arası geri dönüş yetersizdir. Model değişikliğe açık
değildir.
- Müşteri gereksinimlerinin proje öncesi detaylı olarak kâğıt üzerinde
oluşturulması ileride sorun yaratabilir. Müşteri gereksinimleri
değişikliğe uğrayabileceği için, yazılım sisteminin de yapısal
değişikliğe uğraması kaçınılmaz olabilir. Böyle bir durum maliyeti
artırır, çünkü yeni ve değişen gereksinimleri implemente edebilmek
için modelde yer alan safhaların birkaç kere uygulanması
gerekebilir.
- Sistemin kullanılır hale gelmesi uzun zaman alabilir.
- Başlangıçta yapılan hataların tespiti çok uzun zaman alabilir. Bu
hataların giderilmesi maliyeti yükseltir.
- Modül implementasyonları için zaman tahminleri proje planlarını
oluşturan yöneticiler tarafından yapılır. Teknik bilgiye sahip
olmayan şahıslar tarafından yapılan bu tahminler çoğu zaman doğru
değildir. Bu durum proje planlama sürecini negatif etkiler.
Müşteri Gereksinimleri
Proje başlangıcında her detayı göz önünde bulundurmak mümkün olmadığı
için, şelale modeliyle geliştirilen yazılım sistemlerinin müşteri
gereksinimlerini tam tatmin etmediğini görmekteyiz. Bunun önüne
geçebilmek için projenin başlangıç safhasında analiz için çok zaman
harcanır ve müşteri gereksinimleri en ince detayına kadar tespit edilir.
Aslında proje başlangıcıyla oluşturulan dokümanlar obsolet (eskimiş)
hale gelmiştir, çünkü müşteri gereksinimleri piyasa ve rekabet koşulları
gereği değişikliğe uğramış olabilir. Ne yazık ki şelale modeli bunları
dikkate almaz ve müşterinin talep ettiği değişiklikleri aza indirmeye
çalışır. Bunun bir sebebi de sonradan gelen değişiklik taleplerinin
maliyeti yükseltmesidir, çünkü bu durumda şelale modelinde yer alan
safhaların birkaç kere uygulanması gerekebilir.
Bu çerçeveden bakıldığında proje sonunda oluşan program müşterinin
aktüel gereksinimlerini tatmin etmez durumdadır. Program daha çok
müşterinin proje başlangıcında sahip olduğu gereksinimleri tatmin edecek
şekilde tasarlanmıştır. Projelerin birkaç sene boyunca sürebileceğini
düşünürsek, aslında bu süreç sonunda oluşan program aktüel değildir.
Neden Yazılımda Şelale Modeli Kullanılmamalı?
- Müşteri ne istediğini tam olarak bilmeyebilir. Bu yüzden proje
öncesi detaylı analiz yapılması, müşterinin her gereksimini dile
getirdiğinin garantisi değildir. Müşterinin bazı gereksinimlerini
projenin ilerleyen safhalarında keşfetmesi durumunda, oluşan
değişikliklerin projeye dahil edilmesi hemen hemen imkansız
olacaktır. Bunun en büyük sebeplerinden birisi de yazılım için
oluşturulan tasarımın projesi öncesi belirlenmesi ve bu yüzden
ileride meydana gelebilecek değişikliklerin göz önünde
bulundurulmamış olmasıdır. Projenin ilerleyen safhalarında meydana
gelen her değişiklik tasarımı zorlar. Tasarım çevik olmadığı için
değişiklikleri taşıyamaz.
- Müşteri ne istediğini doğru olarak ifade edemeyebilir. Bu durumda
proje öncesi yapılan analizler doğru olmayacaktır. Bu müşterinin
istemediği bir yazılım sisteminin meydana gelmesine sebep olur.
Şelale yöntemi müşteri ile devamlı diyalog içinde olunmasını
engeller. Müşteriden geri dönüş sağlanamadığı için, müşterinin
analiz safhasında meydana gelen yanlış anlaşılmaları düzeltmesi
mümkün değildir.
- Şelale yönteminde proje akışı bir sonraki safhaya geçiş yönündedir.
Bu yüzden iletişim tek yönlüdür. Safhalar arası geri dönüş mümkün
değildir. Bu yapılan hataların tamir edilmesini engeller.
- Şelale yöntemi ile müşterinin istediği yazılım sistemi proje sonunda
tamamlanır. Ancak bu safhada müşteri yazılım sistemini test
edebilir. Müşteri tamamlanan yazılım sistemini tüm artı ve
eksileriyle kabullenmek ve kullanmak zorundadır.
Kaynakça
Dış bağlantılar
Orijinal kaynak: waterfall model. Creative Commons Atıf-BenzerPaylaşım Lisansı ile paylaşılmıştır.
Kategoriler