Software entropy
Encyclopedia
A work on software engineering by Ivar Jacobson
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 thermodynamics
Second law of thermodynamics
The 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 system
Closed 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 disorder
Randomness
Randomness 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 entropy
Entropy
Entropy 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 system
Software system
A 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 development
Software development
Software 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:

  1. A computer program
    Computer program
    A 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
  2. When a program is modified, its complexity
    Complexity
    In 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.

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.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK