## 3 State of the Art
### Graph-Based Design Languages  
The authors are working on a superordinate research project. The aim of the research is the holistic integrated digital description of the product life cycle. The product life cycle includes many technical disciplines (e.g., requirement management, design, engineering, simulation, production, costing, maintenance, etc.) and therefore requires cooperation from many people and the interaction with many software tools. On the technical side, this integration process is currently focusing on complex PLM software systems which aim to achieve the integration. In some partial technical disciplines, immense efforts are realized by research and industry on the part of software development in order to promote this integration. These immense efforts result in numerous publications addressing the product modelling issues. Even graph-based approaches were analyzed since the early nineties (compare [PERSON] and [PERSON] [PERSON] and [PERSON] (2007)). Several research publications focus on product life cycles, such as [PERSON] and [PERSON] and [PERSON] (2007), and on integrated product and process models (for an excellent overview, see [PERSON] et al. [PERSON] et al. (2008)). The distinctive approach in this project is the application of an engineering framework of graph-based design languages, which allows the reuse of pre-existing engineering models and know-how. The concept of graph-based design languages (see e.g., [PERSON] [41]) has evolved over the last ten years into a generic framework for the definition of computerized design processes. Generally, a graph is a representation of a set of objects where some pairs of objects are connected by links. The interconnected objects are represented by mathematical abstractions that can be called \"nodes\", and the connections are as well represented by abstractions that can be called \"edges\", which may be directed or undirected. On the basis of prior work, [PERSON] [42] developed a consistent system to represent geometry and other forms of information using graphs, and has built a graph-based design language. In principle, design languages consist of a meta-model that stores all relevant parametrical and topological design information and acts as a centralized model repository [42]. These graph-based design languages are realized with UML (Unified Modelling Language). UML is the primary modelling language in computer science. Computer science is known for its very fast development cycles, which require very powerful abstract description forms (modern graphical modelling languages) for the software development process and highly automated development tools to achieve these extremely short innovation cycles. UML has been developed by software engineers and provides many features to model data in order to describe object-oriented software [43]. The latest version of UML 2.5 was released in June 2015. It is one main hypothesis in this project that the product development processes for conventional projects can greatly profit from the basic ideas and theories behind these automated development tools. The basic structure of the application of the graph-based design language selected in this research project is illustrated in Figure 7.  
In this graph-based design language, the engineering objects are represented by UML classes (the vocabulary of a design language), and model transformations are represented by rules, i.e., the grammar of the design language. In a so-called \"production system\", the rules are specified by the engineer and later executed in order to instantiate the vocabulary classes. Whereas the UML class diagram can be seen as a blueprint of all possible products (e.g., all multi-stage planar gear systems), the design graph resulting from the execution of the production system represents a specific product (e.g., gear system for customer x with two gear stages). This execution process builds up the central data model, also referenced as the \"Design Graph\".