Mining code change patterns to aid software development
      
      
        
      
      
      
      
      
      
      
      
      
      
      
      
        106 p
        
        
      
      
      
      
      
      
      
      Thèse de doctorat: Università della Svizzera italiana, 2021
      
      
      
      
      
      
      
       
      
      
      
        
        English
        
        
        
          Mining Software Repositories (MSR) has become a complete and mature research field, also  due to the increasing number of open source projects publicly available. Repository hosting  services such as GitHub provide unprecedented access to millions of events generated during  development activities (e.g., code commits, pull requests), that can be mined and analyzed to  extract new pieces of knowledge. By analyzing the source code of a large corpus of software  systems, recent work showed that most software is natural, meaning that it is likely to be  repetitive and predictable. In other words, development and maintenance activities are likely the  results of unexposed code change patterns that, if properly exploited, can be used to support  code-related activities (e.g., implementing a new feature). Starting from these observations, we  formulate our thesis statement: Mining code change patterns from open source repositories  enables researchers to gather large-scale, historical infor- mation about development and  maintenance activities performed by developers. The collected empirical knowledge, once  converted into actionable items, can support software developers on code-related tasks. We  investigated the possibility of acquiring new empirical knowledge from mining three specific  types of code change patterns in open source repositories: (i) the introduction and fix of code- comment inconsistencies, (ii) omitted code changes in developers' commits and (iii)  implementation patterns followed by developers when implementing a new feature. We  leveraged the knowledge acquired from the last type of patterns, to design and build FeaRS, an  approach and a tool that, given the methods developers already wrote in the IDE, is able to  suggest the complete code of the next method they are likely to implement. Our results show  that mining unexposed code change patterns from open source repositories can help in better  understanding development activities and potentially support developers during software  development.
        
        
       
      
      
      
        
        
        
        
        
        
        
        
        
        
        
        
        
        
        - 
          Language
        
- 
          
        
- 
          Classification
        
- 
          
              
                
                  Computer science and technology
                
              
            
          
        
- 
          License
        
- 
          
        
- 
          Identifiers
        
- 
          
        
- 
          Persistent URL
        
- 
          https://n2t.net/ark:/12658/srd1319203