• DocumentCode
    176177
  • Title

    Refactoring Java Concurrent Programs Based on Synchronization Requirement Analysis

  • Author

    Binxian Tao ; Ju Qian

  • Author_Institution
    Coll. of Comput. Sci. & Technol., Nanjing Univ. of Aeronaut. & Astronaut., Nanjing, China
  • fYear
    2014
  • fDate
    Sept. 29 2014-Oct. 3 2014
  • Firstpage
    361
  • Lastpage
    370
  • Abstract
    Writing high quality concurrent programs is challenging. A concurrent program that is not well-written may suffer from coarse synchronization problems, e.g., overly-large critical sections, overly-coarse locks, and etc. These coarse synchronizations may introduce unnecessary lock contention and thereby affect the parallel execution of running threads. To optimize them, people suggest use refactorings, e.g., Split Lock refactoring and Split Critical Section refactoring, to gradually evolve the synchronization code for better parallelism. However, manually identifying the refactoring opportunities is difficult and by-hand code transformations are error-prone. To reduce the manual efforts, this paper proposes an automated refactoring approach for Java concurrent programs based on synchronization requirement analysis. It can automatically analyze the existing synchronization code to identify synchronization requirements. Bases on these requirements, we can find Split Lock, Split Critical Section, and Convert to Atomic refactoring opportunities and then make proper code transformation for each of them. Our experiment shows that the approach does find effective refactoring opportunities in real projects and can transform the refactorable code correctly. This indicates the approach could be helpful for concurrent program evolution.
  • Keywords
    Java; formal verification; software maintenance; coarse synchronization problems; hand code transformations; parallel execution; refactoring Java concurrent programs; split critical section refactoring; split lock refactoring; synchronization code; synchronization requirement analysis; Algorithm design and analysis; Concurrent computing; Frequency synchronization; Java; Programming; Shape; Synchronization; Java; concurrency; refactoring; synchronization;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Maintenance and Evolution (ICSME), 2014 IEEE International Conference on
  • Conference_Location
    Victoria, BC
  • ISSN
    1063-6773
  • Type

    conf

  • DOI
    10.1109/ICSME.2014.58
  • Filename
    6976102