Yazılım Geliştirme Modeli

Yazılım Geliştirme Modeli

Yazılım geliştiriciler, işlerini doğru ve eksiksiz bir şekilde yerine getirebilmek adına, iyi bir takım çalışması planı ve işin evrelere ayrılarak tamamlanmasını sağlarlar. Bu şekilde çizilen plan sayesinde, eksiksiz ve hatasız çalışmalar meydana gelir. Her yazılım firmasının uyguladığı yazılım geliştirme modelleri varsa da, genel hatlarıyla işin bölünme şekli aşağıdaki gibidir.

  • Geliştirilmesi planlanan yazılım hakkında geniş ve kapsamlı bir doküman çalışması yerine getirilmesi
  • Yazılımın nihayetinde elde edilecek olan programın görsel tasarımın yapılması
  • Program ürününün gerçekleştirimi
  • Programın çalışabilirliğinin kontrol edilmesi
  • Programın bakımının yapılması

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 Modeli Artılarını:

Uygulanması kolay ve iyi bilinir bir yapı

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

Çıktılar net ve bilinir

Şelale Modeli 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.


Yazılım Geliştirme Modeli


2. V Model Nedir

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.


Yazılım Geliştirme Modeli


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.


Yazılım Geliştirme Modeli