Perpetual development: A model of the Linux kernel life cycle

被引:16
作者
Feitelson, Dror G. [1 ]
机构
[1] Hebrew Univ Jerusalem, Sch Comp Sci & Engn, IL-91904 Jerusalem, Israel
关键词
Software evolution; Software release; Maintenance; Linux kernel; SOFTWARE EVOLUTION; MAINTAINABILITY; MANAGEMENT; PROJECTS; IMPACT;
D O I
10.1016/j.jss.2011.10.050
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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. (C) 2011 Elsevier Inc. All rights reserved.
引用
收藏
页码:859 / 875
页数:17
相关论文
共 74 条
  • [1] Coordination and Productivity Issues in Free Software: the Role of Brooks' Law
    Adams, Paul J.
    Capiluppi, Andrea
    Boldyreff, Cornelia
    [J]. 2009 IEEE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, CONFERENCE PROCEEDINGS, 2009, : 319 - 328
  • [2] [Anonymous], 1975, MYTHICAL MAN MONTH E
  • [3] [Anonymous], 2007, Ninth International Workshop on Principles of Software Evolution in Conjunction with the 6th ESEC/FSE Joint Meeting-IWPSE'07
  • [4] [Anonymous], 2002, P INT WORKSH PRINC S
  • [5] Analyzing cloning evolution in the Linux kernel
    Antoniol, G
    Villano, U
    Merlo, E
    Di Penta, M
    [J]. INFORMATION AND SOFTWARE TECHNOLOGY, 2002, 44 (13) : 755 - 765
  • [6] Embracing change with extreme programming
    Beck, K
    [J]. COMPUTER, 1999, 32 (10) : 70 - +
  • [7] Making a difference in the software century
    Boehm, Barry
    [J]. COMPUTER, 2008, 41 (03) : 32 - +
  • [8] BOEHM BW, 1988, COMPUTER, V21, P61, DOI 10.1145/12944.12948
  • [9] Capiluppi A, 2007, PROC INT CONF SOFTW, P511
  • [10] Structural evolution of an Open Source system: a case study
    Capiluppi, A
    Morisio, M
    Ramil, JF
    [J]. IWPC 2004: 12TH IEEE INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, 2004, : 172 - 182