scispace - formally typeset
Search or ask a question
Topic

Formal methods

About: Formal methods is a research topic. Over the lifetime, 14941 publications have been published within this topic receiving 262193 citations.


Papers
More filters
Journal ArticleDOI
Gerard J. Holzmann1
01 May 1997
TL;DR: An overview of the design and structure of the verifier, its theoretical foundation, and an overview of significant practical applications are given.
Abstract: SPIN is an efficient verification system for models of distributed software systems. It has been used to detect design errors in applications ranging from high-level descriptions of distributed algorithms to detailed code for controlling telephone exchanges. The paper gives an overview of the design and structure of the verifier, reviews its theoretical foundation, and gives an overview of significant practical applications.

4,159 citations

Book
31 Jul 1993
TL;DR: Using symbolic model checking techniques it is possible to verify industrial-size finite state systems and models with more than 10120 states have been verified using special techniques.
Abstract: Symbolic model checking is a powerful formal specification and verification method that has been applied successfully in several industrial designs. Using symbolic model checking techniques it is possible to verify industrial-size finite state systems. State spaces with up to 1030 states can be exhaustively searched in minutes. Models with more than 10120 states have been verified using special techniques.

3,302 citations

Book
21 Jan 2010
TL;DR: Tribute Foreword Introduction Part I: Mathematics: 1. Mathematical reasoning 2. Set notation 3. mathematical objects Part II.
Abstract: The B Method is a means for specifying, designing and coding software systems. The long-awaited B-Book is the standard reference for everything concerning this method. It contains the mathematical basis on which it is founded, the precise definitions of the notations used, and a large number of examples illustrating its use in practice. J.-R. Abrial, the inventor of B, has written the book in such a way that it can be used for self-study or for reference. It is in four parts, the first dealing with the mathematical foundations and the definition of the various mathematical structures that are needed to formalise software systems; special emphasis is placed on the notion of proof. The second part contains a presentation of the Generalised Substitution Language and of the Abstract Machine Notation; examples are given to show how large specifications can be constructed systematically. The next part introduces the two basic programming features of sequencing and loop. The last part covers the very important notion of refinement. It shows how to construct large software systems by means of layered architectures of modules. With the appearance of The B-Book, formal methods practitioners, computer scientists, and systems developers at last will have access to the definitive account of what will become one of the standard approaches to the construction of software systems.

2,709 citations

Book ChapterDOI
13 Sep 2004
TL;DR: This is a tutorial paper on the tool Uppaal to be a short introduction on the flavor of timed automata implemented in the tool, to present its interface, and to explain how to use the tool.
Abstract: This is a tutorial paper on the tool Uppaal. Its goal is to be a short introduction on the flavor of timed automata implemented in the tool, to present its interface, and to explain how to use the tool. The contribution of the paper is to provide reference examples and modeling patterns.

1,686 citations

Book
01 Jan 2006
TL;DR: This revised edition of Software Abstractions updates the text, examples, and appendixes to be fully compatible with the latest version of Alloy, a language that captures the essence of software abstractions simply and succinctly, using a minimal toolkit of mathematical notions.
Abstract: In Software Abstractions Daniel Jackson introduces an approach to software design that draws on traditional formal methods but exploits automated tools to find flaws as early as possible. This approach--which Jackson calls "lightweight formal methods" or "agile modeling"--takes from formal specification the idea of a precise and expressive notation based on a tiny core of simple and robust concepts but replaces conventional analysis based on theorem proving with a fully automated analysis that gives designers immediate feedback. Jackson has developed Alloy, a language that captures the essence of software abstractions simply and succinctly, using a minimal toolkit of mathematical notions. This revised edition updates the text, examples, and appendixes to be fully compatible with the latest version of Alloy (Alloy 4). The designer can use automated analysis not only to correct errors but also to make models that are more precise and elegant. This approach, Jackson says, can rescue designers from "the tarpit of implementation technologies" and return them to thinking deeply about underlying concepts. Software Abstractions introduces the key elements: a logic, which provides the building blocks of the language; a language, which adds a small amount of syntax to the logic for structuring descriptions; and an analysis, a form of constraint solving that offers both simulation (generating sample states and executions) and checking (finding counterexamples to claimed properties).

1,641 citations


Network Information
Related Topics (5)
Model checking
16.9K papers, 451.6K citations
95% related
Component-based software engineering
24.2K papers, 461.9K citations
93% related
Software development
73.8K papers, 1.4M citations
91% related
Software construction
36.2K papers, 743.8K citations
90% related
Software system
50.7K papers, 935K citations
90% related
Performance
Metrics
No. of papers in the topic in previous years
YearPapers
202358
2022153
2021268
2020349
2019422
2018371