Rethinking complexity for software code structures: A pioneering study on Linux kernel code repository
arXiv:2103.00821
Abstract
The recent progress of artificial intelligence(AI) has shown great potentials for alleviating human burden in various complex tasks. From the view of software engineering, AI techniques can be seen in many fundamental aspects of development, such as source code comprehension, in which state-of-the-art models are implemented to extract and express the meaning of code snippets automatically. However, such technologies are still struggling to tackle and comprehend the complex structures within industrial code, thus far from real-world applications. In the present work, we built an innovative and systematical framework, emphasizing the problem of complexity in code comprehension and further software engineering. Upon automatic data collection from the latest Linux kernel source code, we modeled code structures as complex networks through token extraction and relation parsing. Comprehensive analysis of complexity further revealed the density and scale of network-based code representations. Our work constructed the first large-scale dataset from industrial-strength software code for downstream software engineering tasks including code comprehension, and incorporated complex network theory into code-level investigations of software development for the first time. In the longer term, the proposed methodology could play significant roles in the entire software engineering process, powering software design, coding, debugging, testing, and sustaining by redefining and embracing complexity.
References in corpus (8)
- Fast algorithm for detecting community structure in networks
- Software systems as complex networks: structure, function, and evolvability of software collaboration graphs
- Convolutional Neural Networks over Tree Structures for Programming Language Processing
- StaQC: A Systematically Mined Question-Code Dataset from Stack Overflow
- Code Generation as a Dual Task of Code Summarization
- A Literature Study of Embeddings on Source Code
- A Transformer-based Approach for Source Code Summarization
- Semantic Code Repair using Neuro-Symbolic Transformation Networks