The Linux kernel as a case study in software evolution
Explore this paper's citation graph
Summary
It is found that the data supports several of Lehman's laws, mainly those concerned with growth and with the stability of the process, and makes some novel observations, e.g. that the average complexity of functions is decreasing with time, but this is mainly due to the addition of many small functions.
- Type
- article
- Published
- 2010-03-01
- Cited by
- 157
- References
- 71
- Access
- Open access
- OpenAlex
- https://openalex.org/W2059510240
- Semantic Scholar
- https://api.semanticscholar.org/CorpusID:11286201
Keywords
Cyclomatic complexity, Linux kernel, Computer science, Software evolution, Source lines of code
References
- Understanding Continuous Design in F/OSS Projects
- Software Evolution and Feedback: Theory and Practice
- Elements of software science
- Linux Kernel Development
- Models for the evolution of OS projects
- Power-Laws in a Large Object-Oriented Software System
- A software metric system for module coupling
- Construction and testing of polynomials predicting software maintainability
- On understanding laws, evolution, and conservation in the large-program life cycle
- Evolution in software systems: foundations of the SPE classification scheme
- An extension to the cyclomatic measure of program complexity
- A study of open source software evolution data using qualitative simulation
- Maintainability of the Linux kernel
- The past, present, and future of software evolution
- Software evolution: code delta and code churn
- Categorization of common coupling and its application to the maintainability of the Linux kernel
- The cathedral and the bazaar
- The Linux edge
- Programs, life cycles, and laws of software evolution
- Indirectly predicting the maintenance effort of open-source software
Cited by
- Getting started with Open-Hardware: Development and Control of Microfluidic Devices
- Using Hierarchical Change Mining to Manage Network Security Policy Evolution
- Growth and Change Dynamics in Open Source Software Systems
- Evolving Software Systems
- Extracting feature model changes from the Linux kernel using FMDiff
- Studying the laws of software evolution in a long-lived FLOSS project
- Open Source Software: A Survey from 10, 000 Feet
- Studying software evolution using artefacts' shared information content
- Co-evolution of the Eclipse SDK Framework and Its Third-Party Plug-Ins
- Faults in Linux 2.6
- An empirical study of the evolution of Eclipse third-party plug-ins
- Analysis on evolution features of software network
- The longitudinal, chronological case study research strategy: A definition, and an example from IBM Hursley Park
- Challenges in Software Ecosystems Research
- Preliminary lessons from a software evolution analysis of Moodle
- Symmetric Preferential Attachment for New Vertices Attaching to Software Networks
- Perpetual development: A model of the Linux kernel life cycle
- Sustainability of Open Source software communities beyond a fork: How and why has the LibreOffice project evolved?
- Growing up with stability: How open-source relational databases evolve
- High-MCC Functions in the Linux Kernel
Related papers
- A Study of Scala Repositories on Github
- Evolution in open source software: a case study
- Complexity and Nesting Evolution in Open Source Software Systems: Experimental Study
- Evaluate How Cyclomatic Complexity Changes in the Context of Software Evolution
- The Evolution of the Linux Build System
- Unanticipated Software Evolution: Evaluating the Impact on Development Cost and Quality
- Cyclomatic Complexity and Lines of Code: Empirical Evidence of a Stable Linear Relationship
- Fractal Properties of Linux Kernel Maps