Software evolution—Background, theory, practice

https://doi.org/10.1016/S0020-0190(03)00382-XGet rights and content

Abstract

This paper opens with a brief summary of some 30 years of study of the software evolution phenomenon. The results of those studies include the SPE program classification, a principle of software uncertainty and laws of E-type software evolution. The laws were termed so because they encapsulate phenomena largely independent of the people, the organisations and the domains involved in the evolution of the E-type systems studied. Recent studies have refined earlier conclusions, yielded practical guidelines for software evolution management and provide a basis for the formation of a theory of software evolution. Given the volume of published material and the extent of recent discussions on the topic (see, e.g., [Proc. ICSM, Montreal, 2002, p. 66]), this paper is restricted to an overview that exposes the significance of the evolution phenomenon and its study to the wider community, providing a basis for the future and, in particular, development of a theory of software evolution.

References (45)

  • A. Bauer et al.

    The contribution of free software to software evolution

  • L.A. Belady, M.M. Lehman, Programming system dynamics or the metadynamics of systems in maintenance and growth, IBM...
  • L.A. Belady, M.M. Lehman, An introduction to program growth dynamics, in: W. Freiburger (Ed.), Statistical Computer...
  • K.H. Bennett et al.

    Software maintenance and evolution: A roadmap

  • R. Carnap

    Philosophical Foundations of Physics

    (1966)
  • D.R. Cox et al.

    The Statistical Analysis of Series of Events

    (1966)
  • M.W. Godfrey et al.

    Evolution in open source software: A case study

  • N.H. Madhavji

    Introduction to the panel session Lehman's laws of software evolution, in context

  • W.T. Kelvin

    Popular Lectures and Addresses

    (1891–1894)
  • B.A. Kitchenham

    System evolution dynamics of VME/B

    ICL Tech. J.

    (1982)
  • M.J. Lawrence

    An examination of evolution dynamics

  • M.M. Lehman, The programming process, IBM Res. Rept. RC 2722, December 1969, 46 pp.; Also as Chapter 3 in...
  • M.M. Lehman

    Programs, cities, students, limits to growth?

  • M.M. Lehman

    Laws of program evolution—rules and tools for programming management

  • M.M. Lehman

    The environment of design methodology

  • M.M. Lehman

    On understanding laws, evolution and conservation in the large program life-cycle

    J. Syst. Software

    (1980)
  • M.M. Lehman

    Programs, life cycles and laws of software evolution

  • M.M. Lehman et al.

    Program Evolution—Process of Software Change

    (1985)
  • M.M. Lehman

    Uncertainty in computer application and its control through the engineering of software

    J. Software Maint. Res. Practice

    (1989)
  • Cited by (83)

    • Internal and external quality in the evolution of mobile software: An exploratory study in open-source market

      2019, Information and Software Technology
      Citation Excerpt :

      A number of code-based and community-based metrics available in the literature are collected and analyzed to understand whether they are significantly related to quality characteristics. More specifically, a total of 105 releases of the six mobile applications (which correspond to 61 and 44 respective releases of three mobile applications of the cases A and B) are analyzed to understand internal quality, where code-based characteristics are employed in the light of Lehman’s three laws [16], namely increasing complexity, continuous growth, and decreasing quality. External quality is explored by adapting DeLone and McLean model [17] of information system success and using community-based metrics, when data is available for the included releases, to derive a corresponding success index.

    • A framework for semi-automated co-evolution of security knowledge and system models

      2018, Journal of Systems and Software
      Citation Excerpt :

      In Section 6, we conclude our work and outline future research. According to Lehman and Ramil (2003), software evolution is the ongoing progressive change of software artifacts in one or more of their attributes over time. Progressive in this context means that the change results in improvement of the corresponding software.

    • The application of knowledge management to software evolution

      2017, International Journal of Information Management
      Citation Excerpt :

      We begin by examining the software engineering and the nature of software maintenance in greater detail. We do this mainly by drawing on the work of Lehman (Lehman, 1979, 1996; Lehman & Ramil, 2003) on software evolution and examining its implications for KM. We follow this by examining the KM strategies that could be used to address this problem.

    • Evolution of Linux operating system network

      2017, Physica A: Statistical Mechanics and its Applications
    • The vision of self-evolving computing systems

      2023, Journal of Integrated Design and Process Science
    View all citing articles on Scopus
    View full text