- Broschiertes Buch
- Merkliste
- Auf die Merkliste
- Bewerten Bewerten
- Teilen
- Produkt teilen
- Produkterinnerung
- Produkterinnerung
The SPIN Model Checker is used for both teaching software verification techniques, and for validating large scale applications. The growing number of users has created a need for a more comprehensive user guide and a standard reference manual that describes the most recent version of the tool. This book fills that need. SPIN is used in over 40 countries. The offical SPIN web site, spinroot.com receives between 2500 and 3000 hits per day. It has been estimated that up to three-quarters of the $400 billion spent annually to hire programmers in the United States is ultimately spent on debugging
Andere Kunden interessierten sich auch für
- Mark UttingPractical Model-Based Testing88,99 €
- Aino CorryRetrospectives Antipatterns33,99 €
- Douglass PostCreating and Using Virtual Prototyping Software55,99 €
- Harry FairheadFundamental C: Getting Closer To The Machine33,99 €
- John SonmezSoft Skills: The Software Developer's Life Manual33,99 €
- Kim W TracySoftware40,99 €
- Tijs RademakersOpen-Source Esbs in Action: Example Implementations in Mule and Servicemix50,99 €
-
-
-
The SPIN Model Checker is used for both teaching software verification techniques, and for validating large scale applications. The growing number of users has created a need for a more comprehensive user guide and a standard reference manual that describes the most recent version of the tool. This book fills that need. SPIN is used in over 40 countries. The offical SPIN web site, spinroot.com receives between 2500 and 3000 hits per day. It has been estimated that up to three-quarters of the $400 billion spent annually to hire programmers in the United States is ultimately spent on debugging
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Hinweis: Dieser Artikel kann nur an eine deutsche Lieferadresse ausgeliefert werden.
Produktdetails
- Produktdetails
- Verlag: Pearson Education
- Seitenzahl: 608
- Erscheinungstermin: 4. September 2003
- Englisch
- Abmessung: 233mm x 182mm x 34mm
- Gewicht: 987g
- ISBN-13: 9780321773715
- ISBN-10: 0321773713
- Artikelnr.: 33376680
- Herstellerkennzeichnung
- Libri GmbH
- Europaallee 1
- 36244 Bad Hersfeld
- 06621 890
- Verlag: Pearson Education
- Seitenzahl: 608
- Erscheinungstermin: 4. September 2003
- Englisch
- Abmessung: 233mm x 182mm x 34mm
- Gewicht: 987g
- ISBN-13: 9780321773715
- ISBN-10: 0321773713
- Artikelnr.: 33376680
- Herstellerkennzeichnung
- Libri GmbH
- Europaallee 1
- 36244 Bad Hersfeld
- 06621 890
DR. GERARD J. HOLZMANN is the principal designer of the SPIN system. Formerly Directory of Computing Principles Research at Bell Laboratories in Murray Hill, N.J., he recently joined NASA's Jet Propulsion Laboratory in Pasadena, CA, to help set up a new Laboratory for Reliable Software. Holzmann's earlier books include Design and Validation of Computer Protocols (Prentice Hall), and The Early History of Data Networks (IEEE CS Press).
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.
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.
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.
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.