Yazılım Geliştirme Yaşam Döngüsü (SDLC) Nedir?
Yazılım Geliştirme Yaşam Döngüleri (SDLC’s), bir yazılım geliştirme sürecinin nasıl ilerleyeceğini ve ne tür aşamalardan geçeceğini gösteren veya bir yazılımın doğumundan ölümüne kadar izlemesi gereken rotayı gösteren standartlaşmış yapılardır.
Popüler yazılım geliştirme yaşam döngülerine Agile, Waterfall, V model, Spiral model, RAD modeli örnek verilebilir.
Yazı dahilinde ele alacağım modellerse şunlar olacak:
- Agile (Çevik) Model
- Code&Fix (Kodla & Düzelt) Modeli
- Waterfall (Şelale) Model
- V-Shaped Model
- Iterative (Yinelemeli) Model
- Incremental (Artımlı) Model
- Spiral Model
- Prototyping (Prototipleme) Modeli
- Rapid Application Development (RAD) Model
- Waterfall Iterative Model
Agile (Çevik) Model
Çevik (Agile) model, müşteri memnuniyetini ön planda tutan, yazılım geliştirme sürecindeki zorlukları basitleştirmeyi, yazılımın erken ve devamlı teslimini sağlamayı amaçlayan bir modeldir. Çevik model yazılım geliştirme sürecindeki dökümantasyon yükünü minimize ederek yazılımın hızlı teslimini de sağlar.
Agile metodunun amaçlarını ve özelliklerini şu şekilde sıralayabiliriz:
- Müşteri memnuniyetini sağlamak
- Projenin erken ve devamlı teslimini sağlamak
- İş sahipleriyle ve yazılımcı ekibin beraber çalışmasını teşvik etmek
- Müşteri ve yazılımcı arasında yüz yüze iletişim sağlatmak
- Çalışan yazılımın kısa aralıklarla, devamlı bir şekilde müşteriye sunulmasını sağlamak
Code & Fix (Kodla & Düzelt) Modeli
Code & Fix, yazılımcının ya da yazılımcıların bir projeyi çoğunlukla herhangi bir plana bağlı kalmadan kodladığı ve ardından karşılaştığı sorunları düzelterek ilerlediği bir yazılım geliştirme yaşam döngüsü modelidir.
Kodla & Düzelt modelinde yazılımcılar, bir projeye organize olmadan ve plan yapmadan başlarlar. Planlama ve hazırlık eksikliğinden dolayı karşılaşılan sorunları da çözerek ilerlerler. Kodla & Düzelt modeli yeni yazılımcılar arasında oldukça sık kullanılan bir modeldir.
Waterfall (Şelale) Modeli
Waterfall (Şelale) modelinde yazılım geliştirme süreci, planlama, analiz, tasarım gibi belirli süreçlere bağlı olarak ilerler. Proje geliştirilirken her bir süreç belirli bir sırayla uygulanır ve süreçlerde geriye dönülemez. (Waterfall ismi buradan geliyor olabilir)
Waterfall modeli sunulan ilk süreç modelidir ve yazılımcılar arasında yaygın olarak bilinir. [2, 3] Bu modelde aşamalara geri dönülemediğinden ötürü pek uygulanabilir değildir. Genellikle askeri sistemlerde kullanılır.
Waterfall modelinde yazılım geliştirilirken şu aşamalardan geçilir:
- Planlama
- Analiz
- Tasarım
- Gerçekleştirme
- Kurulum
- Bakım
Waterfall modelinde her bir aşamanın uygulanması, bir önceki aşamanın tamamlanmasına bağlıdır.
V-Shaped (V-Biçimli) Model
V-Shaped model, aşamaların V biçiminde ilerlediği Waterfall modelinin bir başka şeklidir. V-Shaped model genel olarak onaylama ve kabul süreçlerinden geçer. Onay Bu iki süreç V harfinin iki kolunu oluşturur. Waterfall’daki gibi tamamlanmış aşamalara dönüş yapılamaz. Her işlemin devamlılığı bir önceki işlemin tamamlanmasına bağlıdır.
V-Shaped modelde, geliştirilecek yazılımın gereksinimleri, gerekli teknolojiler ve araçlar, iyi şekilde bilinir. [3] Ayrıca Waterfall modelinin aksine test aşamaları erken yapılır. [3]
Iterative (Yinelemeli) Model
Iterative (Yinelemeli) model, yazılım geliştirme sürecinde işlemlerin küçük döngülerle ilerlediği bir modeldir. Waterfall modelinin eksikliklerini kapatmak amacıyla geliştirilen Iterative model, ufak bir planlamayla başlar ve küçük parçalara bölünmüş süreçlerin tümünün tamamlanmasıyla son bulur.
Iterative modeldeki alt süreçlerin tamamlanması sonrasında karşılaşılan problemler, öğrenilen bilgiler yeni süreçlerde yol gösterici olur. Böylelikle olası problemlerin önüne büyük oranda geçilebilir.
Iterative modeldeki alt süreçler, Waterfall aşamalarına benzer aşamalardan oluşur.
Incremental (Artımlı) Model
Incremental (Artımlı) model, gereksinimlerin - Iterative modelde olduğu gibi- küçük yapılara bölündüğü, her yapının kendi içerisinde aşamalara sahip olduğu bir yazılım geliştirme yaşam döngüsü modelidir.
Incremental modelde aşamalar kolayca yönetilebilen modüllere bölünür. [2] Her modül, gereksinim analizi, tasarım, uygulama ve test aşamalarından geçer. [2] Yazılım geliştirme süreci sistem tamamlanana kadar devam eder.
Reklam
Spiral Model
Spiral model, genel olarak risk analizi üzerine yoğunlaşmış, çoğunlukla büyük çaplı ve maliyeti yüksek projelerde tercih edilen bir yazılım geliştirme modelidir. Spiral model, Incremental, Prototyping ve Waterfall modellerinin karması gibidir.
Spiral model genel olarak risk analizine odaklanan 4 aşamadan oluşur:
- Planlama
- Risk Analizi
- Mühendislik
- Değerlendirme
Prototyping (Prototipleme) Modeli
Prototyping (Prototipleme) modeli, bir sistemin geliştirilmesindeki gereksinimleri analiz etmek, ihtiyaçları tespit etmek amaçlı bir prototipin üretildiği yazılım geliştirme yaşam döngüsü modelidir.
Prototipleme modelinde, bir yazılımın kabataslak ne durumda olacağı müşteriye gösterilir. Böylelikle müşterinin isteklerinin ve ihtiyaçlarının neler olduğu rahatlıkla belirlenebilir.
Bir yazılımın prototipi başlıca olması gerekenden oldukça basittir ve eklenmesi gereken pek çok işlev eklenmemiştir. Çünkü prototiplemenin asıl amacı işlevsel bir sistem ortaya koymaktır. [3]
Rapid Application Development (RAD) Modeli
Rapid Application Development (RAD), modeli, her aşamanın ardından müşteri dönütünün gerektiği, planlama ve ihtiyaçların sürecin başında belirlendiği, adından da anlaşılacağı üzere hızlı uygulama geliştirmeyi amaçlayan bir SDLC modelidir.
RAD modeli 5 aşamadan oluşur ve her aşamada müşterinin geri bildirimi gerekir.
- İş modelleme
- Veri modelleme
- Süreç modelleme
- Uygulama geliştirme
- Test
RAD modelinde müşteri isteklerine hızlı dönüt verildiğinden dolayı sistem hızlıca bitmesi gerektiği yerde uzayabilmektedir. Çünkü müşteriden alınan her dönüt ve talebin uygulanması yeni bir isteğin doğmasıyla sonuçlabilir ki haliyle iş çığırığından çıkabilir.
Waterfall Iterative (Yinelemeli Şelale) Model
Waterfall Iterative (Yinelemeli Şelale) modeli, Waterfall modelindeki aşamaların uygulandığı ve gerektiği yerde önceki adımlara geri dönülebildiği bir SDLC modelidir.
Bu modelde aşamalar ilerledikçe geriye dönmek oldukça maliyetli ve zahmetli olur. Waterfall Iterative modelinin aşamalarıysa şunlardır:
- Fizibilite çalışması
- Gereksinim analizi
- Tasarlama
- Kodlama
- Test
- Bakım
Yazılım geliştirme yaşam döngüsü (SDLC) modelleri bir yazılımın geliştirilme sürecinde yazılımcılara rota çizen standartlaşmış yapılardır. Her model birbirine benzediği kadar pek çok yönden de ayrışmaktadır. SDLC modellerinden bazıları hızlı teslime odaklanırken bazıları müşteri memnuniyetine odaklanabilir.
Bu yazımda Software Development Life Cycle (SDLC) modellerinin neler olduğunu, ne amaçlarla kullanıldığını, ne tür aşamalardan oluştuğunu ele aldım. Umarım faydalı olmuştur. Diğer yazılarımda görüşmek üzere.
İlk yorumu paylaşan siz olun.