Geliştirme Metotları

Program Yazma

Software development concept in tag cloud

Uygulama aşamasının kodlama kısmında C++, C#, Objective-C, PHP, ve ASP.NET gibi kodlama dillerinden birini bu bilgi sistemini oluşturmak için bilmesi gereklidir.

 

Sistem Yaşam Döngüsü

Oluşturulan sistemde, üretim aşaması ve kullanım süreci boyunca geçirdiği tüm aşamalar   “ Yaşam Döngüsü” olarak tanımlanır. Sistemin üretilmeye başlandığı andan itibaren işlevsellik ile gereksinimleri sürekli değişecek ve bu değişiklikler de sistemin genişlemesine neden olacaktır. Dolayısı ile, bu aşamalar bir döngü olarak ele alınmak zorundadır. Bu döngü doğrusal ve tek bir yöne ilerleyen bir döngü değildir çünkü herhangi bir aşamada geriye dönmek, geliştirmeyi yapmak ve tekrar ilerlemek mümkündür.

progrma geliştime.jpg

Sistem geliştirmede beş temel aşama vardır. Bunlar şöyle sıralanabilir;

  • Analiz
  • Tasarım
  • Kodlama
  • Test
  • Entegrasyon

Geliştirme Metodu Nedir ve Amacı

Geliştirme metodu yazılım aşamasında kullanılabilir. Günümüzde yazılım sektörü gözle görülür bir şekilde gelişmektedir. Bununla birlikte var olan model ve yöntemler de gelişmekte ve yeni modeller ortaya çıkmaktadır.

Uygun yazılım geliştirme modelleri kullanılması, yazılımın daha emniyetli, doğru, anlaşılabilir, test edilebilir ve bakım yapılabilir olarak geliştirilmesinde çok önemli rol oynar. Daha emniyetli yazılımların daha kısa sürede, daha az bütçeyle ve en önemlisi daha az hatayla geliştirilmesi için sürekli yeni teknolojiler ve modeller bulunmaya çalışılmaktadır.

Sistem yaşam döngüsü kısmında kısaca  sistem geliştirmede kullanılan temel adımlardan bahsetmiştik. Bu aşamaları nasıl gerçekleştireceğimize yönelik çeşitli modeller kullanabiliriz. Model, yazılım geliştirme faaliyetinin nasıl yapılacağına, genel geliştirme düzeninin nasıl olacağına dair bir kılavuzdur. Belli başlı yazılım geliştirme modelleri aşağıdaki gibi sıralanabilir:

  • Gelişigüzel Geliştirme
  • Barok Modeli
  • Şelale (Waterfall) Modeli
  • Helezonik (Spiral) Model
  • Arttırımsal (Incremental) Geliştirme Modeli
  • Döngüsel Model
  • Çevik (Agile) Yazılım Geliştirme Metodları

Gelişigüzel Geliştirme Modeli

Aslında bu yöntemi bir model olarak adlandırmak yanlış olur.Çünkü, gelişigüzel geliştirme yönteminde belirlenmiş bir model ya da yöntem bulunmaz. Genellikle kişiye bağlı yazılım geliştirme şeklinde yapılır. Bu yüzden yazılımın izlenebilirliği, bakım yapılabilirliği oldukça zordur. Bu yöntem 1960’lı yıllarda kullanılmıştır, genellikle basit programlama içerir ve çoğunlukla tek bir kişinin üretim yaptığı yöntemdir.

Barok Modeli

1970’li yıllarda ortaya çıkmıştır.  Yaşam döngüsü temel adımları doğrusal bir şekilde ele alınır ve geliştirilir. Aşamalar arasında  geri dönüşler sağlanmamıştır. Bu modelde, belgeleme günümüz modellerinden farklı olarak ayrı bir süreç olarak ele alınır ve yazılımın geliştirme ve test faaliyetleri tamamlandıktan sonra yapılmasını öngörür. Günümüz yazılım geliştirme projelerinde uygulanan bir model değildir.

Şelale(Waterflow) Modeli

Şelale

Günümüzde geleneksel model olarak da biline waterflow modeli, yaşam döngüsü temel adımları baştan sona en az bir kez izleyerek gerçekleştirilir.Üretimi için az zaman gerektiren projelerin tercih ettiği bir modeldir.Günümüzde kullanımı giderek azalmaktadır.

Çünkü bu modelin birçok dezavantajı vardır. Bunlar şöyle sıralanabilir;

  • Gerçek yasamda yazılımlar yazılımlar yinelemeler gerektirebilir.
  • Waterflow modelinde, yazılımın son kullanıcıya ulaşması genel olarak uzun bir zaman alır.Bu durum, hem müşteri de hem de projenin geliştirildiği kurumun üst yönetiminde  memnuniyetsizlik oluşturabilir.
  •  Kullanıcı, yazılımın geliştirilme aşamasında sürecin içerisinde genellikle yer almaz ve bu durum yazılım tamamlandıktan sonra geri dönüşleri arttırabilir. Bu geri dönüşler, yazılım geliştirme maliyetini büyük oranda yükselten bir durumdur.

Eğer hatalar tasarım aşamasında fark edilirse, bu hatalar küçük bir maliyet ile halledilir. Ancak hataların entegrasyon veya bakım aşamalarında fark edilirse, hataları çözmek için daha fazla maliyet gerekmektedir.

Helezonik (Spiral) Model

helezonik

Spiral geliştirme modeli dört ana bölüm içerir. Bunlar planlama, risk yönetimi, üretim ve kullanıcı değerlendirmesidir.

  • Planlama aşamasında, üretilecek ara ürün planlanması, hedef belirleme, bir önceki adımda üretilmiş ürün ile bütünleştirme sağlanır.
  • Risk yönetiminde, seçenekler değerlendirilir ve risk analizi yapılır.
  • Üretim aşamasında, ara ürün üretilir.
  • Kullanıcı değerlendirme kısmı, ara ürün hakkında kullanıcı tarafından yapılan testler ve değerlendirmeler yapılır.

Spiral model bir çok avantaj içerir. Bunlardan şöyle sıralanabilir;

  • Üretim süreci boyunca, ara ürünü değerlendirirken ve test ederken kullanıcının aktif olması, kullanıcının sistemi erkenden tanımasına yardımcı olur ve ilerde oluşacak istemeyen durumları en aza indirger.
  • Bu modelde yöneticiler ve proje sahipleri daha çok karşılaşma olanağı sağlarlar. Böylece projenin izlenimi daha kolay izleme ve hak ediş planlaması yapılır.
  • Bu modelde yazılım kodlanması ve sınanması daha erken başlar.
  • Yinelemeli bir yaklaşım vardır. Buda hataları daha aza indirger.

Artırımsal(Incremental) Geliştirme Modeli

artırımsal

Artırımsal model, yazılımın küçük parçalara ayrılarak döngüsel olarak geliştirir. Proje süresi, döngü olarak tanımlanan küçük zaman dilimlerine bölünür. Proje bir çok döngüden oluşur. Her döngünün sonunda, projeye ait planlanmış çıktılar elde edilir ve yazılıma yeni fonksiyonlar eklenir. Bu sayede yazılım artırımsal olarak geliştirilir.

Artırımsal modelin en önemli avantajlarından biri, projenin ilk safhalarında elde edilen çıktıların projenin ilerleyen aşamalarında değişikliğe uğraması halinde bile büyük bir maliyete neden olmadan bu değişikliklerin yapılabilir olmasıdır.

Bu modelde her döngü, tasarım, kodlama, test ve entegrasyon süreçlerini içerir.

Uzun zaman alabilecek ve döngüler halinde geliştirilmeye açık projelerde kullanılabilir.

Döngüsel Model

iterative_model.png

Döngüsel model arttırımsal model ile birçok benzer noktası vardır. Döngüsel yazılım geliştirme modeli, proje yaşam döngüsündeki tüm süreçleri içeren döngülerden oluşur. Artırımsal modelden farkı döngülerin içerdiği süreçlerdir. Artırımsal modelde, her döngüde tasarım, kodlama, test ve entegrasyon süreçleri bulunurken döngüsel modelde planlamadan başlayarak tüm proje süreçleri kapsar.

Döngüsel modelin de artırımsal modeldeki gibi en büyük avantajı projenin ilerleyen aşamalarında gerek duyulan değişikliklerin gerçekleştirilmesi için çok az maliyet gerekmesidir.

Günümüzde en etkili model, döngüsel ve artırımsal modellerin birleştirilmesi ile oluşan “Artırımsal Döngüsel Model” olarak söylenebilir. Böyle bir modelde, her bir döngüde geliştirilen fonksiyonu  bir sonrakine aktarabilmek için son aşamadan ilk aşamaya geri bildirim yapılır. Dolayısı ile, her iki modelin avantajları birleştirilmiş olur.

Çevik Yazılım Geliştirme Metodu

1990’lı yıllarda geliştirilmeye başlanmıştır.Bu metot döngüler içerir ancak döngüler kısa ve saysı fazladır.

Bu metotlar, doküman üretiminin yazılım geliştirme zamanını uzattığına inandığı için doküman üretme yerine yüz yüze görüşmelere ağırlık verir.

Döngüler sonucunda ortaya çıkan yazılım birimleri  değerlendirilir ve yapılan her yorum yeni bir versiyon olarak yazılıma eklenir.

Çevik yazılım geliştirme metotunun bir çok avantajı vardır. Bunları şöyle sıralayabiliriz;

  • Değişikliklerin yazılıma uyarlanmasındaki hızlıdır.
  • Bu hız sayesinde değişikliklerin yazılıma yansıtılma maliyetleri çok düşüktür.
  • Döngülerin kısa olması ve dokümantasyonun çok az olması bu modelin uygulandığı projelerin zaman ve efor maliyetlerinin çok düşük olmasını sağlar.
  • Her döngüde müşteri katılımı yoğun olduğu için müşteri memnuniyeti  yüksektir.
  •  Çevik metotlar gereksinimleri karşılamayan yazılım geliştirme riskini azaltır.

 

Referanslar