Functional decomposition has a prominent role in computer programming, where a major goal is to "modularize" processes to the greatest extent possible.
We can modularize code that traditionally has been expressed in monolithic, imperative form.
The goal of this section is to abstract details from this implementation, and to modularize it into several orthogonal components.