Transcript proje2_9
Doğrulama ve Geçerlilik- Verification and Validation Yazılım Sisteminin kullanıcı isteklerini karşılaması Hedefler: • • • Doğrulama ve geçerlilik kavramları, karşılaştırılması Programı gözden geçirme süreci Statik çözümleme yöntemleri doğrulama teknolojisi gibi ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 1 Doğrulama ve Geçerlilik Doğrulama: “Biz ürünü doğru mu geliştiriyoruz" • Geçerlilik: “Biz doğru ürün mü geliştiriyoruz" • Yazılım belirteçlere uymalıdır Yazılım gerçek kullanıcı isteklerini yerine getirmelidir V & V yazılım sürecinin her adımına uygulanmalıdır İki önemli hedef: • • Sistemdeki kusurların (defect) bulunması İşletimsel durumda sistemin yararlı olabileceğinin kestirimi ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 2 Statik ve dinamik doğrulama STATİK – yazılımı gözden geçirme • • Sorunları bulmak için statik sistem çözümlemesi Araç desteği ve kod çözümlemesi DİNAMİK – yazılımın denenmesi • • Ürünün davranışının izlenilmesi Sistem deneme verileri ile çalıştırılır ve onun davranışı gözlemlenir ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 3 Statik ve dinamik V&V Statik doğrulama Static verification Gereksinimlerin belirteci Requirements specification yüksekseviye tasarımı High-level design formal belirteç Formal specification ayrıntılı tasarım Detailed design Program Dynamic validation Prototype doğrulama prototip ©Ian Sommerville 2000 program Software Engineering, 6th edition. Chapter 19 Slide 4 Program denemesi Hataların varlığını araştırır Başarılı deneme hata bulan denemedir İşlevsel olmayan gereksinimler için tek geçerlilik yöntemidir Statik doğrulama ile birlikte kullanıla bilir ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 5 Deneme türleri Kusur denemesi • • Sistemin kusurlarını bulmak için tasarlanır. Başarılı kusur denemesi sistemde hataların varlığını bulmak için çok önemlidir İstatistiksel deneme • • • Güvenilirliği değerlendirmek için Kullanıcı girişlerinin sıklığını ifade etmek için tasarlanır Güvenlik tahmini için kullanılır ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 6 V & V amaçları Doğrulama ve geçerlilik, yazılımın amacına uygun olması güvenini oluşturmalıdır Bu, yazılımın tümüyle kusursuz olacağı anlamına gelmez Yazılım kullanım amacı için yeterli derecede iyi olmalıdır • Kullanım türü , gereken güvenin derecesini belirler ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 7 V & V güveni Sistemin amacına, kullanıcı beklentilerine ve Pazarlama ortamına bağlıdır • Yazılım işlevi » Güven seviyesi, yazılımın kurumda ne kadar önemli olmasına bağlıdır • Kullanıcı beklentileri » Belirli türden yazılımlardan kullanıcıların beklentileri düşük ola bilir • Pazarlama ortamı » Ürünün erken pazara sürülmesi , kusurları bulmaktan bazen daha önemli ola bilir ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 8 Deneme ve kod ayıklama-Testing and debugging Kusur denemesi ve kod ayıklama farklı süreçlerdir Doğrulama ve geçerliliğin amacı programda kusurların mevcutluğunu tespit etmektir Kod ayıklama hataları yerelleştirmek ve aradan kaldırmak içindir ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 9 V & V planlama Deneme ve gözden geçirme süreçlerinden daha iyi sonuç ala bilmek için ciddi planlama gerekmektedir Planlamaya geliştirme sürecinin erken devirlerinde başlanmalıdır Plan statik doğrulama ve deneme arasındaki dengeyi tanımlamalıdır Deneme planlaması, deneme süreci için standartların tanımlanmasıdır ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 10 Geliştirme için V-model Gereksinim belirteci sistem belirteci Requir ements specification System specification teslim denemesi planı ayrıntılı tasarım System design System integration test plan Acceptance test plan Detailed design Sub-system integration test plan sistem bütünleşme denemesi planı Acceptance test Service Hizmetler sistem tasarımı teslim denemesi ©Ian Sommerville 2000 System integration test Modül kodlama ve deneme Module and unit code and tess alt sistemlerin bütünleşme deneme planı Sub-system integration test sistem bütünl. denemesi Software Engineering, 6th edition. Chapter 19 altsistem büt. denemesi Slide 11 Yazılım deneme planının yapısı Deneme süreci Gereksinimlerin izlenebilirliği Denenen birimler Deneme zaman çizelgelemesi Deneme yordamları Donanım ve yazılım gereksinimleri Kısıtlamalar ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 12 Yazılımın gözden geçirilmesi Sapmaları ve kusurları ortaya çıkarmak için kaynakların incelenmesi • • Sistemin her türlü kaynaklarına uygulana bilir • gereksinimler, tasarım, deneme verileri ve s. Hataları ortaya çıkarmak için etkili yöntem Basit gözden geçirme ile çok farklı kusurları ortaya çıkarmak mümkündür • Sistemin yürütülmesini gerektirmez Çalıştırmadan önce kullanıla bilir Denemede, bir kusurun diğerini örtmesi programın birkaç kez yürütülmesini gerektire bilir Alan ve programlama bilgilerinin yeniden kullanımı • Gözden geçirenler sıklıkla ortaya çıka bilecek kusurları seze bilirler ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 13 Gözden geçirme ve deneme Gözden geçirme ve deneme biri birini tamamlar Her ikisi V & V sürecinde kullanılır Gözden geçirme, müşterinin gerçek gereksinimlerine uyumluluğu değil, belirteçlere uyumluluğu yoklar; Gözden geçirme işlevsel olmayan nitelikleri (başarım,kullanıla bilirlik) yoklamaz ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 14 Program gözden geçirme Kusurları bulmak (düzeltmek için değil) için uygulanır Kusurlar • • • Mantıksal hatalar Kodlardaki sapmalar( örn., başlangıç değer verilmemiş değişken) Standartlarla uyumsuzluk ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 15 Gözden geçirme süreci Sistem, gözden geçirme grubuna anlatılır Kod ve uygun belgeler grup üyelerine dağıtılır Gözden geçirme zamanı bulunan hatalar kaydedilir Bulunan hataları gidermek için güncellemeler yapılır Yeniden gözden geçirme yapıla veya yapılmaya bilir ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 16 Gözden geçirme grubu En azı 4 kişi Kodun yazarı Gözden geçiren(Inspector) hataları ve uyumsuzlukları bular Okuyucu (Reader) kodu gruba okur Yönetici (Moderator) toplantılara başkanlık yapar ve hataları kaydeder ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 17 Gözden geçirme listesi Genel hataların yoklama listesi gözden geçirme sürecini yürütmek içindir Hatalar listesi programlama diline bağımlıdır Örnekler • • • • Başlangıç değerler verme Sabitleri adlandırma Döngülerin kesilmesi Dizi sınırları ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 18 Gözden geçirme başarısı Genel gözden geçirme sürecinde 500 komut/saat Bireysel yaklaşımla 125 kod/saat Pahalı süreçtir 500 satırın gözden geçirilmesinin maliyeti yaklaşık 40 kişi/saattir ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 19 Otomatik statik çözümleme STATİK çözümleyiciler –kaynak kodu işlemek için yazılım araçları Onlar program metnini taramakla olası hatalı koşulları bulmaya çalışır ve bu hataları V&V grubuna bildirir Gözden geçirme sürecinde çok etkilidir. Gözden geçirme yerine kullanılamaz ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 20 Statik çözümleme Hata sınıfı statik çözümlemeler Veri hataları Başlangıç değerlerini almamış değişkenlerin kullanılması, Değişkenler ilan edilmiş ama kullanılmamıştır, Değişkenlere iki kez değer verilmiş ama arada hiç kullanılmamışlar Dizilerin sınırlarında olası hatalar, İlan edilmemiş değişkenler Denetim hataları erişilemez kod Döngüde koşulsuz dallanma Giriş-çıkış hataları aynı değişken iki kez çıkış değişkeni olarak kullanılsa da arada ona yeni değer verilmemiş Arayüzü hataları parametrenin türü yanlış, parametreler sayısı yanlış, işlevlerin sonucu kullanılmayıp çağrılmayan fonksiyon ve yordam Bellek ile bağlı hatalar atanmamış göstergeler, göstergelerin doğru hesaplanmaması ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 21 Statik çözümleme adımları Denetim akışlarının çözümlenmesi • Çok girişli veya çıkışlı döngüleri yoklamalı, erişilemeyen kodları bulmalı ve s. Verilerin kullanımının çözümlenmesi • Başlangıç değerler verilmemiş, tanımlanmış, ama hiç zaman kullanılmayan değişkenlerin ve s. bulunması Arayüzü çözümlenmesi • Altprogram ve yordamların belirtilmesi ve kullanımındaki tutarlılığının yoklanılması Bilgi akışının çözümlenmesi • Çıkış değişkenlerinin bağımlılığının tanımlanması Yol çözümlenmesi • Programdaki yolların ve bu yollarda yürütülen komutların araştırılması ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 22 Önemli hususlar Doğrulama ve geçerlilik aynı şey değildir. • • Doğrulama sistemin belirtece uygunluğunu gösteriyor Geçerlilik, programın müşteri isteklerini karşılamasını gösteriyor Deneme sürecini yerine getirmek ve kontrol etmek için deneme planları hazırlanır Statik doğrulama yöntemleri hataları bulmak için programın çözümlenmesini kapsar Programın gözden geçirilmesi hataları bulmak için çok etkili yoldur Gözden geçirme zamanı program kodu küçük grup tarafından kontrol edilir Statik çözümleme araçları program sapmalarını bula biliyor ©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 19 Slide 23