1 / 19

Koşut-zamanlı Yazılım Bileşenleri için Bir Otomatik Doğrulama Çerçevesi: VyrdMC

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 http://designtech.ku.edu.tr. Koşut-zamanlı Bileşenler. Soyutlanmış bir veriyapısı + koşut-zamanlı prosedürler

chaz
Download Presentation

Koşut-zamanlı Yazılım Bileşenleri için Bir Otomatik Doğrulama Çerçevesi: VyrdMC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Koşut-zamanlı Yazılım Bileşenleri içinBir Otomatik Doğrulama Çerçevesi: VyrdMC Tayfun Elmas Serdar Taşıran Koç Üniversitesi Sarıyer, İstanbul http://designtech.ku.edu.tr 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 http://designtech.ku.edu.tr

  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. http://designtech.ku.edu.tr

  4. ... Return“success” Return“success” Return“success” Call LookUp(3) Call Insert(3) Unlock A[1] Return “true” A[0].elt=3 Unlock A[0] read A[0] Unlock A[0] A[1].elt=4 Call Insert(4) A[0].elt=null Call Delete(3) Ç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 Olayları günlükten oku Günlükteki olaylarıyeniden çalıştırılır. Çağrılan metotları sıralı çalıştırılır. Yürütme-tekrarbirimi Gerçekleştirim* Belirtim* Arıtma denetleme Yürütme izi[ Belirtim ] Yürütme izi[ Gerçekleştirim ] http://designtech.ku.edu.tr

  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. http://designtech.ku.edu.tr

  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 http://designtech.ku.edu.tr

  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 http://designtech.ku.edu.tr

  8. ... Return“success” Return“success” Return“success” Call LookUp(3) Call Insert(3) Unlock A[1] Return “true” A[0].elt=3 Unlock A[0] read A[0] Unlock A[0] A[1].elt=4 Call Insert(4) A[0].elt=null Call Delete(3) Ç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 Olayları günlükten oku Günlükteki olaylarıyeniden çalıştırılır. Çağrılan metotları sıralı çalıştırılır. Yürütme-tekrarbirimi Gerçekleştirim* Belirtim* Arıtma denetleme Yürütme izi[ Belirtim ] Yürütme izi[ Gerçekleştirim ] http://designtech.ku.edu.tr

  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 12-15 2005. http://designtech.ku.edu.tr

  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ü http://designtech.ku.edu.tr

  11. ... Return“success” Return“success” Return“success” Unlock A[1] Return “true” Call LookUp(3) Unlock A[0] Call Insert(3) A[0].elt=3 read A[0] A[1].elt=4 Unlock A[0] Call Insert(4) A[0].elt=null Call Delete(3) 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 Olayları günlükten oku Günlükteki olaylarıyeniden çalıştırılır. Çağrılan metotları sıralı çalıştırılır. Yürütme-tekrarbirimi Gerçekleştirim* Belirtim* Arıtma denetleme Yürütme izi[ Belirtim ] Yürütme izi[ Gerçekleştirim ] ÇALIŞMA-ZAMANI ORTAMI http://designtech.ku.edu.tr

  12. Otomatik Doğrulama Çerçevesi: VyrdMC 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. • 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 http://designtech.ku.edu.tr

  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 http://designtech.ku.edu.tr

  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. http://designtech.ku.edu.tr

  15. Deneyimler (Vyrd) • Windows NT, Scan dosya sistemi • Boxwood dağıtık veri depolama sistemi • java.util http://designtech.ku.edu.tr

  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ı http://designtech.ku.edu.tr

  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ı http://designtech.ku.edu.tr

  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. http://designtech.ku.edu.tr

  19. Sorular Koşut-zamanlı Yazılım Bileşenleri içinBir Otomatik Doğrulama Çerçevesi: VyrdMC Tayfun Elmas Serdar Taşıran Koç Üniversitesi Sarıyer, İstanbul http://designtech.ku.edu.tr

More Related