Bilgisayar Sistemleri; donanım, yazılım ve kullanıcılardan oluşur. Yazılım sadece belirli bir işlemi yapan bir program değildir. Yazılım belirli bir mantık dahilinde insanlar tarafından oluşturulan program, veri ve belgeler topluluğudur.
Veri: Her tür yazılım mutlaka bir veri üzerinde çalışmak durumundadır. Veri dış ortamdan alınabileceği gibi, yazılım içerisinde de üretilebilir. Yazılımın temel amacı “veri”yi belirli algoritmalar kullanarak “bilgi”ye dönüştürmektir.
Program (kod): Yazılımın ana çıktısı sonuçta bir bilgisayar programıdır. Program işletime alındıktan sonra bakım çalışmaları sürekli olarak gündeme gelir.Bunun iki temel nedeni:
- hiç bir program bütünüyle her olasılık göz önüne alınarak test edilemez.
- işletmeler doğaları gereği dinamik bir yapıya sahiptir ve zaman içerisinde sürekli olarak yeni istek ve gereksinimler ortaya çıkabilmektedir.
Belge (dokümanlar): Yazılım üretimi bir mühendislik disiplini gerektirir. Mühendislik çalışmalarında izlenen yol ve kullanılan yaklaşımlar yazılım üretimi için de geçerlidir. Yazılım üretimi sırasında, bir çok aşamada (planlama, analiz, tasarım, gerçekleştirim, vb.) yapılan ara üretimlere ait bilgiler belli bir düzende belgelenmelidirler.
Yazılım mühendisliği bir yöntemler, teknikler ve araçlar kümesi olarak değerlendirilebilir. Yazılım mühendisliğinin hedefi; yazılım üretimindeki karmaşıklıkları gidermektir. Geçmişte kullanılan iş akış şemaları gibi yöntemler günümüzde yetersiz kalmaktadır. Ayrıca, yazılım üretimi işi tek kişinin başarabileceği boyuttan çıkmış ve bir takım işi biçimine dönüşmüştür. Yazılımın daha çok mantıksal boyutuyla ilgilenir ve işi insanlarla ilişkiyi gerektirir. Temel hedefi; üretimin en az maliyet ve en yüksek nitelikte yapılmasını sağlamaktır. Programcı değildir. Ancak programcının tüm yeteneklerine sahiptir. Sistem analisti de değildir. Farkı; analist sadece sistemin analiz aşaması ile ilgilenirken, yazılım mühendisi tüm aşamaların içindedir.
Yazılım Geliştirme Yaşam Döngüsü ve Modeller
Herhangi bir yazılımın, üretim aşaması ve kullanım aşaması birlikte olmak üzere geçirdiği tüm aşamalar olarak tanımlanır. Yazılım işlevleri ve ihtiyaçlar sürekli değiştiği ve geliştiği için bir döngü biçiminde düşünülür. Yazılım yaşam döngüleri tek yönlü, doğrusal olarak düşünülmemelidir.
Planlama: Personel ve donanım gereksinimlerinin çıkarıldığı, fizibilite çalışmasının yapıldığı ve proje planının oluşturulduğu aşamadır.
Analiz: Sistem gereksinimlerinin ve işlevlerinin ayrıntılı olarak çıkarıldığı aşama. Var olan işler incelenir, temel sorunlar ortaya çıkarılır.
Tasarım: Belirlenen gereksinimlere yanıt verecek yazılım sisteminin temel yapısının oluşturulduğu aşamadır.
- mantıksal; önerilen sistemin yapısı anlatılır (akış şemaları)
- fiziksel; yazılımı içeren bileşenler ve bunların ayrıntıları (ekran tasarımları)
Gerçekleştirim: Kodlama, test etme ve kurulum çalışmalarının yapıldığı aşamadır.
Bakım: Hata giderme ve yeni eklentiler yapma aşaması (teslimden sonra).
Gelişigüzel Model
- İnceleme
- Analiz
- Tasarım
- Kodlama
- Modül Testleri
- Altsistem Testleri
- Sistem Testi
- Belgeleme
- Kurulum
Çağlayan Modeli
V Süreç Modeli
Helezonik Model
- Planlama: Üretilecek ara ürün için planlama, amaç belirleme, bir önceki adımda üretilen ara ürün ile bütünleştirme
- Risk Analizi: Risk seçeneklerinin araştırılması ve risklerin belirlenmesi
- Üretim: Ara ürünün üretilmesi
- Kullanıcı Değerlendirmesi: Ara ürün ile ilgili olarak kullanıcı tarafından yapılan sınama ve değerlendirmeler
Evrimsel Geliştirme Modeli
Araştırma Tabanlı Model
- Konfigürasyon yönetim modeli
- Maliyet yönetim modeli
- Kalite yönetim modeli
- Risk yönetim modeli
- Proje yönetim modeli
- Değişiklik yönetim modeli
- Kullanıcı arayüz ve ilişki modeli
- Standartlar
- Ayrıntılandırılmış bir süreç modeli
- Ayrıntılı süreç tanımları
- İyi tanımlı üretim yöntemleri
- Süreçlerarası arayüz tanımları
- Ayrıntılı girdi tanımları
- Ayrıntılı çıktı tanımları
- Her bir etkinlik sonunda alınan çıktıların tamam, doğru, açık ve tutarlı olduğunun doğrulanması.
- Her etkinlikte ürünün teknik yeterliliğinin değerlendirilmesi ve uygun çözüm elde edilene kadar aktivitelerin tekrarlanması.
- Geliştirilen belirtimlerin önceki belirtimlerle karşılaştırılması.
- Yazılım ürünlerinin tüm uygulanabilir gereklerinin sağlandığının gerçeklenmesi için sınamaların hazırlanıp yürütülmesi.
Yazılım Testleri
- Birim sınama
- Alt sistem sınama
- Sistem sınaması
- Kabul sınaması
- Alfa-Beta sınaması
- Birim Sınama: Bağlı oldukları diğer sistem unsurlarından tümüyle soyutlanmış olarak , birimlerin doğru çalışıp çalışmadıklarının belirlenmesi amacıyla yapılır.
- Alt Sistem Sınama: Alt-sistemler modüllerin bütünleştirilmeleri ile ortaya çıkarlar. Yine bağımsız olarak sınamaları yapılmalıdır. Bu aşamada en çok hata ara yüzlerde bulunmaktadır.
- Sistem Sınaması: Üst düzeyde, bileşenlerin sistem ile olan etkilesiminde çıkacak hatalar aranmaktadır. Ayrıca, belirtilen ihtiyaçların doğru yorumlanıp yorumlanmadıkları da sınanmalıdır.
- Kabul Sınaması: Çalıştırılmadan önce sistemin son sınamasıdır. Artık, yapay veriler yerine gerçek veriler kullanılır.
- Alfa Sınamada; sistemin geliştirildiği yerde kullanıcıların gelerek katkıda bulunması sistemi test etmesi amaçlanmaktadır.
- Beta Sınamasında; kullanıcı, geliştirilen sistemi kendi yerleşkesinde, bir gözetmen esliğinde yapar. Yazılım testleri sistem bilgisine göre de iki şekilde test edilir. Bir yazılım uzmanı sistemini bu iki testten geçirmelidir.
- Kara kutu testi (Black-Box Testing): Sistemin tümüne yönelik işlevlerin doğru yürütüldüğünün testidir. Sistem şartnamesinin gerekleri incelenir.
- Beyaz kutu testi (White-Box Testing): İç işlemlerin belirtimlere uygun olarak yürütüldüğünün bileşenler tabanında sınanmasıdır.
Bir yanıt yazın