Faydalı BilgilerMakaleler

Yazılım Geliştirme Sürecinde Kullanılan Modeller

Bir önceki yazımızda ele aldığımız yazılım tasarım süreçlerindeki yazılım projesinin tüm adımlarını içeren işlemler için nasıl bir yol izleneceği yazılım süreç modelleri ile ele alınır.

Yazılım süreç modelleri çok çeşitlidir. Bu modeller sayesinde yazılım projelerinin kontrolü sağlanarak sürecin çok daha güvenli, anlaşılabilir ve teste elverişli olması sağlanır. Güncelleme ve bakımın da kolay olması yazılım projesinin ömrünü artıracak niteliklerdir. Kısaca yazılım süreç modelleri yazılımlara kontrol, tutarlılık ve düzen sağlar.

Bahsettiğimiz üzere yazılımda sadece kod düşünülmemeli. Direkt kod ile tasarım yapmaya çalışan programcılar/mühendisler ilerleyen süreçlerde geliştirdikleri yazılımda bir çok sorun ile karşılaşacaktır. Bunu önlemek için ise yazılım yaşam döngüsündeki tüm adımları uygulayarak yazılım süreç modelleri ile de bu süreci desteklemelidir.

Peki yazılım süreç modelleri nelerden oluşmaktadır? İşte başlıca yazılım süreç modelleri:

Kodla ve Düzelt Modeli

Kodla ve düzelt modeline göre yazılım yaşam döngüsünün bir parçası olan analiz aşamasından sonra doğrudan yazılım ortaya çıkarılır. Bu model üzerinden gerekli düzeltmeler ve gereksinimler karşılanıncaya kadar program düzenlenir.

Avantajları;

  • Modeller arasında en kolay olanıdır,
  • Analizin ardından diğer süreçler atlanarak direkt yazılım ürünü çıkarıldığı için müşteriyi memnun etmek daha kolaydır

Dezavantajları;

  • Dokümantasyon olmadığı için bakımı ve değişimi çok zordur, dolayısıyla pahalı bir yöntemdir.
  • Sistem gereksinimleri arttıkça karmaşıklık daha da artacaktır.

Şelale Modeli

Bu modelde yazılım sürecini bazı ana safhalara bölebilirsiniz. Bu süreç modelinde tek yönlü ve lineer aşamalarla ilerlenir. Bir sonraki aşamaya geçebilmek için mutlaka o anki aşamanın tam olarak bitirilmesi gerekir. Geri dönüşlere uygun olmayan bir model türüdür.

  • Her aşama tamamlandıktan sonra o aşamaya ait dokümantasyon oluşturulur.
  • Kullanıcı katılım sadece ilk aşamada görülür.
  • Kullanıcı gereksinimleri belirlenir ve ardından detaylandırılır.
  • Tasarım ve kodlama aşamalarında müşteri ile iletişime geçilmez.

Avantajları:

  • Net ve düzenli aşamalardan oluşur.
  • İş bölümü yapmak kolaydır.
  • Gereksinimleri tamamlanan basit kısa projeler için uygun bir modeldir.

Dezavantajları ise;

  • Gereksinim belirlemelerinin net olmadığı durumlarda düzeltme ve güncellemeler yüksek maliyete neden olur.
  • Yazılım ekibi ürün bitene kadar ürünü çalıştırıp test edemeyeceği için hatalarla karşılaşma oranı fazladır.
  • Modelin uzun zaman gerektirdiğinden dolayı yönetici ve müşteriler için projenin bitmeyeceği algısı oluşabilir.

V Modeli

V modelinde ise şelale modelinden farklı olarak geliştirme sürecinden önce bir test planı oluşturulur. V modeli, ne istediğini bilen ve projenin gelişimi için yazılım ekibine güvenen müşterilere daha uygun bir modeldir. Projede herhangi bir değişiklik olduğunda test dokümanlarının güncellenmesi gerekmektedir. Gereksinimleri açık ve net olan küçük, orta, büyük her proje için uygun bir model türüdür.

V modelinin temel çıktıları 3 aşamadan oluşur.

  1. Kullanıcı modeli: Geliştirme sürecinin kullanıcı ile olan ilişkileri saptanır ve sistemin nasıl kabul edileceğine dair sınama ve planlar ortaya çıkarılır.
  2. Mimari model: Sistem tasarımı ve oluşabilecek alt sistem ile tüm sistemin sınama işlemleri gerçekleştirir.
  3. Gerçekleştirim modeli: Yazılım modüllerinin kodlanması ve sınanmasına ilişkin fonksiyonları barındırır. Projenin kodlanma aşamasıdır diyebiliriz.

Avantajları:

  • Planlama ve dizayn kodlamadan önce başlar.
  • Proje yönetim takibi kolaydır. Şelale modeline göre daha başarılı sonuçlar beklenir.
  • Kullanımı kolaydır.

Dezavantajları;

  • Çok esnek bir yapıya sahip değildir.
  • Yazılım, uyulama sırasında geliştirildiği için erken safhalarda prototip üretilmez.
  • Sürecin ortasında bir değişiklik olursa test dokümanlarının güncellenmesi gerekir.
  • Risk çözümleme aktiviteleri görülmez.
  • Geliştirme aşamasında gereksinimler değişiklik gösterebilir. Buna bağlı olarak planda da değişiklik olabilir.

Spiral Model

Spiral model, belli aşamalara geri dönebilecek şekilde tasarlanmıştır.Bu modelde Planlama, Risk Analizi, Üretim ve Kullanıcı değerlendirmesi gibi etkiler mevcuttur.

Bu modelde genel anlamda yapılan işlemler şunlardan oluşmaktadır:

  • Ara ürün planının yapılması, amaçların belirlenmesi.
  • Oluşabilecek risklerin araştırılmasının yapılması ve bu risklerin azaltılmasına yönelik çalışmaların yapılması.
  • Kullanıcı test ve değerlendirmeleri ile bir sonraki aşamanın planlanması.

Spiral modelde süreçlere tekrar tekrar geri dönüş yapılır. Bundan dolayı bu modele Spiral Model ismi verilmiştir. Her çevrimde ürünün yeni bir sürümü ortaya çıkmaktadır. Her çevrimde her aşama değerlendirilir.

Avantajları:

  • Her çevrimde ürünün yeni bir sürümü görülür.
  • Geliştirme küçük kısımlara ayrılır.
  • Müşteri her aşamaya etki edebilir.
  • Risk analizinin yapılması sayesinde oluşabilecek problemler azalır.

Dezavantajları;

  • İş gücü açısından oldukça maliyetlidir.
  • Geliştirici kullanımı açısından verimsiz bir süreçtir.
  • Yavaştır. Bundan dolayı kısa teslim tarihi olan uygulamalar için uygun değildir.
  • Risklerin önceden belirlenmesi gerekir.
  • Çok fazla dokümantasyon olduğu için karmaşıklık fazladır.
  • Daha çok küçük ölçekli projeler için kullanılmaktadır.

Evrimsel Model

Evrimsel modelde başlangıç gereksinimleri ile bir ilk sistem geliştirilir. Ayrıca kullanıcı geri bildirimleri de alınarak süreçte iyileştirmelere gidilir.

Küçük veya orta düzeydeki projelere daha uygun bir model olan Evrimsel Model çok büyük projelerde kullanılmaz.

Avantajları;

  • Gereksinimlerinden emin olmayan müşteriler için faydalıdır.
  • Sürekli değerlendirme, güncelleme riskleri ve hataları azaltır.

Dezavantajları;

  • Sürekli olarak yazılımda değişikliğin olması programın yapısına zarar verir.
  • Bakımı oldukça zordur.
  • Gereksinimlerin yenilenmesi gerekebilir.

Çevik Model

Yazılım ve bilgisayar mühendislerinin yazılım geliştirirken en çok kullanması gereken modeldir. Yazılımların ömrünü uzatan, daha etkin bir performans göstermesini sağlayan modeldir.

Çevik model ilkeleri şunlardan oluşur:

  • En önemli öncelik yazılımın belirlenen zamanda bitirilmesi ve devamlılığı sağlanarak müşteriye teslim edilmesidir.
  • Değişen gereksinimler yazılım sürecinin son aşamasında bile kabul edilmelidir.
  • Çalışan yazılım bir kaç haftada ya da bir kaç ayda bir düzenli olarak müşteriye sunulmalıdır.
  • İş sürecinin sahipleri ve çalışan programcılar/mühendisler proje boyunca daima birlikte çalışmalıdırlar.
  • Projenin temelinde motive olmuş bir ekip olmalıdır.
  • Bir yazılım projesi sürecinde en önemli iletişim türü yüz yüze iletişimdir.
  • Çevik süreçler projede sürdürülebilir geliştirmeyi teşvik eder.
  • Teknik olarak mükemmel olmak ve iyi tasarım çevik sürecin şartlarındandır.
  • Yazılımda sadelik son derece önemlidir.
  • Takım, düzenli aralıklarla nasıl daha etkili ve verimli olabileceğinin üzerinde düşünür ve davranışlarını buna göre ayarlar ve düzenler.

Çevik model yazılım yaşam döngüsünün ilk adımından son adımına kadar bu ilkeleri taşıyarak yazılım ürünün son derece kaliteli biçimde olmasını sağlar. Bu model ile yazılım ürünleri müşteriye belirlenen zamanda istenilen performansı sağlayacak biçimde teslim edilir.

Yazılım projelerinizin büyüklüğüne göre bu süreç modellerinden birini veya birkaçını tercih ederek planlamadan bakıma kadar olan süreçte sisteme entegre edebilirsiniz. Bu sayede hem daha verimli bir iş çıkaracaksınız hem de başarılı sonuçlar alarak proje devamlılığını sağlayacaksınız.

Yunus Emre Haşlak

Karadeniz Teknik Üniversitesi'nde Yazılım Mühendisliği lisans eğitimime devam etmekteyim. Aynı zamanda 2017'den beri çeşitli platformlarda yazarlık / editörlük yapmaktayım. Günümüzde ise bu yazarlık serüvenimi Mühendis Çekmecesi sayfasında alanımla ilgili faydalı içerikler üreterek devam ettiriyorum.

İlgili Makaleler

Başa dön tuşu
Kapalı