Model-Integration Guide for FMC
FMC to SpecIF Mapping
For introduction to the Fundamental Modeling Concepts (FMC), see the FMC Overview. The FMC Metamodel is given in Knöpfel, Gröne, Tabeling: Fundamental Modeling Concepts - Effective Communication of IT-Systems.
However, this metamodel seems to be rather theoretic and it is perhaps not complete for practical purposes. When analyzing, among others we have the following questions:
- Why are some relations named as nouns, others as verbs (e.g. “Observability” vs. “triggers”).
- Should the relation between Location and Value be named has?
- Can Agent, Operation, Storage and perhaps other entities be hierarchically nested? Anyways, the block diagrams allow it.
There is no standard serialization defined for FMC. As to our knowledge there is only one modeling tool for FMC, namely ARCWAY Cockpit. We will show in the following the mapping of the entities and relationships realized in this tool.
Resources
ARCWAY Cockpit | SpecIF |
---|---|
Plan | SpecIF:View |
Function, Agent, Operation | FMC:Actor |
Information, Channel, Location, Storage, Value | FMC:State |
Event, Point in time | FMC:Event |
SpecIF:Collection |
Where:
- All resource class terms are defined in the Vocabulary.
- The original model element type is stored in a property named dcterms:type.
Statements
ARCWAY Cockpit | SpecIF | Comment | |
---|---|---|---|
Occurrence | A model-element occurs on a plan | SpecIF:shows | Inverted statement |
Containment | A model-element contains a model-element | SpecIF:contains | |
Reading | An actor reads a state | SpecIF:reads | |
Writing | An actor writes a state | SpecIF:writes | |
Modification | An actor writes and reads a state | SpecIF:stores | |
Influence | A state influences a state (via an unnamed function=actor) | tbd | Rarely used, if ever |
Relation | A state influences and is reversely influenced by a state (via an unnamed function=actor) | tbd | Rarely used, if ever |
Receiving | An actor receives messages from an actor (through an unnamed channel=state) | SpecIF:receivesFrom | |
Sending | An actor sends messages to an actor (through an unnamed channel=state) | SpecIF:sendsTo | |
Communication | An actor sends to and receives messages from an actor (through an unnamed channel=state) | SpecIF:communicates | |
Succession | A model-element succeeds a model-element | SpecIF:precedes | Inverted statement |
Precedence | A model-element precedes a model-element | SpecIF:precedes |
Where:
- ‘model-element’ is one of [ ‘FMC:Actor’, ‘FMC:State’, ‘FMC:Event’ ].
- All statement class terms are defined in the Vocabulary.
- The original model element type is stored in a property named dcterms:type.
Example
FMC Block Diagram
The following example of a FMC block diagram represents three application components and a data object:
The following SpecIF graph expresses the same:
Transformation Code
Here you may take a look at the current code of the FMC Export from ARCWAY Cockpit to SpecIF.