W kontekście modelowania , o metamodel jest modelem , którego przypadki są same modele. Jak wskazuje przedrostek meta- , metamodel jest abstrakcją używaną do opisu modeli. Metamodeling szeroko odnosi się do projektowania metamodeli.
Metamodele mogą przybierać różne formy i być używane w różnych dziedzinach. W informatyce , a dokładniej w inżynierii oprogramowania , pojęcie metamodelu ma kluczowe znaczenie dla inżynierii opartej na modelach , zestawu praktyk, które mają wspólne tworzenie i wykorzystywanie modeli do konceptualizacji domeny aplikacji. To zastosowanie rozciąga się również na inżynierię systemów .
Metamodel to model opisujący strukturę modeli. W szczególności umożliwia konstruowanie języków modelowania , tworzenie relacji między modelami oraz definiowanie reguł modelowania. Mówi się, że metamodel reprezentuje model, podczas gdy model tworzy instancję metamodelu. Na przykład system oprogramowania może być reprezentowany przez diagram obiektów, który sam może być reprezentowany przez diagram klas w UML . Zatem system oprogramowania reprezentuje oryginał, tj. Rzeczywisty modelowany obiekt, podczas gdy diagram obiektu jest jego modelem, a diagram klas jest metamodelem.
Do specyfikacji metamodelu potrzebne są cztery aspekty: składnia abstrakcyjna, składnia konkretna, semantyka statyczna i semantyka dynamiczna. W idealnym przypadku elementy te są definiowane za pomocą języka formalnego. Z tego powodu metamodel jest czasami definiowany jako model języka modelowania .
Abstrakcyjna składnia metamodelu opisuje konstrukcje tworzące jego modele, takie jak ich właściwości i relacje. Na przykład abstrakcyjna składnia diagramu klas składa się z klas, atrybutów, asocjacji itp.
Konkretna składnia metamodelu opisuje reprezentację konstrukcji zdefiniowanych przez jego abstrakcyjną składnię. Ta reprezentacja jest najczęściej graficzna lub tekstowa . Może również odpowiadać formatowi danych . Każdej składni abstrakcyjnej odpowiada jedna lub więcej konkretnych składni. Tak więc klasa diagramu klas jest reprezentowana przez prostokąt z trzema sekcjami (nazwa, skojarzenia, operacje), podczas gdy asocjacja jest reprezentowana jako strzałka. Diagram klas może być również reprezentowany dosłownie w XMI .
Semantyka statyczna (zwana także semantyką strukturalną) metamodelu opisuje kryteria i reguły modelowania, których nie można przedstawić za pomocą składni abstrakcyjnej. Istnieją określone języki, w których można formułować te zasady. Na przykład OCL może opisywać statyczną semantykę diagramu klas. W inżynierii opartej na modelach statyczne reguły semantyczne mogą służyć do weryfikacji, czy model respektuje właściwości swojego metamodelu. W takim przypadku reguły muszą być automatycznie weryfikowalne, to znaczy rozstrzygalne .
Dynamiczna semantyka metamodelu to opis nadanego mu znaczenia. W przeciwieństwie do poprzednich aspektów semantyka dynamiczna rzadko jest wyrażana za pomocą języka formalnego. Dlatego język naturalny jest uprzywilejowany.
Zawsze istnieje możliwość zdefiniowania modelu dla danego obiektu lub koncepcji. Dlatego sam metamodel może być reprezentowany przez metamodel, który definiuje pojęcia dostępne dla metamodelu. Taki metamodel nazywany jest meta-metamodelem . W teorii nie ma ograniczeń co do liczby poziomów modelowania: każdy metamodel jest reprezentowany przez inny metamodel na wyższym poziomie. W praktyce liczba poziomów modelowania jest stała, a najbardziej abstrakcyjny metamodel jest często samoopisowy (lub refleksyjny lub meta-cykliczny ), to znaczy może reprezentować siebie.
W architekturze opartej na modelach (MDA) standard Meta-Object Facility (MOF) zapewnia meta-metamodel, który umożliwia reprezentowanie innych metamodeli, takich jak metamodel języka UML lub języki transformacji QVT . Reprezentacja metamodeli za pomocą MOF opiera się najczęściej na czterech warstwach modelowania. Każda warstwa jest abstrakcją niższej warstwy:
Architektura czterowarstwowa jest uważana w podejściu MDA za wystarczająco ogólną dla procesu modelowania oprogramowania. Chociaż jest najbardziej powszechna, ta architektura nie jest jedyna. Standard MOF wymaga co najmniej dwóch warstw modelowania i nie narzuca maksymalnej liczby warstw. Zatem dwuwarstwowa specyfikacja (np. Klasa (M1) - obiekt (M0)) jest zgodna z podejściem MDA, chociaż nie definiuje meta-metamodelu.
Definicja meta-metamodelu standardu MOF obejmuje główne koncepcje diagramów klas w UML (klasyfikatory, atrybuty , asocjacje itp.). Ponieważ meta-metamodel ma charakter samoopisowy, jest również reprezentowany przy użyciu tych pojęć.
Zaprojektowanie metamodelu zdolnego do reprezentowania wielu modeli ułatwia serializację , manipulację i wymianę tych modeli. Standard MOF zapewnia na przykład XMI , procedurę reprezentacji modelu lub metamodelu wyprowadzonego z meta-metamodelu MOF przy użyciu XML .
Walidacja i transformacja modeliW inżynierii opartej na modelach walidacja modelu jest procesem, za pomocą którego sprawdza się, czy elementy modelu spełniają ograniczenia. Na przykład ograniczenie może ograniczyć wartości, które atrybut klasy przyjmuje w UML. Te ograniczenia można zdefiniować w semantyce statycznej metamodelu, na przykład za pomocą języka OCL, a następnie sprawdzić, czy występują wystąpienia metamodelu.
W modelu przekształceń są programy, które modyfikują automatycznych lub półautomatycznych modeli. Te transformacje są na przykład używane do sprawdzania, czy zestaw modeli jest spójny. Specyfikacja transformacji określa relacje między elementami metamodeli. Następnie wykonanie transformacji tworzy lub modyfikuje modele zgodnie z regułami zdefiniowanymi między metamodelami. Jako takie, języki transformacji modeli, takie jak ATL, oferują możliwość manipulowania elementami metamodeli.
Urbanizacja systemów informatycznychUrbanizacja jest procesem przekształcania systemu informatycznego organizacji, dzięki czemu jest ona lepiej dostosowana do misji i rozwoju organizacji. Proces ten można zainicjować poprzez zdefiniowanie metamodelu urbanistycznego .
Ogrody zoologiczne MetamodelOgrody zoologiczne Metamodel to repozytoria metamodeli, które można wykorzystać jako materiał do testów i eksperymentów w inżynierii opartej na modelach. Metamodele zoo są wyrażane za pomocą języka modelowania i dlatego wszystkie są instancjami tego samego meta-metamodelu (na przykład UML lub Ecore ).
W sztucznej inteligencji , a dokładniej w reprezentacji wiedzy , ontologia to specyfikacja opisująca i analizująca związki między różnymi pojęciami. Pod tym względem ontologie są podobne do metamodeli. Kiedy ontologia jest konstruowana jako metamodel, jej obszarem zastosowania jest pole informacji. Metamodel to jeden ze sposobów definiowania ontologii, ale są też inne.
Zarządzanie procesami biznesowymi (lub zarządzania procesami biznesowymi ) jest zarządzanie dyscyplina , której celem jest sformalizowanie procesów biznesowych w organizacji, jak i ich interakcji. W tym celu w 2003 roku Object Management Group (OMG) utworzyła metamodel definicji procesów biznesowych (BPDM). BPDM to metamodel, który ujednolica różne notacje używane w definicji procesów biznesowych.
Korzyści z metamodelowania można również wykorzystać poza projektowaniem oprogramowania. Na przykład SysML jest językiem modelowania używanym w inżynierii systemów i zdefiniowanym jako podzbiór UML. W swojej definicji używa metamodelu zbudowanego z profili UML . Jest to metamodel warstwy M2 w czterowarstwowej architekturze podejścia MDA.