대부분의 프로그래밍 언어의 정의는 다음과 같이 이루어진다.
UML은 특이하게 기존에 있던 언어로 자신을 정의하는 것이 아닌, 자기 자신으로 자신을 정의한다.
뭔 말이냐면, 재귀적으로 정의하였다는 의미이다.
이게 가능한가..?
이게 가능한 이유는 UML이 Formal Language (C, Java등)가 아닌, Semi-Formal Language이기 때문이며, 그냥 그렇다 치고 넘어갔다.
UML은 4단계로 구성된다.
instance → model → meta model → meta-meta model
- Layer M3 : Meta-meta model layer : Framework같은 것
- Layer M2 : Meta model layer : 오브젝트
- Layer M1 : Model layer : 우리가 만드는 UML
- Layer M0 : Information layer : 정보들













