İçeriğe atla

Waterfall model

Şelale yönteminde (yaygın kullanılan adı Waterfall Model) yazılım geliştirme süreci analiz, 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ı?[1]

  • 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

  1. ^ "Neden Şelale Modeli Kullanılmamalı". 13 Ocak 2013 tarihinde kaynağından arşivlendi. Erişim tarihi: 3 Ocak 2013. 

Dış bağlantılar

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Microsoft Dynamics AX</span>

Axapta veya Microsoft Dynamics AX, Microsoft tarafından üretilen, Microsoft Dynamics ailesinden bir KKP (İngilizce: ERP) yazılımı.

<span class="mw-page-title-main">Toplam kalite yönetimi</span>

Toplam kalite yönetimi ya da kısaca TKY; müşteri ihtiyaçlarını karşılayabilmek için kullanılan insan, iş, ürün ve/veya hizmet kalite gereksinimlerinin, sistematik bir yaklaşımla ve tüm çalışanların katkıları ile sağlanmasıdır. Bu yönetim şeklinde uygulanan her süreçte tüm çalışanların fikir ve hedefleri kullanılmakta ve tüm çalışanlar kaliteye dahil edilmektedir. Toplam kalite yönetimi; uzun dönemde müşterilerin tatmin olmasını başarmayı, kendi personeli ve toplum için yararlar elde etmeyi amaçlar ve kalite üzerine yoğunlaşır. Tüm personelin katılıma dayalı bir yönetim modelidir.

Atik yazılım geliştirme ya da çevik yazılım geliştirme, basit prensiplere dayanan yazılım geliştirme metotları gruplarının genel adıdır. Bu metotlar genelde alışılmış denetim ve uyum süreçlerini teşvik eden proje yönetim işlemlerine önayak olurlar. Bu yaklaşım; takım çalışmasıyla gelen liderlik psikolojisi, kendi kendini düzene sokma (örgütleme), sorumluluk, yüksek kalitedeki yazılımların hızlı dağıtımını onaylayan en iyi mühendislik örnekleri ve iş yaşamında müşteri ihtiyaçlarıyla şirketlerin temel amaçlarını, vizyonlarını koordine etme işlevi de görmektedir.

Gereksinim Yönetimi ; tanımlama, sağlama, belgeleme, analiz etme, takip etme, öncelik verme, gereksinimlere karar verme ve daha sonra değişimi kontrol etme ve ilgili taraflarla iletişim kurma işlemlerini kapsar. Bu proje boyunca süregelen bir süreçtir.

Proje yönetimi, belirli bir projenin hedef ve amaçlarına ulaşıp bitirilmesi için kaynakların planlanması, organize edilmesi, tedarik edilmesi ve yönetilmesi disiplinidir.

Hata türleri ve etkileri analizi; bir sistemin potansiyel hata türlerini analiz etmek için hataları olasılıklarına ve benzerliklerine göre sınıflandıran bir ürün geliştirme ve operasyon yönetim prosedürüdür. Başarılı bir hata türü analizi işi, benzer ürünlerin veya proseslerin geçmiş deneyimlerine dayanarak hata türlerinin tanımlanmasına yardımcı olur, bu hataların sistemden minimum kaynak kullanımı ve çabayla atılmasını sağlar ve bununla beraber geliştirme zamanını ve maliyetini düşürür. Genellikle üretim sektöründe ürünlerin çeşitli aşamalarında kullanılmakla beraber hizmet sektöründe de kullanım alanı artmıştır.

<span class="mw-page-title-main">Kalite maliyetleri</span>

Kalite maliyeti, mevcut kalitesizlikten ileri gelen ya da potansiyel kalitesizliği önlemek amacıyla alınan önlemler dolayısıyla ortaya çıkan maliyet. Kalite maliyetleri ile ilgili literatürde temel teşkil eden önemli çalışmalar, 1976'da Kaoru Ishikawa, 1979'da Philip B. Crosby, 1986'da William Edwards Deming, 1988'de Joseph Juran ve 1991'de Armand Vallin Feigenbaum tarafından gerçekleştirilmiştir. Kalite maliyeti kavramı, üretilen ürünlerin, müşteri beklentilerini karşılamamasını takiben hem ürün geliştirme hem de süreç iyileştirme çalışmalarının sonucu olarak doğmuştur. Kalite maliyetlerinin ölçülüp hesaplanması Toplam Kalite Yönetimi programının önemli ve gerekli aşamalarından biridir.

6 sigma için tasarım , ürün döngüsünün başlangıç kısımları ile ilgilenen bir Altı sigma stratejisini tanımlar. Altı sigmadan ayrı ve gelişen bir işletme süreç yönetim metodolojisini tanımlar. Mevcut süreçle ilgilenmez, ürün döngüsünün ilk kısımlarında yapılacak değişikliklerle optimum tasarımların oluşturulması için kullanılır. Bunu gerçekleştirirken oldukça fayda sağlayan araçlar kullanır. Bu araçlar iç işletme süreçlerine, servis proseslerinin yeniden düzenlenmesine ve ürün geliştirme süreçlerine direkt olarak uygulanabilecek olan araçlardır. 6 sigma uygulamaları mevcut sürecin mükemmelliğe ulaştırılması için kullanılırlar. Ancak bu uygulamaların sonuçları bir noktada kilitlenebilir ve ilerletilemez çünkü süreçle ilgili kısıtlar daha fazla geliştirmeye engel olmaktadır. Ürünlerle ilgili tasarım kısıtları da bu engellerden birisidir. 6 sigma için tasarım uygulaması da, sistem geliştirilmek istendiğinde karşılaşılabilecek ürün kısıtlamalarını sürecin en başından saptayıp kaldırmayı hedefler.

<span class="mw-page-title-main">Gömülü sistem</span> Belli bir fonksiyonu yapmaya yönelik bilgisayar sistemi

Gömülü sistem, bilgisayarın kendisini kontrol eden cihaz tarafından içerildiği özel amaçlı bir sistemdir. Genel maksatlı, örneğin kişisel bilgisayar gibi bir bilgisayardan farklı olarak, gömülü bir sistem kendisi için önceden özel olarak tanımlanmış görevleri yerine getirir. Sistem belirli bir amaca yönelik olduğu için tasarım mühendisleri ürünün boyutunu ve maliyetini azaltarak sistemi uygunlaştırabilirler. Gömülü sistemler genellikle büyük miktarlarda üretildiği için maliyetin düşürülmesinden elde edilecek kazanç, milyonlarca ürünün katları olarak elde edilebilir.

<span class="mw-page-title-main">Yazılım yaşam döngüsü</span>

Yazılım yaşam döngüsü, bilgisayar yazılımlarının ilk geliştirme aşamalarından başlayarak; yayındaki mevcut sürümün hatalarının giderilmesi, iyileştirme odaklı yeni ara sürümlerin yayınlarak yazılımın güncellenmesi de dâhil olmak üzere nihai (kararlı) sürüme ulaşana dek geçen geliştirme ve olgunlaştırma aşamalarının tamamını ifade etmek için kullanılan terimdir.

<span class="mw-page-title-main">Yazılım testi</span>

Yazılım testi, test altında hizmetlerin veya ürünlerin kalitesi hakkında paydaşlara bilgi sağlamak için yürütülen bir araştırmadır. Yazılım testi aynı zamanda, yazılım uygulamalarının risklerini anlamak için yazılımı bağımsız ve nesnel olarak incelemektir. Test teknikleri yazılım böceklerini bulma niyetiyle uygulama veya bir programı çalıştırma süreçlerini kapsar.

<span class="mw-page-title-main">V-Model (Yazılım geliştirme)</span>

V-model şelale (waterfall) modelinin gelişmiş hali olarak düşünülebilecek bir yazılım geliştirme süreci sunar. Doğrusal bir yönde ilerlemek yerine, süreç adımları kodlama evresinden sonra yukarıya doğru eğim alır ve tipik V şeklini oluşturur. V-Model geliştirme yaşam çevriminin her bir evresi arasındaki ilişkileri gösterir. Yatay ve dikey açılar zaman veya projenin tamamlanabilirliğini ve soyut seviyeyi gösterir.

Tehdide açıklık, Açıklık,Savunmasızlık (vulnerability) Risk konusunda kaynaklarda vulnerability ifadesinin karşılığı olarak bu üç isimde kullanılmaktadır.

Bir proje yöneticisi, proje idaresi alanında bir profesyoneldir. Proje yöneticileri, mühendisliğin herhangi bir alanında, planlama, temin etme ve projenin yerine getirilmesinde sorumluluk sahibidir. Proje yöneticileri bir organizasyonun çeşitli departmanlarında meydana gelen problemlerin ya da uyumsuzlukların daha yüksek otoritelere ulaşmadan önce başvurulması gereken ilk merci noktasıdır.

Kavramsal model bir sistemin temsilidir ve modelin temsil ettiği sistemin insanların daha rahat bir şekilde anlamalarına yardımcı olur. Örneğin, montajı yapılarak oluşturulan bir oyuncak model temsil ettiği objenin çalışmasını modelini oluşturacak bir şekilde çalışabilir.

<span class="mw-page-title-main">Gereksinim çözümleme</span>

Bilgisayar bilimlerinde, gereksinim analizi ya da gereksinim çözümleme; çeşitli sistemlerin gerekliliklerini ve olası çelişkili durumlarını göz önüne alarak, yazılımı analiz etmek, belgelemek, doğrulamak ve yönetmek için yeni veya değiştirilmiş bir ürün üzerinde projenin ihtiyaçlarını, sistem gereksinimlerini ve koşullarını belirleyen görevleri kapsamaktadır.

Sistem analisti veya İş teknolojisi analisti, analist ve bilgi teknolojisi (BT) uzmanıdır. Sistemlerin küçük değişiklikler yoluyla etkin hale getirilmesi veya yeniden planlanmasını sağlamak amacıyla analiz edilmesiyle ilgilenen kişidir ". Bir sistem analisti tipik olarak atanmış veya verilen bir sistemle sınırlıdır ve genellikle bir iş analisti ile birlikte çalışır. "Sistem analist; insanların, metotların ve bilgisayar teknolojisinin işleri en iyi şekilde yerine getirebilmeleri için, organizasyonun problem ve gereksinimleri üzerinde çalışır".Bir sistem analistin, deneyimi ve bilgisi dışındaki en önemli aracı, öncelikle sistemin bir üyesi olan insandır. Ardından gözlem gücü ve dokümanlar gelir.

Çevrimiçi ofis paketi bir hizmet olarak yazılım biçiminde web siteleri tarafından sunulan bir ofis paketi türüdür. Herhangi bir işletim sistemini çalıştıran herhangi bir İnternet uyumlu cihazdan çevrimiçi erişilebilirler. Bu, insanların dünya çapında ve her zaman birlikte çalışmasını sağlar ve böylece uluslararası web tabanlı işbirliği ve sanal ekip çalışmasına yol açar. Genellikle, temel sürümler ücretsiz olarak sunulur ve daha gelişmiş sürümler için nominal bir abonelik ücreti ödemek zorunludur.

<span class="mw-page-title-main">Winston W. Royce</span>

Winston Walker Royce, Austin, Teksas'taki Lockheed Yazılım Teknoloji Merkezi'nde yöneticilik yapmış olan Amerikalı bir bilgisayar bilimcisiydi.

İş analisti, bir organizasyonu veya işletme alanını analiz eden bir analist mesleğidir. İş modelini veya teknolojiyle entegrasyonunu değerlendirerek işini, süreçlerini veya sistemlerini belgeler. İş analisti, veri analizi yoluyla süreçleri, ürünleri, hizmetleri ve yazılımları iyileştirmede işletmelere rehberlik etmeye yardımcı olur. Analistler finans, bankacılık, sigorta, telekom, kamu hizmetleri, yazılım hizmetleri, hükûmet vb. gibi farklı sektörlerde çalışır. BA'ların çalışabileceği iş alanları arasında iş akışı, faturalandırma, arabuluculuk, sağlama, raporlama ve müşteri ilişkileri yönetimi yer alır. Son olarak, iş analistleri, operasyon ölçeklendirme, satış planlama, strateji geliştirme, geliştirme sürecinde yer alabilecekleri veya bir atik yazılım geliştirme ürün ekibinin parçası olabilir.