On Verifying Distributed Multithreaded Java Programs

  • Authors:
  • Jessica Chen

  • Affiliations:
  • School of Computer Science, University of Windsor, 401 Sunset Avenue, Windsor, Canada N9B 3P4 xjchen@cs.uwindsor.ca

  • Venue:
  • Software Quality Control
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

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.