Company to IT

Bx Examples Repository

Title: CompanyToIT

Version: 0.1

Type: Industrial, Sketch.


The story here is that one has a high-level model representing the hierarchy and relationships of employees in a certain company. So you have a CEO, system adiminator(s), and employees.
This model is then used to derive a model representing the required IT infrastructure for the company consisting of networks, routers and PCs or laptops.
After this initial "deployment" both models can be evolved independently, i.e., not all changes applied later to either model is relevant for the other corresponding model.

This example is extremely simple, but is chosen to demonstrate how a consistency relation might not be functional: in this concrete case, employees are allowed to chose if they want a laptop or a PC, and we assume that this freedom of choice can only be resolved at runtime (i.e., at synchronization time).


The diagram below depicts a concrete pair of consistent company and IT infrastructure models.
Note how corresponding elements are connected with traceability links, e.g., ES : Company is connected via CompanyToIT to ES : IT.

In this example, Tony has decided to take a laptop while Marius has opted for a PC.



A Company and its single CEO correspond to the root element of the IT infrastructure model.
The Admin of the Company corresponds to the Network and the Router in the IT infrastructure model.
Employees correspond to either a Laptop or a PC, depending on their preference (decided during synchronization).

Consistency Restoration

An interesting hippocraticness check would be to swap a PC with a laptop or vice-versa (e.g. an employee actually wants a laptop but there are only PCs left). Such changes should not affect the company model in any way!

Properties [optional section]

Due to the free choice of Laptop or PC, there are many consistent IT models for a single company model.

Variants [optional section]

The concrete variant discussed here and provided below in the Artefacts section can be easliy extended to include multiple elements in both metamodels that are irrelevant for the other domain (introducing information loss on both sides).


References [optional section]

This example is motivated, used as a running example, and explained in more detail in:

Lauder, Marius: Incremental Model Synchronization with Precedence-Driven Triple Graph Grammars.
TU Darmstadt, Darmstadt [Ph.D. Thesis], (2012)


Anthony Anjorin, Marius Lauder



Artefacts [optional section]

A virtual machine hosted on Share is available with a workspace containing both (Ecore) metamodels, the concrete example used above, and a TGG formalizing the consistency relation as a set of rules:

Unless otherwise stated, the content of this page is licensed under GNU Free Documentation License.