모델에서 모델로 변환에서 이전에 생성된 오브젝트에 대한 분석되지 않은 참조 관리

모델에서 모델로 변환이 실행될 때, 변환은 메타 모델에서의 기능 설정에 따라 생성된 오브젝트에 대한 참조나 오브젝트를 생성합니다. 변환이 오브젝트를 생성하는 경우 변환은 해시 맵에서 해당 오브젝트에 대한 식별 정보를 기록합니다. 변환은 해시 맵을 기초로 사후 처리 중에 오브젝트에 대한 참조를 분석합니다. 그러나 해시 맵이 충분한 정보를 포함하지 않는 경우 참조를 관리해야 합니다.
이 태스크 정보

UML 메타 모델에서 요소 기능에는 containment라고 하는 부울 특성이 있습니다. containment 특성이 true로 설정되는 경우 오브젝트는 요소 인스턴스의 기능에 위치됩니다. containment 특성이 false로 설정되는 경우 오브젝트에 대한 참조만 인스턴스의 해당 기능에 위치됩니다. 변환은 사후 처리 중에 참조를 분석합니다.

변환은 사후 처리 중에 지연되는 각각의 참조 레코드를 검색하여 참조를 분석할 오브젝트를 찾기 위해 FinalizeRule 규칙을 사용합니다. 변환이 오브젝트를 찾으면 인스턴스의 지정된 출력 기능에서 참조를 작성합니다. 변환 작성 런타임에서 변환 ID를 가지고 있는 해시 맵이 발견되면 소스 오브젝트를 사용하여 해시 맵에서 대상 오브젝트를 찾습니다. 런타임에서 두 개 이상의 후보 오브젝트가 발견되면 하나를 선택하기 위해 출력 필터(정의된 경우)가 호출됩니다. 서브맵에 정의된 출력 필터가 없는 경우 변환은 발견된 첫 번째 대상 오브젝트를 사용하여 참조를 분석합니다. 대상 오브젝트를 찾지 못하면 변환은 오류를 로그하고 메시지를 표시합니다.

오브젝트에 대한 참조를 관리하려면 다음을 수행하십시오.

  1. 변환을 실행하기 전에, 참조에 대해 여러 개의 후보 오브젝트가 존재한다는 것을 알면 참조 분석에 올바른 오브젝트가 사용되도록 해당 서브맵에 대한 출력 필터를 작성하십시오.

    자세한 지시사항은 "서브맵 맵핑 규칙에서 입력 오브젝트 및 출력 오브젝트 필터 지정" 주제를 참조하십시오.

  2. 변환을 실행하십시오.
  3. 대상 오브젝트를 찾을 수 없음을 알리는 오류 메시지가 표시되면 변환이 올바른 오브젝트를 찾을 수 있도록(생성된 경우) 출력 필터를 작성하거나 수정하십시오.
    주: 종종 대상 오브젝트가 생성되지 않아서 찾을 수 없습니다. 모든 관련 변환이 실행되었는지 확인하여 필요한 모든 대상 오브젝트가 사용 가능한지 확인하십시오.
  4. 변환을 재실행하여 모든 참조가 분석되었는지 확인하십시오.

피드백