## 3 State of the Art
### Graph-Based Design Languages Implemented with UML and DC43
#### 3.2.3 Implementation of Graph-Based Design Languages with UML and DC43  
One possible way to implement GBDLs is to map the product information into vocabulary and rules--this mapping can be based, for example, on the unified modeling language ( UML). In this case, objects are represented in UML class diagrams and rules in UML activity diagrams. [PERSON] [48] developed a potential way to process this kind of GBDL implementation in a so-called design compiler--the Design Compiler 43(DC43) by IILS mbH, Trochtelfingen, Germany; the engineering framework used in this research is based on this possibility. The main entities of this engineering framework are shown in Figure 8 (adapted from [50]). The individual components of the technical system are represented as UML classes; these classes represent the objects that construct the future product. These components are usually arranged in ontologies. In this context, ontologies are understood as organized, annotated, hierarchical and related arrangements of engineering entities that are intended to represent certain aspects of engineering knowledge. The classes that represent the objects can be connected in the UML class diagram by means of different associations (Figure 9). Figure 8: Basic concept of the chosen implementation of graph-based design languages. The start of this vocabulary is the technical product as well as its assemblies and its parts. The example product is a multicopter--a multicopter has a mission that it is designed to accomplish, which can be split into use cases (UseCase). These use cases may include specifications of possible payloads or admissible operation times. From the point of view of engineering, one may differentiate between structural components combined in the **Modules** of the _chassis_ and _propulsion system_. These modules can be divided into smaller segments or parts of the multicopter--the **Objects**. In the multicopter example, the chassis module is composed of a _centerplate_, _riggers_ and _landing gears_, whereas the propulsion system module consists of _motors_, _propellers_ and _batteries_. These objects are the main parts of the multicopter on a certain hierarchical level. The prominent model used for describing the \"vocabulary\" is the well-known class diagram of UML. Figure 9 represents the class diagram of the \"Multicopter Design Language\". Some classes--shown at the top of Figure 9 and highlighted in orange--indicate a connection to another class diagram; these connections are intended to extend the functionality of this specific design language. All links in blue are associations, whereas other kinds of links are drawn in black and end with a triangle. These other kinds of links indicate inheritance, whose meaning can be characterized as \"is a\". As shown in Figure 9, each **Object** inherits from the superclass **Element** and each **Module** inherits from the superclass **Aggregation**. The **Element** class manages the links to the shortcut classes of **Cylinder**, **Cuboid**, **Position** and **Transform**, which are illustrated in orange. These classes are imported classes and are connected to another class diagram (in the given case, the geometry class diagram). It is important to note that all Objects can be linked with associations (otherObject) and can contain attributes and operations. These associations, attributes and operations may represent the functionality of the technical system. For instance, the UseCase \"hold position\" depends, amongst other things, on the thrust of the rotors and the stiffness of the riggers. During the development of graph-based design languages, the class Process was added, as it enables the representation of further important relationships and functionalities. The classes are instantiated employing so-called UML model transformations (rules). In the engineering framework, a sequence of rules can be modeled in a UML activity diagram. The information stored in these diagrams is processed in the Design Compiler 43 TM (DC43).