Observations on the assured evolution of concurrent Java programs

  • Authors:
  • Aaron Greenhouse;T. J. Halloran;William L. Scherlis

  • Affiliations:
  • Software Engineering Institute, Pittsburgh, PA;Air Force Institute of Technology, Department of Electrical & Computer Engineering, Wright-Patterson AFB, OH;School of Computer Science, Carnegie Mellon University, Pittsburgh, PA

  • Venue:
  • Science of Computer Programming - Special issue: Concurrency and synchronization in Java programs
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Evolving and refactoring concurrent Java software can be error-prone, resulting in race conditions and other concurrency difficulties. We suggest that there are two principal causes: concurrency design intent is often not explicit in code and, additionally, consistency of intent and code cannot easily be established through either testing or inspection.We explore several aspects of this issue in this paper. First, we describe a tool-assisted approach to modeling and assurance for concurrent programs. Second, we give an account of recent case study experience on larger-scale production Java systems. Third, we suggest an approach to scalable co-evolution of code and models that is designed to support working programmers without special training or incentives. Fourth, we propose some concurrency-related refactorings that, with suitable analysis and tool support, can potentially offer assurances of soundness.