SDLC Nedir? SDLC Süreçleri ve Modelleri

Osman Doğan
4 min readDec 1, 2022

SDLC, yazılım ve geliştirme denince akla gelen ilk kavramlardan bir tanesidir. Bu yazıda, yazılım dünyasının olmazsa olmazlarından biri halline gelen bu kavramı detaylı bir şekilde ele alacağız. SDLC nedir, SDLC hangi süreçlerden oluşur ve en çok kullanılan SDLC modelleri hangileridir gibi daha pek çok soruya yanıtlar vermeye çalışacağız.

SDLC Nedir?

SDLC, yüksek kaliteli yazılımlar tasarlamak, geliştirmek ve test etmek amacıyla geliştirilen süreçlerin bütününe verilen isimdir. Yazılım geliştirmeyi daha sistematik ve verimli hale getirmek için tasarlanmış SDLC kavramının açılımı ‘Software Development Life Cycle’ şeklindedir, ki bu Türkçe’ye ‘Yazılım Geliştirme Yaşam Döngüsü’ şeklinde çevirilebilir.

SDLC, müşterinin ihtiyaçlarına ve beklentilerine cevap veren yazılımı, belirlenen bütçeye uygun olarak, belirlenen zaman dilimi içerisinde geliştirebilmek amacıyla tasarlanmıştır. SDLC, her biri detaylı bir şekilde tanımlanan çeşitli süreçlerden meydana gelir. Bu süreçler ve bu süreçler ile ilgili roller, bir yazılım geliştirme işlemi için organize olmuş ekipler tarafından hayata geçirilir.

SDLC Neden Önemli? SDLC’nin Faydaları

SDLC, yazılım geliştirme sürecine oldukça önemli faydalar sunar. Bu faydalardan bazılarını şu şekilde sıralamak mümkün;

  • İşleyişin detaylı bir şekilde belirlenmesini geliştirme sürecinin standart bir çerçeveye oturmasını sağlar.
  • Bir projenin daha belirgin çizgilerle planlanabilmesine olanak sağlar.
  • Proje takibini ve kontrolünü daha kolay bir hale getirir.
  • Zamanın daha verimli bir şekilde kullanılmasına yardımcı olur.
  • Geliştirme sürecini, tüm paydaşlar için daha şeffaf ve gözle görülür bir hale getirir.
  • Müşteri ile olan ilişkiyi güçlü hale getirir.
  • Projedeki riskleri en aza indirir.
  • Proje giderlerini ve genel maliyeti azaltır.
  • Ekipler arasındaki işbirliğini ve iletişimi güçlendirir.

SDLC Süreçleri

SDLC, sonaraki yazılarımızda daha detaylı bir şekilde ele alacağımız, bir takım süreçlerden meydana gelir. Bu süreçleri temel olarak şu şekilde sıralamak mümkündür;

Planlama ve İhtiyaç Analizi (Planning and Requirement Analysis)

İhtiyaç analizi SDLC’nin en önemli ve temel aşamasıdır. Ekibin deneyimli üyeleri tarafından, müşteriden gelen talepler, pazar araştırmalar, satış departmanı ve sektördeki uzmanların görüşleri doğrultusunda gerçekleştirilir. Bu çalışmalardan elde edilen bilgiler daha sonra, projeyi detaylı bir şekilde planlamak, teknik alandaki fizibilite çalışmalarını yapmak, zaman, maliyet ve operasyonel konularda bir takım bilgileri olabildiğince netleştirmek amacıyla kullanılır.

Kalite gereksinimlerinin ve proje ile ilgili risklerin belirlenmesi de bu aşamada yapılır. Aynı şekilde teknik fizibilite çalışmalarının sonucuna bağlı olarak, proje ile ilgili risklerin en aza indirilebilmesi için proje boyunca izlenecek olan teknik yaklaşımlar da aşamada ele alınır.

Gereksinimleri Tanımlama (Defining Requirements)

İhtiyaç analizi gerçekleştirildikten sonra bir sonraki aşamaya, yani gereksinimleri tanımlama aşamasına geçilir. Bu aşamda, daha önce belirlenen, proje boyunca ihtiyaç duyulacak gereksinimlerin ve kaynakların detaylı bir şekilde tanımlanması ve dökümantasyonu yapılır. SRS (Software Requirement Specification) olarak isimlendirilen bu döküman, müşteri/paydaş onayına sunulur. Bu dökümanda, geliştirilecek olan yazılımın işlevleri ve özellikleri gibi bilgiler de bulunur.

Ayni şekilde BRD (Business Requirement Document) ve FRD (Functional Requirement Document) bu aşamada hazırlanır. Her iki döküman da en basit User Case’lere kadar hazırlanır.

Ürün Mimarisinin Tasarlanması (Designing The Product Architecture)

Bu aşamada, ürünün mimarisi tasarlanır. SRS dökümanında yer alan bilgiler ışığında gerçekleşen bu aşamada beklenti ve ihtiyaçlara en uygun şekilde cevap verebilecek birden fazla tasarım yaklaşımı ortaya çıkar. Süreç sonunda, önerilen tasarımla ilgili spesifikasyonların yer aldığı DDS (Design Document Specification) isimli bir döküman oluşturulur.

Bu döküman tüm paydaşlar tarafından incelenir. Riskler, engeller, kısıtlama ve işlevsellik gibi çeşitli parametreler göz önünde bulundurularak, ürün için en iyi tasarım yaklaşımı seçilir. Bir tasarım yaklaşımı, ürünün tüm mimari modüllerini, varsa harici ve üçüncü taraf modülleri ile veri akışı biçimini açık bir şekilde ortaya koyar. Önerilen mimarinin tüm modüllerinin iç tasarımı, DDS’deki en küçük ayrıntılarla açıkça tanımlanmalıdır.

Ürünü Geliştirme (Developing the Product)

Bu aşama, ürünün yazılımcılar tarafından geliştirilemeye başlandığı aşamadır. Program, DDS’de yer alan şekilde kodlanmaya başlanır. Ürünün tasarımı ne kadar detaylı ve organize bir şekilde yapılırsa, kodlama da o kadar kolay ve rahat bir şekilde yapılır. Geliştirme süresi boyunca çeşitli programlama araçları kullanılır. Yazılımcılar, kendilerine verilen kodlama yörüngelerini takip etmek durumundadır.

Kodlama için C, C++, Pascal, Java ve PHP gibi farklı üst düzey programlama dilleri kullanılmaktadır. Programlama dili, geliştirilmekte olan yazılımın türüne göre seçilir.

Ürünü Test Edilmesi (Testing the Product)

Bu aşama, ürün SRS’de tanımlanan kalite standartlarına ulaşana kadar hatalarının raporlandığı, izlendiği, düzeltildiği ve yeniden test edildiği aşamadır. Test aşaması genellikle tüm aşamaların bir alt kümesidir, zira test faaliyetleri çoğunlukla SDLC’nin tüm aşamalarında yer alır.

Ürünün Dağıtımı ve Bakımı (Deployment in the Market and Maintenance)

Ürün test edildikten ve kullanıma hazır hale getirildikten sonra uygun pazarda resmi olarak piyasaya sürülür. Bazen ürün dağıtımı, o kuruluşun stratejisine bağlı aşamalar halinde gerçekleşebilir. Ürün ilk önce sınırlı bir segmentte piyasaya sürülebilir ve gerçek ortamında test edildikten ve kullanıcılardan alınan dönütlerden sonra, herkese açık bir şekilde, önerilen değişimler ve geliştirmeler yapılarak piyasaya sürülebilir. Bu aşamadan sonra, kullanıcılar tarafından tespit edilen fakat testlerde görülmeyen bug ve hatalar gidirilemeye başlanır ki buna bakım/onarım anlamında maintenance denir.

SDLC Modelleri

Projenin ihtiyaçlarına ve gerekliliklerine göre tasarlanmış çok sayıda SDLC modeli mevcuttur. Her model, yazılım geliştirmede ihtiyaç duyulabilecek farklı gereksinimlere yönelik olarak belirlenmiş özellikler taşır.

Nitekim her yazılım birbirinden farklı özellikler taşır. Bu sebeple, SDLC modelini, geliştirilecek projeye uygun bir şeklide seçmek gerekir. Günümüzde kullanılan SDLC metodolojileri şunlardır;

  • Waterfall Model
  • V Model
  • Spiral Model
  • Agile Metodoloji
  • Scrum Metodoloji
  • Kanban
  • Iterative Model
  • DevOps
  • Big Bang Model
  • RAD (Rapid Application Development)
  • Lean Metodoloji

Bu yazıda, SDLC Nedir? SDLC Modelleri ve Metodolojileri Nelerdir? SDLC Süreçleri Nelerdir? gibi bazı sorulara cevap verdik. Gelecek yazılarda, SDLC model ve metodolojilerini tek tek incelemeye çalışacağız.

--

--