2012-04-24 8 views
2

질문이 있습니다.UML XMI to Ecore

내 모델링 도구 (Enterprise Architect)에서 나는 메타 모델 (UML 기반)을 모델링했습니다. 이제 메타 모델을 Ecore로 변환하려고합니다. 그러나 나는 그것을 어떻게하는지 모른다.

Enterprise Architect 내에서 Meta-Model을 UML XMI로 내보낼 수 있습니다. 생성 된 XMI를 Ecore XMI로 변환 할 수 있는지 누가 알 수 있습니까?

감사합니다.

답변

4

생성 된 XMI를 Ecore XMI로 변환 할 수 있는지 누가 알 수 있습니까?

예, 적어도 개요는 가능합니다. 이 문제는 두 부분으로 생각할 수 있습니다.

  1. 의미 매핑이란 무엇입니까? 즉, 소스 XMI의 개념을 대상 eCore 모델의 개념에 어떻게 맵핑합니까?
  2. 실제로 이러한 매핑을 어떻게 구현합니까?

내가 여기 당신의 메타 모델을 믿고있어

시맨틱 매핑 정적 구조에 초점을 맞추고 있습니다. ECore는 EOperations 선언 이외의 동적 개념을 지원하지 않습니다. 관련성이있는 경우 아래의 역학에 대해 자세히 알아보십시오.

EA를 특히 잘 모르며 지원하는 XMI 버전도 없습니다. 그러나, 몇 가지 핵심 UML 개념의 변형이 될 것입니다 : EClass, EAttribute는, EDataTypeEReferenceEOperation는 등의 사이에서 상당히 강한 상관 관계있다 : 는 Ecore 클래스, 특성, 운영, 협회, 연관 끝 등을하는 것은이 similar (if smaller) set of concepts있다 '유형'개념; 예를 들면 : -> ECLASS

  • 특성 -> EAttribute
  • 운영 -

    • UML 클래스> EOperation

  • 그래서 매핑은 straighforward이 있어야합니다. 기본적으로 각 UML 개념에 해당하는 ECore 인스턴스를 하나 만듭니다.

    관계는 약간 덜 분명하지만 여전히 실행 가능합니다. ECore는 관계를 직접적으로 지원하지 않습니다. EReference은 유일한 유사 개념입니다.

  • UML에서 양방향 연결을 통해 복사 분 & 최대 카디널리티와 단일 EReference 각 두 EReferences, 하나가되는 하나의 방법 탐색 UML 협회가된다
    • : 그러나 예를 들어, 연결을 합성하는 것은 매우 쉽다 방향.또한 EOtherEnd 속성을 설정해야합니다.이 속성은 실제로 두 개의 EReferences이 같은 연결에 속해 있다고 말합니다.

    잘하면 그 아이디어를 제공합니다.

    구현

    그것을 수행하는 방법에 대한 많은 옵션이 있습니다 당신의 개념 매핑을 정의한 후. 모두는 일반적으로 동일한 기본 모델을 따릅니다.

    구문 분석 원본 -> 개념 대상 대상 개념 -> 대상 텍스트 생성.

    xslt를 사용할 수 있습니다 (XML-> XML 변환이기 때문에). M2M (Model-to-model) 및/또는 M2T (Model-to-Text) 툴킷 중 하나를 사용할 수도 있습니다. 예 : 일식 모델링 프로젝트 (M2M, M2T). XMI를 구문 분석하는 &을 생성하는 대신 EA API를 사용하여 모델을 읽음으로써 EA에서 직접 갈 수도 있습니다. 어떤 선택을 하느냐는 환경, 스킬 셋 등에 따라 다릅니다.

    실제 상황을보고 싶다면 MagicDraw을보십시오. ECore 내보내기 기능을 제공합니다. (유료 도구이지만 eval은 사용할 수 있음).

    Sparx에 직접 물어볼 가치가 있습니다. EA에 사용할 수있는 ECore 내보내기 부가 기능/플러그인이 없으면 조금 놀랄 것입니다.

    hth.


    역학

    을 모델이 역학 (상태 모델 등)가있는 경우 당신은 더 큰 문제가있다. ECore는 이러한 개념을 전혀 다루지 않습니다. ECore를 확장하는 것도 가능하지만 옵션 일 수도 있습니다. ECore에서 작동하는 도구가 확장 기능을 이해할 가능성이 적기 때문에 더 많은 작업이 될 수 있습니다.

  • +0

    굉장한 덧글! 대단히 감사합니다! – matthias

    +0

    당신을 진심으로 환영합니다. 위 upvote 감사를 표시하는 좋은 방법이 될 것입니다 ... :-) – sfinnie

    -1

    쉽게 Ecore에서 UML로 이동할 수 있지만 다른 방법은 실제로 가능하지 않습니다. 플러그인이 거의 없지만 플러그인을 사용하려고하면 플러그인이 작동하지 않습니다.