簡體   English   中英

合金分析儀是“偽造者”嗎?

[英]Is Alloy Analyzer “a falsifier”?

在我的社區中,最近我們積極使用正式規范中的“偽造”一詞。 該術語出現在例如: https : //www.cs.huji.ac.il/~ornak/publications/cav05.pdf

我不知道合金分析儀是否會偽造。 對我來說似乎是對的,但我不確定。 這是正確的嗎? 如果沒有,有什么區別?

是的,Alloy是偽造者。 Alloy於20年前問世時的主要新穎之處在於,證偽通常比驗證更重要,因為大多數設計都不正確,因此分析儀的作用應該是發現錯誤,而不是表明它們不存在。 。 有關此問題的討論,請參見第1.4節“ 軟件分析中的驗證與駁斥:路線圖” (Jackson和Rinard,2000年)。 第5.1.1節“ 軟件抽象中的實例查找和不確定性受損”(Jackson 2006)。

但是,在Alloy的情況下,還有另一個方面,即從驗證的角度來看,范圍完整分析實際上非常有效。 這種說法就是我們所說的“小范圍假設”-大多數錯誤都可以在小范圍內找到(即,每個基本類型中的固定數量的元素所限制的分析)。

順便說一句,合金是建議使用SAT進行邊界驗證的最早工具之一。 例如,請參閱關系規范的布爾編譯 (Daniel Jackson,1998年),這是第一份有界模型檢驗論文的作者所知的技術報告,該論文以下列術語討論了Alloy的前身Nitpick:

Nitpick的假設是一個有爭議的假設。 實際上,小范圍就足夠了。 換句話說,大多數錯誤可以在較小范圍內通過反例來證明。 這是一個純粹的經驗假設,因為錯誤的相關分布無法用數學方式描述:它由人們編寫的規范確定。

我們希望成功使用Nitpick工具可以證明這一假設是正確的。 已經有一些證據表明其合理性。 到目前為止,根據我們在Nitpick的經驗,我們沒有通過將范圍擴大到6以上獲得更多信息。

在硬件模型檢查的上下文中隱含了類似的范圍概念。 盡管各個狀態機通常是有限的,但經常通過並行執行的機器數來對設計進行參數化。 該指標類似於范圍; 隨着計算機數量的增加,狀態空間將呈指數增長,並且幾乎不可能分析涉及多台機器的系統。 但是,幸運的是,似乎只需要很小的配置就可以發現錯誤。 對Futurebus +緩存協議[C + 95]的著名分析(可能標志着模型檢查的工業聲譽的轉折點)對多達8個處理器和3條總線進行了分析。 但是,可以通過涉及最多3個處理器和2條總線的反例來證明所報告的缺陷。

根據我對偽造的含義的理解,是的,Alloy做到了。

當您查看合金的創建背后的動機時,這一點就很明顯了,如《軟件抽象》一書中所討論的:

這本書是十年來努力彌合這種差距,開發一種語言(Alloy)的結果,這種語言可以簡單,簡潔地捕獲軟件抽象的本質,並具有全自動的分析功能,並且可以揭示最細微的缺陷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM