단일 입력 오브젝트에서 다중 오브젝트를 생성하는 모델에서 모델로 변환에 대한 샘플 구성

이 샘플에는 상호 종속적인 맵핑 선언을 사용하여 단일 입력 오브젝트에서 다중 오브젝트를 생성하는 방법이 표시됩니다.
시작하기 전에
샘플을 설정하려면 "단일 입력 오브젝트에서 다중 오브젝트를 생성하는 모델에서 모델로 변환에 대한 설정 지시사항"의 지시사항을 사용하십시오.
이 태스크 정보
변환은 변환 작성자 없이 단일 입력 오브젝트에서 다중 관련 오브젝트를 생성하여 광범위한 사용자 정의 코드를 작성합니다.
  1. 런타임 Workbench의 패키지 탐색기 보기에서 소스 프로젝트를 펼치고 Models를 펼친 후 Source1을 펼치십시오. Source1은 두 개의 클래스, A 및 B가 있는 패키지를 포함합니다.
  2. 대상 프로젝트를 펼치고 변환 구성 파일인 transform source1 to target1.tc를 두 번 클릭하십시오.
  3. 변환 구성 편집기에서 실행을 클릭하십시오.
  4. 대상 프로젝트에서 Models를 펼친 후 Target1을 펼치십시오. 입력 모델에 있는 각 클래스의 경우 변환은 다음 요소를 작성함을 주목하십시오.
    • 인터페이스. 여기서 인터페이스의 이름은 문자 "I" 뒤에 오는 소스 클래스의 이름입니다.
    • 구현 클래스. 여기서 구현 클래스의 이름은 "Impl" 다음에 오는 소스 클래스의 이름입니다.
    • 구현 클래스에서 인터페이스로의 인터페이스 실현(realization)
결과

변환이 수행되는 방법을 보기 위해, 문제 해결 과정을 고려해 보겠습니다. 사용자가 변환을 작성하고, Package2Package 맵핑 선언에서 Class2InterfaceRealization 맵핑 선언을 사용하여 인터페이스 실현(realization)을 작성한다고 가정합니다. 그러나 서브맵 맵핑에 대한 대상 기능, UML 클래스의 인터페이스 실현(realization)은 Package2Package 맵핑 선언에서 표시되지 않습니다. 이 누락된 대상 기능을 어떻게 맵핑해야 할까요?

주: 다음 텍스트의 항목 번호는 아래 그림에 표시되는 항목을 의미합니다.

인터페이스 실현(realization)을 대상으로 제공하기 위해 packageElement 기능에서 Package2Package 맵핑 선언(그림의 항목 1)의 packageElement 기능으로 서브맵을 작성합니다. 이 서브맵은 해당 상위 Package2Package 맵핑 선언을 반복해서 참조하고 이런 방식으로 중첩된 패키지 및 해당 컨텐츠에 대한 지원을 제공합니다. 그러므로 이제 packageElement 기능에서 packageElement 기능으로 추가 서브맵을 정의할 수 있습니다. 서브맵은 기타 맵핑 선언(Class2Class(항목 2) 및 Class2Interface(항목 3))을 참조할 수 있습니다.

Class2Class 맵핑 선언을 작성할 때, 입력으로 전체 클래스 요소를 포함하고 있는 서브맵(항목 4)을 사용할 수 있습니다. 출력의 경우 interfaceRealization을 선택합니다. 그 결과로 Class2Interface 맵핑 선언을 사용할 수 있으며, 이를 통해 입력으로 전체 클래스 요소 및 출력으로 공급자 기능 및 클라이언트 기능을 포함하고 있는 두 개의 추가 서브맵(항목 5 및 6)을 작성합니다. 변환 코드를 생성할 때 여기서 정의된 서브맵은 출력 오브젝트가 아닌 기타 맵핑 선언에서 생성된 변환이 작성한 출력 오브젝트에 대한 참조를 작성합니다.

변환 코드를 생성할 때 공급자 및 클라이언트 모두는 입력 UML 오브젝트에서 생성된 UML 오브젝트를 참조해야 합니다. 출력 오브젝트를 참조에 지정하려면 생성된 변환이 동일한 입력에서 특정 출력 오브젝트(클래스 또는 인터페이스)를 생성해야 하는 맵핑 선언(Class2Class 또는 Class2Interface)을 식별하도록 서브맵 정의를 작성하십시오.

세부사항은 샘플 변환 구성을 검토하십시오. 그림에서, 서브맵에서 맵핑 선언의 맨 위를 가리키는 화살표는 서브맵이 맵핑 선언을 참조함을 표시합니다. 예를 들어, 레이블이 "1"로 지정된 화살표는 Package2Package 맵핑 선언을 참조합니다.

샘플에서 맵핑 선언 간의 관계를 표시하는
컴포지트 다이어그램
관련 정보
단일 입력 오브젝트에서 다중 오브젝트를 생성하는 모델에서 모델로 변환에 대한 설정 지시사항

피드백