# Semantic Modeling Approach Supporting Process Modeling and Analysis in Aircraft Development
## 3 Semantic Modeling Approach for Process Modeling and Analysis
### KARMA Formalisms for Process Modeling  
#### 3.2.1. GOPPRRE Formalism Supporting Metamodeling Development  
As shown in Figure 2, the core of KARMA formalism is a GOPPRRE formalism for developing MBSE models, which is designed based on a M0-M3 modeling framework that supports metamodel and model development. Four layers are used to represent the development process using the semantic KARMA language to formalize the development processes using KARMA formalism. * M3 refers to meta-metamodels, including the basic elements for developing metamodels based on the core GOPPRRE concepts: (1) Graph; (2) Object; (3) Point; (4) Property; (5) Role; (6) Relationship ; and (7) Extension;
* M2 refers to metamodels used for constructing models. In this study, metamodels are used for constructing the BPD models, whose syntax and semantics are defined based on the graphical notation specification BPMN and industrial standards such as ISO/IEEE 15288, respectively;
* M1 refers to BPD models which describe the development process using graphical notations;
* M0 refers to the real development process of the aircraft avionics system. Based on the _GOPPRRE_ formalism, the syntax of KARMA languages, which is one of the most powerful approaches to describe domain specific metamodels of products [28], is used to describe metamodels and models. The detailed key concepts are introduced as follows:  
* _Graph_ refers to a collection of _Object_, and _Relationship_ is represented as one window referring to a BPD model with graphical notations. To represent the hierarchy between different development processes, one _Object_ should be decomposed into another BPD diagram graph model;
* _Object_ refers to one entity in _Graph_s (one work task in a BPD model);
* _Point_ refers to a port in each _Object_;
* _Relationship_ refers to one connection between the two _Points_ of _Objects_ or _Objects_ in a _Graph_;
* _Role_ refers to each end of _Relationship_ used to define the connection rules for the relevant _Relationship_. For example, one _Relationship_ has two _Roles_. Each is defined to connect one _Point_ in _Objects_ or one _Object_ with _Relationship_. Then, the connector between _Relationship_ and the _Points_ or _Objects_ is created as a constraint to implement connections among different _Objects_;
* _Property_ refers to one attribute in the other five non-property metamodels. Figure 2: KARMA formalism and analysis for the development process modeling. To formalize the BPD models for development process, a definition is proposed as follows:  
The \(::=()\) refers to a collection. \(\textit{Graph}_{\textit{PD}}^{a}\) is defined as a BPD model \(a\) based on the metamodel of Graph \(\textit{bpd}\). In \(\textit{Graph}_{\textit{bpd}}^{a}\), \(\textit{Object}_{\textit{obj}}^{b}\) refers to the object instance \(b\) based on a metamodel of Object \(\textit{Obj}\), such as work task \(b\). \(\textit{Relationship}_{\textit{Rel}}^{c}\) refers to a relationship instance \(c\) based on the metamodel of Relationship \(\textit{Rel}\), such as sequence from one work task to another. \(\textit{Role}_{\textit{Rel}}^{d}(x)\) refers to a role instance \(d\) based on a metamodel of Role \(\textit{Rel}\) in a relationship instance \(x\), which is developed based on metamodel Relationship \(\textit{Rel}\); \(\textit{Property}_{\textit{pred}}^{f}(z)\) refers to the property instance \(f\) based on the metamodel of Property \(\textit{Proi}\) in the model instance \(z\), whose metamodel is \(\textit{nonprop}\) (\(\textit{nonprop}\subseteq\{Gi,\textit{Obj},\textit{Rei},\textit{Roi}\}\)). The formalism of a whole BPD model is shown in Equation (1). \[ \begin{split}\textit{Graph}_{\textit{bpd}}^{a}&:: =(\sum\textit{Object}_{\textit{Obj}}^{b},\sum\textit{Relationship}_{ \textit{Rel}}^{c},\\ &\sum\textit{Role}_{\textit{Rel}}^{d}(x,\textit{Rel}),\sum \textit{Property}_{\textit{Proi}}^{f}(z,\textit{nonprop}))\end{split}