The SPIN Model Checker : Primer and Reference Manual (Hardcover)
暫譯: SPIN 模型檢查器:入門與參考手冊 (精裝版)
Gerard J. Holzmann
- 出版商: Addison Wesley
- 出版日期: 2003-09-14
- 售價: $2,870
- 貴賓價: 9.5 折 $2,727
- 語言: 英文
- 頁數: 608
- 裝訂: Hardcover
- ISBN: 0321228626
- ISBN-13: 9780321228628
-
相關分類:
軟體工程、軟體測試
已絕版
買這商品的人也買了...
-
$480$379 -
$880$695 -
$540$459 -
$1,805Test-Driven Development: By Example (Paperback)
-
$450$356 -
$490$417 -
$590$466 -
$690$538 -
$590$466 -
$880$792 -
$399CCNA ICND Exam Certification Guide (CCNA Self-Study, 640-811, 640-801) (Hardcover)
-
$620$490 -
$990$782 -
$750$638 -
$490$382 -
$800$760 -
$560$476 -
$450$356 -
$720$569 -
$390$304 -
$480$379 -
$750$593 -
$480$408 -
$750$713 -
$2,000$1,900
商品描述
Summary
Master SPIN, the breakthrough tool for improving software reliability
SPIN is the world's most popular, and arguably one of the world's most powerful, tools for detecting software defects in concurrent system designs. Literally thousands of people have used SPIN since it was first introduced almost fifteen years ago. The tool has been applied to everything from the verification of complex call processing software that is used in telephone exchanges, to the validation of intricate control software for interplanetary spacecraft.
This is the most comprehensive reference guide to SPIN, written by the principal designer of the tool. It covers the tool's specification language and theoretical foundation, and gives detailed advice on methods for tackling the most complex software verification problems.
- Sum Design and verify both abstract and detailed verification models of complex systems software
- Sum Develop a solid understanding of the theory behind logic model checking
- Sum Become an expert user of the SPIN command line interface, the Xspin graphical user interface, and the TimeLine editing tool
- Sum Learn the basic theory of omega automata, linear temporal logic, depth-first and breadth-first search, search optimization, and model extraction from source code
The SPIN software was awarded the prestigious Software System Award by the Association for Computing Machinery (ACM), which previously recognized systems such as UNIX, SmallTalk, TCP/IP, Tcl/Tk, and the World Wide Web.
Table of Contents
Preface.
INTRODUCTION.
1. Finding Bugs in Concurrent Systems.
Circular Blocking. Deadly Embrace. Mismatched Assumptions. Fundamental Problems of Concurrency. Observability and Controllability.
2. Building Verification Models.
Introducing PROMELA. Some Examples. Biographical Notes.
3. An Overview of PROMELA.
Processes. Data Objects. Message Channels. Channel Poll Operations. Sorted Send and Random Receive. Rendezvous Communication. Rules for Executability. Control Flow. Finding out More.
4. Defining Correctness Claims.
Basic Types of Claims. Assertions. Meta-Labels. Fair Cycles. Never Claims. The Link with LTL. Trace Assertions. Predefined Variables and Functions. Path Quantification. Finding out More.
5. Using Design Abstraction.
What Makes a Good Design Abstraction? Data and Control. The Smallest Sufficient Model. Avoiding Redundancy. Counters, Sinks, Sources, and Filters. Simple Refutation Models. Examples. Controlling Complexity. A Formal Basis for Reduction.
FOUNDATION.
6. Automata and Logic.
Omega Acceptance. The Stutter Extension Rule. Finite States. Infinite Runs. Other Types of Acceptance. Temporal Logic. Recurrence and Stability. Valuation Sequences. Stutter. Invariance. Fairness. From Logic to Automata. Omega-Regular Properties. Other Logics. Bibliographic Notes.
7. PROMELASemantics.
Transition Relation. Operational Model. Semantics Engine. Interpreting PROMELA Models. Three Examples. Verification. The Never Claim.
8. Search Algorithms.
Depth-First Search. Checking Safety Properties. Depth-Limited Search. Trade-Offs. Breath-First Search. Checking Liveness Properties. Adding Fairness. The SPIN Implementation. Complexity Revisited. Bibliographic Notes.
9. Search Optimization.
Partial Order Reduction. Visibility. Statement Merging. State Compression. Collapse Compression. The Minimized Automaton Representation. Bitstate Hashing. Bloom Filters. Hash-Compact. Bibliographic Notes.
10. Notes on Model Extraction.
The Role of Abstraction. From ANSI-C to PROMELA. Embedded Assertions. A Framework for Abstraction. Soundness and Completeness. Selective Data Hiding. Bolder Abstractions. Dealing with False Negatives. Thorny Issues with Embedded C Code. The Model Extraction Process. The Halting Problem Revisited. Bibliographic Notes.
PRACTICE.
11. Using SPIN.
SPIN Structure. Roadmap. Random Simulation. Interactive Simulation. Generating and Compiling a Verifier. Tuning a Verification Run, the Number of Reachable States. Search Depth. Cycle Detection. Inspecting Error Traces. Internal State Numbers. Special Cases. Disabling Partial Order Reduction. Boosting Performance. Separate Compilation. Lowering Verification Complexity.
12. Notes on XSPIN.
Starting a Session with XSPIN. Menus. Syntax Checking. Property- Based Slicing. Simulation Parameters. Verification Parameters. The LTL Property Manager. The Automaton View Option.
13. The TimeLine Editor.
An Example. Types of Events. Defining Events. Matching a Timeline. Automata Definitions. Variations on a Theme. Constraints. Timelines with One Event. Timelines with Multiple Events. The Link with LTL. Bibliographic Notes.
14. A Verification Model of a Telephone Switch.
General Approach. Keeping it Simple. Managing Complexity. Subscriber Model. Switch Model. Remote Switches. Adding Features. Three-Way Calling.
15. Sample SPINModels.
The Sieve of Eratosthenes. Process Scheduling. A Client-Server Model. A Square-Root Server. Adding Interaction. Adding Assertions. A Comment Filter.
REFERENCE MATERIAL.
16. PROMELA Language Reference.
Grammar Rules. Special Cases. PROMELA Manual Pages. Meta Terms. Declarators. Control Flow Constructors. Basic Statements. Predefined Functions and Operators. Omissions.
17. Embedded C Code.
Example. Data References. Execution. Issues to Consider. Deferring File Inclusion. Manual Pages for Embedded C Code.
18. Overview of SPINOptions.
Compile-Time Options. Simulation. Syntax-Checking. Postscript Generation. Model Checker Generation. LTL Conversion. Miscellaneous Options.
19. Overview of PANOptions.
PAN Compile-Time Options. Tuning Partial Order Reduction. Increasing Speed. Decreasing Memory Use. Debugging PAN Verifiers. Experimental Options. PAN Run-Time Options. PAN Output Format.
LITERATURE.
APPENDICES.
A: Automata Products.
Asynchronous and Synchronous Products. Defining Atomic Sequences and Rendezvous. Expanded Asynchronous Products. Büchi Acceptance. Non-Progress. Deadlock.
B: The Great Debates.
Branching vs Linear Time. Symbolic vs Explicit. Breadth-First vs Depth-First. Tarjan vs Nested. Events vs States. Realtime vs Timeless. Probability vs Possibility. Asynchronous vs Synchronous. Interleaving vs True Concurrency. Open vs Closed Systems.
C: Exercises with SPIN.D: Downloading SPIN.Tables and Figures.Index.
商品描述(中文翻譯)
摘要
**掌握 SPIN,提升軟體可靠性的突破性工具**
SPIN 是全球最受歡迎的工具之一,無可否認也是檢測並發系統設計中軟體缺陷的最強大工具之一。自從約十五年前首次推出以來,已經有數千人使用 SPIN。這個工具被應用於從電話交換機中使用的複雜呼叫處理軟體的驗證,到行星間太空船的複雜控制軟體的驗證等各種領域。
這是一本最全面的 SPIN 參考指南,由該工具的主要設計者撰寫。它涵蓋了工具的規範語言和理論基礎,並提供了針對解決最複雜的軟體驗證問題的方法的詳細建議。
- 設計和驗證複雜系統軟體的抽象和詳細驗證模型
- 深入理解邏輯模型檢查背後的理論
- 成為 SPIN 命令行介面、Xspin 圖形用戶介面和 TimeLine 編輯工具的專家用戶
- 學習 omega 自動機、線性時間邏輯、深度優先和廣度優先搜索、搜索優化以及從源代碼中提取模型的基本理論
SPIN 軟體曾獲得計算機協會 (ACM) 的著名軟體系統獎,該獎項之前曾表彰 UNIX、SmallTalk、TCP/IP、Tcl/Tk 和萬維網等系統。
目錄
前言
引言
1. 在並發系統中尋找錯誤。
循環阻塞。致命擁抱。不匹配的假設。並發的基本問題。可觀察性和可控性。
2. 建立驗證模型。
介紹 PROMELA。一些範例。傳記註釋。
3. PROMELA 概述。
過程。數據對象。消息通道。通道輪詢操作。排序發送和隨機接收。會合通信。可執行性規則。控制流。深入了解。
4. 定義正確性聲明。
聲明的基本類型。斷言。元標籤。公平循環。從不聲明。與 LTL 的聯繫。跟蹤斷言。預定義變量和函數。路徑量化。深入了解。
5. 使用設計抽象。
什麼是良好的設計抽象?數據和控制。最小充分模型。避免冗餘。計數器、匯流排、源和過濾器。簡單的反駁模型。範例。控制複雜性。減少的正式基礎。
基礎。
6. 自動機和邏輯。
omega 接受。重複擴展規則。有限狀態。無限運行。其他類型的接受。時間邏輯。重複性和穩定性。估值序列。重複。不變性。公平性。從邏輯到自動機。omega-正則性質。其他邏輯。文獻註釋。
7. PROMELA 語義。
轉換關係。操作模型。語義引擎。解釋 PROMELA 模型。三個範例。驗證。從不聲明。
8. 搜索算法。
深度優先搜索。檢查安全性質。深度限制搜索。權衡。廣度優先搜索。檢查活性質。增加公平性。SPIN 實現。複雜性回顧。文獻註釋。
9. 搜索優化。
部分順序減少。可見性。語句合併。狀態壓縮。崩潰壓縮。最小化自動機表示。位狀態哈希。布隆過濾器。哈希壓縮。文獻註釋。
10. 模型提取的註釋。
抽象的角色。從 ANSI-C 到 PROMELA。嵌入式斷言。抽象框架。健全性和完整性。選擇性數據隱藏。更大膽的抽象。處理假陰性。嵌入式 C 代碼的棘手問題。模型提取過程。停機問題回顧。文獻註釋。
實踐。
11. 使用 SPIN。
SPIN 結構。路線圖。隨機模擬。互動模擬。生成和編譯驗證器。調整驗證運行、可達狀態的數量。搜索深度。循環檢測。檢查錯誤跟蹤。內部狀態編號。特殊情況。禁用部分順序減少。提升性能。單獨編譯。降低驗證複雜性。
12. XSPIN 的註釋。
開始 XSPIN 會話。菜單。語法檢查。基於屬性的切片。模擬參數。驗證參數。LTL 屬性管理器。自動機視圖選項。
13. TimeLine 編輯器。
範例。事件類型。定義事件。匹配時間線。自動機定義。主題的變化。約束。單事件的時間線。多事件的時間線。與 LTL 的聯繫。文獻註釋。
14. 電話交換機的驗證模型。
一般方法。保持簡單。管理複雜性。用戶模型。交換機模型。遠程交換機。添加功能。三方通話。
15. SPIN 模型範例。
埃拉托斯特尼的篩子。進程調度。客戶端-伺服器模型。平方根伺服器。添加互動。添加斷言。評論過濾器。
參考資料。
16. PROMELA 語言參考。
語法規則。特殊情況。PROMELA 手冊頁。元術語。聲明者。控制流構造。基本語句。預定義函數和運算符。省略。
17. 嵌入式 C 代碼。
範例。數據引用。執行。考慮的問題。延遲文件包含。嵌入式 C 代碼的手冊頁。
18. SPIN 選項概述。
編譯時選項。模擬。語法檢查。後處理生成。模型檢查器生成。LTL 轉換。其他選項。
19. PAN 選項概述。
PAN 編譯時選項。調整部分順序減少。提高速度。減少內存使用。調試 PAN 驗證器。實驗選項。PAN 運行時選項。PAN 輸出格式。
文獻。
附錄。