Yazılım Geliştirme Modeli Nedir? Çeşitleri Nelerdir?

En son güncellendiği tarih: 6 Ağu 2019

Yazılım Geliştirme Yaşam Döngüsü

Yazılım geliştirme modelleri, yazılım geliştirme yaşam döngüsünün farklı şekiller uygulanması halidir. Şelale, V-model, artımlı model, iteratif model ve çevik modeller gibi birçok çeşit yazılım geliştirme modelleri vardır.


Yazılım test mühendisleri olarak bizler yazılım geliştirme modeline uygun olarak test faaliyetlerini şekillendirmeliyiz. Bu nedenle yazılım geliştirme modelleri hakkında bilgi sahibi olmamız gerekmektedir.


1. Şelale (Waterfall) Modeli Nedir?

Şelale modeli, yazılım geliştirme metodolojilerinin en eski, en güvenilir ve en basit olanıdır. Bu modele farklı adımlara bölümlenmiştir. Bir anda sadece bir adım gerçekleştirilir. Bir sonra adıma geçilebilmesi için önceki adımın net olarak tamamlanmış olması gerekmektedir.

Şelale Modelinin genel adımları:

  • Planlama

  • Gereksinim Analizi

  • Tasarım

  • Gerçekleştirme

  • Test

  • Canlıya Geçiş ve Bakım

Her aşama yalnızca birincisi bittikten sonra tamamlanabileceğinden şelaleye benzediğinden bu isim verilmiştir.

Şelale Artılarını:

  • Uygulanması kolay ve iyi bilinir bir yapı

  • İşler net adımlara bölümlenmiş

  • Çıktılar net ve bilinir

Şelale Eksileri:

  • Değişikliğe kapalı

  • Değişiklik olması durumunda götürüsü fazla olabilir

  • Ürün gereksinimleri her zaman net olarak belirlenemeyebilir

Şelale Modelinde test ancak geliştirme tamamlandıktan sonra başlar. Bu nedenle, testler sonunda rapor edilen birçok hatanın düzeltme maliyetleri yüksek olmaktadır. Bu nedenle günümüzde insanlar 'Çevik Model'leri proje yönetiminde tercih etmektedirler.


2. V Model Nedir


V Model

V modeli, Doğrulama ve Geçerleme (Onaylama) modeli anlamına gelir. Tıpkı şelale modelinde olduğu gibi yazılım yaşam döngüsü adımları V-şeklinde sıralı bir şekilde uygulanır. Bu modelde de her aşama bir sonraki aşama başlamadan önce tamamlanmalıdır. V-Modelinin en temel özelliği “ürünün test edilmesi kendisine karşılık gelen geliştirme aşamasına paralel olarak planlanmaktadır.”

V-modelinin avantajları:

  • Basit ve kullanımı kolaydır.

  • Planlama ve test tasarımı gibi test faaliyetleri kodlamadan önce gerçekleştirildiği için proje içerisinde çok zaman kazandırır. Bu nedenle şelale modeline göre daha yüksek başarı şansı vardır.

  • Hataların bulunması erken aşamada bulunur.

  • Hataların bir sonraki aşamaya geçmesi önlenir.

V modelinin dezavantajları:

  • Uygulama şekli oldukça katı, kesin kurallara bağlıdır.

  • Yazılım şelalede olduğu gibi geliştirme aşamasında geliştirilir, bu nedenle yazılımın erken prototipleri üretilmez.

  • Herhangi bir aşamada gereksinimler üzerinde değişiklik olursa, test belgelerinin de diğer belgeler ile birlikte güncellenmelidir.

V modeli, gereksinimlerin açıkça tanımlandığı projeler için kullanılabilir.

3. Artımlı Model Nedir?

Artımlı modelde gereksinimler mantıksal olarak çeşitli alt gruplara ayrılmıştır. Her grup küçük bir şelale modeli yapısında bir çevrim içerisinde geliştirilerek yazılım bir sürümü geliştirilir. Bu model içerisinde bir ürünün ortaya çıkartılması için “çoklu şelale” yapısı uygulanır. Her bir çevrim aslında küçük ve kolay yönetilen modüllerdir. İlk çevrim içinde yazılımın çalışan ilk sürümü elde edilir. Bundan dolayı ilk aşamadan itibaren elimizde çalışan bir yazılım olur. Her artımda mevcut ürünün üzerine yeni işlevler eklenir. Hedeflenen özellikler yazılıma eklenene kadar süreç devam eder.

Artımlı modelin avantajları:

  • Hızlıca ve erkenden çalışan bir yazılım oluşturulur.

  • Bu modelde kapsamı ve gereksinimleri değiştirmek daha az maliyetlidir.

  • Her aşamada test olduğundan test etmek ve hata ayıklamak daha kolaydır.

  • Bu modelde müşteriden her sürüm için değerlendirme verebilir.

  • İlk teslimat maliyetini düşürür.

  • Riski yönetmek daha kolaydır. Çünkü riskli parçalar tanımlanır ve yineleme sırasında kullanılır.

Artımlı modelin dezavantajları:

  • Doğru aşamalandırma için iyi planlama ve tasarım gerektirir.

  • Tüm sistemin geliştirme faaliyeti başlamadan önce net ve eksiksiz bir şekilde tanımlanması gerekir.

  • Toplam maliyet şelaleden daha yüksektir.


4. Çevik Model Nedir ?

Çevik geliştirme modeli bir artımlı model türüdür. Yazılım, artımlı, hızlı çevrimler halinde geliştirilmesi hedeflenir. Geliştirmenin başlaması için tüm gereksinimlerin ortaya çıkartılmış olması gerekmemektir. Netleşmiş olan bir grup gereksinim ile geliştirmeye başlanabilir. Hızlı olarak ürün verilmesi gereken uygulamalar için kullanılır. Çevik model bir şemsiye yapıdır. Bu yapı içerisinde Scrum, Extreme Programming (XP), Kanban, Test Driven Development (TDD) gibi çeşitli uygulama şekilleri vardır. Şu anda en iyi bilinen ve en yaygın kullanıma sahip olan çevik gelişim yaşam döngüsü modeli SCRUM’dır.

Çevik metodoloji içerisinde test faaliyetleri ve testçilerin görevleri Çevik Test başlığı altında daha ayrıntılı olarak açıklanmaktadır.

Çevik modelin avantajları:

  • Hızlı ve sürekli yazılım teslimatı ile artan müşteri memnuniyeti.

  • Süreç ve araçlardan ziyade insanlar ve etkileşimler daha değerli olduğundan müşteriler, geliştiriciler ve test edenler sürekli olarak birbirleriyle etkileşim içindedirler.

  • Düzenli olarak çalışan yazılımı üretilir.

  • Gelişen ve iyileşen tasarıma doğru gidilir.

  • Gereksinimlerde ileriki aşamalardaki değişiklikler bile hoş karşılanır ve daha kolay uygulanır.

Çevik modelin dezavantajları:

  • Büyük ölçekli projelerde nihai yazılıma ulaşılma zamanını kestirme güçtür.

  • Belgelendirmede zafiyet yaşanabilir.

  • Bu yapının uygulanmasında deneyimli yazılımcıların olması önemlidir. Deneyimsiz bir ekip işi uzatıp karmaşıklaştırabilir.

0 görüntüleme