<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Fundamental_Modeling_Concepts</id>
	<title>Fundamental Modeling Concepts - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Fundamental_Modeling_Concepts"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Fundamental_Modeling_Concepts&amp;action=history"/>
	<updated>2026-05-28T10:45:08Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Fundamental_Modeling_Concepts&amp;diff=180973&amp;oldid=prev</id>
		<title>imported&gt;SchlurcherBot: Bot: http → https</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Fundamental_Modeling_Concepts&amp;diff=180973&amp;oldid=prev"/>
		<updated>2026-01-11T08:43:48Z</updated>

		<summary type="html">&lt;p&gt;Bot: http → https&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Fundamental Modeling Concepts&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;FMC&amp;#039;&amp;#039;&amp;#039;) sind eine semi-formale [[Methodik]] zur [[Kommunikation]] über komplexe [[Software]][[system]]e.&lt;br /&gt;
&lt;br /&gt;
== Geschichte ==&lt;br /&gt;
Seit Ende der 1970er Jahre wurden ihre Grundlagen von [[Siegfried Wendt (Informatiker)|Siegfried Wendt]] und seinen Mitarbeitern und Schülern an der [[Technische Universität Kaiserslautern|Universität Kaiserslautern]] entwickelt. An dem 1999 unter Leitung von Siegfried Wendt gegründeten [[Hasso-Plattner-Institut]] an der [[Universität Potsdam]] wurden diese Konzepte zunächst unter dem Namen SPIKES (&amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;tructured &amp;#039;&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;#039;lans for &amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;mproving &amp;#039;&amp;#039;&amp;#039;K&amp;#039;&amp;#039;&amp;#039;nowledge Transfer in &amp;#039;&amp;#039;&amp;#039;E&amp;#039;&amp;#039;&amp;#039;ngineering of &amp;#039;&amp;#039;&amp;#039;S&amp;#039;&amp;#039;&amp;#039;ystems) gelehrt, bevor sie im Jahr 2001 den Namen FMC (&amp;#039;&amp;#039;&amp;#039;F&amp;#039;&amp;#039;&amp;#039;undamental &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039;odeling &amp;#039;&amp;#039;&amp;#039;C&amp;#039;&amp;#039;&amp;#039;oncepts) erhielten.&lt;br /&gt;
&lt;br /&gt;
== Relevanz ==&lt;br /&gt;
Mit FMC werden eine Vielzahl von Softwaresystemen analysiert, entworfen und dokumentiert. Bekannter Nutzer ist u.&amp;amp;nbsp;a. das Walldorfer Softwarehaus [[SAP]], welches die [[SAP R/3]] Architektur damit dokumentiert. [[Hasso Plattner]]s Begeisterung für diese Methodik resultierte in der Gründung des HPI ([[Hasso-Plattner-Institut]]es), welches die Lehren von FMC in der Vergangenheit in der universitären Grundausbildung vermittelte.&lt;br /&gt;
&lt;br /&gt;
== Einführung ==&lt;br /&gt;
Nach FMC gibt es drei miteinander verwobene Arten, Softwaresysteme zu betrachten:&lt;br /&gt;
* Aufbau des Systems&lt;br /&gt;
* Abläufe im System&lt;br /&gt;
* Wertebereiche&lt;br /&gt;
&lt;br /&gt;
Für jede dieser Betrachtungsweisen gibt es einen Diagrammtyp, mit dessen Hilfe der jeweilige Aspekt zeichnerisch dargestellt werden kann. Die resultierenden, meist leicht zu erstellenden, aber auch leicht zu verstehenden [[Diagramm]]e haben FMC unter seinen Anhängern populär gemacht.&lt;br /&gt;
&lt;br /&gt;
Grundsätzlich dienen FMC-Diagramme einem von zwei Zwecken: Sie sollen entweder von einer Gruppe verwendet werden, um über ein Softwaresystem zu kommunizieren, oder sie werden benutzt, um andere (Entwickler, Kunden, Manager etc.) in ein Softwaresystem einzuführen. Im ersten Falle werden die Diagramme meist etwas umfangreicher, um die Kommunikation über komplexere Zusammenhänge zu erleichtern; im zweiten Fall werden aus didaktischen Gründen zumeist kleine Diagramme mit wenigen Komponenten verwendet. Immer aber sollen Ästhetik und Anschaulichkeit im Vordergrund stehen, da wesentlicher Antrieb in der Verwendung von FMC die Förderung der Kommunikation sein soll. Deshalb sind die Diagramme zwar wichtigster Bestandteil von FMC, erübrigen aber keinen Kommentar.&lt;br /&gt;
&lt;br /&gt;
== Diagramme ==&lt;br /&gt;
Allen Diagrammen ist gemein, dass es sich um sogenannte [[Bipartiter Graph|bipartite Graphen]] handelt. Ein bipartiter Graph ist dabei ein [[Graph (Graphentheorie)|Graph]], dessen [[Knoten (Graphentheorie)|Knoten]] aus zwei verschiedenen [[Klasse (Mengenlehre)|Klassen]] stammen, mit der Bedingung, dass kein Knoten direkt mit Knoten aus seiner Klasse verbunden sein darf. Die Knoten der einen Klasse werden immer als [[Rechteck]] gezeichnet (eckiger Knoten), die Knoten der anderen als [[Kreis]], [[Ellipse]], [[Oval]] oder Stadion (Rechteck mit zwei angesetzten Halbkreisen an zwei gegenüberliegenden Seiten) gezeichnet (runder Knoten).&lt;br /&gt;
&lt;br /&gt;
Außerdem können in allen Diagrammen dargestellte Zusammenhänge nahezu beliebig in anderen Diagrammen gleichen Typs verfeinert oder [[Abstraktion|abstrahiert]] werden. Damit können alle für die Software relevanten Abstraktionsstufen eines Systems mit der gleichen Methodik dargestellt werden.&lt;br /&gt;
&lt;br /&gt;
=== Aufbaudiagramme ===&lt;br /&gt;
[[Datei:aufbaubild.gif|mini|FMC-Aufbaubild]]&lt;br /&gt;
Ein Aufbaudiagramm beschreibt, wie eine Menge von Systemkomponenten zueinander in Beziehung stehen. Zu diesem Zwecke wird jede Komponente als &amp;#039;&amp;#039;Akteur&amp;#039;&amp;#039;, &amp;#039;&amp;#039;Kanal&amp;#039;&amp;#039; oder &amp;#039;&amp;#039;Speicher&amp;#039;&amp;#039; identifiziert. Kanäle und Speicher werden auch als passive Komponenten bezeichnet, Akteure entsprechend als aktive Komponenten. Dabei können passive Komponenten nicht direkt mit anderen passiven Komponenten in Beziehung stehen, ebenso wenig wie aktive mit aktiven. Daraus resultiert ein bipartites Systemverständnis, das seinen Niederschlag in bipartiten Aufbaubildern findet.&lt;br /&gt;
&lt;br /&gt;
==== Struktur ====&lt;br /&gt;
In Aufbaubildern werden aktive Komponenten durch eckige Knoten und passive Komponenten durch runde Knoten dargestellt, wobei Kanäle meist durch einen kleineren Kreis, und Speicher durch ein größeres Oval oder Stadion dargestellt werden. Die &amp;#039;&amp;#039;Kanten&amp;#039;&amp;#039; (Verbindungslinien) zwischen Speichern und Akteuren müssen &amp;#039;&amp;#039;gerichtet&amp;#039;&amp;#039; sein, zwischen Kanälen und Akteuren können sie auch &amp;#039;&amp;#039;ungerichtet&amp;#039;&amp;#039; sein. Die Richtung hat folgende Bedeutung:&lt;br /&gt;
* Speicher/Kanal → Akteur: Akteur liest aus Speicher bzw. empfängt vom Kanal&lt;br /&gt;
* Akteur → Speicher/Kanal: Akteur schreibt in Speicher bzw. sendet über Kanal&lt;br /&gt;
&lt;br /&gt;
Es gibt keine Kanten, die in beide Richtungen gerichtet sind. Stattdessen werden, um auszudrücken, dass ein Akteur sowohl aus einem Speicher liest als auch in diesen schreibt, zwei entgegengesetzt gerichtete Kanten verwendet (auch als &amp;#039;&amp;#039;modifizierender Zugriff&amp;#039;&amp;#039; bezeichnet). Bei Kanälen wird im Gegensatz dazu eine ungerichtete Kante benutzt.&lt;br /&gt;
&lt;br /&gt;
Knoten können gruppiert werden, um Gemeinsamkeiten zu veranschaulichen. Dazu wird einfach ein weiterer Knoten eingeführt, der diese anderen Knoten enthält. So können einige Akteure und Speicher Teil eines größeren Akteurs sein, dessen innerer Aufbau dargestellt werden soll, oder es gibt eine Menge von Speichern, auf die vom selben Akteur zugegriffen werden soll.&lt;br /&gt;
&lt;br /&gt;
Eine spezielle Form des Kanals ist ein Request/Response-Kanal, bei dem eine benutzende Komponente einen Dienst einer anderen Komponente aufruft und eine entsprechende Antwort erhält. Diese Kanäle werden mit einem „R“ und einem Pfeil gekennzeichnet, der von der aufrufenden zur aufgerufenen Komponente zeigt.&lt;br /&gt;
&lt;br /&gt;
==== Strukturvarianz ====&lt;br /&gt;
[[Datei:FMC Strukturvarianz.gif|mini|Beispiel für die Darstellung von Strukturvarianz mit FMC]]&lt;br /&gt;
Die Struktur vieler Softwaresysteme kann sich zur Laufzeit ändern. Diese Strukturvarianz wird in FMC folgendermaßen interpretiert: Das betroffene Teilsystem wird unabhängig von seiner tatsächlichen Struktur als Speicher aufgefasst, das von einem nicht in diesem Teilsystem enthaltenen Akteur modifiziert werden kann. Entsprechend werden im Aufbaubild ein Speicher (zur Unterscheidung mit gestrichelter Außenlinie), der dieses Teilsystem enthält, und der modifizierende Zugriff des Strukturvarianz-Akteurs auf diesen Speicher eingezeichnet.&lt;br /&gt;
&lt;br /&gt;
=== Ablaufbilder ===&lt;br /&gt;
Abläufe werden mit einer Klasse von [[Petri-Netz]]en, den Bedingungs-Ereignis-Netzen, dargestellt, da diese ebenfalls bipartit sind. In FMC-Petrinetzen kann jede Stelle normalerweise nur eine Marke aufnehmen, so dass die Schaltregel lautet:&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;Eine Transition schaltet genau dann, wenn alle Eingangsmarken belegt sind und alle Ausgangsmarken, die nicht gleichzeitig Eingangsmarken sind, frei sind.&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Zusätzlich gibt es noch Stellen, die beliebig viele Stellen aufnehmen können und durch einen Doppelkreis dargestellt werden. Besondere ,unendliche‘ Stellen sind [[Stapelspeicher|Stack]]-Stellen und Rücksprungstellen.&lt;br /&gt;
&lt;br /&gt;
Außerdem gibt es in FMC-Petrinetzen das Mittel der Auflösung von Konflikten über Bedingungsevaluierung. Gehen von einer Stelle mehrere Kanten ab, so können Bedingungen an diese Kanten geschrieben werden, anhand derer bestimmt werden kann, in welchem Fall welche Transition schaltet.&lt;br /&gt;
&lt;br /&gt;
=== Wertebereichsbilder ===&lt;br /&gt;
Hierbei handelt es sich um leicht veränderte und erweiterte [[Entity-Relationship-Modell#ER-Diagramme|Entity-Relationship-Diagramme]]. [[Entität]]en (Gegenstände) sind in FMC-Diagrammen runde Knoten, [[Relation (Philosophie)|Relationen]] eckige. Entitäten können mit [[Entity-Relationship-Modell#Begriffe|Attributen]] behaftet werden, die als Liste im Knoten der Entität notiert werden. Abstraktion ermöglicht es Entitäten, Relationen zu enthalten, so dass Relationen in Relation zu anderen Entitäten oder Relationen stehen können. Partitionen von Entitäten werden entweder dargestellt, indem die Sub-Entitäten in die zu partionierende Entität gezeichnet werden, oder durch das dreieckige Partitionssymbol (das sozusagen die „Partitionsrelation“ darstellt).&lt;br /&gt;
&lt;br /&gt;
=== Schichtendiagramme ===&lt;br /&gt;
Zur exemplarischen Darstellung von quadratischen Relationen, d.&amp;amp;nbsp;h. Relationen auf &amp;#039;&amp;#039;einer&amp;#039;&amp;#039; Menge von Elementen, können sogenannte Schichtungsdiagramme genutzt werden. Dabei handelt es sich um die verkürzte Darstellung einer Matrixdarstellung, mit der sich beliebige zweistellige Relationen darstellen lassen. Beispielsweise kann dieser Diagrammtyp dazu genutzt werden, die Aufrufschichtung von Prozeduren oder die Abhängigkeiten der Pakete innerhalb eines Computerprogrammes darzustellen (wobei der Rekursionsfall ebenfalls darstellbar ist).&lt;br /&gt;
&lt;br /&gt;
Obwohl diese Form der Darstellung in einer Reihe FMC-basierter Modellierungsdokumente verwendet wird, ist sie nicht als konzeptioneller &amp;#039;&amp;#039;Bestandteil&amp;#039;&amp;#039; von FMC angesehen. Vielmehr handelt es sich um die fallweise nützliche Ergänzung der Beschreibung, so wie für bestimmte andere Aspekte UML-Klassendiagramme oder Bildschirmfotos zweckmäßige Beschreibungsmittel sind.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
* [[Unified Modeling Language]], eine graphische Modellierungssprache zur Spezifikation, Konstruktion und Dokumentation von Software-Teilen und anderen Systemen&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
&lt;br /&gt;
* Siegfried Wendt: &amp;#039;&amp;#039;Nichtphysikalische Grundlagen der Informationstechnik. Interpretierte Formalismen.&amp;#039;&amp;#039; 2. Auflage. Springer-Verlag, Berlin Heidelberg 1991, ISBN 3-540-54452-6 ([https://www.fmc-modeling.org/download/publications/wendt_1991-nichtphysikalischeGrundlagenInformationstechnik.pdf PDF; 7,31MB]).&lt;br /&gt;
:Eine PDF-Fassung, die durch den Autor nach Einstellung der ursprünglichen Verlagsauflage freigegeben wurde. Auch wenn dieses Werk nicht speziell auf die Beschreibung von FMC abzielt, sondern in Inhalt und Struktur sehr viel grundsätzlicher angelegt ist, so wird der interessierte Leser hier dennoch das FMC zugrundeliegende Erkenntnisfundament erkennen.&lt;br /&gt;
&lt;br /&gt;
* Andreas Knöpfel, Bernhard Gröne, Peter Tabeling: &amp;#039;&amp;#039;Fundamental Modeling Concepts: Effective Communication of IT Systems&amp;#039;&amp;#039;, Wiley 2006, ISBN 0-470-02710-X&lt;br /&gt;
&lt;br /&gt;
* Peter Tabeling: &amp;#039;&amp;#039;Softwaresysteme und ihre Modellierung&amp;#039;&amp;#039;, Springer-Verlag Berlin Heidelberg 2005, ISBN 3-540-25828-0&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.fmc-modeling.org/ FMC Hauptseite]&lt;br /&gt;
* [https://www.fmc-modeling.org/page.php?category=fmc_stencils FMC Stencils für Visio]&lt;br /&gt;
* [https://www.arcway-cockpit.com/downloads/ Kostenfreie Werkzeuge für FMC-Aufbaudiagramme]&lt;br /&gt;
* [https://www.bungerts.de/wordpress/wp-content/uploads/Nutzen-und-Herausforderung-bei-FMC.pdf Whitepaper: Nutzen und Herausforderung bei der Modellierung mit den Fundamental Modeling Concepts]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Softwarearchitektur]]&lt;br /&gt;
[[Kategorie:Diagramm]]&lt;/div&gt;</summary>
		<author><name>imported&gt;SchlurcherBot</name></author>
	</entry>
</feed>