Decision trees are widely used to specify the conditional logic of sof
tware systems. Desirable properties of decision trees, such as syntact
ic consistency, semantic consistency, completeness, and non-redundancy
, are discussed. Tree traversal algorithms and associated data structu
res for obtaining these properties are described and their practical u
sefulness is briefly justified. The algorithms can be easily incorpora
ted into existing CASE tools.