Using Kolmogorov Complexity to Study the Coevolution of Header Files and Source Files of C-alike Programs

Author(s):  
Liguo Yu

In C-alike programs, the source code is separated into header files and source files. During the software evolution process, both these two kinds of files need to adapt to changing requirement and changing environment. This paper studies the coevolution of header files and source files of C-alike programs. Using normalized compression distance that is derived from Kolmogorov complexity, we measure the header file difference and source file difference between versions of an evolving software product. Header files distance and source files distance are compared to understand their difference in pace of evolution. Mantel tests are performed to investigate the correlation of header file evolution and source file evolution. The study is performed on the source code of Apache HTTP web server.

2017 ◽  
Vol 8 (2) ◽  
pp. 17-26
Author(s):  
Liguo Yu

In C-alike programs, the source code is separated into header files and source files. During the software evolution process, both these two kinds of files need to adapt to changing requirement and changing environment. This paper studies the coevolution of header files and source files of C-alike programs. Using normalized compression distance that is derived from Kolmogorov complexity, we measure the header file difference and source file difference between versions of an evolving software product. Header files distance and source files distance are compared to understand their difference in pace of evolution. Mantel tests are performed to investigate the correlation of header file evolution and source file evolution. The study is performed on the source code of Apache HTTP web server.


2009 ◽  
Vol 12 (2) ◽  
Author(s):  
Liguo Yu

Software change logs and release notes are documents released together with new versions of a software product. They contain the description of the changes made to the previous version and the new features introduced in the new version. In this paper, we present a keywordbased approach to mining and analyzing non-source code documents and define a mathematical framework to represent the data. This approach is applied in the study of the change logs of Linux and the release notes of FreeBSD. The results show that the software maintenance process and evolution process share some common properties and the keyword-based text mining technique could be used as a systematic method to study software maintenance and evolution.


2021 ◽  
Vol 23 (07) ◽  
pp. 23-34
Author(s):  
Mrs. Vani Dave ◽  
◽  
Mr Sanjeev Kumar shukla ◽  

In this study, we propose a method to quickly search for similar source files for a given source file as a method to examine the origin of reused code. By outputting not only the same contents but also similar contents, it corresponds to the source file that has been changed during reuse. In addition, locality-sensitive hashing is used to search from a large number of source files, enabling fast search. By this method, it is possible to know the origin of the reused code. A case study was conducted on a library that is being reused written in C language. Some of the changes were unique to the project, and some were no longer consistent with the source files. As a result, it was possible to detect the source files that were reused from among the 200 projects with 92% accuracy. In addition, when we measured the execution time of the search using 4 files, the search was completed within 1 second for each file.


2020 ◽  
Vol 8 (3) ◽  
pp. 35-50
Author(s):  
Koji Toda ◽  
Haruaki Tamada ◽  
Masahide Nakamura ◽  
Kenichi Matsumoto

Social coding platforms (SCPs) have realized spontaneous software evolution, where new source code and ideas are spontaneously proposed by altruistic developers. Although there are many projects operated by active communities performing spontaneous evolution, it is yet unclear that how such successful projects and communities have been formed and governed. This article proposes a method that can investigate the history of every project in the SCP. Introducing the concept of project as a city, the authors consider every project in the SCP as a city, where a government and citizens develop a city through collaborative activities. This research then identifies essential attributes that characterize a state of a city. For each attribute, the authors develop metrics that quantify the state S(p; t) of a project p at time t. An experimental evaluation investigating GitHub projects of famous code editors shows that the proposed metrics well visualize the history of the projects from essential perspectives of a city.


2014 ◽  
Vol 989-994 ◽  
pp. 4851-4854
Author(s):  
Qian Yu ◽  
Tong Li ◽  
Xuan Zhang ◽  
Ying Lin ◽  
Yong Yu ◽  
...  

Software evolution process model (EPM) is a knowledge-intensive process which is described in EPDL(Software Evolution Process Description Language) and modelled by semi-formal approach based on EPMM(Software Evolution Process Meta-Model). In order to support process improvement and process automation, the execution model is represented by logic programming. Activity in EEM (EPM’s execution model) is not implemented until its needing all kinds of resources are satisfied by system execution environment. The paper discussed the representations of all kinds of resources in EEM and their structures are proposed. The preparation resources method is presented in order to execute the EEM automatically. The converter program is realized and the correct results have presented to prove the correctness of the method.


Sign in / Sign up

Export Citation Format

Share Document