Constructs for hierarchically describing the organization of large-scale software systems are presented. The constructs allow the explicit specification of subsystem sharing. Descriptions using these constructs are therefore not necessarily tree-like and hence are frequently more natural and clear. The constructs were developed as part of a language for describing a system’s design, as opposed to its implementation. The efficacy of the constructs is argued with respect to this description task and the constructs are compared to similar ones available in programming languages.
Riddle, William E., "Hierarchical Description of Software System Organization ; CU-CS-120-77" (1977). Computer Science Technical Reports. 118.