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