It’s Only Logical: Decision Tables and Decision Trees

Decision tables and trees show how various combinations of multiple logical decisions lead to specific outcomes.

Karl Wiegers
Analyst’s corner

--

Graphic by Author

A software system often is governed by complex logic, with various combinations of conditions and actions leading to different system behaviors. For example, if the driver presses the accelerate button on a car’s cruise control system and the car is currently cruising, the system increases the car’s speed. If the car isn’t cruising, though, the system shouldn’t do anything.

Developers must base their work on a set of functional requirements that describe what the system should do under all possible combinations of both normal and error conditions. However, it’s easy to overlook a specific condition combination, which then results in a missing requirement. These knowledge gaps are hard to spot by reviewing a specification written in natural language, with all its bulkiness and ambiguities.

Decision tables and decision trees are two effective techniques for representing how a system should behave when complex logic and decisions come into play. These techniques are valuable when defining functional requirements and business rules. They’re also a great aid for efficient test planning.

--

--

Karl Wiegers
Analyst’s corner

Author of 14 books, mostly on software. PhD in organic chemistry. Guitars, wine, and military history fill the voids. karlwiegers.com and processimpact.com