In the 1990s, there is an emphasis on finding ways to lower software cost and improve quality. Thus, it is very important to quantify and measure factors, such as software complexity, which have been shown to affect cost and quality. Researchers have defined many software complexity measures, and have exploited them to identify fault-prone program modules, to predict the number of faults that testing and operation will reveal, or to assess maintainability. Information theory based software measures are attractive because they quantify, with a standard unit, the amount of information in an abstraction of a program. The unit of measure is a bit. The purpose of this paper is to survey the state of the art of applications of information theory to software measurement, beginning in 1972. Information theory based measures have been applied to most phases of the development lifecycle. However, there have been relatively few papers. Most measures have not been empirically validated. One can conclude that the field is in its infancy. Relevant concepts of information theory are briefly described, and tables summarize the references from various perspectives. Since the amount of research, thus far, has been very limited, researchers will find numerous opportunities to validate, refine, and improve the measures presented here. Such research should give future practitioners useful software measures for each phase of the lifecycle.