Yazılım Geliştirme Süreçleri
Yazılım kelimesinin sözlük anlamına bakıldığında; yazılım,
“bir bilgisayarda donanıma hayat veren ve bilgi işlemde kullanılan programlar,
yordamlar, programlama dilleri ve belgelemelerin tümü” olarak ifade
edilmektedir. Yazılım ayrıca, mevcut bir problemi çözmek amacıyla değişik
cihazların birbirleriyle haberleşebilmesini sağlayan ve görevlerini ya da kullanılabilirliklerini
geliştirmeye yarayan bilgisayar dili kullanılarak oluşturulmuş anlamlı ifadeler
bütünü olarak da nitelendirilebilir. Yazılım ile ilgili bu tanımlamalar daha
çok kod ile ilgilenirken yazılım geliştirme, bilinenin aksine sadece kodlama
değildir. Birkaç tane kullanıcı ekranı tasarlayıp, bu ara yüzlerin arkasına kod
yazarak ve veritabanı ilişkisi kurularak yazılım geliştirme süreci
tamamlanamaz. Bu işlemler yazılım geliştirme sürecinin sadece bir bölümü olup,
toplamda yazılım geliştirme süreci kodlama yapmaktan çok daha fazlasıdır . Bu
bakımdan yazılım geliştirme, yazılımın hem üretim hem de kullanım süreci
boyunca geçirdiği tüm aşamalar olarak tanımlanabilir.
Geçmişte yazılım geliştirmede başvurulan iş akış şemaları
gibi yöntemler günümüzde gereksinimleri karşılayamadıklarından etkinliklerini
yitirmişlerdir. Bu yöntemler özellikle güvenlik odaklı olmadıklarından yetersiz
kalmışlardır. Yazılımın her aşamasında güvenliğe ilişkin ortaya çıkabilecek
problemleri gözeten etkin bir geliştirme süreci sonuç ürünün daha güvenilir
olmasına önemli katkı sağlayacaktır.
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ınmaktadır. Böylece döngü içerisinde her hangi bir aşamada geriye dönmek
ve tekrar ilerlemek söz konusudur . Yazılım geliştirmede çok sayıda farklı
model ve süreç değerlendirmelerinden söz etmek mümkündür. Bununla birlikte;
yazılım mühendisliğindeki diğer modellere temel teşkil eden “Çağlayan Modeli
(Waterfall Model)” yazılım yaşam döngüsünü analiz, tasarım, kodlama, test ve
bakım olmak üzere beş aşamada ele almaktadır.
Analiz
Bir problemin çözümü olarak nitelediğimiz yazılımların ne
yapacağını ve nasıl yapacağını belirlediğimiz yani problemi tanımladığımız
aşama analiz aşamasıdır. Yazdığınız kod ancak isteneni doğru bir biçimde yerine
getiriyorsa başarılı bir yazılımdır. Bu nedenle öncelikle yazılımdan ne
istendiğinin doğru bir biçimde tanımlanması gerekir. Analiz aşaması personel,
donanım ve sistem gereksinimlerinin belirlenmesi, sistemin fizibilite
çalışmasının yapılması, kullanıcıların gereksinimlerinin analizi, sistemin ne
yapıp ne yapmayacağının kısıtlamalar göz önüne alınarak belirlenmesi, bu
bilginin kullanıcılar tarafından doğrulanması ve proje planı oluşturulması
adımlarından oluşur.
Tasarım
Analiz aşaması sonucunda belirlenen gereksinimlere yanıt
verecek yazılımın temel yapısının oluşturulduğu aşamadır. Yazılım tasarımı, bir
bileşen veya sistemin nasıl gerçekleştirileceğini belirlemek için kullanılan
teknikler, stratejiler, gösterimler ve desenlerle ilgilidir. Bu aşama yazılım
bileşenleri arasındaki içsel ara yüzler, mimari tasarım, veri tasarımı,
kullanıcı ara yüzü tasarımı, tasarım araçları ve tasarımın değerlendirilmesi
alt süreçlerini de kapsamaktadır. Tasarım aşaması, yazılımın hem kullanıcı ara
yüzünü hem de programın omurgasını ortaya koymaktadır. Yapılacak tasarım,
yazılımın işlevsel gereksinimlere uygun olmasının yanı sıra kaynaklar,
performans ve güvenlik gibi kavramları da göz önüne alınarak
gerçekleştirilmelidir.
Kodlama
Kodlama aşaması, tasarım sürecinde ortaya konan veriler
doğrultusunda yazılımın gerçekleştirilmesi aşamasıdır. Bu süreç programlama
çalışmalarının yanı sıra yazılımın geliştirilmesi ve kullanıcıya ulaştırılması
sürecindeki bütün çalışmaları kapsar. Tasarım sonucu üretilen süreç ve veri
tabanının fiziksel yapısını içeren fiziksel modelin bilgisayar ortamında
çalışan yazılım biçimine dönüştürülmesi çalışması olarak da nitelendirilebilir
. Yazılım geliştirme ortamı, programlama dili, veri tabanı yönetim sistemi,
yazılım geliştirme araçları seçimi kodlama aşamasında gerçekleştirilir.
Test
Test aşaması, yazılım kodlanması sürecinin ardından
gerçekleştirilen sınama ve doğrulama aşamasıdır. Elde edilen uygulama
yazılımının hem belirlenen gereksinimleri sağlayıp sağlamadığı hem de
gerçekleştirimin beklentilere uygun olup olmadığını kontrol etmek için statik
ve dinamik sınama tekniklerinden yararlanır. Statik teknikler, yazılımın tüm
yaşam döngüsü boyunca elde edilen gösterimlerin analizi ve kontrolüyle
ilgilenirken, dinamik teknikler sadece gerçekleştirilmiş sistemi içerir.
Yazılım üretiminde ilk testler genelde geliştirme sürecinde programcı
tarafından yapılır. Bununla birlikte, asıl hata ayıklama ve geribildirim
hizmeti test ekipleri tarafından yapılır. Testler ve geribildirim müşteri
yazılımı kullandığı sürece devam eder. Test sürecinde en faydalı
geribildirimler son kullanıcı test gruplarından gelir.
Hiç yorum yok:
Yorum Gönder