## 3 Concepts and Definitions
### Architecture of Profiles Supporting DnD Transformations  
Model transformation provides the means to develop a target model from a source model. Furthermore, we will provide a brief overview of the architecture of the developed UML profiles to support the DnD transformation metamodel, which was first presented in [7]; the metamodel itself will not be presented here to avoid unnecessary repetition of the already published material. The main engineering developments of the approach were implemented in the CASE system MagicDraw. Figure 2 presents the main components of the overall implementation architecture. Here, the core of DnD transformation is deployed in the dark-painted _M2M Transformations_ profile; native elements of MagicDraw containing other important DnD transformation-related properties are left unpainted. One of the main parts of DnD transformation is a _transformation pattern_ (\(\ast\)_TransformationPattern_). It is a structured class holding two parts in its structure compartment: a _source part_ (\(\prec\)_Source_) and a _target part_ (\(\ast\)_Target_\(\ast\)). The source part contains the concept types (together with their relevant properties) of a source model. The target part contains the concept types (together with their relevant properties) of a target model. Within each part, the included concept types may be interconnected with _mapping connectors_ (\(\prec\)_Mapping-Connectors_). Connectors are also used to define mappings between elements deployed in different parts (source and target)--these mappings show actual transformation mappings among concept types of the source and target models. \(\ast\)_Customization_\(\ast\) is a stereotype denoting customization classes. These classes invoke the execution of drag-and-drop action specifications. Property _allowedDragAndDrops_ specifies a set of transformation specifications that can be executed after a user drags and drops a source element (_SourceElement_) on the pre-defined target element (_customizationTarget_). Only one transformation specification can be executed per each drag-and-drop action activation. That is, there is more than one transformation specification defined in the _allowedDragAndDrops_ property and a user will be asked to select one specific transformation from the contextual menu to be executed. \(\ast\)_DragAndDropSpecification_\(\ast\) and its specialization \(\ast\)_DragAndDropSpecificationExtension_\(\ast\) realizes the rest of the properties of DnD transformation specification that do not fall into the transformation pattern or customization classes. Those are discussed in detail in [7]. The prototype DnD transformations solution is implemented as a plug-in for the CASE system MagicDraw (the latest DnD implementation is accessible at [[https://bitbucket.org/pauliusdan/magicdraw-d-d-transformations](https://bitbucket.org/pauliusdan/magicdraw-d-d-transformations)]([https://bitbucket.org/pauliusdan/magicdraw-d-d-transformations](https://bitbucket.org/pauliusdan/magicdraw-d-d-transformations))). This CASE system features a UML extension mechanism via UML profiling and extensibility of both the CASE system functionality and DSL engine (via API) [37], which are mandatory to support this approach. Among other components, it includes the _SBVR Modeler_ plug-in for MagicDraw, which uses a UML profile for SBVR to enable visual modeling functionality [36], model integration solver plugin, and the SBVR editor. Aside from _Model Integration profiles_ and other previously developed transformations, the _DnD Transformations_ plugin also contains the library of newly developed UML UCM \(\rightarrow\) SBVR BV transformations, which are introduced further in this paper. The core of the DnD transformations functionality is implemented as the _M2M Transformations Core_ framework, which provides abstract and technology-agnostic implementation within our research boundaries.