Laws of Program Evolution

Laws of Program Evolution

October 10, 2021 | software


In 1980, Lehman (1980) summarized the Laws of Program Evolution. The first law, Continuing Change, expressed the universally observed fact that large programs are never completed. They just continue to evolve until the more cost-effective updated version replaces the systems. The second law, Increasing Complexity, could also be viewed as an instance of the second law of thermodynamics. As an evolving program is continually changed, its complexity, reflecting deteriorating structure, increases as well, unless the mission is done, or maintenance is needed. The third law, The Fundamental Law of Program Evolution, is subject to dynamics that make the programming process, measures system attributes and collaborative projects, and self-regulating with statistically proven trends and invariances. The fourth law, Conservation of Organizational Stability (Invariant Work Rate), and the fifth law, Conservation of familiarity, both lead to the third law. The fourth law more focuses on the steadiness of multiloop self-stabilizing systems. A well-established organization is good at avoiding dramatic change and particularly discontinuities in the increasing growth of an organization. Especially in the past two decades, the complexity of the task that the software system performs has grown dramatically, faster than hardware due to the fast-paced high technology development (Catelani et al. 2011).


Links to this note

Go to random page