Yazılım sisteminin tanımlanması ve çözümleme -yazılımın işlevselliği ve işlemlere koyulmuş sınırlamalar tanımlanmalıdır
Tasarım (Geliştirme) –gereksinimleri sağlayan yazılım üretilmelidir
Deneme –müşteri isteklerinin karşılandığına emin olmak için yazılım doğrulanmalıdır
Çalıştırma ve bakım
Yazılımın evrimi –müşterinin değişen isteklerinin sağlana bilmesi için yazılım gelişe bilmelidir
Yazılım Geliştirme Modelleri
Yazılım süreci modeli sürecin basitleştirilmiş soyut tasviridir.O, her hangi özgü açıdan süreci ifade eder. Yazılımın geliştirilmesi için kullanılan genel modeller:
Şelale modeli
Faaliyetlere bağımsız süreçler gibi bakılıyor
6 aşamalı model bir şelale modelidir
Evrimsel geliştirme
Kullanıcı ve sistem gereksinimleri evrimsel olarak karşılanmaktadır
Şelale Modeli
Şelale modeli klasik projelerin (inşaat, gemicilik, köprü yapma ve diğerleri) geliştirilmesi sürecini yansıtmaktadır. İdeal halde modelin bir adımı gerçekleştikten sonra bir sonraki adımın geçekleştirilmesine geçmek mümkündür. Her adımdan sonra uygun adım için proje raporu hazırlanmalı ve yönetime sunulmalıdır. Rapor onaylandıktan sonra bir sonraki adıma geçilebilir.
Şelale modelinin özelliği her adımın ayrıntılı biçimde düşünülmesi, incelenmesi ve doğru karar verile bilmesidir. Bir adım yapıldıktan sonra geriye dönüş yoktur.
Temel düşünce: İlkin bir çalışma yapmak,bunu müşteri görüşüne sunmak, bu görüşleri de dikkate alarak sistemin son gereken halini alana dek sürümlerini geliştirmek
Açınsama (Exploratory)Geliştirmesi: Müşteri ile birlikte çalışarak gereksinimlerin açınsaması; başlangıç ana hatlarıyla verilmiş belirteçten son sisteme doğru evrimsel geliştirme yapılması. Sistemin anlaşıla bilir kısmı ile başlanılmalıdır. Müşterinin önerdiği yeni özellikleri ilave etmekle evrimleşmelidir.
Prototip geliştirme: Hedef- müşteri gereksinimlerinin anlaşılması; sistem için en iyi gereksinim tanımlanmasının geliştirilmesi; müşteri gereksinimlerinin zayıf anlaşılır kısımları üzeride denemelere odaklanıyor.
Evrimsel Geliştirme Yaklaşımları Arasındaki Farklar
Açınsama yaklaşımında hedef çalışır sistemi son kullanıcıya teslim etmektir. Daha iyi anlaşılır ve yüksek öncelikli gereksinimlerle başlanılır. Zayıf öncelikli ve kesin anlaşılmayan kısımlar yalnız kullanıcı isteği ile çalıştırılır.
Prototip yaklaşımında ise hedef sistem gereksinimlerinin geçerliliğini yoklamaktır. Zayıf anlaşılabilir gereksinimlerle başlamanın nedeni onları daha iyi anlamaktır. Çok iyi anlaşılan gereksinimler için prototipe gerek yoktur.