| DCMP | UML 소스 오브젝트 |
|---|---|
| 개념적 모델 시드 구체적 모델 | 현재 작업공간의 하나 이상의
UML 프로젝트에서 다음 요소를 선택할 수 있습니다.
|
| 개념적 모델 드라이브 개발 | |
| 조정된 모델링 | 앞에 있는 목록에서 하나 이상의 요소를
선택할 수 있습니다. UML에서 C++로 변환의 소스로 여러 개의 패키지나 비중첩 클래스류를 선택하는 경우 이 패키지나 클래스류는 동일한 UML 모델에 포함되어야 합니다. UML에서 C++로 변환 또는 반대로 C++에서 UML로 변환의 소스로 하나 이상의 비중첩 클래스류를 선택하는 경우 변환은 역변환이 처리하는 첫 번째 비중첩 클래스류의 루트 레벨 패키지를 판별합니다. 역변환은 이 루트 레벨 패키지에서 해당 출력을 생성합니다. |
변환 구성을 작성하거나 편집할 때 또는 모델에서 직접 모델 요소를 선택하여 변환이 C++ 코드로 변환해야 하는 모델 요소를 지정할 수 있습니다. 선택된 모델 요소는 변환의 소스입니다. 컨테이너와 해당 모델 요소를 둘 다 선택하거나 동일한 모델 요소를 두 번 선택하면 변환에서 오류 메시지가 생성됩니다.
컴포넌트를 사용하여 C++ 코드로 변환하려는 모델의 요소를 구성할 수 있습니다. 컴포넌트를 선택하는 경우, 컴포넌트에 패키지 및 클래스에 대한 사용 관계가 있을 때 UML에서 C++로 변환은 관련 패키지 및 클래스를 C++ 코드로 변환합니다.
UML 소스 요소의 이름은 소문자, 대문자 또는 밑줄(_)로 시작할 수 있습니다. 후속 문자는 소문자, 대문자 또는 숫자가 될 수 있습니다. 오퍼레이션 이름에서 콜론(:)을 사용하여 동반자 기능에 대한 완전한 이름을 지정할 수 있습니다. 변환은 숫자나 올바르지 않은 문자로 시작하는 이름에 밑줄(_) 접두부를 붙입니다. 변환은 관련 네임스페이스의 이름이 고유한지 검사합니다. 이름이 고유하지 않은 경우 변환은 밑줄과 증가하는 숫자(예: _1)로 구성하는 접미부를 중복 이름에 지정합니다.
생성된 코드의 읽기 가능성을 개선하고 UML 모델과 생성된 코드 사이의 차이를 최소화하려면 변환을 실행하기 전에 소스 UML 모델에서 사용할 수 없는 이름을 정정하십시오.
올바른 변환 대상은 C++ 프로젝트입니다. 대상 컨테이너를 작성하는 경우, 사용자가 작성하는 make 파일이나 기존 make 파일을 사용하는 표준 make C++ 프로젝트를 작성하거나, 사용자 대신 자동으로 make 파일을 생성하는 관리 대상 make 프로젝트를 작성할 수 있습니다.
UML에서 C++로 변환이 실행될 때 대상 C++ 프로젝트에서 출력을 생성하고 출력은 소스 UML 모델에서 요소와 동일한 계층 구조를 보유합니다. 변환 구성에서 조정된 모델링 DCMP를 선택하는 경우, C++에서 UML로 변환이나 반대 변환에서 C++ 프로젝트와 동일한 계층 구조로 UML 요소를 생성합니다.
다음 표에서는 UML에서 C++로 변환이 UML 모델 요소를 C++ 코드로 변환하는 방법을 나열합니다.
| UML 모델 요소 | C++ 코드 요소 |
|---|---|
| 연관 관계 | 클래스 속성 |
| 클래스 | 클래스(.h 및 .cpp 파일) |
| 종속 관계 | 포함, 전방 참조 또는 없음 주: 특성 창의
C++ 특성 페이지에 대한 설정에 따라 헤더 및 구현 파일에서
생성되는 내용이 판별됩니다.
|
| 열거 | 열거(.h 파일) |
| 일반화 관계 | 클래스 상속 |
| 오퍼레이션 | 오퍼레이션 |
| 패키지 | 폴더 |
| 매개변수 | 오퍼레이션 인수 |
| 특성 | 클래스 속성 |
| 템플리트 바인딩 관계 | 상속된 클래스(.h 파일) |
| 템플리트 클래스 | UML 템플리트 클래스와 이름이 같은 헤더 파일(.h 파일)
주: 헤더 파일에서 메소드 본문 코드도 생성됩니다.
|
| 템플리트 매개변수 | 매개변수화된 클래스의 매개변수 |
변환에서 UML 모델 요소를 변환하는 방법에 대한 자세한 정보는 이 주제 끝에 있는 관련 참조 주제를 참조하십시오.
소스 모델의 요소가 대상 프로젝트의 요소와 관련되는 방법을 이해하기 위해 소스 모델 요소로부터 대상 프로젝트에서 생성된 요소로의 변환 작성 추적 관계를 보유할 수 있습니다. 그러면 모델 조회를 작성하고 실행하여 토픽 다이어그램에서 추적 관계를 볼 수 있습니다.
추적 관계 작성은 여러 개의 모델과 여러 개의 변환 구성을 포함할 수 있는 대형 프로젝트에서 유용합니다. 또한 변환 출력이 소프트웨어 스펙과 모델 요소에 관련되는 방법을 표시하는 추적성 조회를 작성하고 실행할 수도 있습니다.
사용자가 변환에서 추적 관계가 생성되도록 지정하는 경우 변환은 소스 모델을 변경하지 않습니다.
| UML 요소 | 변환 출력 | 클래스 다이어그램에서 파생된 관계 |
|---|---|---|
![]() |
#ifndef CLASS1_H
#define CLASS1_H
//Begin section for file Class1.h
//TODO: Add definitions that you want preserved
//End section for file Class1.h
//@uml.annotationsderived_abstraction="platform:/resource/MyModels/UMLModel.emx#_biwQUHdCEduVaMk1fL7Qcw"
//@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
class Class1 {
//Begin section for Class1
//TODO: Add attributes that you want preserved
//End section for Class1
private:
//@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
int attribute1;
public:
//@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
int Operation1();
//@generated "UML to C++ (com.ibm.xtools.transform.uml2.cpp.CPPTransformation)"
int Operation2();
}; //end Class Class1
#endif
|
![]() |
표준 오퍼레이션은 생성자, 복사 생성자, 가상 및 비가상 소멸자, 대입 연산자, getter 및 setter 메소드입니다. UML에서 C++로 변환이 UML 모드에서 클래스, 구조체 및 공용체에 대해 생성하는 표준 오퍼레이션을 지정할 수 있습니다. 또한 모델의 클래스에 대한 오퍼레이션에 표준 오퍼레이션 중 하나를 나타내는 스테레오타입을 추가할 수도 있습니다. UML에서 C++로 변환은 생성된 표준 오퍼레이션에 UML 오퍼레이션의 가시성을 적용하지만 UML 오퍼레이션의 이름 및 매개변수는 제외합니다.
변환은 사용자가 변환의 대상으로 지정하는 C++ 프로젝트 및 폴더에서 C++ 코드 파일을 생성합니다.