Büyük Veri ve Analitik: İş Kararlarını Nasıl Dönüştürüyor?
Teknoloji
- •
- 02 Dakika Okuma Süresi
Yazılım Kalite Modelleri ve Yazılım Ölçme Yöntemleri
Yazılımda kalitenin, özelliklerin olup olmadığı nasıl ölçülür. Bu özellikler nasıl anlamlı olur nasıl genele hitap eder yazılımın ölçülmesinin temel sorunu bunlardır.
Yazılım geliştirme aşamasında bulunan sınama, doğrulama işlemleri yazılım kalitesini ölçmeye sağlayan işlemler değildir.
Sınama (Validation): Gereksinimleri yani müşterinin ihtiyaçlarını tam anlamıyla geliştirmeyi kontrol altına alan işlemdir. Ürünün ihtiyaçlara göre uyup uymadığı kontrol edilir.
Doğrulama (Verification): Gereksinimleri doğru bir şekilde anlamlı bir şekilde geliştirmeyi hedefler.
Kalite ölçme ve değerlendirme işlemleri o andaki durumu değil ileride karşılabilecek sorunları da gösterebilmelidir.
Yazılımın kalitesini ölçme ve değerlendirme yapabilmek için gerekenler:
Hedef/Soru/Metrik yaklaşımının genel amacı üst kalitedeki hedefleri uygun metrikler ile ilişkilendirebilmektir. İl olarak özel projeelr için oluşturulsa da sonra ki aşamalarda kalite yükseltme işlemien uygun olarak geliştirilmiştir.
Firmaları yaptığı genel hata ise gerçekleştirelecek uygulamanın amaçlarını hedeflerini detaylı olarak belirlememektir.
Amaç rastegele verilerden anlam çıkarmayı önlemektir. Ölçme işlemi yukarıdan aşağıya doğru olmalıdır. Projenin detaaylı bir şekilde hedefleri belirlenmelidir. Bu belirlenen hedeflere hangi mesafede olduğunu belirleyen sorular belirlenmelidir. Bu oluşturulan sorularaı cevaplayacak uygun metrikler toplanarak bu metriklerin uygulanabilirliğine bakılmalıdır.
GQM yaklaşımının faydaları ise metrik kümesinin büyük olmasına gerek yok küçük tutularak gereksiz metriklerden uzak duruluyor. Toplanan veriler böylelikle anlamlı ve uyumlu oluyor.
GQM yaklaşımı üç katmandan oluşur.
Bir nesne için çeşitli amaçlarla farklı kalite modellerine, farklı ortamlara göre tanımlanır.
Ölçmenin nesneleri üçe ayrılır
Hedefin değerlendirilmesi ve doğrulanması için yapılacak çalışmaların belirlenmesi için gerekli sorular oluşturulur. Sorular, ölçmeye işlemine tabi tutulan konunun istenen kalite kriterine ve bakış açısına göre karakterize etmelidir.
Oluşturulan sorulara sayısal olarak cevap verebilecek veriler oluşturulur. Veriler iki türlü olabilir nesnel veya öznel. Nesnel de sadece ölçülen nesneye bağlıdır bakış açısı söz konusu değildir. Öznel de ise hem ölçülen nesneye hem de bakış açısına bağlıdır.
Yazılım hedefleri üst düzeyde bulunan işletme hedefleri ile bağlantı kurabilmek genel amacıdır. Önceki yaklaşımın (GQM) eksikleri yazılım hedefleri arasındaki ilişkiyi dikkate almıyor. Aynı zamanda ortaya konan hedeflerin kendi içinde oluşturduğu kümelenmeyi dikkate almıyor.
GQM + Strategies yaklaşımı bu sorunları çözmek üzere oluşturulmuştur.
Bu modelde ölçülecek durumun net bir anlamda şekillendirilmesi gerektiğini söyler. Günümüzde kullanılan bir çok yazılım kalite modelinin temeli FCM modeline dayanmaktadır.
Bu model yazılım geliştiricisi ile yazılımı kullanan arasındaki ilişkiyi anlaşmayı kolaylaştırmayı amaçlamaktadır.
Yazılım kalitesi üç temel bakış açısıyla ele alınmaktadır. Bunlar:
Ürün Revizyonu (Product Revision): Bakımın yapılabilmesi, değişikliğe açık olması, hataların kolayca fark edilip düzeltilebilmesi.
Ürün Geçişi (Product Transition): Yeni ortamlara geçisi kolay olabilmeli, yeni yazılım versiyonlarında kolayca eski yazılımların kullanılabilmesi.
Ürün Operasyonu (Product Operation): Yazılım kullanıldığı sıradaki kalite ile ilgilenir.
Bu model türü üç yapıda incelenir:
Etkenler: Her duruma göre yazılım kalitesini belirleyen kalite durumları belirlenir. Etkenler son kullanıcı tarafından bakıldığı zaman görünen özelliklerdir.
Kriterler: Her kalite etkenini etkileyecek yazılım iç tarafında bulunan özellikleri, kriterler, belirlenir. Bellek verimliliği gibi.
Metrikler: Kriterlerin seviyesini ölçmek için kullanılır. Yazılımdan somut olarak elde edilen değerlerdir. Burada metrikler evet veya hayır şeklinde hazırlanılır. Kriterler etkenlere, etkenlerden de kaliteye geçilir (aşağıdan yukarıya).
Modelin genel amacı ise tüm etkenleri bir araya getirerek yazılımın toplam kalitesini elde etmektir.
Metrik değerlerini belirleyen ölçümlerin yazılım yapımı devam ederken geliştirilmesi amaçlanır.
Kullanılabilirlik (Usability): Sistemin kullanıcı dostu olup olmadığı, öğrenme kolaylığı, verimlilik ve kullanıcı memnuniyeti gibi kriterleri kapsar.
Güvenilirlik (Reliability): Yazılımın belirli koşullar altında kesintisiz ve hatasız çalışabilme yeteneğidir.
Verimlilik (Efficiency): Yazılımın performans açısından kaynakları ne kadar etkili kullandığını belirler.
Bakım Kolaylığı (Maintainability): Yazılımın hata ayıklama, güncelleme ve geliştirme süreçlerindeki kolaylığını ifade eder.
Taşınabilirlik (Portability): Yazılımın farklı platformlarda çalışabilme yeteneğidir.
Öğrenilebilirlik (Learnability): Kullanıcıların yazılımı ne kadar hızlı ve kolay öğrenebildiğini ifade eder.
Hata Toleransı (Fault Tolerance): Yazılımın hatalara karşı dayanıklılığı ve kendini toparlama kabiliyeti.
Yanıt Süresi (Response Time): Kullanıcının yaptığı işlemlere karşılık yazılımın verdiği tepki süresi.
Modülerlik (Modularity): Yazılımın bağımsız bileşenler halinde geliştirilip yönetilebilme derecesi.
Uyumluluk (Compatibility): Yazılımın farklı donanım, işletim sistemi veya diğer yazılımlarla ne derece uyumlu çalıştığını belirler.
Görev Tamamlama Süresi: Belirli bir işlemin tamamlanması için geçen süre.
Sistem Kesinti Süresi: Yazılımın hizmet veremediği sürelerin toplamı.
Kaynak Kullanımı: CPU, bellek ve disk kullanımı gibi sistem kaynaklarının verimli kullanılıp kullanılmadığını ölçer.
Hata Oranı: Belirli bir süre içinde ortaya çıkan hata sayısı veya başarısız işlem yüzdesi.
Test Kapsamı: Yazılımın hangi bölümlerinin test edilip edilmediğini gösteren metrik.
ISO/IEC 9126: Yazılım kalite özelliklerini belirleyen uluslararası standarttır. İşlevsellik, güvenilirlik, kullanılabilirlik, verimlilik, bakım kolaylığı ve taşınabilirlik gibi kriterleri kapsar.
ISO/IEC 25010: ISO/IEC 9126'nın güncellenmiş versiyonudur ve yazılım kalitesini belirlemek için kullanılan yeni modeldir.
ISO/IEC 12207: Yazılım yaşam döngüsü süreçlerini tanımlayan standarttır. Yazılım geliştirme, bakım ve yönetim süreçlerini kapsar.
ISO/IEC 27001: Bilgi güvenliği yönetim sistemlerini belirleyen standarttır. Yazılımın güvenlik gereksinimlerini ele alır.
ISO/IEC 15504 (SPICE): Yazılım süreç değerlendirme standardıdır ve yazılım süreçlerinin olgunluk seviyesini ölçmeye yardımcı olur.