Fundamental Modeling Concepts

Fundamental Modeling Concepts ( FMC) is a semi-formal methodology for the communication of complex software systems.


Since the late 1970s, their foundations by Siegfried Wendt and his colleagues and students at the University of Kaiserslautern were developed. At the was founded in 1999 under the direction of Siegfried Wendt Hasso Plattner Institute at the University of Potsdam these concepts before in 2001 the name of FMC ( fundamentals were taught under the name SPIKES (Structured Plan for Improving Knowledge Transfer in Engineering of Systems ) Modeling Concepts ) received.


FMC with a variety of software systems are analyzed, designed and documented. Well-known users, among other things, the Walldorf software company SAP, which documents the SAP R / 3 architecture with it. Hasso Plattner's enthusiasm for this methodology resulted in the founding of the HPI ( Hasso Plattner Institute ), which mediated the teachings of FMC in the past in the basic university education.


According to FMC, there are three inter-related ways of looking at software systems:

  • Construction of the system
  • Processes in the system
  • Value ranges

For each of these perspectives, there is a chart type that allows the particular aspect can be represented graphically. The resulting, usually easy to create, but also easy -to-understand diagrams have FMC made ​​popular among his followers.

Basically serve FMC diagrams one of two purposes: it should either be used by a group to communicate about a software system, or they are used to introduce other (developers, customers, managers, etc. ) in a software system. In the first case, the diagrams are usually a little larger to facilitate communication about complex relationships; in the second case small diagrams are used with few components for didactic reasons mostly. But should always aesthetic and clarity are important, since major driving force in the use of FMC shall be the promotion of communication. Therefore, the graphs are indeed the most important part of FMC, but spare no comments.


All diagrams have in common that they are called bipartite graphs. A bipartite graph is a graph whose nodes are from two different classes, with the condition that no node can be directly connected to nodes in its class. The nodes of a class are always drawn as a rectangle ( square nodes), the nodes of the other as a circle, ellipse, or oval stadium ( rectangle with two semicircles scheduled on two opposite sides ) drawn (round nodes).

In addition, correlations can be shown almost any refined or abstracted in other diagrams of the same type in all diagrams. To ensure that all relevant levels of abstraction for the software of a system can be represented by the same methodology.

Structure diagrams

A structure diagram describing how a set of system components related to each other. For this purpose each component as an actor, channel or memory is identified. Channels and memory are also referred to as the passive components, as the players corresponding to active components. In this case, passive components not directly with other passive components in relationship, just as with active active. This results in a bipartite system understanding, which is reflected in bipartite structure of images.


In construction pictures active components are represented by square nodes and passive components by round nodes, channels are usually represented by a smaller circle, and memory by a larger oval or stadium. The edges ( connections) between Save and stakeholders will need to be directed between channels and actors, they can also be non-directional. The direction has the following meaning:

  • Memory / channel → actor: actor reads from memory or receiving from the channel
  • Actor → Memory / Channel: actor writes in memory and sends over channel

There are no edges that are oriented in both directions. Instead, to express that an actor reads from both memory and writes in these two oppositely directed edges used (also referred to as modifying access ). Wherein channels on the contrary, a non-directional edge is used.

Nodes can be grouped to illustrate similarities. To another node is simply inserted, containing the same other nodes. So some players and memory part of a larger actor may be, whose internal structure is to be displayed, or there are a lot of memories to be accessed by the same player in the.

A special form of the channel is a request / response channel, in which a -use component calls a service of another component and receives a corresponding response. These channels are marked with an " R " and an arrow pointing invoked from the calling to the component.

Variance structure

The structure of many software systems may change at runtime. This structure variation is interpreted FMC follows: the affected subsystem is considered independently from its actual structure, as a memory which can be modified by a player are not included in this subsystem. Accordingly, a memory ( to distinguish with dashed outline ) containing that subsystem and the access modifier of the structure variance actor drawn to this store in the building image.

Sequence images

Processes are a class of Petri nets, the condition event nets, shown, as these are also bipartite. In FMC Petri nets any body can normally accommodate only one brand, so that the switching rule is:

A transition fires if and only if all input brands are occupied and all output brands that are input marks not the same, are free.

Additionally, there are sites that can accommodate many points as desired and are represented by a double circle. Special, infinite ' points are stack - points and return points.

There are also in FMC Petri nets the means of resolution of conflicts over condition evaluation. Go from one place more edges from so can be written to this edge conditions, can be determined from those in which case which transition fires.

Range images

This is slightly modified and extended entity-relationship diagrams. Entities ( objects ) are in FMC diagrams round nodes, relations square. Entities can be fraught with attributes, which are listed as a list in the node of the entity. Abstraction allows entities to contain relations, so that relations can be in relation to other entities or relations. Partitions of entities are represented either by the sub-entities are drawn in to partionierende entity, or by the triangular symbol partition ( so to speak the " partition relation" group).

Layers diagrams

For illustrative presentation of quadratic relations, ie relations on a set of elements, called stratification diagrams can be used. This is the condensed representation of a matrix representation with which can represent arbitrary two - place relations. For example, this type of diagram are used to represent the call stack of procedures or the dependencies of the packages within a computer program (the Rekursionsfall is also displayed ).

Although this form of representation is used in a number of FMC- based modeling documents, it is not viewed as a conceptual part of FMC. Rather, it is the occasional useful addition to the description, so are useful descriptive tools such as for certain other aspects of UML class diagrams or screenshots.