Wie bilden wir Realität ab? Was macht ein Modell zum Modell — und wo liegen seine Grenzen?
Ein Modell ist ein vereinfachtes Abbild oder Vorbild eines Originals — real oder gedanklich. Es erfasst nicht alles, sondern nur das, was für einen bestimmten Zweck relevant ist.
Ein Modell bildet etwas ab — ein Original aus Realität oder Vorstellung.
Das Original kann ein reales Objekt sein (z.B. eine Brücke), ein Prozess (z.B. Datenübertragung) oder ein gedankliches Konstrukt (z.B. ein Algorithmus). Das Modell bildet dieses Original in einer vereinfachten, zweckorientieren Form nach.
Informatik-Beispiel: Ein ER-Diagramm bildet die Struktur einer Datenbank ab — nicht jedes Detail, sondern Entitäten, Attribute und Beziehungen.
Modelle lassen bewusst Details weg — das ist kein Fehler, sondern ihr Sinn.
Kein Modell ist vollständig. Es wählt aus: Welche Eigenschaften des Originals sind für den Verwendungszweck relevant? Alles andere wird weggelassen oder vereinfacht.
Beispiel: Ein Buslinienplan zeigt keine Gebäudehöhen oder Straßenbreiten — er bildet nur Haltestellen und Verbindungen ab, weil das der Zweck ist.
Jedes Modell wird für einen bestimmten Zweck erstellt — es gibt kein zweckfreies Modell.
Der Zweck bestimmt, was ein Modell zeigen muss und was weggelassen werden darf. Zwei Modelle desselben Originals können völlig verschieden aussehen, wenn sie unterschiedlichen Zwecken dienen.
Beispiel: Ein UML-Klassendiagramm einer App dient dem Entwurf, ein Flussdiagramm derselben App beschreibt den Ablauf — beide modellieren dasselbe System, aber unterschiedlich.
Modelle haben Gültigkeitsbereiche — außerhalb davon versagen sie.
Weil ein Modell vereinfacht, gilt es nur unter bestimmten Bedingungen. Wird es außerhalb seines Gültigkeitsbereichs verwendet, liefert es falsche Ergebnisse oder ist gar nicht anwendbar.
Beispiel: Ein relationales Datenbankmodell eignet sich gut für strukturierte Daten — aber schlecht für unstrukturierte Daten wie Bilder oder Texte (→ NoSQL).
Modelle können physisch greifbar oder rein abstrakt sein.
In der Informatik arbeiten wir fast ausschließlich mit gedanklichen/formalen Modellen.
Das Modell kann selbst wieder Original für ein neues Modell werden.
In der Informatik ist Modellierung oft mehrstufig: Die Realität wird zu einem konzeptuellen Modell (z.B. ER-Diagramm), das ER-Diagramm wird zu einem logischen Modell (Relationen-Schema), das Schema zu einer konkreten Datenbank.
Jede Stufe ist ein Modell der vorherigen — mit weiterer Vereinfachung oder Konkretisierung.
Herbert Stachowiak definierte 1973 in seiner „Allgemeinen Modelltheorie" drei grundlegende Merkmale, die jedes Modell besitzen muss. Diese Merkmale gelten bis heute als Fundament der Modelltheorie.
✓ Ein ER-Diagramm bildet eine Datenbankstruktur ab.
✓ Ein Klassendiagramm bildet die Struktur eines Programms ab.
✓ Ein Struktogramm bildet einen Algorithmus ab.
Das Original kann real (Brücke) oder gedanklich (Algorithmus) sein.
✓ Ein ER-Diagramm zeigt keine Datenwerte, nur Struktur.
✓ Ein Struktogramm zeigt keine Hardware-Details.
✓ Ein Busnetz-Plan zeigt keine Gebäude.
Verkürzung ist kein Fehler — sie ist der Sinn des Modells!
✓ Ein UML-Diagramm dient Entwicklern zur Kommunikation.
✓ Ein Datenbankmodell dient dem Datenbankdesign.
✓ Ein Simulationsmodell dient der Vorhersage.
Kein Modell ist universell — es ist immer zweckgebunden!
Klicke jede Aussage an, um zu sehen, ob sie richtig oder falsch ist.
Modelle lassen sich nach drei unabhängigen Achsen klassifizieren. Klicke die Felder an, um Beispiele zu sehen.
Der Abstraktionsgrad beschreibt, wie nah oder fern ein Modell der konkreten Implementierung ist. Konzeptuelle Modelle zeigen „was" — implementierungsnahe Modelle zeigen „wie".
Die Darstellungsart beschreibt die Form, in der ein Modell ausgedrückt wird. In der Informatik sind formale und grafische Darstellungen am häufigsten.
Die Zielorientierung beschreibt, wofür das Modell genutzt wird. Verschiedene Phasen der Softwareentwicklung erfordern verschiedene Modelltypen.
Sechs zentrale Modelltypen — klicke eine Karte an, um Abstraktionsgrad, Darstellungsart, Zielorientierung und Einsatzbereich zu sehen.
Einsatz: Algorithmen entwerfen und dokumentieren, bevor Code geschrieben wird. Besonders bei Schleifen und Verzweigungen übersichtlich.
Stärke: Zeigt Struktur eindeutig, keine Sprünge möglich (kein goto). Gut für Unterricht.
Schwäche: Bei sehr langen Algorithmen unübersichtlich.
Einsatz: Datenbankdesign — bevor Tabellen erstellt werden. Kommunikation zwischen Entwicklern und Kunden.
Stärke: Sprachunabhängig, intuitiv verständlich, zeigt Beziehungen (1:1, 1:n, m:n) klar.
Schwäche: Zeigt keine Algorithmen oder Abläufe.
Einsatz: Softwarearchitektur planen. Vererbung, Assoziation, Aggregation, Komposition darstellen.
Stärke: Industriestandard, werkzeugunterstützt, kann in Code umgewandelt werden.
Schwäche: Viele Notationsvarianten, Lernkurve.
Einsatz: Reaktive Systeme modellieren: Ampelsteuerung, Benutzeroberflächen, Protokolle, Bestellprozesse.
Stärke: Zeigt dynamisches Verhalten, alle möglichen Zustände und Übergänge auf einen Blick.
Schwäche: Bei vielen Zuständen unübersichtlich (State-Explosion).
Einsatz: Algorithmen beschreiben, bevor sie in einer Programmiersprache implementiert werden. Sprachübergreifende Kommunikation.
Stärke: Flexibel, leicht lesbar, keine spezielle Software nötig.
Schwäche: Kein einheitlicher Standard, nicht direkt ausführbar.
Einsatz: Prozesse und Algorithmen dokumentieren. Breiter Einsatz außerhalb der Informatik (Qualitätsmanagement, Logistik).
Stärke: Weit verbreitet, normiert, werkzeugunterstützt.
Schwäche: Erlaubt Sprünge (goto-Äquivalente), kann unstrukturierte Programme darstellen.
Ordne jedem Szenario den passenden Modelltyp zu. Klicke ein Szenario und dann den Modelltyp. Nach 2 Fehlversuchen erscheint die Lösung.
20 Fragen in 4 Schwierigkeitsstufen — von Grundwissen bis kritischem Denken.
Klicke eine Karte an, um die Definition zu sehen.
„Alle Modelle sind falsch — aber manche sind nützlich."
— George Box, Statistiker (1978)