The search functionality is under construction.

Keyword Search Result

[Keyword] code change(3hit)

1-3hit
  • Comparative Study between Two Approaches Using Edit Operations and Code Differences to Detect Past Refactorings

    Takayuki OMORI  Katsuhisa MARUYAMA  

     
    PAPER-Software Engineering

      Pubricized:
    2017/11/27
      Vol:
    E101-D No:3
      Page(s):
    644-658

    Understanding which refactoring transformations were performed is in demand in modern software constructions. Traditionally, many researchers have been tackling understanding code changes with history data derived from version control systems. In those studies, problems of the traditional approach are pointed out, such as entanglement of multiple changes. To alleviate the problems, operation histories on IDEs' code editors are available as a new source of software evolution data nowadays. By replaying such histories, we can investigate past code changes in a fine-grained level. However, the prior studies did not provide enough evidence of their effectiveness for detecting refactoring transformations. This paper describes an experiment in which participants detect refactoring transformations performed by other participants after investigating the code changes with an operation-replay tool and diff tools. The results show that both approaches have their respective factors that pose misunderstanding and overlooking of refactoring transformations. Two negative factors on divided operations and generated compound operations were observed in the operation-based approach, whereas all the negative factors resulted from three problems on tangling, shadowing, and out-of-order of code changes in the difference-based approach. This paper also shows seven concrete examples of participants' mistakes in both approaches. These findings give us hints for improving existing tools for understanding code changes and detecting refactoring transformations.

  • Slicing Fine-Grained Code Change History

    Katsuhisa MARUYAMA  Takayuki OMORI  Shinpei HAYASHI  

     
    PAPER-Software Engineering

      Pubricized:
    2015/12/21
      Vol:
    E99-D No:3
      Page(s):
    671-687

    Change-aware development environments can automatically record fine-grained code changes on a program and allow programmers to replay the recorded changes in chronological order. However, since they do not always need to replay all the code changes to investigate how a particular entity of the program has been changed, they often eliminate several code changes of no interest by manually skipping them in replaying. This skipping action is an obstacle that makes many programmers hesitate when they use existing replaying tools. This paper proposes a slicing mechanism that automatically removes manually skipped code changes from the whole history of past code changes and extracts only those necessary to build a particular class member of a Java program. In this mechanism, fine-grained code changes are represented by edit operations recorded on the source code of a program and dependencies among edit operations are formalized. The paper also presents a running tool that slices the operation history and replays its resulting slices. With this tool, programmers can avoid replaying nonessential edit operations for the construction of class members that they want to understand. Experimental results show that the tool offered improvements over conventional replaying tools with respect to the reduction of the number of edit operations needed to be examined and over history filtering tools with respect to the accuracy of edit operations to be replayed.

  • A Feature Analysis of Co-changed Code Clone by Using Clone Metrics

    Myrizki SANDHI YUDHA  Ryohei ASANO  Hirohisa AMAN  

     
    LETTER

      Vol:
    E95-A No:9
      Page(s):
    1498-1500

    Code clones are duplicated or similar code fragments, and they have been known as major entities affecting the software maintainability. Sometimes there are “co-changes” in pair of code clones: when a code fragment is changed, the clone of the fragment is also changed. Such a co-change is one of key event to discuss the successful management of code clone. This paper analyzes the trends of co-changed code clones by using the length and the content of code clones. The empirical results show that: (1) there would be a specific length of clone to be mostly co-changed (around 60-100 tokens), and (2) code clones without any “control flow keywords” have a higher possibility to be co-changed than the others.