Sayfalar

Yazılımda Kalite Kavramı

   Yazılım geliştirme sektöründe verimlilik kavramı , kaliteden ödün vermeden hızlı yazılım geliştirebilmek olarak tanımlanmaktadır.”Kaliteli” , beklentileri yakalayan hatta aşan ürün ya da hizmetler kullanılan bir terimdir.Kaliteli bir yazılımdan beklentiler genel olarak şu şekilde özetlenebilir :

  • Doğruluk (Correctness)
Verilen görevlerin tam olarak yerine getirilmesi olarak açıklanabilir.Bir yazılıma başlamadan önce beklentilerin tam olarak belirlenmesi gerekir.Yazılım ortaya çıktıktan sonra beklenen özellikler tam olarak sağlanmalıdır.
  • Dayanıklılık (Robustness)
Beklenmedik nedenlerden dolayı programın çalışması kesilmemeli , yanlış işlemler yapılmamalıdır.Sistem  iyi yönde de olsa kendinden beklenmeyen işler yapmamalıdır.Sistemin programcı hataları yüzünden kesintiye uğramaması için gerekli önlemler alınmalıdır.

  • Genişleyebilme (Extendibility)
İleri aşamalarda verilen görevlerin değiştirilmesi ya da yenilerinin eklenmesi kolay olmalıdır.
  • Tekrar kullanım (Reusability)
Yazılımın ya da yazılımın parçalarının başka yazılımlar içerisinde kullanılabilmelidir .
  • Uygunluk (Compability)
Endüstride kabul görmüş standardların (veri yapıları , mesaj yapıları ,kullanıcı yüzü vb) yazılım içerisinde uygulanması.
  • Standardlaştırma (Standardization)
Sistemin içerisinde kullanılacak standardların belirlenerek , tüm yazılımda buna uyulması.Standardlaştırma kaynak kodunda kullanılacak isimlendirmeden , kullanıcı ön yüzlerinin renklere kadar geniş bir kapsamda uygulanmalıdır.
  • Etkin Kaynak Kullanımı (Efficiency)
Bir yazılım çalıştığı ortamdaki tüm ekipmanları en iyi şekilde kullanmalıdır.Kaynakları eksik kullanmamak , gereğinden fazla kullanmamak , ortamın çalışmasına en az şekilde etkilememek olarak sayılabilir.
  • Taşınabilirlik (Portability)
Bir yazılımın geliştirildiği ortamlardan farklı ortamlara da taşınarak çalışması olarak özetlenebilir.Yazılım iki şekilde taşınabilir :
1.      Kaynak Taşımalı : Yazılımın kaynak kodunun farklı bir ortama taşınıp tekrar derlenerek çalıştırılabilmesi
2.      Hedef Taşımalı   : Yazılımın icra edilebilir dosyalarının taşınarak tekrar çalıştırılabilmesi
  • Kontrol Edilebilirlik (Verifiability)
    • Bir yazılımın hatalı durumlar ile karşılaşması durumunda kullanıcıya ve programcıya hata hakkında yeterli bilgi verebilmesi
    • Yazılımın çalışma şekli  hakkında bilgi verebilmesi (çalışma süreleri  , çalışma zamanları vb)
    • Yazılımın kod akışının gereğinde izlenebiliyor olması
  • Bütünlük (Integrity)
İstenmeyen erişimler ve değiştirmeler karşısında program , veri , doküman gibi elemanların korunması .Hata durumlarında tutarsızlıklar olmasına  izin verilmemesi.Örneğin programın bilgisi dışında bir dosyanın silinmesi halinde programın bunu anlayıp rapor etmesi.
  • Kolay Kullanım (Easy of use)
Yazılım ürününü kullanan kişinin ürünü kolayca öğrenmesi , sonuçlarını yorumlayabilmesi , hatalarını düzelterek işlerini fazla bir zahmete girmeden yapabilmesi.
  • Beraber Çalışma (Interoperability)
Yazılımın ihtiyaç duyduğu diğer yazılımları çağırabilmesi veya bir yazılım tarafından çağırılabilmesi özelliğidir.Bu durumda iki yazılım ardarda çalışma yanı sıra veri alışverişinde de bulunabilmelidirler.
  • Dokümantasyon (Documentation)
Yazılımı meydana getiren öğeler (standardlar , mimari , dizayn , algoritmalar vb) açık ve anlaşılır bir şekilde dokümante edilmiş olmalıdır.
  • Güvenilirlik (Reliability)
       Hazırlanan uygulamaların yüksek erişilebilirlik oranlarına sahip olması gereklidir. Sistem örneğin 7X24 erişilebilir olmalıdır.Yazılım tamamen ya da kısmen çökse bile kısa zaman içerisinde ayağa kaldırılabilmelidir.
  • Ölçeklenebilirlik (Scalability)
Hazırlanan yazılımlar ileride olabilecek kapasite artışlarını (örneğin kullanıcı sayısının artışı) karşılayabilir ve çözümü adreslemiş olmalıdır.
  • Hata Engelleme
Yazılım kullanıcıların hata yapmasını engellemelidir.Örneğin işlemler yerine getirilmeden kullanıcıdan doğrulama istenmesi , işlem sonucunun önceden bildirilmesi vb.
  • Son Kullanıcı Desteği (End User Support)
Yazılım son kullanıcıya kullanım hakkında yeterli yardımı sunabilmelidir.Ayrıca kolay kurulabilir olması ve yazılımın sürümü hakkında yeterli bilgi vermesi de gereklidir.
  • Güvenlik (Security)
Yazılım yetkili olmayan kullanıcıların işlem yapmasını ve verilere erişimini engellemeli , kritik verilerin şifreli şekilde saklamalıdır.


   Tüm bu özelliklerin sağlanabilmesi pek çok disiplinin yazılım süreçleri boyunca  uygulanması ile mümkün olabilir.Bu yazıda dizayn üzerinde ağırlıklı olarak durulmuşsa da bu tek başına kaliteli yazılım için yeterli değildir.Doğru dizaynın yanı sıra isteklerin toplanması , analizi , değişikliklerin ele alınması , risk kontrolünün yapılması  , sınamaların yapılması , dokümantasyonun yapılması vs gibi pek çok disiplin doğru şekilde uygulanmalıdır.

Sağlıcakla Kalın. 

Hiç yorum yok:

Yorum Gönder