UML 연관 관계

변환은 연관 관계를 C++ 코드에서 구성원 변수로 변환합니다. 비컴포지션 연관의 경우, 변환은 포인터 부호(*)를 속성의 유형 규정자에 추가합니다. 다중성을 지정하고 이를 특정 숫자(동일한 고저 범위를 갖는)로 설정하는 경우 변환은 배열 스펙을 속성에 추가합니다.

변환은 다음 연관 종료 특성을 사용하여 코드를 생성합니다. 

특성

C++

이름

지정된 이름으로 새 구성원 변수를 작성합니다(이름 유효성 검증 수행).

가시성

생성된 구성원 변수의 가시성을 결정합니다.

UML 일반화 관계

기본적으로 변환은 UML 일반화 관계의 대상에 대한 공용 상속을 생성합니다. 변환은 생성된 헤더 파일에 대상에 대한 헤더 파일을 자동으로 포함합니다. C++ 변환은 다중 상속을 지원합니다. 

cpp_generalization 스테레오타입을 적용하여 지정된 일반화 관계의 가시성(공용, 보호, 개인용 및 기본값)을 지정할 수 있습니다. 

UML "사용(Usage)" 관계

일반적으로, "사용(Usage)" 관계는 클래스 또는 열거에 대한 참조를 표시합니다. 기본적으로, 사용(Usage) 관계는 생성된 헤더 파일의 다음 참조로 변환하고 본문 파일의 "include" 지시문으로 변환합니다. 

cpp_dependency 스테레오타입을 적용하고 isInclusionInHeader 속성을 true로 설정할 경우, 변환은 헤더에 include 지시문을 생성합니다. 

"사용(Usage)" 관계를 사용하여 cpp_friend 스테레오타입을 관계에 적용함으로써 클래스 간에 "동반자" 관계를 표시할 수 있습니다. 변환은 생성된 헤더 파일에 "friend" 절을 포함합니다(예: "friend class Class1;"). 변환은 "friend" 함수에 대한 본문 스텁을 생성하지 않고 friend 클래스에 대한 종속성을 생성된 코드에 자동으로 추가합니다. 

다음과 유사한 <<TBD ...>> 태그를 가진 포함 경로가 나타날 수 있습니다. 

#include "../<<TBD actual project path>>/..." 

변환이 다른 UML 모델의 요소를 사용하기 때문에 이 태그가 나타날 가능성이 큽니다. <<TBD ..>> 태그를 참조된 파일의 실제 프로젝트 경로로 바꾸어야 합니다.

UML 템플리트 매개변수

변환은 템플리트 매개변수를 가진 UML 클래스를 템플리트 클래스로 변환합니다.

UML "바인딩" 관계(인스턴스화된 클래스)

변환은 대상이 Class1이고 "바인딩" 관계를 가지는 UML 클래스를 템플리트 클래스 Class1의 인스턴스로 간주합니다. 변환은 바인딩 관계가 지정하는 매개변수 대체를 사용하여 정규 매개변수를 실제 매개변수로 해석합니다.

클래스에 둘 이상의 "바인딩" 관계가 있을 경우 경고가 표시됩니다. 클래스에 둘 이상의 바인딩 관계가 있으면 변환은 첫 번째 바인딩 관계를 사용하여 코드를 생성합니다.

변환은 실제 매개변수의 데이터 유형을 인스턴스화된 클래스 포함 목록에 추가합니다.

다음 그림은 변환이 지원하는 인스턴스 관계를 나타내며, 여기서 한 클래스는 매개변수화된 클래스이고 다른 클래스는 인스턴스화된 클래스입니다.

변환은 정규 매개변수로 사용되는 매개변수화된 클래스 및 템플리트의 정적 변수를 포함하여 템플리트 클래스의 복잡한 사용 패턴은 지원하지 않습니다.

맨 위

이용 약관 | 피드백
(C) Copyright IBM Corporation 2004. All Rights Reserved.