Yazılım Geliştirme Yaşam Döngüsü
Genel olarak olarak yazılımlar, geliştirilirken belirli bir takım süreçlerden geçerler. İngilizcesi Software Development Life Cycle olarak adlandırılan bu süreç yazılım projelerinin daha iyi sonuçlandırılmasını sağlar. Bu yazımızda yazılım geliştirme yaşam döngüsünde kullanılan aşamaları bulabilirsiniz.
08.03.2014 tarihli yazı 20675 kez okunmuştur.
Yazılım geliştirme yaşam döngüsü (SDLC) bir yazılım ihtiyacı doğmasının başlangıcından, yazılımın geliştirilip sonuçlanmasına kadar olan tüm süreci kapsar. Yazılım geliştirmeyi basit bir örnekle açıklayabiliriz.
Ortada bir inşaata, binaya ya da herhangi bir yapıya ihtiyaç olduğunu düşünelim. Burada ilk noktada bilinmesi gereken inşaatın köprü mü, okul mu, ev mi olacağı soruları önce akla gelmektedir. Yazılım tarafında düşünülecek olursa projede bizden istenen ne? Projenin niteliği ne olacak? Ortaya çıkacak yazılım ne tür bir ürün olmalı? Bir ERP yazılımı mı? Bir web ya da e-ticaret sitesi mi olmalı? İnşaatın ne türde bir yapı olduğuna karar verdikten sonra; bu işi yapacak hafriyat şirketi, inşaat şirketi devreye girer. İnşaatta bir yandan da dekorasyon gibi daha birçok ayrıntı yapının sonuna kadar detaylıca düşünülmesi gerekmektedir.
Bu noktada yazılım ile inşaatın, inşa edilme süreçlerini bağdaştıracak olursak; tüm gereksinimler aslında inşaat devam ederken betonun donmamasını, yani sürekli olarak yeniden kullanılabilirliği sağlamak temel amaçtır. Yazılım geliştirme süreç ve modellemeleri de beton örneğinde olduğu gibi yazılan kodları çalışır halde tutmak esastır. Yazılım projeleri geliştirilirken de devamlı entegrasyon yapılmalıdır. Yazılan her yeni kod parçacığı projeye dahil edilmeli, anında birim testleri yapılarak hatalar varsa giderilmelidir. Yazılımı isteyen müşteri, olaya dahil olmalı ve projeye geri dönüşler yapılarak; ürün çıktısı konusunda problem yaşanmaması için belirli bir amaç oluşturulmalıdır.
Yazılım maliyetlerinin %80’nin programlarının geliştirilmesinde ve iyileştirmelerin yapılmasında harcandığı belirlenmiştir. Genel olarak yazılım geliştirme süreç ve modellemelerinin bulunmadığı; Agile, Scrum, Test Driven Development, Lean Kanban yazılım geliştirme metodolojilerinin uygulanmadığı projelerin başarısız olduğu görülmüştür.
Kaynak :
► agilemanifesto.org
► How to Program C Deitel Deitel
► The C Programming Language
► Fundamentals of Data Structures C
Ortada bir inşaata, binaya ya da herhangi bir yapıya ihtiyaç olduğunu düşünelim. Burada ilk noktada bilinmesi gereken inşaatın köprü mü, okul mu, ev mi olacağı soruları önce akla gelmektedir. Yazılım tarafında düşünülecek olursa projede bizden istenen ne? Projenin niteliği ne olacak? Ortaya çıkacak yazılım ne tür bir ürün olmalı? Bir ERP yazılımı mı? Bir web ya da e-ticaret sitesi mi olmalı? İnşaatın ne türde bir yapı olduğuna karar verdikten sonra; bu işi yapacak hafriyat şirketi, inşaat şirketi devreye girer. İnşaatta bir yandan da dekorasyon gibi daha birçok ayrıntı yapının sonuna kadar detaylıca düşünülmesi gerekmektedir.
Bu noktada yazılım ile inşaatın, inşa edilme süreçlerini bağdaştıracak olursak; tüm gereksinimler aslında inşaat devam ederken betonun donmamasını, yani sürekli olarak yeniden kullanılabilirliği sağlamak temel amaçtır. Yazılım geliştirme süreç ve modellemeleri de beton örneğinde olduğu gibi yazılan kodları çalışır halde tutmak esastır. Yazılım projeleri geliştirilirken de devamlı entegrasyon yapılmalıdır. Yazılan her yeni kod parçacığı projeye dahil edilmeli, anında birim testleri yapılarak hatalar varsa giderilmelidir. Yazılımı isteyen müşteri, olaya dahil olmalı ve projeye geri dönüşler yapılarak; ürün çıktısı konusunda problem yaşanmaması için belirli bir amaç oluşturulmalıdır.
Yazılım geliştirme yaşam döngüsündeki süreçler aşağıdaki gibi tanımlanabilir.
1- Gereksinimler [Requirements]
Programlamayla ilgili tüm projeler, projenin amacını belirten tüm şartların oluşması ile başlar. Gereksinimler en önemli kısımdır. Programcıya verilen girdiler ve bu girdilerin çıktılarının ne olması gerektiği sorusuyla tanımlanır. İşte bu noktada yazılım ihtiyaç analizi öne çıkmaktadır.
2- Çözümleme [Analysis]
Bir sistem için gereksinimler belirlendikten sonra ikinci aşamada analiz gelir. Sistem gereksinimlerinin ve işlevlerinin ayrıntılı olarak çıkarıldığı aşamadır. Proje hakkında elde var olan süreçler devam ettirilir, proje hakkında temel sorunlar ortaya çıkarılır.
3- Tasarım [ Design ]
Belirlenen gereksinimlere yanıt verecek yazılım sisteminin temel yapısının oluşturulduğu aşamadır. Tasarıma ayrılan vakit arttıkça hata oranının azalması beklenir. Bu aşama, analiz aşamasındaki çalışmaların devamı niteliğindedir.
4- Gerçekleştirme || Kodlama [Coding]
Kodlama, kurulum test etme gibi çalışmaların yapıldığı aşamadır. Daha önceden belirlenmiş; veri yapıları üzerinde işlem yapacak algoritmalar bu aşamada koda dökülür.
5- Doğrulama [Verification]
Geliştirilen yazılımın ya da programın doğruluğunun ispatı, geniş bir veri grubu üzerinde test etme ve hatalardan arındırma işlemleri ile gerçekleştirilir. Buradan elde edilen veriler ya da ürünün demo(deneme) sürümlerinden elde edinilen sorunlar halledilmelidir.
1- Gereksinimler [Requirements]
Programlamayla ilgili tüm projeler, projenin amacını belirten tüm şartların oluşması ile başlar. Gereksinimler en önemli kısımdır. Programcıya verilen girdiler ve bu girdilerin çıktılarının ne olması gerektiği sorusuyla tanımlanır. İşte bu noktada yazılım ihtiyaç analizi öne çıkmaktadır.
2- Çözümleme [Analysis]
Bir sistem için gereksinimler belirlendikten sonra ikinci aşamada analiz gelir. Sistem gereksinimlerinin ve işlevlerinin ayrıntılı olarak çıkarıldığı aşamadır. Proje hakkında elde var olan süreçler devam ettirilir, proje hakkında temel sorunlar ortaya çıkarılır.
3- Tasarım [ Design ]
Belirlenen gereksinimlere yanıt verecek yazılım sisteminin temel yapısının oluşturulduğu aşamadır. Tasarıma ayrılan vakit arttıkça hata oranının azalması beklenir. Bu aşama, analiz aşamasındaki çalışmaların devamı niteliğindedir.
4- Gerçekleştirme || Kodlama [Coding]
Kodlama, kurulum test etme gibi çalışmaların yapıldığı aşamadır. Daha önceden belirlenmiş; veri yapıları üzerinde işlem yapacak algoritmalar bu aşamada koda dökülür.
5- Doğrulama [Verification]
Geliştirilen yazılımın ya da programın doğruluğunun ispatı, geniş bir veri grubu üzerinde test etme ve hatalardan arındırma işlemleri ile gerçekleştirilir. Buradan elde edilen veriler ya da ürünün demo(deneme) sürümlerinden elde edinilen sorunlar halledilmelidir.
Yazılım işlevleri ile ilgili gereksinimler sürekli olarak değiştiği ve genişlediği için, söz konusu aşamalar sürekli bir döngü biçiminde ele alınır. Döngü içersinde herhangi bir problem ile karşılaşıldığı zaman geriye dönmek, tekrar ilerlemek söz konusudur. Bu yüzden yazılım geliştirme yaşam döngüsü, tek yönlü ve doğrusal değildir.
► İlginizi Çekebilir: IT Sektörleri İçin 2020 Öngörüleri
Yazılım maliyetlerinin %80’nin programlarının geliştirilmesinde ve iyileştirmelerin yapılmasında harcandığı belirlenmiştir. Genel olarak yazılım geliştirme süreç ve modellemelerinin bulunmadığı; Agile, Scrum, Test Driven Development, Lean Kanban yazılım geliştirme metodolojilerinin uygulanmadığı projelerin başarısız olduğu görülmüştür.
Kaynak :
► agilemanifesto.org
► How to Program C Deitel Deitel
► The C Programming Language
► Fundamentals of Data Structures C
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
ANKET