Breaking down a process into non-redundant operations. In structured programming, it provides a hierarchical breakdown of the program into the individual operations, or routines, that are required. See normalization
Functional Decomposition of a Program
This example is ultra simplistic, but shows the hierarchical breakdown of the program into its constituent components.