Merhaba arkadaşlar,
Bu yazımızda yazılım geliştirme modelleri nelerdir, avantajları dezavantajları nelerdir, nerelerde kullanılır bunlardan bahsedeceğiz.
Yazıya başlamadan önce belirtmeliyim ki normalde her biri bir makaleden oluşacak biçimde konular olduğundan tümüne kısa kısa değinip bilgi vermeyi tercih ettim.Detaylı bir araştırma ile daha fazlasına erişebilirsiniz.Yazılım süreç modelleri olarak belirtilen ve bir uygulama geliştirirken uygulama çeşidine göre yolumuzu çizen modeller mevcuttur. Bunlar geçmişten günümüze gerek proje, gerek dökümantasyonda rol oynamışlardır. Başlıca isimleri;
1.Kodla-Düzelt Modeli
2.Araştırma Tabanlı Model
3.Barok Modeli
4.Gelişi Güzel Model
5.Çağlayan Modeli
6.V Modeli
7.Prototipleme
8.Helezonik (Spiral) Model
9.Evrimsel Geliştirme Modeli
10.Artımsal Geliştirme Modeli
Yukarıda yer alan modeller hakkında tek tek inceleme yapalım ve hepsine açıklama getirmeye çalışalım. İlk model olan kodla – düzelt modelinden başlayabiliriz.
1.Kodla-Düzelt Modeli
Çoğunlukla öğrenci projelerinde kullanılan herhangi yöntem içermeyen, dökümantasyon gerektirmeyen proje türüdür. Çoğunlukla sonuç olarak spagetti kod elde edilir.
2.Araştırma Tabanlı Model
Araştırma tabanlı model çoğunlukla proje ödevleri, yarışma projeleri, TUBITAK,KOSGEB projeleri gibi sistemlerde kullanılır. Proje sonunda ulaşılacak sonuç belli değildir ve bu sebepten dolayı kesin bir maliyet hesabı yapmak mümkün değildir. Proje ile ilgili sonuç dışında bittikten sonra pek bir işlevi olmaz. Sınırlı sayıda üretimi olur. Yap-At tarzı proje olarak da isimlendirilebilir. Bu tip projeye örnek olarak “En hızlı çalışan Asal Sayı bulma uygulaması” gibi bir örnek verilebilir.
3.Barok Modeli
Bu yazılım süreç modeli genellikle 70’li yıllarda kullanılan, adından da anlaşılacağı üzere ilkel bir modeldir. Bu süreç modeli için bilmemiz gereken kısım “Belgeleme” bu model için ayrı bir süreç gibi işlenir. Barok modeli Gerçekleştirim döngüsüne ağırlık verir.
4.Gelişi Güzel Model
Gelişi güzel model 60’lı yıllarda ortaya çıkan bir süreç modelidir. Bu süreç modeli daha çok tek kişilik projelerde kullanılan bir modeldir. Bu model ile oluşturulan uygulamaların çoğunda bakım zor ve okunurluk düşür olur.
5.Çağlayan(Şelale) Modeli
Çağlayan süreç modeli daha çok iyi tanımlı ve üretimi kısa süren projeler için uygundur. Barok ile arasında kıyas yapıldığında bu süreçte belgeleme daha kısa bir süreç olarak tutulur.Adımlar incelendiğinde bir adım bitmeden bir sonrakine geçilmez.
Avantajları
•Birimlere bölünmüştür.
•Gereksinim adımı tamamlandıktan sonra temel oluşur.
•Erken iş yapılır.
Dezavantajları
•Projede bir aksaklık bulunduğunda fazla geri dönüş bulunduğundan iki ya da daha fazla geri dönüşlerin maliyeti çok fazladır.
•Bir kısım bitmeden diğer kısıma geçmek risklidir.
6.V Modeli
V modeli yukarıdaki gibi şematize edilebilir. Bu modelin uygulanabileceği projeler için belirsizlik az, iş tanımlarının kesinlikle belirgin olması gerekir. Bu tip süreç modelinde kullanıcının sistem gelişiminde katkısı vardır. V yazılım geliştirme süreç modeli doğrulama ve geçerlemeyi vurgular.
Avantajları
•Takibi kolay sistem.
•Kullanımı kolay bir sistem.
Dezavantajları
•Aşamalarda tekrar yok.
•Risk çözümleme yok.
7. Prototipleme
Prototipleme yazılım süreç modelinde amaç isminden de anlaşılacağı gibi prototip üretip geliştirmektir. Gereksinimlerin doğru anlaşılması bu süreç için çok önemlidir. Bu modelde Hızlı plan, Hızlı Tasarım, Hızlı kodlama ön plandadır.
Avantajları
•Karmaşa ve yanlış anlaşılmayı engeller
•Yeni gereksinimlere açıktır.
•Risk kontrolü var.
Dezavantajları
•Belgeleme olmayan hızlı ve kirli prototipler oluşur.
•Hedefler net değilse güvenlik açığı problemi oluşur.
•Düzeltme adımı atlanırsa düşük performansa neden olabilir.
8. Helezonik (Spiral) Model
Helezonik modelin üzerinde durduğu en temel konular risk analizi ve prototip üretmedir. Her döngü öncesinde içerisinde bulunan bölümün risk analizi yapılır. Her döngü sonunda yeniden planlama yapılarak kısıt, ister ve hedefler yeniden hesaplanır. Bu model, önceden geliştirilmiş yazılım bileşenlerinin yeniden kullanıldığı projeler için çok uygundur. Helezonik modelin en büyük getirisi risk analizinin detaylı ele alınmasıdır. Bu nedenle zaman ve maliyet daha kolay hesaplanabilir. Özellikle güvenlik yazılımlarının oluşumunda bu model kullanılmaktadır.
Avantajları
•Kullanıcı sistemi daha erken görebilir.
•Parçalara böler, önce risk taşıyanı çözer.
•Pek çok yazılım modelini içinde barındırır.
•Hataları erken giderme şansı tanır.
Dezavantajları
•Küçük ve düşük riskli projeler için oldukça pahalı bir sistemdir.
•Kompleks bir yapıya sahiptir.
•Fazla dökümantasyon oluşur.
9.Evrimsel Geliştirme Modeli
Tam olarak “ne istediğimi bilmiyorum ama görsem tanırım” modeli olarak belirlenebilir. Diğer modeller ile kıyaslandığında ilerleyişi daha yavaştır. Modelin tamamının başarımı geçirdiği ilk evrimin başarısına bağlıdır.
Avantajları
•Gereksinimi anlamayı kolaylaştırır.
•Risk az.
•Hata az.
Dezavantajları
•Bakım zor.
•Düzenli ürün oluşumu yok.
•Gereksinimi sürekli yenilemek gerekebilir.
10.Artımsal Geliştirme Modeli
Bu model tipi ürünler üretilirken çekirdek yapı korunarak ürün geliştirilir. Uzun zamanlı projeler için eksikler çıktıkça yama yapmak tipindeki projeler için uygundur. Kullanım ve üretim eş zamanlıdır.
Avantajları
•Başarısızlık riski az.
•Sistem fazla sınanır.
•Böl-Yönet tarzında sisteme uygundur.
Dezavantajları
•Deneyimli personel gerektirir.
•İyi tanımlama gerektirir.
•Tekrar yoktur.
Böylece on çeşit yazılım yaşam döngüsü modelinden bahsetmiş olduk. Soru ve yorumlarınız için aşağıyı kullanabilirsiniz.
Teşekkürler!