A,B,d(C)}- interface x12-x22 collapse interface x12-x22 to i1 Fig. 2.27 Interface transformation To handle the complexity, it is important to retain separate descriptions of levels and to understand the difference between interfaces on different levels. The description of how an interface on a higher structural level is realized on a lower level is called an interface transform. In general, an interface on a higher structural level becomes separated into a protocol and an interface on a lower structural level. This is demonstrated by Fig. 2.27, which shows (counter-clock wise) how an inter- face transform is analysed and specified: First the interface I1 is separated into its protocol {A,B,C} and its data flow (here a logical connection). Then the protocol is refined (in this case) into two parts, {C} and {A,B,d(C)}. The units x12 and x22 handle (besides other things) the data flow to support the pro- tocol {C}. 2.3 Architectural Principles The protocol {A,B,d(C)} and its supporting data flow represent the interface between the units x12 and x22. These interface components can therefore be col- lapsed to the interface i1 between x12 and x22. If the upper structural level (X1 and X2) is removed, we have to identify a solu- tion to how to support communication between x11-x12 and x21-x22 respec- tively. We will therefore define these as interfaces as well (i2 and i3). Solutions to the interfaces i2 and i3 can be developed by applying the same process as was used for transforming I1, for each of i2 and i3 separately. As a result, we defined that interface I1 comprises a protocol {C} and an interface i1 on a lower structural level. We can now also treat the two levels of protocols in 11 as different systems by substituting the connectivity service that x12 and x22 provide to x11 and x21 with a connectivity relation on a more abstract level, as shown in Fig. 2.28. (A,B,d(C)} {A,B,d(C)} low-level connection high-level connection Fig. 2.28 Interface transformation results in interfaces of different abstraction levels Th