4 - Further Reading
Published online by Cambridge University Press: 02 March 2010
Summary
The concepts presented in this book are based on ideas from mathematics and theoretical computer science. Readers certainly do not need to understand these theoretical aspects in order to use the techniques we present. However, some may be interested in pursuing these topics in further detail, and for these readers we can point to the following sources of information.
The central idea of a model program that we present throughout the book is based on the theory of abstract state machines (ASMs) conceived by Yuri Gurevich in 1980s. An ASM is a formal way to describe the steps of an algorithm. It gives a mathematical view of program state (including the state of object-oriented systems and systems with complex structure). There is a well-developed body of scientific literature on the topic. Readers interested in ASMs may wish to see the ASM Web page maintained at the University of Michigan (ASM, 2006). Of particular interest is the “Lipari guide” (Gurevich, 1995).
We also use ideas taken from finite automata, mathematical logic, and set theory. The composition of automata for language intersection is a core concept. A classic text that describes finite automata and their properties is Hopcroft and Ullman (1979). A useful and practical introduction to logic and set theory is found in Lipschutz (1998).
A mathematically rigorous survey of assurance methods including modeling, testing, and static analysis appears in the book by Peled (2001).
The ideas in this book were developed and made practical at Microsoft Research from 1999 through 2006 in the Foundations of Software Engineering group (FSE, 2006).
- Type
- Chapter
- Information
- Model-Based Software Testing and Analysis with C# , pp. 53 - 54Publisher: Cambridge University PressPrint publication year: 2007