Formal specification of software using abstract state machines.
dc.contributor.author | Wallace, Charles Robert | |
dc.contributor.advisor | Gurevich, Yuri | |
dc.date.accessioned | 2016-08-30T18:01:43Z | |
dc.date.available | 2016-08-30T18:01:43Z | |
dc.date.issued | 1999 | |
dc.identifier.uri | http://gateway.proquest.com/openurl?url_ver=Z39.88-2004&rft_val_fmt=info:ofi/fmt:kev:mtx:dissertation&res_dat=xri:pqm&rft_dat=xri:pqdiss:9959880 | |
dc.identifier.uri | https://hdl.handle.net/2027.42/132267 | |
dc.description.abstract | As software systems grow in size and sophistication, it becomes harder for humans to understand them and anticipate their behavior. Formal specification techniques aim to foster understanding and increase reliability by providing a mathematical foundation to software documentation. But by and large, applications of these techniques to real-world software problems have been small in number and scope. In this thesis, we explore several real-world software domains through formal specification, using Abstract State Machines (ASMs). ASMs require minimal mathematical overhead and are flexible enough to provide descriptions at various levels of abstraction. In each domain, we construct specifications at appropriate levels of abstraction. Each specification serves as a precise yet fully abstract standard, an executable tool for learning and design, and a basis for verification. Moreover, the rigor imposed by the specification process brings to light interesting issues. Each software domain that we examine presents unique challenges, in terms of specification, refinement or verification. First, we take a formal approach to the notoriously complicated area of database recovery. Starting with a high-level view of the recovery problem, we add implementation details in a clear, methodical way through a series of refinements. Second, we present a specification of the Java programming language that covers the broad spectrum of the language's features in a modular fashion. We use a semi-graphical format that unifies the static and dynamic semantics of the language. Third, we investigate the Java concurrency model in depth from a formal perspective. The abstract operational view afforded by our ASM models highlights subtleties of the model. Finally, we formally specify the Windows Card Runtime Environment, currently being developed at Microsoft. This specification is used to verify certain critical safety properties. | |
dc.format.extent | 235 p. | |
dc.language | English | |
dc.language.iso | EN | |
dc.subject | Abstract State Machines | |
dc.subject | Formal Specification | |
dc.subject | Software Engineering | |
dc.subject | Using | |
dc.title | Formal specification of software using abstract state machines. | |
dc.type | Thesis | |
dc.description.thesisdegreename | PhD | en_US |
dc.description.thesisdegreediscipline | Applied Sciences | |
dc.description.thesisdegreediscipline | Computer science | |
dc.description.thesisdegreegrantor | University of Michigan, Horace H. Rackham School of Graduate Studies | |
dc.description.bitstreamurl | http://deepblue.lib.umich.edu/bitstream/2027.42/132267/2/9959880.pdf | |
dc.owningcollname | Dissertations and Theses (Ph.D. and Master's) |
Files in this item
Remediation of Harmful Language
The University of Michigan Library aims to describe library materials in a way that respects the people and communities who create, use, and are represented in our collections. Report harmful or offensive language in catalog records, finding aids, or elsewhere in our collections anonymously through our metadata feedback form. More information at Remediation of Harmful Language.
Accessibility
If you are unable to use this file in its current format, please select the Contact Us link and we can modify it to make it more accessible to you.