# Modelleertaal

Een modelleertaal is een kunstmatige formele taal, die gebruikt kan worden om definities van begrippen en informatie, kennis en/of vereisten over producten, systemen en/of processen weer te geven. Dat gebeurt met termen (voor begrippen) en in een structuur, die is gedefinieerd door een consistente verzameling van regels. Deze regels worden ook gebruikt voor de interpretatie van de betekenis van de componenten van de structuur. Modelleertalen zijn grafische en/of tekstueel opgebouwd, en worden voornamelijk gebruikt in de informatica, informatiemanagement en de systeemkunde.

## Algemeen

Een modelleertaal kan grafisch of tekstueel zijn.
* Grafische modelleertalen gebruiken diagram technieken met benoemde symbolen, die concepten voorstellen; en lijnen, die de symbolen verbinden en de relaties voorstellen; en diverse andere grafische notities, die voorwaarden en beperkingen (constraints) voorstellen. Nadat een model grafisch is vastgelegd moet het nog 'vertaald' worden naar een vorm waarin het model door computers te interpreteren is.
* Tekstuele modelleertalen gebruiken specifieke gestandaardiseerde woorden of zinsdelen (soms alleen sleutelbegrippen), die vergezeld kunnen zijn van parameters, die gebruikt kunnen worden om uitdrukkingen te creëren die door computers geïnterpreteerd kunnen worden.
De meeste textuele modelleertalen zijn metatalen, wat betekent dat ze bedoeld zijn om er een andere taal mee te definiëren. Daarom omvatten ze zelf geen, of slechts een erg beperkt woordenboek, terwijl iedereen vrij is om zijn eigen termen te definiëren en te gebruiken. Ook zijn niet alle modelleertalen algemeen toepasbaar en verschillen ze in hun semantische uitdrukkingsmogelijkheden, bijvoorbeeld doordat ze alleen bedoeld en geschikt zijn voor bepaalde toepassingsgebieden. Verder gebruiken sommige modelleertalen specifieke termen of codes, terwijl andere meer op natuurlijke taal zijn gebaseerd.

## Voorbeelden

Een groot aantal modelleertalen verschijnen tegenwoordig in de vakliteratuur. Voorbeelden van modelleertalen zijn:
* EXPRESS and EXPRESS-G (ISO 10303-11) is een internationale standaard voor een algemeen toepasbare data modeling taal met een grafische en een corresponderende tekstuele variant. Het wordt met anderen gebruikt om enige ISO standaard data modellen te specificeren, zoals de modellen in ISO 10303 (STEP), ISO 13584, ISO 15926 en andere.
* Gellish is een algemene declaratieve taal, die op natuurlijke taal is gebaseerd. Gellish is onder andere bedoeld voor de beschrijving van producten en processen en hun documentatie, inclusief kennis en vereisten. Het is een verdere ontwikkeling van ISO 10303-221 en ISO 15926. Het wordt momenteel (2011) vastgelegd in ISO 15926-11.
* Unified Modeling Language (UML) is een modelleertaal die een industrie standaard is voor de specificatie van software-intensieve systemen. UML 2.0, de huidige versie, ondersteunt dertien verschillende diagramtechnieken, en heeft een breed arsenaal aan ondersteunende gereedschappen.
* Petrinets gebruikt een variatie van een enkele diagramtechniek en topologie, bipartiete graaf. De eenvoud van de basis user-interface maakt deze uitstekend geschikt voor toepassingen in het gebied van model controle, graaftheoretisch georiënteerde simulatie en software verificatie.
* IDEF is een familie van modelleertalen, waarvan de bekendste IDEF0 is voor functioneel modelleren, en IDEF1 is voor informatie modellering.
* SysML is een domein-specifieke modelleertaal voor systems engineering, dat in de vorm van UML profielen is aangepast.
* Energy Systems Language (ESL), een taal ontwikkeld voor modelvorming van ecologische energetica en globale economie.
* Business Process Modeling Notation (BPMN) en (XML voor BPML) is een voorbeeld van een Business Process Modeling modelleertaal.
* Fundamental Modeling Concepts (FMC) modelleertaal voor software-intensieve systemen.
* VisSim is een visueel blokdiagram taal voor simulatie van dynamische systemen. Met de alternatieve namespace "State charts", kan in VisSim de UML versie van een blokdiagram worden gezien. De UML versie geeft een andere weergave van dezelfde blokdiagram.

## Toepassingen

Verschillende soorten modelleertalen hebben toepassingen in met name de informatica, informatiemanagement, Business Process Modeling, software engineering en systems engineering.
Modelleertalen kunnen gebruikt worden voor de specificatie van systeem benodigdheden, structuren en gedrag. Modelleertalen zijn ontwikkeld om een exacte specificatie van systemen te maken, zodat allerlei betrokkenen als klanten, operators, analisten en ontwerpers een beter begrip kunnen krijgen van de gemodelleerde systemen.
Informele diagramtechnieken kunnen ook gebruikt worden om incidenteel visuele representatie tegen geven van systeembenodigdheden, structuren en gedrag. Volwaardige modelleertalen bieden echter grotere precisie, consistentie en toepasbaarheid. Ondersteund met de juiste gereedschappen bieden deze modelleertalen soms ook de mogelijkheid tot geautomatiseerde verificatie, validatie, simulatie en code generatie vanuit een en dezelfde representatie.
Bepaalde modelleertalen zijn in zekere mate geautomatiseerd, maken programmeurs niet automatisch overbodig. Het is meer, dat automatische modelleertalen juist bedoeld zijn om de productiviteit van bekwame programmeurs te bevorderen, zodat deze zich ook kunnen richten om meer uitdagende problemen, zoals parallelle berekening en gedistribueerde systemen.