Software entropy
Encyclopedia
A work on software engineering by Ivar Jacobson
et al.
describes software entropy as follows:
Andrew Hunt and David Thomas use Fixing Broken Windows
as a metaphor for avoiding software entropy in software development.
The process of code refactoring can result in stepwise reductions in software entropy.
Ivar Jacobson
Ivar Hjalmar Jacobson is a Swedish computer scientist, known as major contributor to UML, Objectory, RUP and aspect-oriented software development.- Biography :...
et al.
describes software entropy as follows:
- The second law of thermodynamicsSecond law of thermodynamicsThe second law of thermodynamics is an expression of the tendency that over time, differences in temperature, pressure, and chemical potential equilibrate in an isolated physical system. From the state of thermodynamic equilibrium, the law deduced the principle of the increase of entropy and...
, in principle, states that a closed systemClosed system-In physics:In thermodynamics, a closed system can exchange energy , but not matter, with its surroundings.In contrast, an isolated system cannot exchange any of heat, work, or matter with the surroundings, while an open system can exchange all of heat, work and matter.For a simple system, with...
's disorderRandomnessRandomness has somewhat differing meanings as used in various fields. It also has common meanings which are connected to the notion of predictability of events....
cannot be reduced, it can only remain unchanged or increase. A measure of this disorder is entropyEntropyEntropy is a thermodynamic property that can be used to determine the energy available for useful work in a thermodynamic process, such as in energy conversion devices, engines, or machines. Such devices can only be driven by convertible energy, and have a theoretical maximum efficiency when...
. This law also seems plausible for software systemSoftware systemA software system is a system based on software forming part of a computer system . The term "software system" is often used as a synonym of computer program or software; is related to the application of systems theory approaches in software engineering context and are used to study large and...
s; as a system is modified, its disorder, or entropy, always increases. This is known as software entropy
- Within software developmentSoftware developmentSoftware development is the development of a software product...
, there are similar theories; see Lehman (1985), who suggested a number of laws, of which two were, basically, as follows:
-
- A computer programComputer programA computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...
that is used will be modified - When a program is modified, its complexityComplexityIn general usage, complexity tends to be used to characterize something with many parts in intricate arrangement. The study of these complex linkages is the main goal of complex systems theory. In science there are at this time a number of approaches to characterizing complexity, many of which are...
will increase, provided that one does not actively work against this.
- A computer program
Andrew Hunt and David Thomas use Fixing Broken Windows
Fixing Broken Windows
The broken windows theory is a criminological theory of the norm setting and signaling effect of urban disorder and vandalism on additional crime and anti-social behavior...
as a metaphor for avoiding software entropy in software development.
The process of code refactoring can result in stepwise reductions in software entropy.