Modellierungssprachen sind künstlich definierte Sprachen, die dazu dienen, Modelle, d.h. abstrahierende Beschreibungen, zu erstellen. Sie werden insbesondere im Rahmen der Softwareentwicklung eingesetzt, um Ausschnitte der realen Welt zu modellieren (z.B. Geschäftsprozessmodelle, Ist-Analyse), Anforderungen an eine zu realisierende Software zu präzisieren oder Entwurfs- und Architekturbeschreibungen zu erstellen. Neben dedizierten Sprachen für bestimmte Bereiche ist die standardisierte UML (Unified Modeling Language) die am weitesten verbreitete Modellierungssprache.
Bezüglich ihrer Darstellungsform, d.h. ihrer konkreten Syntax, unterscheidet man zwischen textuellen und visuellen (oder auch graphischen) Modellierungssprachen. Visuelle Modellierungssprachen benutzen in der Regel Diagramme zur Darstellung. Typische Diagrammsymbole sind Kreise, Kästchen, Ovale, die durch Kanten oder Pfeile verbunden sind und geeignet beschriftet sind. Die zugrundeliegende abstrakte Syntax der Modellierungssprache definiert, wie die Diagrammsymbole eingesetzt und verbunden werden dürfen. Im Vergleich zu Programiersprachen werden (visuelle) Modellierungssprachen häufig nicht durch Grammatiken, sondern durch Meta-Modelle definiert. Meta-Modelle werden selbst in einer (Meta-)Modellierungssprache definiert. Ein Beispiel ist die in der UML-Welt verwandte MOF (Meta Object Facility). Wie alle Sprachen haben auch Modellierungssprachen neben der Festlegung ihrer Syntax eine Semantik. Man unterscheidet zwischen formalen und informalen Modellierungssprachen. Bei formalen Modellierungssprachen (dann häufig auch Spezifikationssprachen genannt) ist die Semantik präzise definiert. Bei informalen Modellierungssprachen ist die Semantik in der Sprachdefinition nur umgangssprachlich festgelegt.
Beispiele für Modellierungssprachen sind:
informal, textuell: natürliche Sprachen
informal, visuell: Datenflussdiagramme, Use Case Diagramme
formal, textuell: Z, OCL (Object Constraint Language)
formal, visuell: Entity-Relationship-Diagramme, Statecharts, Petri-Netze
Insbesondere formale Modellierungssprachen bieten eine Basis, um mit Hilfe von Model Checking-Ansätzen die (semantische) Qualität von erstellten Modellen zu überprüfen. Weiterhin bieten sie eine Basis, um Modelle im Rahmen des Softwareentwicklungsprozesses semantik-erhaltend zu transformieren und zu verfeinern.
Literatur
Chen, Peter: The Entity-Relationship Model–Towards a Unified View of Data. ACM Transactions on Database Systems, ACM Press,r S. 9–36, 1976.
Harel, D.: Statecharts:r A visual formalism for complex systems. Science of Computer Programming 8, Nr. 3, June 1987, S. 231-274.
Wolfgang Reisig. Petrinetze, Einer Einführung. Springer 1982.
Spivey, J. M.: Understanding Z: a specification language and its formal semantics. New York : Cambridge University Press 1988.
OMG: Object Constraint Language (OCL). http://www.omg.org/docs/formal/06-05-01.pdf
OMG: MetaObject Facility. http://www.omg.org/mof/