yazılım kalitesi
DESCRIPTION
TRANSCRIPT
Yazılım Kalitesi ve
Kalite Özellikleri
Yazılım Kalitesi• “Ability to satisfy requirements” Deming, 1968• “Conformance to user requirements” Crosby, 1979• “Doing right it the first time” Price, 1985 • “Fitness for intended use” Juran, 1988
Yazılım Kalitesi• Hepimizin belli süreçlerde hissettiği ama tanımlayamadğı bir kavram.
• Soyut ve yoruma açık.• Gereksinimlerin karşılanma başarısı.
Yazılım kalitesi, yazılımın çözmeye çalıştığı problemlerin başarı derecesidir.
Kalite Gereksinimleri• Fonksiyonel gereksinimler
• Yazılımın yapabildiği ya da yapabileceği belirli aksiyonlar.
• İslevsellik(Functionality)• Fonksiyonel olmayan gereksinimler
• Güvenilirlik(Reliability)• Kullanılabilirlik(Usability)• Verimlilik(Efficiency)• Bakılabilirlik(Maintainability) • Taşınabilirlik(Portability)• ......
• Bu gereksinimlerin sorunsuz olarak karşılanması «kaliteli» anlamına gelir mi?
Kalite Özellikleri• Kalite Faktörleri(Sınıfları)...[klişe]
Nasıl Tanımlarız?• «You can’t manage what you can’t measure» Tom DeMarco
• Ölçebilmeliyiz...• Modeller
• Yol haritası• Kalite süreçlerinin karakteri
• Standartlar• SPICE
• İyileşme,iyileştirme
• Capability Maturity Model [CMM(I)]• Sertifikasyon ve yetenek belirleme
• ISO• Sertifikasyon
Nasıl Tanımlarız?• Yazılımın yaşam döngüsünde bulunan her «entity» için farklı şekilde tanımlıdır.
Müşteri
Son kullanıcılar
Geliştiriciler (:
EntegreSistemler
Bakım ve destekelemanları
Kalite Nasıl Sağlanır?• Hata Ayıklama (Geleneksel)
• Verification and Validation(Doğrulama)
• Hata Önleme• Software Quality Assurance(Kalite Güvence)
• Test-Driven Development(TDD)• Kalitenin sağlanması bir süreç dahilinde sürekli kontrol edilmelidir.
Hata Önleme > Hata Ayıklama
Kalite Nasıl Sağlanır?• Süreç içerisinde sürekli kontrol edilmelidir.
• Süreç de sorgulanabilmeli
Kalite Nasıl Ölçülür?• Feedback(Geri bildirim) en basit ölçme yöntemi ve aracı.• Müşteri,geliştirici,bakım,destek....
• Kod Kalitesi• Kod metrikleri• Kod review• Unit Test
Kod metrikleri• Sınıfın Ağırlıklı Metot Sayısı - Weighted Methods per Class (WMC)
• Kalıtım Ağacının Derinliği - Depth of Inheritance Tree (DIT)
• Alt Sınıf Sayısı - Number of Children (NOC)• Nesne Sınıfları Arasındaki Bağımlılık - Coupling Between Object Classes (CBO)
• Sınıfın Tetiklediği Metot Sayısı - Response For a Class (RFC)
• Metotların Uyumluğu - Lack of Cohesion in Methods (LCOM)
• ....• ..• .
Code SmellKötü Kod Kalitesi• Uzun method içerikleri• Uzun parametre listeleri• Tekrar eden kod• Büyük sınıf• Ölü kod• Veri objesi• Küçük sınıf• ..• .
Kaliteli Yazılım• Uzun yaşar• Genişletilebilir• Sorun yaratmaz• Maliyetlidir
• Maddi• Manevi
Haydi sor sor...
?
Teşekkürler (: