One of the promising approaches to creating quality software is to formally model systems, describe the models in a formal specification language, and verify that the systems have some desirable properties based on the formal documents with an automatic model checker or an interactive theorem prover before the systems are implemented in a programming language. The more complicated the systems are, such as distributed systems, the more important the approach is. We have applied the approach to the Ricart&Agrawala distributed mutual exclusion algorithm (G. Ricart and A. K. Agrawala, 1981). We have modeled the algorithm as a UNITY computational model, described the model in CafeOBJ, and verified that the algorithm is actually mutually exclusive based on the CafeOBJ document with the help of the CafeOBJ system.
展开▼