Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
Tayfun Elmas Serdar Taşıran
Koşut-zamanlı Yazılım Bileşenleri için Bir Otomatik Doğrulama Çerçevesi: VyrdMC Tayfun Elmas Serdar Taşıran Koç Üniversitesi Sarıyer, İstanbul UYMS’05, ODTÜ, Ankara
2
Koşut-zamanlı Bileşenler
Soyutlanmış bir veriyapısı + koşut-zamanlı prosedürler Geniş kapsamlı yazılımlarda yapıtaşı Dosya sistemleri, veritabanları, internet servisleri Standart Java ve C# kütüphaneleri Başarımı artırmak için karışık senkronizasyon mekanizmaları kullanımı Koşut-zaman hatalarına yatkın Koşut-zaman hataları Veri bozulması ve veri kaybı Oluşturulması, tespiti ve yeniden oluşturulması zor Standart test yöntemi yetersiz
3
Standart Test Yöntemi Uzun koşut-zamanlı testler çalıştır
Çalışma sonucu son durumu kontrol et. Tüm sıralı çalışmaları kontrol et. N metot için N! farklı sıralama Ara durumları denetlemek çok daha pahalı. Her iş parçacağından kaç metot sona erdi? Düşük gözlemlenebilirlik Girdi-çıktı ilişkisi denetlenir. Hata analizi zor Yanlış pozitifler: Hatalı durumlar kaçırılabilir.
4
Çalışma Zamanı Doğrulama: Vyrd
Test Birimi Koşut-zamanlı metot çağrıları Gerçekleştirim Yürütmeyi günlüğe kaydet Call Insert(3) Unlock A[0] A[0].elt=3 Call LookUp(3) Return“success” Unlock A[1] A[1].elt=4 read A[0] Return “true” A[0].elt=null Call Insert(4) Call Delete(3) ... Günlükteki olayları yeniden çalıştırılır. Olayları günlükten oku Çağrılan metotları sıralı çalıştırılır. Yürütme-tekrar birimi Gerçekleştirim* Belirtim* Arıtma denetleme Yürütme izi [ Gerçekleştirim ] Yürütme izi [ Belirtim ]
5
Doğruluk Kriteri: Arıtma (Detay cikar)
Belirtim: Bileşenin sıralı ortamdaki davranışı tanımlar. Gerçekleştirim: Koşut-zamanlı ortamda çalışır. Kriter: Gerçekleştirime ait her koşut-zamanlı çalışma için belirtime ait denk sıra-düzenli bir çalışma olmalıdır. Reduction, purity: Karmaşık yazılımlar için yanlış negatifler. Sequential consistency, linearizability: Belirtim koşut-zamanlı özel durumlarda yetersiz. Arıtma: Belirtim koşut-zamanlı durumları göz önüne alır. Yürütme boyunca denklik Girdi/çıktı arıtma: Girdi çıktı verisi Görüş arıtma: Soyut veri yapıları Metot-yerel iddialardan daha kapsamlı Yüksek gözlemlenebilirlik S. Taşıran and S. Qadeer. Runtime refinement checking of concurrent data structures. Proceedings of the Fourth Workshop on Runtime Verification (RV’04), İspanya, 2004.
6
Çalışma Zamanı Arıtma Denetimi
Yürütme izlerinin arıtma için denetlenmesi Çalışma süresince oluşan olayları izle. Yürütme izi: Olayların “bütün-sıralı” dizisi Toplanan veriyi arıtma için analiz et. Endüstriyel seviyede yazılımlarda etkin denetim Test ve etraflı doğrulama arasında Kapsamanın ölçülmesi önemli
7
Teslim Noktası Teslim noktası: Metodun tüm etkisi dış ortama aktarılması Her metot çalışması için tek bir teslim noktası Teslim noktalarının bütün-sırası: Tanık-sıra Koşut-zamanlı çalışma için tek bir sıralama Her metot için Birden fazla teslim noktası Her çalışmada sadece bir teslim noktası Yürütme boyunca teslim noktalarında denetleme Girdi/çıktı-arıtma denetimi Görünüm-arıtma denetimi
8
Çalışma Zamanı Doğrulama: Vyrd
Test Birimi Koşut-zamanlı metot çağrıları Gerçekleştirim Yürütmeyi günlüğe kaydet Call Insert(3) Unlock A[0] A[0].elt=3 Call LookUp(3) Return“success” Unlock A[1] A[1].elt=4 read A[0] Return “true” A[0].elt=null Call Insert(4) Call Delete(3) ... Günlükteki olayları yeniden çalıştırılır. Olayları günlükten oku Çağrılan metotları sıralı çalıştırılır. Yürütme-tekrar birimi Gerçekleştirim* Belirtim* Arıtma denetleme Yürütme izi [ Gerçekleştirim ] Yürütme izi [ Belirtim ]
9
Çalışma Zamanı Doğrulama: Vyrd
İletişim günlük ile sağlanır Gerçek-zamanlı/Çevrimdışı denetleme Programa en az düzeyde müdahale Tayfun Elmas, Serdar Taşıran, Shaz Qadeer. VYRD: VerifYing Concurrent Programs by Runtime Refinement-Violation Detection. ACM SIGPLAN 2005 Conference on Prog. Lang. Design and Implementation (PLDI'05). Chicago, Illinois, U.S., June
10
Model Denetleyici Kullanımı
Test-bazlı yaklaşımlarda kapsama problemi Kapsamanın sürekli olarak artırılması Testin kontrollü çalıştırılması İş parçacığı zamanlaması kontrolü
11
Otomatik Doğrulama Çerçevesi: VyrdMC
MODEL DENETLEYİCİ Test Birimi Koşut-zamanlı metot çağrıları Gerçekleştirim Yürütmeyi günlüğe kaydet Call Insert(3) Unlock A[0] A[0].elt=3 Call LookUp(3) Return“success” Unlock A[1] A[1].elt=4 read A[0] Return “true” A[0].elt=null Call Insert(4) Call Delete(3) ... Günlükteki olayları yeniden çalıştırılır. Olayları günlükten oku Çağrılan metotları sıralı çalıştırılır. Yürütme-tekrar birimi Gerçekleştirim* Belirtim* Arıtma denetleme Yürütme izi [ Gerçekleştirim ] Yürütme izi [ Belirtim ] ÇALIŞMA-ZAMANI ORTAMI
12
Otomatik Doğrulama Çerçevesi: VyrdMC
Model denetleyici kullanımı Kapsamanın sürekli artırılması Çalışma-zamanı ortamı (sanal makine) kullanımı Çalışmanın tam kontrolü, sürecin otomatikleştirilmesi Tayfun Elmas, Serdar Taşıran. VyrdMC: Driving Runtime Refinement Checking with Model Checkers. Fifth Workshop on Runtime Verification (RV'05). The University of Edinburgh, Scotland, UK. July 12, 2005.
13
Çalışma-zamanı Ortamı Kullanımı
Örnek: Java PathFinder üzerinde Java sanal makinesi Atomik kod parçalarının otomatik kategorizasyonu: byte-code komutları Çalışmanın izlenerek günlüğe kaydedilmesi: her komut için standart kayıt Çalışmanın yeniden oynatılması: komutlar aynı mekanizmayla işletilir
14
Kosut-zamanliliktan kaynaklanan Hataya Odaklanmış Test
Amaç: Metotlar arası koşut-zaman karakteristiğini ortaya çıkarmak Bağımlı kod parçalarının koşut-zamanlı çalıştırılması Her iş parçacığı için tek bir metot Metotlar ortak paylaşımlı değişkenler üzerine yönlendirilir.
15
Deneyimler (Vyrd) Windows NT, Scan dosya sistemi
Boxwood dağıtık veri depolama sistemi java.util
16
İleri Doğrulama Yöntemleri (optional)
Katmanlı bileşenlerin doğrulanması Tüm katmanlar aynı anda denetlenir: Ortak test ortamı Her bileşen için ayrı kaynak ve denetleme Kısmi-sıralı indirgeme tekniklerinin geliştirilmesi İçsel veri yapısından yararlanılması Sadece ilgilenilen veri ve kodun denetlenmesi Güvenilirlikten (soundness) taviz Örnek: İkili ağacın Ekle metodu için sadece eklemeyi yapan kod parçası
17
Yazılım Sürecine Entegrasyonu
Erken denetim, az hata Hatalar sürecin sonraki aşamalarına aktarılır. Karmaşık kod, hata analizini zorlaştırır. Eklenen her metot testlere eklenir ve denetlenir. Programcının sorumlulukları Soyutlama fonksiyonunun yazılması Denetlenecek metotların belirlenmesi Teslim noktalarının tespiti ve kodla donatılması
18
Sonuç Arıtma: Koşut-zamanlı bileşenler için doğruluk kriteri
Kapsamlı doğruluk değerlendirme Yüksek gözlemlenebilirlik Üst seviye koşut-zaman hatalarının tespiti Vyrd: Çalışma zamanı arıtma denetleme Yürütmenin günlük üzerinde takibi ve denetlenmesi Endüstriyel seviye yazılımlarda etkili VyrdMC: Otomatik arıtma denetleme çerçevesi Model denetleyici ile bütünleşme: Çalışmanın kontrolü Çalışma-zamanı ortamı: otomatik yürütme kontrolü Kapsamanın ölçülmesi ve kontrolü Serdar Taşıran, Tayfun Elmas, Güven Bölükbaşı, M. Erkan Keremoğlu. A Novel Test Coverage Metric for Concurrently-Accessed Software Components. Fifth International Workshop on Formal Approaches to Testing of Software (FATES 2005). University of Edinburgh, UK, July 11, 2005.
19
Sorular Koşut-zamanlı Yazılım Bileşenleri için Bir Otomatik Doğrulama Çerçevesi: VyrdMC Tayfun Elmas Serdar Taşıran Koç Üniversitesi Sarıyer, İstanbul
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.