Veysel Uğur KIZMAZ

Yazılım Yaşam Döngüsü Nedir

28.12.2012Okunma Sayısı: 33553Kategori: Yazılım Mühendisliği

 Yazılım Yaşam Döngüsü Nedir? (Software Development Lifecycle)

Geliştirdiğiniz bir yazılım projesinin planlamasından başlayarak teslimatına kadar geçirmiş olduğu bütün aşamalara ve bu aşamalardan oluşan döngüye, Yazılım Geliştirme Yaşam Döngüsü denir.

Bir yazılım projesinin geliştirilmesi, sadece kodlamatan oluşmamaktadır. Basitçe bir proje geliştirilirken projenin planlama, analiz, tasarım, üretim ve test aşamaları yer almaktadır ve almalıdır. Bu aşamalar bir kere gerçekleştirildikten sonra proje tamamlanmayabilir. Bu aşamaların bir döngü halinde düşünülmesi gerekmektedir. Proje tamamlandıktan sonra gelecek istekler, hata düzeltmeleri, projeye eklenecek yeni modüller vs konular için bu süreç devam etmektedir. Bu döngüye yazılım geliştirme yaşam döngüsü adı verilmektedir.

Bir yazılım projesinde planlama, analiz, tasarım, üretim ve test aşamalarının tamamlandığını ve proje içerisinde bu süreçler tamamlandıktan sonra hiçbir hata ve yeni istek olmadığını varsayalım. Bu noktada devreye projenin bakım aşaması girmektedir. Geliştirilen bütün yazılım projelerinin ileride doğabilecek hataları ve yeni istek ve talepleri için bakım sürecinin de yazılım yaşam döngüsüne eklenmesi gerekmektedir. Son haliyle yazılım yaşam döngüsü ele alındığında aşağıdaki süreç karşımıza çıkmaktadır.
 
Yazılım Geliştirme Yaşam Döngüsü
 
Yazılım yaşam döngüsü içerisindeki bu aşamalarda neler yapıldığına kısaca değinelim. İlerleyen makalelerde her aşamanın detaylarını da inceleyeceğiz.
 
Planlama
Yazılım yaşam döngüsünün başlangıç noktasıdır. Temel ihtiyaçların belirlendiği, proje için fizibilite çalışmalarının yapıldığı ve proje planlamasının oluşturulduğu dönemdir.
 
Analiz
Yazılım yaşam döngüsünün en önemli aşamlalarından biri olan analiz sürecinde projenin tüm işlevleri detaylı olarak belirlenir. Bu belirtimlere bağlı olarak sistem gereksinimleri netleşir ve buna bağlı talepler hazırlanır. Kısaca, analiz sürecinde projenin tüm detayları ortaya çıkartılır.
 
Tasarım
Analiz çalışması sonucu ortaya çıkartılan proje detayları baz alınarak proje gerekli durumlarda bileşenlerine ayrılırlar, proje içerisinde yapılacak işlemler adım adım belirlenir ve proje planı oluşturulur.
 
Proje planının yanısıra tasarım dokümanı da oluşturulmalıdır. Tasarım dokümanında proje bilgileri (amaç, kapsam vs), sistem tasarım bilgileri, tasarım detayları, veri modeli, kullanıcı arayüz tasarımları, UML Diagramları. Tasarım dokümanının amacı, yazılım geliştiricinin yazılımını geliştirirken referans alacağı ve proje sürecinde/sonrasında projeye dahil olacak yeni yazılımcıların projeyi daha kolay anlayabilmesini sağlayacak teknik bir dokümantasyona sahip olması gerekliliğidir.
 
Üretim
Planlama, analiz ve tasarımı tamamlanıp yapılacak işlemleri detaylı olarak belirlenen projenin geliştirme aşamasıdır. Bu noktadan sonra herhangi bir analiz işlemi yapılmamalı, proje, tasarım aşamasında oluşturulan planlama çerçevesinde ilerlemelidir. Üretim aşamasında yazılımcı alfa testlerini de gerçekleştirmektedir.
 
Test
Yazılım geliştirilmesi tamamndıktan sonra müşteriye sunmadan önce, test ekibi tarafından beta testlerinin gerçekleştirilmesi aşamasıdır. Bu aşama tamamlandıktan ve varsa hatalar giderildikten sonra proje yayına alınmaktadır.
 
Bakım
Proje yayına alındıktan sonra oluşabilecek hataların giderilmesi, yazılımın iyileştirilmesi ve yeni işlevlerin eklenmesi süreçleridir. Bu süreç zarfında kullanıcılardan gelen bilgiler doğrultusunda bu istekler gerçekleştirilmektedir.
 
Teorik olarak yazılım yaşam döngüsünün aşamalarını inceledik. Şimdi bir proje düşünelim ve her aşamada proje içinde neler yapıldığını maddeler halinde inceleyelim.
 

Yazılım Geliştirme Yaşam Döngüsü Örneği

Projenin Adı: Araç takip sistemi

Müşterinin Talebi: Şirket araçlarını kimlerin aldığını, kaç km yol yaptıklarını aylık incelemek ve takibini hazırlanacak program üzerinden gerçekleştirmek.

Planlama
“Yazılım yaşam döngüsünün başlangıç noktasıdır. Temel ihtiyaçların belirlendiği, proje için fizibilite çalışmalarının yapıldığı ve proje planlamasının oluşturulduğu dönemdir. “
 
Projenin planlaması yapılırken proje içerisinde yapılacak işlemleri temel hatlarıyla ortaya çıkarmak gerekmektedir.
  • Araç takibinin yapılması için sisteme araç girişinin yapılması gerekir.
  • Araç bir personele verileceği için personel bilgi girişinin yapılması gerekir.
  • Personelin aracı alım, kullanım ve teslim bilgilerinin girilmesi için bilgi girişinin yapılması gerekir
  • Aylık olarak araç ve personel bazında raporlama gerekir.
Projede yapılacak işlemler basitçe belirlendikten sonra projenin geliştirilmesi ve kullanımı için gerekli ortam belirlenir.
  • Proje Java programlama diliyle yazılacaktır ve client uygulaması olacaktır.
  • Projenin bilgisayar üzerinde çalışması için …. sistem özelliklerine sahip olması gerekmektedir.
  • Proje bilgileri MySQL veritabanında tutulacaktır. Veritabanı için ayrı bir sunucu gerekmektedir. Sunucu bilgileri: …
 
 
Analiz
“Yazılım yaşam döngüsünün en önemli aşamlalarından biri olan analiz sürecinde projenin tüm işlevleri detaylı olarak belirlenir. Bu belirtimlere bağlı olarak sistem gereksinimleri netleşir ve buna bağlı talepler hazırlanır. Kısaca, analiz sürecinde projenin tüm detayları ortaya çıkartılır.”
Proje planlamasında belirtilen maddeleri müşteriyle beraber (müşterinin kendisi ya da proje için belirlediği bir analiz ekibi/personeli ile) projenin detayları belirlenir.
  • Proje 3 parçadan oluşacaktır: Personel girişi, araç girişi, araç talebi
  • Araç İşlemleri: Araç ile ilgili işlemleri kapsar.
    • Araç Kaydı: Araçların system kaydı, bilgi güncellemesi ve sistemden silinmesi (görünmemesi) işlemlerini yapar.
    • Araç Listesi: Araçların durumları görüntülenir (boşta ve kullanımda bilgileri)
  • Personel İşlemleri: Personeller ile ilgili işlemleri kapsar.
    • Personellerin sisteme kaydı, bilgi güncellemesi ve sistemden silinmesi (görünmemesi) işlemlerini yapar.
    • Personel Listesi: Personellerin araç alım durumları görüntülenir (şu anda araç aldı / almadı)
  • Personel Araç Alım İşlemleri: Personelin araç alım/teslim edim işlemlerini kapsar.
    • Personel araç alımı: X personelinin Y aracını alım bilgilerinin girişini / düzenlemesini sağlar.
    • Personel araç iade: X personelinin aldığı Y aracını iade bilgilerinin girişini / düzenlemesini sağlar. 
  • Raporlama
    • Personelin 30 gün içinde aldığı araç bilgileri
    • Aracın 30 gün içinde kaç gün kullanıldığı bilgileri
 
Tasarım
“Analiz çalışması sonucu ortaya çıkartılan proje detayları baz alınarak proje gerekli durumlarda bileşenlerine ayrılırlar, proje içerisinde yapılacak işlemler adım adım belirlenir ve proje planı oluşturularak tasarım işlemi gerçekleştirilir. “
 
Analizde, yapılacak işlemler detaylandırıldıktan sonra yapılacak işlemler fonksiyon/ekran/işlem bazında listelenir ve hangi işlem için ne kadar zamanlama gerektiği belirtilerek proje planlaması oluşturulur.
 
İşlem
Süre
Başlangıç Tarihi
Bitiş Tarihi
Veritabanı sunucusu kurulumu veyapılandırması
0.5 gün
Veritabanı mimarisinin oluşturulması
1 gün
Araç listesi ekranı
0.5 gün
Araç kayıt ekranı (kaydet, düzenle, sil)
1 gün
Personel listesi ekranı
0.5 gün
Personel kayıt ekranı (kaydet, düzenle, sil)
1 gün
Araç alım ekranı (kaydet, düzenle, sil)
1 gün
Alınan araçları listeleme ekranı
0.5 gün
Araç iade ekranı (kaydet, dzüenle, sil)
1 gün
Personel 30 günlük araç kullanım raporu
1 gün
Araçların 30 günlük kullanım raporu
1 gün
Alfa testleri
2 gün
TOPLAM
11 gün
 
Üretim
“Planlama, analiz ve tasarımı tamamlanıp yapılacak işlemleri detaylı olarak belirlenen projenin geliştirme aşamasıdır. Bu noktadan sonra herhangi bir analiz işlemi yapılmamalı, proje, tasarım aşamasında oluşturulan planlama çerçevesinde ilerlemelidir. Üretim aşamasında yazılımcı alfa testlerini de gerçekleştirmektedir.”
 
Tasarım aşamasında belirtilen detaylar, günler, başlangıç ve bitiş tarihleri kapsamında projenin, toplam başlangıç tarihinde başlanır ve bitiş tarihinde tamamlanacak şekilde kodlaması ve alfa testleri gerçekleştirilir.
 
Test
“Yazılım geliştirilmesi tamamndıktan sonra müşteriye sunmadan önce, test ekibi tarafından beta testlerinin gerçekleştirilmesi aşamasıdır. Bu aşama tamamlandıktan ve varsa hatalar giderildikten sonra proje yayına alınmaktadır.”
 
Proje tamamlandıktan sonra test ekibi ya da müşteri tarafından projenin testleri yapılır. Varsa düzenlemeler veya eksiklikler yazılım geliştirici ekip tarafından tamamlanır.
 
Bakım
“Proje yayına alındıktan sonra oluşabilecek hataların giderilmesi, yazılımın iyileştirilmesi ve yeni işlevlerin eklenmesi süreçleridir. Bu süreç zarfında kullanıcılardan gelen bilgiler doğrultusunda bu istekler gerçekleştirilmektedir.”
 
Yazılım tamamlandıktan ve yayına alındıktan (müşteri kullanmaya başladıktan) sonra yazılıma eklenmesi gereken yerler olduğu belirtildi: Araç kaza yaparsa bu kaydın girileceği, araç ve personel bazında kazaların takip edileceği bir bölüm yapılması gerekiyor.
 
Bu durumda gelen yeni talepler için yazılım geliştirme yaşam döngüsü bu istekler için başa döner ve yeni istekler için Planlama > Analiz > Tasarım > Üretim > Test > Bakım süreçleri başlar.
Yukarıda belirtilen yazılım geliştirme yaşam döngüsü tanımlaması, genel hatlarla yazılım yaşam döngüsünün ne olduğunu anlamak için verilmiş standart bir süreçtir. Geliştirilecek yazılımların detayları, büyüklükleri ve işlevlerine bağlı olarak farklı standart metodolojiler üretilmiştir. Bu metodolojilerle ilgili detaylara ilerleyen makalelerde değiniyor olacağız.
 
Yepyeni makalelerde görüşmek dileğiyle :)
 
Veysel Uğur KIZMAZ
Bilgisayar Mühendisi
veysel@ugurkizmaz.com