2013-03-29 1 views
0

EMF (Eclipse Modeling Framework)에는 모델을 정의하는 ecore 파일이 있습니다. 이 모델 코드 (및 다른 것들)에서 생성 할 수 있습니다. 이 생성 단계는 "EMF 생성기 모델"로 설명됩니다. 이제 내 질문은 왜이 파일을 "구성"대신에 "모델"이라고 부르는 것입니까? 제 의견으로는 아무것도 모델링하지 않지만 생성 단계를 설명합니다 ..."EMF Generator _Model_"이라고하는 이유는 무엇입니까?

답변

3

하는 "모델"과 "구성"사이에 하나 개의 추가 차이가있다. 이미 사용 가능한 모든 EMF 도구 (모두 동일한 메타 모델을 사용하기 때문에)을 사용하여 모든 EMF 모델 (이 생성기 모델 포함)을 으로 수정하고 변형 할 수 있습니다.

구성 직렬화의 정확한 형식을 알고있는 경우 구성을 다른 도구에서만 읽을 수있는 것과 비교하면 큰 차이가 있습니다.

발전기 모델의 UML 다이어그램을 만들 수 있습니다. 모델 기반 그래픽 편집기에서 사용할 수 있고, 모델 - 투 - 모델 변환 플러그인을 사용하여 변형 할 수 있습니다. EMFstore에 넣을 수 있습니다. 이 도구들은 특별히 모델을 위해 특별히 준비되지 않았습니다.

2

실제로 genmodelecore 파일도 기술적으로 EMF 모델입니다. 그래서이 방법이라고 불리는 것은 놀랄만 한 것이 아닙니다.

실제로 EMF는 모든 종류의 구조화 된 정보를 설명 할 수 있습니다. 따라서 코드 생성 구성을 설명하거나 자체 (ecore)를 설명 할뿐만 아니라 자신의 의미를 설명하는 데 사용할 수 있습니다.

3

EMF의 현재 구현은 부트 스트랩 접근 방식으로 작성되었습니다. 처음에는 ecore 및 genmodel에 저장된 데이터를 설명하는 모델을 직접 작성했습니다. EMF가 충분히 안정되자 마자 EMF 자체로 모델링하고 생성했습니다. 이것은 ecore와 genmodel이 모든면에서 EMF 모델이라는 것을 의미합니다.

이것은 새로운 프로그래밍 언어 용 컴파일러의 수와 비슷합니다. 초기 구현은 두 번째 언어로 작성해야하지만 컴파일러가 완료 되 자마자 새 언어를 사용하여 새 구현을 작성하고 기능을 추가 한 다음 이전 버전의 컴파일러의 이진 파일을 사용하여 다음. EMF의 창조자에서

, 에드 Merks : 결국

는 EMF의 발전기 모델은 Ecore를 모델 자체를 모두 생성, 그래서 우리는 우리의 생성 된 코드를 삭제하는 위치에 실제로 아니에요. 우리는 환경을 부트 스트랩하기 위해 필요합니다. 그것은 까다로운 문제입니다. 다른 답변이 완벽하게 맞지만 http://ed-merks.blogspot.de/2008/10/hand-written-and-generated-code-never.html

+0

견적, 흥미로운 통찰력을 주셔서 감사합니다! – parasietje