In this paper, I conceive of the flow from capabilities, to requirements, to implementations as an abstraction hierarchy. I show that this flowdown process generates a tree-structured hierarchy as the “informational backbone” of a system designed to meet a given capability. This structure may be translated into a layered hierarchy by enabling a requirement to address multiple capabilities, and enabling an implementation to address multiple requirements (i.e., enabling nodes to have multiple parents). Doing so enables the system’s architect to identify opportunities for adding flexibility to the system.