Observations on the Assured Evolution of Concurrent Java Programs
Document Type
Article
Publication Date
12-2005
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. Abstract © Elsevier
Source Publication
Science of Computer Programming
Recommended Citation
Greenhouse, A., Halloran, T. J., & Scherlis, W. L. (2005). Observations on the assured evolution of concurrent Java programs. Science of Computer Programming, 58(3), 384–411. https://doi.org/10.1016/j.scico.2005.03.002
Comments
The "Link to Full Text" button on this page loads the open access article version of record, hosted at Elsevier. The publisher retains permissions to re-use and distribute this article.