Acknowledging the intense requirement for low power operation in most portable computing systems, this paper introduces the notion of energy efficient software design and proposes metrics, for evaluating software systems in terms of their energy consumption. Considering the sources of power consumption in every digital circuit, and the fact that power is primarily dependent on the executing software, appropriate energy measures are derived, which can be extracted from the flowgraph of a program. The proposed measures are computed by applying rules common to the existing hierarchical measures of other internal software attributes, and form the basis for the definition of a software energy metric. This metric can be used in order to determine the level of energy consumption of any software system more efficiently than existing assembly-parsing techniques, with only a limited penalty in accuracy. Application to different implementations of algorithms, drawn from matrix algebra and multime...