Communicating sequential processes
Communicating sequential processes
Design and validation of computer protocols
Design and validation of computer protocols
Handbook of theoretical computer science (vol. B)
The Z notation: a reference manual
The Z notation: a reference manual
Handbook of logic in computer science (vol. 2)
Automated temporal reasoning about reactive systems
Proceedings of the VIII Banff Higher order workshop conference on Logics for concurrency : structure versus automata: structure versus automata
Modal and temporal logics for processes
Proceedings of the VIII Banff Higher order workshop conference on Logics for concurrency : structure versus automata: structure versus automata
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Exploring the semantics of UML type structures with Z
FMOODS '97 Proceedings of the IFIP TC6 WG6.1 international workshop on Formal methods for open object-based distributed systems
The Unified Modeling Language user guide
The Unified Modeling Language user guide
Monitors: an operating system structuring concept
Communications of the ACM
Symbolic Model Checking
Communication and Concurrency
Design and Implementation of a Petri Net Based Toolkit for Ada Tasking Analysis
IEEE Transactions on Parallel and Distributed Systems
Modeling and Verification of SC++ Applications
TACAS '98 Proceedings of the 4th International Conference on Tools and Algorithms for Construction and Analysis of Systems
Process Calculi, from Theory to Practice: Verification Tools
Proceedings of the International Workshop on Automatic Verification Methods for Finite State Systems
The NCSU Concurrency Workbench
CAV '96 Proceedings of the 8th International Conference on Computer Aided Verification
Formal Modelling of Java GUI Event Handling
ICFEM '02 Proceedings of the 4th International Conference on Formal Engineering Methods: Formal Methods and Software Engineering
Hi-index | 0.00 |
Distributed multithreaded software systems are becoming more and more important in modern networked environment. For these systems, concurrency control and thread synchronization make it much harder to do traditional extensive testing to guarantee the quality of the systems. In contrast to testing, software verification under certain formalisms and methodologies usually gives us higher confidence about the system. In this paper, we consider translating some parts of program code that are sensitive to concurrency control into certain formal description so that we can reuse existing verification tools to enhance our confidence in the final code. Java language is gaining increasing popularity in distributed multithreaded system development, and CCS is one of the convenient tools for describing concurrent and multi-process systems. Under a set of reasonable restrictions, we present a general framework on how to translate the thread control and synchronization portion of distributed, multithreaded Java programs into formal specification in CCS. With the translated process terms, we are able to use some model checkers to verify properties expressed in modal μ-calculus, such as invariance, eventualities, fairness etc, which are by nature hard to test.