Yazılımların çalıştırılmadan önce veya çalışan bir yazılımın yeni geliştirmeler ile güncellenmesi gereken durumlarda yapılan analiz çalışmaları yazılım gereksinim analizi olarak nitelendirilmektedir.
Gereksinim analizi, gereksinim mühendisliği olarak da adlandırılır; yeni veya değiştirilecek bir ürün için kullanıcı beklentilerini belirleme sürecinde fonksiyonel ve fonksiyonel olmayan gereksinimler belirlenmektedir.
Kullanıcı veya kullanıcı gruplarının talep ettiği ihtiyaçlardaki çatışmalar veya belirsizlikler gereksinim analizi (Requirements Analysis) analizi ile ortadan kaldırılabilmektedir.
Yazılım analiz sürecinde genellikle iş analisti, kıdemli iş analisti, analiz uzmanı, uzman analist unvanları ile gereksinimlerin tespiti, analiz çalışmaları gerçekleştirilmektedir. İş analistleri yazılım geliştirme ekibi ve diğer proje paydaşları ile yakın ilişki içinde bulunur ve gereksinim sahipleri ile geliştirme ekibi arasında köprü vazifesi sağlarlar.
Yazılım projelerinde genellikle analiz tasarım, kodlama aşamaları iç içe yönetilir. Yazılım projesi aşamalarının zamanlanması, belirlenen süreler projelere göre değişim gösterselerde analiz ve test işlemleri için ayrılan süreyi azaltma yönündeki baskıların önüne geçilmesi projenin başarısızlıkla sonuçlanmasını engelleyecektir.
Yazılım projelerine analiz süreci; projelerin başarısızlıkla sonuçlarının önüne geçebilecek en temel aşamadır. Gereksinim analizi neticesinde oluşturulabilen kalpsam ve zaman yönetimi yazılım projelerinde kritik önem taşır ve iyi bir analiz ile boşa harcanan maliyetlerin önüne geçilebilir;
- ABD’ de yapılan toplam BT projelerin başarısızlık oranını % 72 olarak bulunmuştur. (Standish Group International -2009)
- Yazılım geliştirme projeleri genellikle bütçesi üzerinde ve planlanan takviminin ilerisinde tamamlanır olarak bulunmuştur. (Gri ve Larson -2003)
- Proje hatalarından kaynaklanan boşa harcanan para: Amerika Birleşik Devletleri için 150.000.000.000 $ Avrupa Birliği’nde 140.000.000.000 $ olarak belirtilmektedir. (Dalcher and Genus – 2003).
Aşağıdaki görsel ile gereksinim nitelikleri, beklentiler ve olası sonuçlar sergilenmektedir.

Gereksinimler belgelenmeli, uygulanabilir, ölçülebilir, test edilebilir, izlenebilir olmalıdır, tanımlanmış iş ihtiyaçları veya fırsatları ile ilişkili olmalıdır ve sistem tasarımı için yeterli bir ayrıntı seviyesine kadar tanımlanmalıdır.
Yazılım projelerinde ortaya çıkan hata ve aksaklıkların büyük kısmı, “ek taleplerin” doğru analiz edilememesinden kaynaklıdır. Yeni eklenen bir gereksinimin sistem özelliğinin, formun ya da veri alanının, program içerisindeki hangi akışları etkilediğinin iyi analiz edilmesi gerekmektedir. Aksi durumda bazı adımlar yanlış çalıştırılabilir ve uygulama esnasında sorunun nereden kaynaklandığını bulmak güçleşebilir.
Yazılım gereksinim analizinin doğru yönetilmesi ve profesyonel olarak gerçekleştirilmesini sağlayacak en önemli konulardan biri de çıktıların yönetilmesidir.
Yazılım Projelerinde Gereksinimlerin izlenebilirliği olağan yazılım geliştirme süreçleri ve yazılım teslimi sonrasında oluşabilecek bakım destek taleplerinin karşılanmasında oluşturulan dokümantasyonlarla sağlanabilmektedir.
Gereksinimlerin neler olduğunun belirtildiği doküman en yaygın “Yazılım Gereksinim Dokümanı” (software requirements specification- SRS)’ dır. Yazılım tasarımından önce fonksiyonel ve fonksiyonel olmayan özelliklerin neler olduğu belirlendikten sonra yazılım tasarım sürecine geçilerek daha farklı ve teknik bir ihtisas konusu olan Yazılım Tasarım Dokümanı (software design document- SDD) ile tasarım süreci kayıt altına alınmaktadır. SDD dokümanı SRS dokümanını referans alarak genel olarak yazılım geliştiriciler tarafından oluşturulmaktadır.
Yazılım projeleri yönetiminde kullanılan farklı metodolojiler vardır. Süreçlerin nasıl ve ne şekilde hangi öncelik durumlarına göre yönetilebileceği konusunda detaylı bilgiler araştırabilir veya konu ile ilgili diğer makalelerimize göz atabilirsiniz.
Yorum ve görüşleriniz bizim için değerlidir.