Yazılım geliştirme Yaşam Döngüsü
Yazılım Geliştirme Yaşam Döngüsü, kısaca SDLC, amaçlanan yazılım ürününü geliştirmek için yazılım mühendisliğinde iyi tanımlanmış, yapılandırılmış bir aşamalar dizisidir.
SDLC Faaliyetleri
SDLC, bir yazılım ürününü verimli bir şekilde tasarlamak ve geliştirmek için izlenecek bir dizi adım sağlar. SDLC çerçevesi aşağıdaki adımları içerir:
İletişim
Bu, kullanıcının istediği bir yazılım ürünü talebini başlattığı ilk adımdır. Servis sağlayıcıyla iletişime geçer ve şartları görüşmeye çalışır. Hizmet veren kuruluşa talebini yazılı olarak iletir.
Şartlı toplantı
Bu adım ileriye doğru yazılım geliştirme ekibi projeyi devam ettirmek için çalışır. Ekip, sorun alanındaki çeşitli paydaşlarla tartışmalar yapar ve gereksinimleri hakkında mümkün olduğunca fazla bilgi ortaya çıkarmaya çalışır. Gereksinimler tasarlanır ve kullanıcı gereksinimleri, sistem gereksinimleri ve işlevsel gereksinimlere göre ayrılır. Gereksinimler, verilen bir dizi uygulama kullanılarak toplanır -
- mevcut veya eski sistem ve yazılımı incelemek,
- kullanıcılar ve geliştiricilerle röportaj yapmak,
- veritabanına atıfta bulunarak veya
- anketlerden cevapların toplanması.
Fizibilite çalışması
İhtiyaç toplandıktan sonra ekip, kaba bir yazılım süreci planı çıkarır. Bu aşamada ekip, kullanıcının tüm gereksinimlerini karşılayacak bir yazılımın yapılıp yapılamayacağını ve yazılımın artık yararlı olmaması olasılığının olup olmadığını analiz eder. Projenin organizasyon için finansal, pratik ve teknolojik olarak uygun olup olmadığı tespit edilir. Geliştiricilerin bir yazılım projesinin fizibilitesini sonuçlandırmasına yardımcı olan birçok algoritma bulunmaktadır.
Sistem Analizi
Bu aşamada geliştiriciler planlarının bir yol haritasını belirler ve projeye uygun en iyi yazılım modelini ortaya çıkarmaya çalışırlar. Sistem analizi, yazılım ürün sınırlamalarının anlaşılması, sistemle ilgili problemlerin veya mevcut sistemlerde önceden yapılması gereken değişikliklerin, projenin organizasyon ve personel üzerindeki etkisinin belirlenmesi ve ele alınması vb. buna göre kaynaklar.
Yazılım Tasarımı
Bir sonraki adım, masadaki ihtiyaçlar ve analizlerle ilgili tüm bilgileri aşağı çekmek ve yazılım ürününü tasarlamaktır. Kullanıcılardan gelen girdiler ve ihtiyaç toplama aşamasında toplanan bilgiler bu adımın girdileridir. Bu adımın çıktısı iki tasarım şeklinde gelir; mantıksal tasarım ve fiziksel tasarım. Mühendisler, meta veri ve veri sözlükleri, mantıksal diyagramlar, veri akış diyagramları ve bazı durumlarda sözde kodlar üretir.
Kodlama
Bu adım aynı zamanda programlama aşaması olarak da bilinir. Yazılım tasarımının uygulanması, program kodunun uygun programlama dilinde yazılması ve hatasız çalıştırılabilir programların verimli bir şekilde geliştirilmesi açısından başlar.
Test yapmak
Bir tahmin, tüm yazılım geliştirme sürecinin% 50'sinin test edilmesi gerektiğini söylüyor. Hatalar, yazılımı kritik seviyeden kendi kaldırmasına kadar bozabilir. Yazılım testleri, geliştiriciler tarafından kodlanırken yapılır ve modül testi, program testi, ürün testi, kurum içi test ve kullanıcı sonunda ürünü test etme gibi çeşitli kod seviyelerinde uzmanlar test edilerek kapsamlı testler yapılır. Hataların erken keşfedilmesi ve giderilmesi, güvenilir yazılımın anahtarıdır.
Entegrasyon
Yazılımın kitaplıklar, veritabanları ve diğer program (lar) ile entegre edilmesi gerekebilir. SDLC'nin bu aşaması, yazılımın dış dünya varlıkları ile entegrasyonuyla ilgilidir.
Uygulama
Bu, yazılımı kullanıcı makinelerine yüklemek anlamına gelir. Bazen, yazılımın kullanıcı tarafında kurulum sonrası yapılandırmalara ihtiyacı vardır. Yazılım, taşınabilirlik ve uyarlanabilirlik açısından test edilir ve entegrasyonla ilgili sorunlar uygulama sırasında çözülür.
Operasyon ve bakım
Bu aşama, yazılımın çalışmasını daha fazla verimlilik ve daha az hata açısından doğrular. Gerekirse kullanıcılar, yazılımın nasıl çalıştırılacağı ve yazılımın nasıl çalışır durumda tutulacağı konusunda eğitim alır veya bu belgelerle yardım edilir. Yazılımın bakımı, kullanıcı son ortamında veya teknolojide meydana gelen değişikliklere göre kod güncellenerek zamanında yapılmaktadır. Bu aşama, gizli hatalardan ve gerçek dünyadaki tanımlanamayan sorunlardan kaynaklanan zorluklarla karşılaşabilir.
Eğilim
Zaman geçtikçe, yazılım performans cephesinde düşebilir. Tamamen modası geçmiş olabilir veya yoğun bir yükseltme gerektirebilir. Bu nedenle, sistemin büyük bir bölümünü ortadan kaldırmak için acil bir ihtiyaç ortaya çıkmaktadır. Bu aşama, verilerin ve gerekli yazılım bileşenlerinin arşivlenmesini, sistemin kapatılmasını, elden çıkarma faaliyetinin planlanmasını ve sistemin uygun sistem sonu zamanında sonlandırılmasını içerir.
Yazılım Geliştirme Paradigması
Yazılım geliştirme paradigması, geliştiricinin yazılımı geliştirmek için bir strateji seçmesine yardımcı olur. Bir yazılım geliştirme paradigmasının, açıkça ifade edilen ve yazılım geliştirme yaşam döngüsünü tanımlayan kendi araçları, yöntemleri ve prosedürleri vardır. Yazılım geliştirme paradigmalarından veya süreç modellerinden birkaçı şu şekilde tanımlanır:
Şelale Modeli
Şelale modeli, yazılım geliştirme paradigmasının en basit modelidir. SDLC'nin tüm aşamalarının birbiri ardına doğrusal bir şekilde çalışacağını söylüyor. Yani, ilk aşama bittiğinde sadece ikinci aşama başlayacak ve bu böyle devam edecek.
Bu model, her şeyin bir önceki aşamada planlandığı gibi kusursuz bir şekilde yürütüldüğünü ve gerçekleştiğini ve bir sonraki aşamada ortaya çıkabilecek geçmiş sorunları düşünmeye gerek olmadığını varsayar. Önceki adımda kalan bazı sorunlar varsa bu model sorunsuz çalışmaz. Modelin sıralı yapısı, geri dönmemize ve eylemlerimizi geri almamıza veya yeniden yapmamıza izin vermez.
Bu model, geliştiriciler geçmişte benzer bir yazılım tasarlayıp geliştirdiğinde ve tüm alanlarının farkında olduğunda en uygunudur.
Yinelemeli Model
Bu model, yinelemelerde yazılım geliştirme sürecine öncülük eder. Geliştirme sürecini, SDLC sürecinin her döngüsünden sonra her adımı tekrarlayarak döngüsel bir şekilde yansıtır.
Yazılım önce çok küçük ölçekte geliştirilir ve dikkate alınan tüm adımlar takip edilir. Ardından, sonraki her yinelemede, daha fazla özellik ve modül tasarlanır, kodlanır, test edilir ve yazılıma eklenir. Her döngü, kendi içinde tamamlanan ve bir öncekinden daha fazla özellik ve kabiliyete sahip bir yazılım üretir.
Her yinelemeden sonra, yönetim ekibi risk yönetimi üzerinde çalışabilir ve bir sonraki yinelemeye hazırlanabilir. Bir döngü, tüm yazılım sürecinin küçük bir bölümünü içerdiğinden, geliştirme sürecini yönetmek daha kolaydır, ancak daha fazla kaynak tüketir.
Spiral Modeli
Spiral model, hem yinelemeli modelin hem de SDLC modelinin bir kombinasyonudur. Tek bir SDLC modeli seçip onu döngüsel süreçle (yinelemeli model) birleştiriyormuşsunuz gibi görülebilir.
Bu model, çoğu diğer model tarafından genellikle fark edilmeyen riski dikkate alır. Model, bir yinelemenin başlangıcında yazılımın hedeflerini ve kısıtlamalarını belirlemekle başlar. Sonraki aşama, yazılımın prototipini oluşturmaktır. Buna risk analizi dahildir. Ardından yazılımı oluşturmak için bir standart SDLC modeli kullanılır. Bir sonraki iterasyon planının dördüncü aşamasında hazırlanır.
V - model
Şelale modelinin en büyük dezavantajı, bir sonraki aşamaya ancak önceki aşama bittiğinde geçmemiz ve sonraki aşamalarda bir şeylerin yanlış bulunması durumunda geri dönme şansımızın olmamasıdır. V-Modeli, yazılımın her aşamada tersine test edilmesine olanak sağlar.
Her aşamada, ürünü o aşamanın ihtiyacına göre doğrulamak ve doğrulamak için test planları ve test senaryoları oluşturulur. Örneğin, gereksinim toplama aşamasında test ekibi, gereksinimlere uygun olarak tüm test durumlarını hazırlar. Daha sonra, ürün geliştirildiğinde ve teste hazır olduğunda, bu aşamadaki test durumları, yazılımı bu aşamadaki gereksinimlere yönelik geçerliliğine karşı doğrular.
Bu, hem doğrulamanın hem de doğrulamanın paralel ilerlemesini sağlar. Bu model aynı zamanda doğrulama ve doğrulama modeli olarak da bilinir.
Büyük Patlama Modeli
Bu model, formundaki en basit modeldir. Çok az planlama, çok sayıda programlama ve çok fazla fon gerektirir. Bu model, evrenin büyük patlaması etrafında kavramsallaştırılmıştır. Bilim adamlarının söylediği gibi, büyük patlamadan sonra birçok galaksi, gezegen ve yıldız sadece bir olay olarak evrimleşti. Aynı şekilde, çok sayıda programlama ve fonu bir araya getirirsek, en iyi yazılım ürününü elde edebilirsiniz.
Bu model için çok az miktarda planlama gereklidir. Herhangi bir süreci takip etmez veya bazen müşteri gereksinimlerden ve gelecekteki ihtiyaçlardan emin olmaz. Bu nedenle, girdi gereksinimleri keyfidir.
Bu model, büyük yazılım projeleri için uygun değil, öğrenme ve deneme için iyidir.
SDLC ve çeşitli modelleri hakkında derinlemesine bir okuma için burayı tıklayın.