A rational design process: How and why to fake it
IEEE Transactions on Software Engineering
Reference Model for Smooth Growth of Software Systems
IEEE Transactions on Software Engineering
Communications of the ACM
In search of the future of air traffic control
IEEE Spectrum
Towards an Ontology of software maintenance
Journal of Software Maintenance: Research and Practice
Communications of the ACM
Characteristics of application software maintenance
Communications of the ACM
Does Code Decay? Assessing the Evidence from Change Management Data
IEEE Transactions on Software Engineering
Evolution patterns of open-source software systems and communities
Proceedings of the International Workshop on Principles of Software Evolution
The Mythical Man-Month: Essays on Softw
The Mythical Man-Month: Essays on Softw
The Cathedral and the Bazaar
Evolutionary Project Management
Computer
Breathing New Life into the Waterfall Model
IEEE Software
Investigating Large Software System Evolution: The Linux Kernel
COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
Laws of Software Evolution Revisited
EWSPT '96 Proceedings of the 5th European Workshop on Software Process Technology
The Evolution Tree: A Maintenance-Oriented Software Development Model
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
Program evolution and its impact on software engineering
ICSE '76 Proceedings of the 2nd international conference on Software engineering
Metrics and Laws of Software Evolution - The Nineties View
METRICS '97 Proceedings of the 4th International Symposium on Software Metrics
Implications of Evolution Metrics on Software Maintenance
ICSM '98 Proceedings of the International Conference on Software Maintenance
Evolution in Open Source Software: A Case Study
ICSM '00 Proceedings of the International Conference on Software Maintenance (ICSM'00)
Models for the evolution of OS projects
ICSM '03 Proceedings of the International Conference on Software Maintenance
An Empirical Study of Open-Source and Closed-Source Software Products
IEEE Transactions on Software Engineering
Studying cooperation and conflict between authors with history flow visualizations
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Life cycle concept considered harmful
ACM SIGSOFT Software Engineering Notes
Structural Evolution of an Open Source System: A Case Study
IWPC '04 Proceedings of the 12th IEEE International Workshop on Program Comprehension
A Simulation Model of Self-organising Evolvability in Software Systems
SOFTWARE-EVOLVABILITY '05 Proceedings of the IEEE International Workshop on Software Evolvability
Evolution and Growth in Large Libre Software Projects
IWPSE '05 Proceedings of the Eighth International Workshop on Principles of Software Evolution
Comparison between SLOCs and number of files as size metrics for software evolution analysis
CSMR '06 Proceedings of the Conference on Software Maintenance and Reengineering
Changing the paradigm of software engineering
Communications of the ACM - Music information retrieval
The evolution of FreeBSD and linux
Proceedings of the 2006 ACM/IEEE international symposium on Empirical software engineering
Common coupling and pointer variables, with application to a Linux case study
Software Quality Control
An Empirical Study of the Evolution of an Agile-Developed Software System
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Analysis of the Linux Kernel Evolution Using Code Clone Coverage
MSR '07 Proceedings of the Fourth International Workshop on Mining Software Repositories
Adapting the "staged model for software evolution" to free/libre/open source software
Ninth international workshop on Principles of software evolution: in conjunction with the 6th ESEC/FSE joint meeting
Software evolution in open source projects—a large-scale investigation
Journal of Software Maintenance and Evolution: Research and Practice
Analyzing the evolution of eclipse plugins
Proceedings of the 2008 international working conference on Mining software repositories
A Case Study on Software Evolution towards Service-Oriented Architecture
AINAW '08 Proceedings of the 22nd International Conference on Advanced Information Networking and Applications - Workshops
The profession of IT: Evolutionary system development
Communications of the ACM - Surviving the data deluge
Statecharts in the making: a personal account
Communications of the ACM - Being Human in the Digital Age
The Linux kernel as a case study in software evolution
Journal of Systems and Software
On understanding laws, evolution, and conservation in the large-program life cycle
Journal of Systems and Software
A mathematical model for the evolution of software
Journal of Systems and Software
Coevolution of variability models and related artifacts: a case study from the Linux kernel
Proceedings of the 17th International Software Product Line Conference
Journal of Systems and Software
Hi-index | 0.00 |
Software evolution is widely recognized as an important and common phenomenon, whereby the system follows an ever-extending development trajectory with intermittent releases. Nevertheless there have been only few lifecycle models that attempt to portray such evolution. We use the evolution of the Linux kernel as the basis for the formulation of such a model, integrating the progress in time with growth of the codebase, and differentiating between development of new functionality and maintenance of production versions. A unique element of the model is the sequence of activities involved in releasing new production versions, and how this has changed with the growth of Linux. In particular, the release follow-up phase before the forking of a new development version, which was prominent in early releases of production versions, has been eliminated in favor of a concurrent merge window in the release of 2.6.x versions. We also show that a piecewise linear model with increasing slopes provides the best description of the growth of Linux. The perpetual development model is used as a framework in which commonly recognized benefits of incremental and evolutionary development may be demonstrated, and to comment on issues such as architecture, conservation of familiarity, and failed projects. We suggest that this model and variants thereof may apply to many other projects in addition to Linux.