Computer Science > Software Engineering
[Submitted on 1 Mar 2021]
Title:Rethinking complexity for software code structures: A pioneering study on Linux kernel code repository
View PDFAbstract: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 & Citations
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Connected Papers (What is Connected Papers?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
alphaXiv (What is alphaXiv?)
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Hugging Face (What is Huggingface?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.