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.

FMC Metamodel

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:

FMC Block Diagram

The following SpecIF graph expresses the same:

SpecIF from FMC Block Diagram

Transformation Code

Here you may take a look at the current code of the FMC Export from ARCWAY Cockpit to SpecIF.