## 5 Model Transformations
### Execution and Implementation of the Model Transformations
The buffers enable ALF specifications to operate on the entire set of requests or replies for creating merged replies and requests. As a result of implementing multiple complex model transformations, we conclude that QVTo [6] is suitable and mature enough for developing model transformations. Although QVTo does not support the refining mode of ATL [25] that enables making a few changes on the input models, we could eliminate the limitation by programmatically capturing the results of the in-place QVTo model transformations. Our findings indicate that UML and existing tools need to put more emphasis on n-ary connectors. Although UML includes support for n-ary connectors, most of the tools, such as MagicDraw [36], IBM Rhapsody [37], Papyrus [27], StarUML [38], and IBM Rational Rose [39], do not support them. Some of the tools only have support for n-ary associations. SysML [14] also excludes the support for n-ary connectors. Although most of the tools exclude them, we observed that n-ary connectors were mentioned as examples in previous studies [40; 41; 42; 43; 44] and used without indication of any specific problems. Therefore, after surveying existing work, we conclude that there are not enough reasons for excluding support for n-ary connectors from the tools. Nevertheless, there are some challenges regarding n-ary associations, especially concerning the meaning of multiplicities. The work in [45] showed that the lower multiplicities are problematic. Therefore, they propose introducing inner and outer multiplicities in UML. Their proposal still needs to be incorporated into the current version of UML. The studies in [45; 46; 47] suggest representing n-ary relations by introducing an additional class and \(n\) binary relations. The fact that an n-ary connector can be represented by an object and \(n\) binary connectors might be the cause of why the tools do not support the n-ary connectors. We also use an object and \(n\) binary connectors in the E2 model to represent an n-ary connector. In the E1 model, we use \(n\)-\(l\) binary connectors without an object to represent an n-ary connector. Since developers will not work directly in the E2 model, it is reasonable to represent an enhanced connector in the E2 model using multiple binary connectors and an object. However, representing an n-ary connector with multiple binary connectors in the E1 model means that the behavior specification for the n-aryconnector scatters into several connectors. Our solution for this problem was to specify connector behavior only for the _primary enhanced connector_ and then establish dependencies from the primary enhanced connector to the other binary connectors, which we call the _secondary enhanced connectors_. Although this solution is sufficient for demonstrating the enhanced connector concepts, we conclude that lacking n-ary connector support in the tools complicates modeling efforts significantly and introduces unnecessary complexity into the models. The motivation of our study is in parallel with Reo [15] since we specify connectors to coordinate components that are unaware of the coordination. Unlike UML connectors, Reo channels do not support message passing between components using method calls. Additionally, Reo relies on channel composition for expressing different connector behaviors. Since we cannot use connectors as _ConnectorEnds_ in UML, we cannot attach a connector to another connector. Therefore, composition support in UML is not possible without modifying the UML metamodel. Consequently, our study relies on behavior specifications to specify complex coordination logic rather than composition. The cases we demonstrated from the real-life projects showed that the enhanced connector concept is applicable. In [48], we addressed the problem of efficient code generation methods for UML ports that results in minimal runtime overhead and compact code size. We can use the same code generation methods to realize the UML ports included in the E3 UML models.