Yinelemeli modelde, yinelemeli süreç, küçük bir yazılım gereksinimleri kümesinin basit bir şekilde uygulanmasıyla başlar ve tüm sistem uygulanıp uygulamaya hazır hale gelene kadar gelişen sürümleri yinelemeli olarak geliştirir.

Yinelemeli bir yaşam döngüsü modeli, gereksinimlerin tam olarak belirtilmesiyle başlamaya çalışmaz. Bunun yerine geliştirme, yazılımın yalnızca bir kısmını belirleyip uygulayarak başlar ve bu daha sonra diğer gereksinimleri belirlemek için gözden geçirilir. Bu süreç daha sonra tekrarlanarak modelin her yinelemesinin sonunda yazılımın yeni bir sürümü üretilir.

Yinelemeli Model – Tasarım

Yinelemeli süreç, yazılım gereksinimlerinin bir alt kümesinin basit bir şekilde uygulanmasıyla başlar ve tüm sistem uygulanana kadar gelişen sürümleri yinelemeli olarak geliştirir. Her yinelemede tasarım değişiklikleri yapılır ve yeni işlevsel yetenekler eklenir. Bu yöntemin arkasındaki temel fikir, tekrarlanan döngüler (yinelemeli) ve bir seferde daha küçük bölümler (artımlı) yoluyla bir sistem geliştirmektir.

Aşağıdaki çizim Yinelemeli ve Artımlı modelin bir temsilidir –

Yinelemeli ve Artımlı geliştirme, geliştirme için yinelemeli tasarım veya yinelemeli yöntem ile artımlı yapı modelinin birleşimidir. “Yazılım geliştirme sırasında, yazılım geliştirme döngüsünün birden fazla yinelemesi aynı anda devam ediyor olabilir.” Bu süreç “evrimsel edinim” veya “artımlı yapı” yaklaşımı olarak tanımlanabilir.

Bu artımlı modelde tüm gereksinim çeşitli yapılara bölünmüştür. Her yineleme sırasında geliştirme modülü gereksinimler, tasarım, uygulama ve test aşamalarından geçer. Modülün sonraki her sürümü, önceki sürüme işlev ekler. İhtiyaca göre komple sistem hazır olana kadar süreç devam eder.

Yinelemeli bir yazılım geliştirme yaşam döngüsünün başarılı bir şekilde kullanılmasının anahtarı, gereksinimlerin titizlikle doğrulanması ve modelin her döngüsünde yazılımın her sürümünün bu gereksinimlere göre doğrulanması ve test edilmesidir. Yazılım birbirini izleyen döngüler boyunca geliştikçe, yazılımın her sürümünü doğrulamak için testlerin tekrarlanması ve genişletilmesi gerekir.

Yinelemeli Model – Uygulama

Diğer SDLC modelleri gibi yinelemeli ve artımlı geliştirmenin de yazılım endüstrisinde bazı özel uygulamaları vardır. Bu model çoğunlukla aşağıdaki senaryolarda kullanılır:

  • Sistemin tamamının gereksinimleri açıkça tanımlanmış ve anlaşılmıştır.
  • Başlıca gereksinimler tanımlanmalıdır; ancak bazı işlevler veya talep edilen geliştirmeler zamanla gelişebilir.
  • Piyasa kısıtlamasının bir süresi vardır.
  • Proje üzerinde çalışırken geliştirme ekibi tarafından yeni bir teknoloji kullanılıyor ve öğreniliyor.
  • İhtiyaç duyulan beceri setlerine sahip kaynaklar mevcut değildir ve belirli yinelemeler için sözleşme bazında kullanılması planlanmaktadır.
  • Gelecekte değişebilecek bazı yüksek riskli özellikler ve hedefler vardır.

Yinelemeli Model – Artıları ve Eksileri

Bu modelin avantajı, geliştirmenin çok erken bir aşamasında sistemin çalışan bir modelinin bulunmasıdır; bu, işlevsel veya tasarım kusurlarını bulmayı kolaylaştırır. Sorunları geliştirmenin erken bir aşamasında bulmak, sınırlı bir bütçeyle düzeltici önlemlerin alınmasını sağlar.

Bu SDLC modelinin dezavantajı yalnızca büyük ve hacimli yazılım geliştirme projelerine uygulanabilmesidir. Bunun nedeni, küçük bir yazılım sistemini daha küçük, hizmet verilebilir artışlara/modüllere bölmenin zor olmasıdır.

Yinelemeli ve Artımlı SDLC Modelinin avantajları aşağıdaki gibidir –

  • Bazı çalışma işlevleri yaşam döngüsünün başlarında hızlı bir şekilde geliştirilebilir.
  • Sonuçlar erken ve periyodik olarak alınır.
  • Paralel gelişme planlanabilir.
  • İlerleme ölçülebilir.
  • Kapsamı/gereksinimleri değiştirmek daha az maliyetlidir.
  • Daha küçük yinelemeler sırasında test etmek ve hata ayıklamak kolaydır.
  • Yineleme sırasında riskler tanımlanır ve çözülür; ve her yineleme, kolayca yönetilen bir kilometre taşıdır.
  • Riski yönetmek daha kolay – Önce yüksek riskli kısım yapılır.
  • Her artışta operasyonel ürün teslim edilir.
  • Her artışta tanımlanan sorunlar, zorluklar ve riskler bir sonraki artışta kullanılabilir/uygulanabilir.
  • Risk analizi daha iyidir.
  • Değişen gereksinimleri destekler.
  • İlk Çalışma süresi daha azdır.
  • Büyük ve kritik görev projeleri için daha uygundur.
  • Yaşam döngüsü boyunca yazılım erken üretilir ve bu da müşteri değerlendirmesini ve geri bildirimini kolaylaştırır.

İteratif ve Artımlı SDLC Modelinin dezavantajları aşağıdaki gibidir –

  • Daha fazla kaynak gerekebilir.
  • Her ne kadar değişimin maliyeti daha az olsa da değişen gereksinimlere pek uygun değildir.
  • Yönetimin daha fazla dikkat etmesi gerekiyor.
  • Tüm yaşam döngüsünün başlangıcında tüm gereksinimler toplanmadığından sistem mimarisi veya tasarım sorunları ortaya çıkabilir.
  • Artışların tanımlanması tüm sistemin tanımlanmasını gerektirebilir.
  • Daha küçük projeler için uygun değildir.
  • Yönetim karmaşıklığı daha fazladır.
  • Projenin sonu bilinemeyebilir, bu da bir risktir.
  • Risk analizi için yüksek vasıflı kaynaklara ihtiyaç vardır.
  • Projelerin ilerlemesi büyük ölçüde risk analizi aşamasına bağlıdır.