sdlc phases
Yazılım Geliştirme Yaşam Döngüsü (SDLC) nedir? SDLC Aşamalarını, Metodolojilerini, Süreci ve Modelleri öğrenin
Yazılım Geliştirme Yaşam Döngüsü (SDLC), her aşamada yazılımın geliştirilmesiyle ilgili adımları tanımlayan bir çerçevedir. Yazılımın oluşturulması, dağıtılması ve bakımı için ayrıntılı planı kapsar.
SDLC, eksiksiz geliştirme döngüsünü, yani bir Yazılım Ürününün planlanması, oluşturulması, test edilmesi ve dağıtılmasına ilişkin tüm görevleri tanımlar.
Ne öğreneceksin:
- Yazılım Geliştirme Yaşam Döngüsü Süreci
- SDLC Döngüsü
- SDLC Aşamaları
- Yazılım Geliştirme Yaşam Döngüsü Modelleri
- Sonuç
Yazılım Geliştirme Yaşam Döngüsü Süreci
SDLC, yüksek kaliteli bir ürün sunmak için yazılımın geliştirilmesiyle ilgili çeşitli aşamaları tanımlayan bir süreçtir. SDLC aşamaları, bir yazılımın, yani ürünün başlangıcından kullanımdan kaldırılmasına kadar olan tüm yaşam döngüsünü kapsar.
SDLC sürecine bağlılık, yazılımın sistematik ve disiplinli bir şekilde geliştirilmesine yol açar.
Amacı:
SDLC'nin amacı, müşterinin ihtiyacına göre yüksek kaliteli bir ürün sunmaktır.
SDLC, aşamalarını Gereksinim toplama, Tasarım, Kodlama, Test ve Bakım olarak tanımlamıştır. Ürünü sistematik bir şekilde sağlamak için aşamalara uymak önemlidir.
Örneğin, Bir yazılım geliştirilmeli ve bir ekip ürünün bir özelliği üzerinde çalışmak üzere bölünmüş ve istedikleri gibi çalışmasına izin verilmiş. Geliştiricilerden biri önce tasarım yapmaya karar verirken, diğeri önce kodlamaya, diğeri ise dokümantasyon kısmına geçer.
Bu, beklenen bir ürünü sunmak için ekip üyeleri arasında iyi bir bilgi ve anlayışa sahip olmak gerektiğinden proje başarısızlığına yol açacaktır.
SDLC Döngüsü
SDLC Döngüsü, yazılım geliştirme sürecini temsil eder.
Aşağıda, SDLC döngüsünün şematik gösterimi bulunmaktadır:
SDLC Aşamaları
Aşağıda çeşitli aşamalar verilmiştir:
- Gereksinim toplama ve analizi
- Tasarım
- Uygulama veya kodlama
- Test yapmak
- Dağıtım
- Bakım
# 1) Gereksinim Toplama ve Analizi
Bu aşamada, beklentilerine göre bir ürün geliştirmek için müşteriden ilgili tüm bilgiler toplanır. Herhangi bir belirsizlik yalnızca bu aşamada çözülmelidir.
İş analisti ve Proje Yöneticisi, müşterinin inşa etmek istediği, son kullanıcı kim olacak, ürünün amacı gibi tüm bilgileri toplamak için müşteriyle bir toplantı düzenler. Bir ürünü oluşturmadan önce, ürünle ilgili temel bir anlayış veya bilgi çok önemlidir.
Örneğin, Bir müşteri, para işlemlerini içeren bir uygulamaya sahip olmak istiyor. Bu durumda ne tür işlemler yapılacağı, nasıl yapılacağı, hangi para birimiyle yapılacağı vb. Gibi gereklilik net olmalıdır.
İhtiyaç toplama yapıldıktan sonra, bir ürünün geliştirilmesinin fizibilitesini kontrol etmek için bir analiz yapılır. Herhangi bir belirsizlik olması durumunda, daha fazla tartışma için bir çağrı kurulur.
Gereksinim açıkça anlaşıldıktan sonra, SRS (Yazılım Gereksinim Belirtimi) belgesi oluşturulur. Bu belge geliştiriciler tarafından tamamen anlaşılmalı ve ayrıca ileride başvurmak üzere müşteri tarafından incelenmelidir.
# 2) Tasarım
Bu aşamada, SRS dokümanında toplanan gereksinim girdi olarak kullanılır ve sistem geliştirmeyi gerçekleştirmek için kullanılan yazılım mimarisi türetilir.
# 3) Uygulama veya Kodlama
Uygulama / Kodlama, geliştirici Tasarım belgesini aldığında başlar. Yazılım tasarımı kaynak koduna çevrilir. Yazılımın tüm bileşenleri bu aşamada uygulanır.
c ++ 1 saniye bekle
# 4) Test Etme
Test, kodlama tamamlandıktan ve modüller test için yayınlandıktan sonra başlar. Bu aşamada, geliştirilen yazılım kapsamlı bir şekilde test edilir ve bulunan tüm kusurlar, düzeltmeleri için geliştiricilere atanır.
Yeniden test, regresyon testi, yazılımın müşterinin beklentisine göre olduğu noktaya kadar yapılır. Test uzmanları, yazılımın müşterinin standardına uygun olduğundan emin olmak için SRS belgesine başvurur.
# 5) Dağıtım
Ürün test edildikten sonra, üretim ortamında veya ilk olarak devreye alınır. UAT (Kullanıcı Kabul testi) müşteri beklentisine göre yapılmaktadır.
UAT durumunda, üretim ortamının bir kopyası oluşturulur ve müşteri, geliştiricilerle birlikte testi yapar. Müşteri uygulamayı beklendiği gibi bulursa, müşteri tarafından yayına alınması için oturum kapatma sağlanır.
# 6) Bakım
Bir ürünün üretim ortamına yerleştirilmesinden sonra, ürünün bakımı, yani herhangi bir sorun ortaya çıkarsa ve düzeltilmesi gerekiyorsa veya herhangi bir iyileştirme yapılacaksa geliştiriciler tarafından ilgilenilir.
Yazılım Geliştirme Yaşam Döngüsü Modelleri
Bir yazılım yaşam döngüsü modeli, yazılım geliştirme döngüsünün açıklayıcı bir temsilidir. SDLC modelleri farklı bir yaklaşıma sahip olabilir ancak temel aşamalar ve faaliyet tüm modeller için aynı kalır.
# 1) Şelale Modeli
Şelale Modeli SDLC'de kullanılan ilk modeldir. Doğrusal sıralı model olarak da bilinir.
Bu modelde, bir aşamanın sonucu, bir sonraki aşamanın girdisidir. Bir sonraki aşamanın geliştirilmesi ancak önceki aşama tamamlandığında başlar.
- Öncelikle ihtiyaç toplama ve analizi yapılır. Gereksinim donduğunda, yalnızca Sistem Tasarımı başlayabilir. Burada, oluşturulan SRS belgesi Gereksinim aşamasının çıktısıdır ve Sistem Tasarımı için bir girdi görevi görür.
- Sistem Tasarımı Yazılım mimarisi ve Tasarımında, bir sonraki aşama için girdi görevi gören belgeler, yani Uygulama ve kodlama oluşturulur.
- Uygulama aşamasında kodlama yapılır ve geliştirilen yazılım bir sonraki aşamanın girdisi yani testtir.
- Test aşamasında, geliştirilen kod, yazılımdaki kusurları tespit etmek için kapsamlı bir şekilde test edilir. Kusurlar, kusur izleme aracına kaydedilir ve düzeltildikten sonra yeniden test edilir. Hata kaydı, Yeniden Test, Regresyon testi, yazılımın devreye girme durumuna gelene kadar devam eder.
- Dağıtım aşamasında, müşteri tarafından onay verildikten sonra geliştirilen kod üretime taşınır.
- Üretim ortamındaki herhangi bir sorun, bakıma giren geliştiriciler tarafından çözülür.
Şelale Modelinin Avantajları:
- Şelale modeli, kolay anlaşılabilen basit modeldir ve tüm aşamaların adım adım yapıldığı modeldir.
- Her aşamanın teslim edilecekleri iyi tanımlanmıştır ve bu karmaşıklığa yol açmaz ve projeyi kolayca yönetilebilir hale getirir.
Şelale modelinin dezavantajları:
- Şelale modeli zaman alıcıdır ve kısa süreli projelerde kullanılamaz çünkü bu modelde devam eden aşama tamamlanana kadar yeni bir aşama başlatılamaz.
- Şelale modeli, gereksinimi belirsiz olan veya gereksinimin değişmeye devam ettiği projeler için kullanılamaz, çünkü bu model gereksinim toplama ve analiz aşamasında ihtiyacın net olmasını beklemektedir ve sonraki aşamalarda herhangi bir değişiklik, maliyetin yükselmesine neden olacaktır. tüm aşamalarda değişiklikler gerekli olacaktır.
# 2) V-Şekilli Model
V-Modeli Doğrulama ve Doğrulama Modeli olarak da bilinir. Bu modelde Doğrulama ve Doğrulama el ele yürür, yani geliştirme ve test paralel ilerler. V modeli ve şelale modeli, test planlaması ve testinin V-Model'de erken bir aşamada başlaması dışında aynıdır.
a) Doğrulama Aşaması:
(i) Gereksinim Analizi:
Bu aşamada gerekli tüm bilgiler toplanır ve analiz edilir. Doğrulama faaliyetleri, gereksinimlerin gözden geçirilmesini içerir.
(ii) Sistem Tasarımı:
Gereksinim netleştikten sonra, bir sistem tasarlanır, yani mimari, ürünün bileşenleri oluşturulur ve bir tasarım belgesinde belgelenir.
(iii) Üst Düzey Tasarım:
Üst düzey tasarım, modüllerin mimarisini / tasarımını tanımlar. İki modül arasındaki işlevselliği tanımlar.
(iv) Düşük Seviyeli Tasarım:
Düşük Seviyeli Tasarım, bağımsız bileşenlerin mimarisini / tasarımını tanımlar.
(v) Kodlama:
Bu aşamada kod geliştirme yapılır.
b) Doğrulama Aşaması:
(i) Birim Testi:
Birim testi Düşük seviye tasarım aşamasında tasarlanan ve yapılan birim test durumları kullanılarak gerçekleştirilir. Birim testi, geliştiricinin kendisi tarafından gerçekleştirilir. Erken kusur tespitine yol açan münferit bileşenler üzerinde gerçekleştirilir.
(ii) Entegrasyon Testi:
Entegrasyon testi Üst Düzey Tasarım aşamasında entegrasyon test durumları kullanılarak gerçekleştirilir. Entegrasyon testi, entegre modüller üzerinde yapılan testtir. Test uzmanları tarafından gerçekleştirilir.
(iii) Sistem Testi:
Sistem testi Sistem Tasarımı aşamasında gerçekleştirilir. Bu aşamada, tüm sistem test edilir, yani tüm sistem işlevselliği test edilir.
(iv) Kabul Testi:
Kabul testi, Gereksinim Analizi aşamasıyla ilişkilendirilir ve müşterinin ortamında yapılır.
V - Model'in Avantajları:
- Basit ve kolay anlaşılır bir modeldir.
- V modeli yaklaşımı, ihtiyacın tanımlandığı ve erken aşamada donduğu küçük projeler için iyidir.
- Yüksek kaliteli bir ürünle sonuçlanan sistematik ve disiplinli bir modeldir.
V-Model'in dezavantajları:
- V şeklindeki model, devam eden projeler için iyi değildir.
- Daha sonraki aşamadaki gereksinim değişikliği çok yüksek maliyetli olacaktır.
# 3) Prototip Modeli
Prototip modeli, prototipin gerçek yazılımdan önce geliştirildiği bir modeldir.
Prototip modelleri, gerçek yazılımla karşılaştırıldığında sınırlı işlevsel yeteneklere ve verimsiz performansa sahiptir. Prototipler oluşturmak için kukla işlevler kullanılır. Bu, müşterilerin ihtiyaçlarını anlamak için değerli bir mekanizmadır.
Müşteriden değerli geri bildirimler almak için yazılım prototipleri gerçek yazılımdan önce oluşturulur. Geri bildirimler uygulanır ve prototip, herhangi bir değişiklik için müşteri tarafından yeniden incelenir. Bu süreç, model müşteri tarafından kabul edilinceye kadar devam eder.
İhtiyaç toplama yapıldıktan sonra hızlı tasarım oluşturulur ve müşteriye değerlendirme için sunulan prototip oluşturulur.
Müşteri geri bildirimi ve iyileştirilmiş gereksinim, prototipi değiştirmek için kullanılır ve değerlendirme için tekrar müşteriye sunulur. Müşteri prototipi onayladığında, gerçek yazılımı oluşturmak için bir gereklilik olarak kullanılır. Gerçek yazılım, Şelale modeli yaklaşımı kullanılarak oluşturulmuştur.
Prototip Modelinin Avantajları:
- Prototip modeli, kusurlar çok daha erken bulunduğundan geliştirme maliyetini ve süresini azaltır.
- Eksik özellik veya işlevsellik ya da gereksinimdeki bir değişiklik, değerlendirme aşamasında belirlenebilir ve iyileştirilmiş prototipte uygulanabilir.
- Bir müşterinin ilk aşamadan itibaren dahil olması, herhangi bir işlevselliğin gerekliliği veya anlaşılmasındaki herhangi bir karışıklığı azaltır.
Prototip Modelinin Dezavantajları:
- Müşteri her aşamaya dahil olduğu için müşteri, kapsamın karmaşıklığını artıran ve ürünün teslim süresini artırabilen son ürünün ihtiyacını değiştirebilir.
# 4) Spiral Model
Spiral Model yinelemeli ve prototip yaklaşımı içerir.
Yinelemelerde spiral model aşamaları takip edilir. Modeldeki döngüler, SDLC sürecinin aşamasını temsil eder, yani en içteki döngü Planlama, Risk analizi, geliştirme ve değerlendirmeyi takip eden gereksinim toplama ve analizidir. Sonraki döngü Tasarım, ardından Uygulama ve testtir.
Spiral Modelin dört aşaması vardır:
- Planlama
- Risk analizi
- Mühendislik
- Değerlendirme
(i) Planlama:
Planlama aşaması, tüm gerekli bilgilerin müşteriden toplandığı ve belgelendiği gereksinim toplamayı içerir. Bir sonraki aşama için yazılım gereksinimleri belirtim belgesi oluşturulur.
(ii) Risk Analizi:
Bu aşamada, ilgili riskler için en iyi çözüm seçilir ve prototip oluşturularak analiz yapılır.
Örneğin Uzak bir veritabanından verilere erişimin içerdiği risk, veri erişim hızının çok yavaş olması olabilir. Risk, veri erişim alt sisteminin bir prototipini oluşturarak çözülebilir.
(iii) Mühendislik:
Risk analizi yapıldıktan sonra kodlama ve test yapılır.
(iv) Değerlendirme:
Müşteri, geliştirilen sistemi değerlendirir ve bir sonraki yineleme için planlar yapar.
Spiral Modelin Avantajları:
- Risk Analizi, prototip modeller kullanılarak kapsamlı bir şekilde yapılır.
- İşlevsellikteki herhangi bir geliştirme veya değişiklik bir sonraki yinelemede yapılabilir.
Spiral Modelin Dezavantajları:
- Spiral model, yalnızca büyük projeler için en uygunudur.
- Son ürüne ulaşmak için yüksek zamana yol açabilecek çok sayıda yineleme gerektirebileceğinden maliyet yüksek olabilir.
# 5) Yinelemeli Artımlı Model
Yinelemeli artımlı model, ürünü küçük parçalara böler.
Örneğin , Yinelemede geliştirilecek özelliğe karar verilir ve uygulanır. Her bir yineleme, Gereksinim Analizi, Tasarım, Kodlama ve Test aşamalarından geçer. Yinelemelerde detaylı planlama gerekli değildir.
Yineleme tamamlandıktan sonra, bir ürün doğrulanır ve değerlendirilmesi ve geri bildirimi için müşteriye teslim edilir. Müşterinin geri bildirimi, yeni eklenen özellik ile birlikte bir sonraki yinelemede uygulanır.
Bu nedenle, ürün özellikler açısından artar ve yinelemeler tamamlandıktan sonra son yapı ürünün tüm özelliklerini tutar.
Yinelemeli ve Artımlı Geliştirme Modelinin Aşamaları:
- Başlangıç aşaması
- Detaylandırma Aşaması
- Yapı aşaması
- Geçiş aşaması
(i) Başlangıç Aşaması:
Başlangıç aşaması, Projenin gerekliliğini ve kapsamını içerir.
(ii) Detaylandırma Aşaması:
Detaylandırma aşamasında, bir ürünün başlangıç aşamasında belirlenen riski kapsayan ve aynı zamanda işlevsel olmayan gereksinimleri karşılayan çalışma mimarisi teslim edilir.
(iii) İnşaat Aşaması:
İnşaat aşamasında, mimari, kullanıma hazır olan ve işlevsel gereksinimin analizi, tasarımı, uygulaması ve test edilmesi yoluyla oluşturulan kodla doldurulur.
(iv) Geçiş Aşaması:
Geçiş Aşamasında ürün, Üretim ortamında devreye alınır.
Yinelemeli ve Artımlı Modelin Avantajları:
- İhtiyaçtaki herhangi bir değişiklik kolayca yapılabilir ve bir sonraki yinelemede yeni gereksinimi dahil etmenin bir kapsamı olduğu için maliyeti olmaz.
- Yinelemelerde risk analiz edilir ve belirlenir.
- Kusurlar erken bir aşamada tespit edilir.
- Ürün daha küçük parçalara bölündüğünden, ürünü yönetmek kolaydır.
Dezavantajları Yinelemeli ve Artımlı Model:
- Aşamalı olarak parçalamak ve oluşturmak için bir ürünün tam gereksinimi ve anlaşılması gerekir.
# 6) Büyük Patlama Modeli
Big Bang Modelinin tanımlanmış herhangi bir süreci yoktur. Girdi ve çıktı, müşterinin ihtiyacı olanla aynı olabilecek veya olmayabilecek gelişmiş bir ürün olarak geldikçe para ve çaba bir araya getirilir.
Big Bang Modeli fazla planlama ve zamanlama gerektirmez. Geliştirici ihtiyaç analizi ve kodlamasını yapar ve ürünü kendi anlayışına göre geliştirir. Bu model yalnızca küçük projeler için kullanılır. Test ekibi yoktur ve resmi bir test yapılmaz ve bu projenin başarısızlığına neden olabilir.
Avantajları Big Bang Modeli:
- Bu çok basit bir Model.
- Daha az Planlama ve programlama gereklidir.
- Geliştirici, kendi yazılımını oluşturma esnekliğine sahiptir.
Big Bang Modelinin Dezavantajları:
- Big Bang modelleri büyük, devam eden ve karmaşık projeler için kullanılamaz.
- Yüksek risk ve belirsizlik.
# 7) Çevik Model
Çevik Model, Yinelemeli ve artımlı modelin bir kombinasyonudur. Bu model, bir ürün geliştirirken gereksinimden çok esnekliğe odaklanır.
Agile'da bir ürün küçük artımlı yapılara bölünür. Tek seferde eksiksiz bir ürün olarak geliştirilmemiştir. Her yapı, özellikler açısından artar. Bir sonraki yapı önceki işlevsellik üzerine inşa edilmiştir.
Çevik yinelemelerde sprint olarak adlandırılır. Her sprint 2-4 hafta sürer. Her sprint sonunda ürün sahibi ürünü doğrular ve onayından sonra müşteriye teslim edilir.
İyileştirme için müşteri geri bildirimi alınır ve bir sonraki sprintte önerileri ve iyileştirmeleri üzerinde çalışılır. Herhangi bir arıza riskini en aza indirmek için her sprintte test yapılır.
Çevik Modelin Avantajları:
- Değişikliklere uyum sağlamak için daha fazla esneklik sağlar.
- Yeni özellik kolaylıkla eklenebilir.
- Her aşamada geri bildirim ve öneriler alındığı için müşteri memnuniyeti.
Dezavantajları:
- Belge eksikliği.
- Çevik, deneyimli ve yüksek vasıflı kaynaklara ihtiyaç duyar.
- Bir müşteri ürünün tam olarak nasıl olmasını istediği konusunda net değilse, proje başarısız olur.
Sonuç
Projenin başarılı bir şekilde tamamlanması için uygun bir yaşam döngüsüne bağlılık çok önemlidir. Bu da yönetimi kolaylaştırır.
Farklı Yazılım Geliştirme Yaşam Döngüsü modellerinin kendi Artıları ve Eksileri vardır. Herhangi bir Proje için en iyi model, Gereksinim (açık veya belirsiz), Sistem Karmaşıklığı, Projenin Boyutu, Maliyet, Beceri sınırlaması vb. Faktörlere göre belirlenebilir.
Misal, Belirsiz bir gereksinim olması durumunda, Spiral ve Çevik modeller, gerekli değişiklik herhangi bir aşamada kolayca yerine getirilebildiğinden en iyisidir.
Şelale modeli temel bir modeldir ve diğer tüm SDLC modelleri yalnızca buna dayanmaktadır.
Umarım SDLC hakkında kapsamlı bilgi edinmişsinizdir.
Önerilen Kaynaklar
- Spiral Model - SDLC Spiral Modeli nedir?
- SDLC Şelale Modeli nedir?
- Yazılım Test Yaşam Döngüsü (STLC) nedir?
- Yazılım Testi QA Yardımcısı İşi
- 2021'in EN İYİ 10 Özel Yazılım Geliştirme Şirketi ve Hizmeti
- Pratik Yazılım Testi - Yeni ÜCRETSİZ e-Kitap (İndir)
- Yerinde - Yazılım Test Projelerinin Açık Deniz Modeli (ve Sizin İçin Nasıl Çalışır?)
- Yazılımda Neden Hatalar Var?