elated over internal interfaces. Substructuring Collapsing Substructure level 0 Substructure levels 0 and 1 Fig. 2.19 A substructure (S) for a unit X In order to preserve interface descriptions in the context of recursive use of sub- structuring and alternative solutions to internal structures, it is important to pre- serve the substructure levels of a model. Substructuring can be applied recursively on units, i.e. a model can be substructured to any number of levels. By definition, we will always call the top level of any model fragment type substructure level 0. The model in Fig. 2.19 exhibits two substructure levels, 0 and 1. As long as the external interface is terminated by a single interface unit (IU), internal interfaces (here i1 and i2) and units (here X1 and X2) are invisible from the outside of the original unit. That implies that we can modify the substructure of a unit, as long as we retain a single termination point (IU) for the data flow of the external interface (in Fig. 2.20 assumed to be based on a logical connection), and as long as the substructure can handle all functional requirements of the external interface. Fig. 2.20 An interface unit terminates data flows for all internal units The functional requirements on internal units depend on the external message protocol. Thus, there is a functional relation between what happens in the external interface and the activities of internal units. However, in most design methods the specification of external interfaces of a unit is not formally related to the spec- 2.3 Architectural Principles ification of internal interfaces and units. To satisfy the requirements that are expressed by the protocol of an external interface might require a substructure that comprises ten to hundreds of units on the lowest structural level. It then becomes a problem to relate the requirements that are expressed by (external) protocols to the functions of internal units. The nature of this relation depends on the principle that is used for substructuring. There are two ve