Yazılım Geliştirme Süreci

Mehmet Erdem Akın
3 min readMar 29, 2022

--

Herkese merhaba, bu yazımda yazılım geliştirme süreci aşamaları hakkında temel bilgiler vereceğim.

Bir yazılım geliştirme süreci birçok aşamadan meydana gelmektedir. Temel olarak yazılım geliştirme aşamaları şu şekildedir.

  • Analiz,
  • Tasarım,
  • Geliştirme,
  • Test,
  • Teslim ve Bakım

Söz konusu aşamalar sürekli bir döngü biçiminde ele alınır. Yazılım geliştirme yaşam döngüsü yani ( SDLC-Software Development Life Cycle ) olarak adlandırılır.

Planlama

Projenin hedefine ulaşabilmesi için; süre ve mali kısıtlar dikkate alınarak

  • İzlenecek yöntem,
  • Yapılacaklar,
  • Kullanılacak kaynaklar
  • Süre takvimleri

gibi genel hatların belirlenmesidir.

İhtiyaç Analizi

Proje ihtiyaç ve beklentilerinin ayrıntılı bir biçimde tanımlanmasıdır. Bu ihtiyaç ve beklentiler sistemin gerçekleştirmesi gereken temel görev ve fonksiyonlardır. Bir ihtiyacı belirlenken gerçekleştirilebilme, doğrulanabilme, mananın tam anlaşılabilmesi, tutarlılık ve ihtiyacın seviyesi ve yerinin doğru belirlenmesi gibi kriterlere dikkat edilmelidir.

Tasarım ve geliştirme aşamalarına geçmeden önce müşteri beklenti ve ihtiyaçlarının iyi belirlenmesi ileride karşılaşılabilecek geri dönüşler ve anlaşılmazlıkları azaltmak için önemlidir.

Prototip Geliştirme

Temel fonksiyon ve arayüzlerin , sistemi açıklama amacıyla kısmen geliştirilmesi ve proje paydaşlarına gösterilmesidir.

  • Müşteri
  • Kullanıcı
  • Üst Yönetim
  • Proje ekibi üyeleri

Prototip sayesinde bu paydaşlar sistemi daha kolay anlama imkanı bulur. Prototip, müşteri ile iletişim ve analiz amaçlı bir çabadır. Proje geliştirme sürecinin doğrudan bir parçası değildir.

Tasarım

Tasarım, yapılan analizin yazılım geliştirme araçlarının imkan ve kuralları dahilinde üst seviye modeline dönüştürülmesidir.

İhtiyaç analizi ve tasarım tek bir aşama olarak ele alınabilmektedir. Ancak aralarındaki kavramsal farklılıklardan dolayı sorunlara yol açabilmektedir. ihtiyaç analizi aşaması ihtiyacı anlamaya, tasarım aşaması ise çözüm üretmeye dönük bir adımdır.

Geliştirme

Müşteri talepleri doğrultusunda tasarlanan model, yazılım geliştirme araçları vasıtasıyla yazılım ürününe dönüştürülür.

Yazılım ekibi bu aşamada daha önce hazırlanmış olan dökümanlar, açıklamalar vb. belgelerden yararlanarak geliştireceği modül hakkında bilgiler edinir. Dökümanlarda yer alan ifadelerin net olması, çakışmalara yer verilmemesi, var olan çakışmalarda ise hızlıca çözüm üretilmesi zaman ve teknik kayıpları önlemek için önemlidir.

Test

Yapılanların kontrol edilme aşamasıdır. Kontrol öncelikle iki aşamalıdır.

  • İstenilenler doğru anlaşılmış mı ?
  • Yapılanlar doğru çalışıyor mu?

Sorularına yanıt aranır.

Yapılanın, isteği karşılayıp karşılamadığının onaylanması ( validation ), Düşünülenin, yapılıp yapılmadığının doğrulanması ( verification ) yapılması gerekir.

Doğrulama, yazılım ekibinin kendi içinde yaptığı testlerle gerçekleştirilir. Bunlar; birim testi, entegrasyon testi, bütünleşik sistem testi, performans testi gibi alt başlıklarla incelenebilir. Test sonuçlarına göre yazılım ve tasarımda değişiklikler yapılabilir.

Onaylama, kullanıcının veya müşterinin dahil olduğu sunum ve testler ile belirlenir. Bu aşamada müşteri memnuniyetini zor olsa da sağlamak gerekir. Gelişen kullanıcı isteklerine göre ihtiyaç analizinde değişiklikler olabilir.

Test aşamasını son aşama olarak görmek doğru olmaz. Projenin her aşamasında aslında bir test vardır. Fakat son aşamada en kapsamlı testin yapıldığını söylemek daha doğru olur.

Gözden Geçirme

Yapılan çalışmanın, yapan kişi dışında diğer ekip üyeleri ya da farklı kullanıcılar tarafından kontrolüne denir. Test aşamasından farklı olarak yapılan çalışmadan ziyade çalışmanın kalitesine odaklanılır.

(UAT) Kullanıcı Kabul — Son Kullanıcı Testi olarak da adlandırılabilir.

Devreye Alma ve Bakım

Test Aşaması tamamlandıktan sonra

  • Kullanıcı eğitimi,
  • Yazılımın barındırma ortamına aktarımı,
  • Uygulama içi kurulumlar,
  • Entegrasyonlar

vb. işlemler bu aşamada gerçekleşir. Proje kullanılmaya başlandıkça, kullanıcı sayısı ve uygulama içi etkileşim arttıkça, geliştirme aşamasında gözden kaçan performans sorunları ve hatalar ortaya çıkabilir.

Kişisel olarak aldığım eğitimler, araştırmalar ve iş tecrübelerimden edindiğim bilgilere dayanarak temel düzeyde yazılım geliştirme sürecinden bahsettim. Umarım faydalı olmuştur. Minimum düzeyde sorunlarla karşılaştığınız yazılım geliştirme süreçlerinizin olması dileğiyle :)

Aşağıdaki bağlantıya tıklayarak bu metnin sunum formatına ulaşabilirsiniz:

Yazılım Geliştirme Süreci Sunum Dosyası

Faydalandığım kaynaklar :

Sultan Sarızeybek - YAZILIM YAŞAM DÖNGÜ MODELLERİ(Software Development Life Cycle)

Yazılım Proje Yönetimi - Dr. Ali Nizam, Papatya Yayınları 2. Basım Eylül 2015

--

--