Material ID: GA30-3269-00
© Copyright International Business Machines Corporation 2007. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
이 문서의 최신 버전은 다음에서 확인할 수 있습니다.
http://download.boulder.ibm.com/ibmdl/pub/software/rationalsdp/v7/rme/70/docs/readme/readme.htmlMicrosoft® .NET용 IBM® Rational® Modeling Extension은 Rational UML 모델링 제품을 C# 및 CTS 모델링으로 확장하는 제품입니다. 이 설계 및 개발 도구 제품군은 개방형 소스 Eclipse 프레임워크에서 빌드되었습니다. Microsoft .NET용 Modeling Extension 소프트웨어에는 소프트웨어 설계자 및 모델 중심 개발자가 C# 응용프로그램 및 CTS 유형을 시각화하고 UML(Unified Modeling Language) 2를 사용하여 우수하게 설계된 C# 코드를 작성할 수 있도록 하는 플러그인이 포함됩니다.
Microsoft .NET용 Rational Modeling Extension을 사용하여 다음 작업을 수행할 수 있습니다.
- Microsoft Visual Studio 2005에서 .NET 솔루션을 가져와 Eclipse 프로젝트 내에 솔루션의 미러 이미지를 작성합니다.
- C# 응용프로그램을 시각화합니다.
- 찾아보기 다이어그램을 사용한 구조 발견 및 종속성 분석
- 클래스 다이어그램을 사용한 응용프로그램 구조 기록
- 시퀀스 다이어그램을 사용한 as-implemented 및 what-if 클래스 상호작용 기록
- "혼합 모델링" 오퍼레이션 이론으로 UML 모델의 다이어그램에서 .NET 유형 표현
- UML 모델을 C# 코드로 변환합니다.
- C# 코드의 변경사항을 UML 모델로 변환합니다.
설치 요구사항에 대한 최신 세부사항은 이 readme 파일의 갱신된 버전(http://download.boulder.ibm.com/ibmdl/pub/software/rationalsdp/v7/rme/70/docs/readme/readme.html)을 참조하십시오.
또한 설치 런치패드와 제품 CD의 문서 디렉토리에서 설치 안내서를 볼 수 있습니다.
Microsoft .NET용 Rational Modeling Extension을 설치하려면 IBM Installation Manager v1.0.0.2 이상 및 IBM Rational Software Architect, IBM Rational Software Modeler 또는 IBM Rational Systems Developer, 버전 7.0.0.1이 필요합니다. 이러한 필수 버전이 설치되어 있지 않으면 소프트웨어 설치를 계속할 수 없습니다.
Microsoft .NET용 IBM Rational Modeling Extension, 버전 7.0에 대한 정보는 설치 지시사항(http://download.boulder.ibm.com/ibmdl/pub/software/rationalsdp/v7/rme/70/docs/install_instruction/install.html)을 참조하십시오.
또한 설치 런치패드와 첫 번째 제품 CD의 문서 디렉토리에서 설치 안내서를 볼 수 있습니다.
모델링 확장 소프트웨어는 IBM Rational Software Architect 7.0.0.1, IBM Rational Software Modeler v7.0.0.1 또는 IBM Rational Systems Developer v7.0.0.1의 GA 빌드로 설치할 수 있습니다. 설치 프로세스의 개요는 다음과 같습니다. 자세한 지시사항은 Microsoft .NET용 IBM Rational Modeling Extension 설치 안내서를 참조하십시오.
설치하려면 다음을 수행하십시오.
- Rational UML 모델링 제품이 위에서 지정한 바와 같이 설치되었는지 확인합니다.
- IBM Installation Manager에서 모델링 확장을 설치할 호스트 제품을 선택합니다.
모델링 확장 쉘은 호스트 제품과 공유되고 동일한 Eclipse 인스턴스를 사용합니다.- Installation Manager 마법사의 안내에 따라 모델링 확장 설치를 완료합니다.
이 릴리스 정보는 제품 문서 작성이 완료된 이후에 사용할 수 있는 정보가 포함되어 있습니다. C# 프로파일을 사용하여 .NET 응용프로그램을 모델링할 때 다음 우수 사례 및 가이드라인을 사용하십시오.
1. Visual Studio 2005 Standard 또는 Professional Edition은 이 확장을 포함하는 Rational UML 모델링 제품이 열릴 때마다 열려야 합니다.
참고: 설치 안내서의 소프트웨어 요구사항 절에 "Visual Studio 2005"가 명시되어 있습니다. 이 제품을 "Visual Studio 2005, Standard Edition 또는 Professional Edition" 으로 정정합니다. Express Edition은 지원되지 않습니다.
2. 이전에 Rational XDE에서 Rational Software Architect 버전 6.x로 가져온 모델을 사용합니다.
이전에 Rational XDE에서 Rational Software Architect 버전 6.x로 가져온 모델이 있고 그러한 이전 모델을 Rational Software Architect 버전 7.0.0.1로 이주했으며(또는 이주할 계획이며) 이 확장자를 사용하는 경우, Rational Software Architect의 Rational XDE 모델 가져오기 기능도 설치되어 있어야 합니다.
3. 모델의 패키지 이름 지정 시 패키지 이름에 ‘.’(점)을 사용하지 마십시오. 예를 들어, ‘xtools’, ‘ibm’, ‘com’ 순서로 중첩된 패키지가 필요할 경우 하나의 패키지인 “com.ibm.xtools”로 이름을 지정하는 대신 계층적 패키지 구조를 사용하여 “xtools”를 “ibm”이 포함하고 이를 “com”이 포함하는 순서로 중첩된 패키지를 작성하십시오. 이 표기법은 항상 고유하게 표시되며 코드를 모델로 변환하는 동안 잘못된 병합 변경을 줄여줍니다.
4. 스테레오타입 특성을 통해 일부 C# 특정 값을 설정해야 할 경우에만 C# 스테레오타입을 적용하십시오. 하지만 스테레오타입이 적용되지 않고 동일한 코드가 생성된 경우 C#에서 UML로 변환은 이전 UML에서 C#로 변환에 스테레오타입이 사용되지 않은 걸로 가정하며, 스테레오타입을 UML 모델에서 제거하는 델타를 표시하는 조정 창이 열립니다.
5. 현재 C# 프로파일이 제한조건을 정의하지 않으므로 적용된 스테레오타입에 대한 올바르지 않은 조합이 발견되지 않습니다. 올바르지 않은 프로파일 스테레오타입을 사용하지 마십시오. 예를 들어, <<CSharpClass>>와 <<CSharpInterface>>를 모두 적용하는 것은 올바르지 않으며 예기치 못한 결과가 발생합니다.
6. 부분 유형을 모델링하는 동안 하나의 비어 있는 유형을 각 부분이 종속 부분으로 표시되는 부분 유형으로 사용해야 합니다. 모델화된 비어 있는 부분 유형(소스) 및 정의된 부분 유형(소스에 대해 종속성 관계가 있는)을 모델의 단일 패키지에 포함시키십시오. 이 방법은 부분 유형의 모든 부분을 모델의 한 패키지에 정의합니다. 소스의 이름은 유형 이름으로 사용되고 다른 부분의 이름은 유형 이름으로 사용되지 않습니다. 맵핑 모델을 통해 각 부분 파트는 다른 파일로 지정될 수 있습니다. 코드에서 모델로 변환하는 동안 각 파트에 대해 사용자가 사용한 이름은 알 수 없으므로 변환 과정에서 이름은 <typename>_<filename>으로 생성되고 이것은 병합 대화 상자에서 차이로 나타납니다.
7. C#에서는 유형 매개변수의 값을 지정하는 경우에만 일반 유형을 사용할 수 있습니다. 유형 매개변수를 바인딩하여 일반 유형의 새 유형을 구성하십시오. 그러므로 매개변수가 T인 List 클래스는 List<String> 등으로 사용할 수 있습니다. UML에서 그와 같이 구성된 유형은 템플리트 바인딩으로 표시되고 해당 유형의 이름은 코드를 UML로 변환하여 임시 모델을 생성하는 동안 표시되지 않습니다. 따라서 구성된 유형은 병합 대화 상자에서 다르게 표시되어 유형 이름을 알 수 없으므로 이 이름을 대상 모델의 실제 템플리트 바인딩으로 맵핑해야 합니다.
과부하된 연산자는 오퍼레이션으로 모델링됩니다. 예를 들어, 클래스 C1 문맥에서 다음과 같은 두 연산자의 과부하를 예상하고 Microsoft .NET용 Modeling Extension를 사용하여 이 타스크를 모델링한다고 가정합시다.
Equal (==)
Not equal (!=)다음 단계에서는 이 예제를 사용하여 연산자의 과부하를 모델링하는 방법에 대해 설명합니다.
전제조건:
UML 모델을 작성하거나 열어야 합니다.과부하된 연산자를 모델링하려면 다음을 수행하십시오.
- UML 모델에 C1이라는 새 클래스를 작성합니다.
- 클래스 C1에 새 오퍼레이션을 추가하고 != 연산자로 이름을 지정합니다. 이 연산자에는 과부하된 연산자 !=에 대한 구현이 포함됩니다.
- 다음과 같이 연산자를 정의합니다.
a. 새로 작성된 오퍼레이션의 가시성을 공용으로 설정합니다.
b. 새로 작성된 오퍼레이션의 규정자를 정적으로 설정합니다.
c. 새로 작성된 오퍼레이션의 리턴 유형을 <기본 유형>bool로 설정합니다.
d. 새로 작성된 오퍼레이션에 C1 유형의 두 매개변수를 추가하고 c1과 c2로 이름을 지정합니다.- 클래스 C1에 다른 오퍼레이션을 추가하고 == 연산자로 이름을 지정합니다. 이 연산자에는 과부하된 연산자 ==에 대한 구현이 포함됩니다.
- 3단계에서와 같이 연산자를 정의합니다.
클래스 C1 문맥에서 과부하된 연산자 != 및 == 모델링이 완료되었습니다.
이 릴리스 정보에는 제품 문서 작성이 완료된 이후에 사용 가능한 릴리스 특정 정보(예: 문제점 및 제한사항)가 포함되어 있습니다.
사용자는 가져온 코드가 제대로 컴파일되지 않았을 경우 모델링 확장 소프트웨어로부터 통지를 받지 못합니다. 가져온 C# 프로젝트에 구문 오류가 포함된 코드가 있을 경우 모델링 확장 소프트웨어에서 오류를 나타내는 플래그가 프로젝트 탐색기 또는 Visualizer 다이어그램에 표시되지 않습니다.
해결 방법: C# 코드를 Visual Studio .NET에서 컴파일한 후 변환하여 Microsoft .NET용 Modeling Extension으로 가져오십시오.
Microsoft .NET용 Modeling Extension을 설치 또는 실행하기 전에 올바른 운영 체제, 서비스 팩 및 Visual Studio 2005 Standard 또는 Professional Edition이 시스템에 설치되었는지 확인하십시오.- Microsoft .NET용 Modeling Extension은 Visual Studio 2005의 열린 첫 번째 인스턴스만 인식하고 통신합니다. Microsoft .NET용 Modeling Extension을 사용하는 시스템에 한 번에 하나의 Visual Studio 인스턴스만 실행하십시오.
- Microsoft .NET용 Modeling Extension이 실행 중일 때 Visual Studio에서 다른 솔루션(가져온 솔루션이 아닌 솔루션)을 절대 닫거나 열지 마십시오.
- 항상 하나의 Visual Studio 2005 인스턴스만 열어 놓으십시오. Microsoft .NET용 Modeling Extension은 Visual Studio 2005의 첫 번째 인스턴스만 인식하고 통신합니다.
- 솔루션을 Microsoft .NET용 Modeling Extension으로 가져오면 Microsoft .NET용 Modeling Extension이 솔루션에 있는 모든 해당 C# 프로젝트에 대해 Eclipse 작업공간에서 Eclipse 프로젝트를 작성합니다. Eclipse에서 작성된 프로젝트는 Visual Studio 2005 솔루션에 있는 C# 프로젝트와 이름이 동일합니다. 다음은 프로젝트에 대해 주목해야 하는 중요한 포인트입니다.
- Eclipse에서 작성된 프로젝트에는 Visual Studio 2005 솔루션의 해당 C# 프로젝트가 사용하는 C# 파일 및 .NET 어셈블리에 대한 링크가 있습니다. 이러한 링크는 Microsoft .NET용 Modeling Extension이 Eclipse의 Visual Studio 2005 프로젝트와 프로젝트 내용에 대한 정보를 검색, 업데이트 및 표시하는 유일한 방법입니다. 실제로 이 링크들은 Eclipse에서 C# 프로젝트의 보기 역할을 합니다.
- UML에서 C#로 변환 사용 중 예외 발생 시, 가져온 프로젝트를 수정하는 데 Eclipse 메커니즘을 사용하지 마십시오. Eclipse 메커니즘을 사용하여 이 프로젝트의 이름을 바꾸거나 컨텐츠를 수정하면 예기치 않은 결과가 발생할 수 있습니다. 특히 프로젝트에서 UML 모델(.emx) 또는 다이어그램 파일(.dnx)을 작성하거나 추가하지 마십시오. 이를 수행하려면 Eclipse에서 별도의 프로젝트(예: UML 프로젝트)를 작성하십시오. 새 다이어그램을 작성할 때 시각화 프레임워크는 다이어그램의 기본 위치를 시각화된 요소가 상주하는 프로젝트로 하기 때문에 다이어그램 파일(.dnx)을 가져온 프로젝트 내에 작성하지 않도록 주의하십시오.
- 가져온 프로젝트를 닫은 후 다시 여십시오. 프로젝트는 삭제할 수 있지만 “기본 컨텐츠 제거”는 하지 마십시오. (Visual Studio 프로젝트 및 관련 컨텐츠를 삭제해야 할 경우 Visual Studio에서 삭제하십시오).
- Visual Studio 2005 솔루션을 Eclipse로 가져온 경우 Visual Studio 2005에서 C# 프로젝트의 이름을 변경하지 마십시오. 프로젝트 이름을 변경하려면 다음 단계를 수행하십시오.
- 해당(가져온) Eclipse 프로젝트를 삭제합니다(“기본 컨텐츠 제거”하지 않음).
- Visual Studio에서 프로젝트의 이름을 바꿉니다.
- Visual Studio 솔루션을 다시 가져옵니다. Microsoft .NET용 Modeling Extension 솔루션은 점증적으로 솔루션을 가져올 수 있습니다. 이 기능은 Visual Studio 2005 솔루션에서 새로 추가된 C# 프로젝트를 가져올 경우 유용합니다.
- Microsoft .NET용 Modeling Extension에서 조치를 수행하기 전에, C# 프로젝트에 구문 오류가 없고 Visual Studio 2005에서 제대로 컴파일되는지 확인하십시오. Microsoft .NET용 Modeling Extension은 코드 모델 API를 사용하여 C# 파일을 구문 분석합니다. C# 파일에 오류가 있을 경우 이 API에서는 잘못된 결과와 널값을 리턴합니다. 예를 들어, C# 파일을 Visual Studio에서 변경한 다음 Eclipse에서 프로젝트를 새로 고치는 경우, 변경으로 인해 C# 구문 오류가 발생하여 이 파일이 프로젝트 탐색기에서 펼쳐지지 않습니다.
이 때는 Visual Studio 2005로 전환하여 모든 구문 오류를 수정한 후 솔루션을 다시 빌드하고 가져온 프로젝트를 Eclipse에서 새로 고쳐 변경사항을 적용합니다. 변환을 적용할 때 특히 Visual Studio 솔루션이 완전하고 빌드된 상태여야 합니다.- Microsoft .NET용 Modeling Extension은 COM 메커니즘을 사용하여 Visual Studio 2005와 동기화합니다. 이러한 COM 호출은 when Visual Studio가 사용 중이면 거부될 수도 있습니다. Microsoft .NET용 Modeling Extension이 다음 작업을 수행하고 있을 때는 Visual Studio 2005에서 작업하거나활성화하지 마십시오.
- .NET 솔루션 가져오기
- 프로젝트 새로 고치기
- 프로젝트 탐색기에서 가져온 프로젝트 또는 파일 펼치기(예: 트리 보기 펼치기)
- 이전에 Visual Studio 2005 솔루션을 가져온 작업공간에서 Microsoft .NET용 Modeling Extension 시작
- .NET 시각화 다이어그램 작성
- UML에서 C#로 또는 C#에서 UML로 변환 실행
- .NET 프레임워크 어셈블리에 정의된 유형의 컨텐츠를 탐색하지 않으려는 경우(예를 들어, 유형에 포함된 오퍼레이션 또는 필드를 찾는 경우) Visual Studio 2005 솔루션을 Eclipse 작업공간으로 가져올 때 ".Net 어셈블리 구문 분석 시 유형만 가져오기" 옵션을 사용하십시오. 이 옵션은.NET 솔루션 가져오기 마법사의 첫 번째 페이지에 있습니다. 이 옵션을 사용하면 솔루션 가져오기와 C# 및 .NET 유형의 시각화 수행 시 시간을 절약할 수 있습니다.
- Visual Studio 2005에서는 변경사항을 자동으로 로드하는 옵션을 항상 사용하십시오. 이 옵션은 옵션 창의 환경-> 문서 페이지에서 “변경사항 자동 로드" 선택란을 선택하여 사용할 수 있습니다. 옵션은 “도구-옵션->환경->문서->파일이 환경 외부에서 변경되었을 경우 발견 ->저장된 경우 변경사항 자동 로드”를 통해 열 수 있습니다.
- 가져온 프로젝트의 컨텍스트 메뉴에서 특성 옵션을 선택하여 Eclipse를 통해 C# 프로젝트의 인코딩을 변경할 수 있습니다. Visual Studio 프로젝트는 일반적으로 크기 때문에 이 인코딩은 일반 인코딩에 비해 시간이 더 많이 소요됩니다.
중첩된 클래스/구조/인터페이스가 외부 클래스/구조/인터페이스에서 요소의 유형을 정의하는 데 사용된 경우 유형 이름은 유형과 요소가 동일한 클래스에서 정의되었더라도 외부 유형의 이름을 포함합니다. 현재 알려진 해결 방법이 없습니다. 문제가 차후 버전으로 넘겨집니다.
예를 들어, 아래 모델은
- OuterClass
+ InnerClass
+ attribute1 : InnerClassOuterClass.cs 내 InnerClass에 생성된 코드의 일부로 다음을 생성합니다.
private OuterClass.InnerClass attribute1;
이 릴리스에서는 UML 모델에 있는 클래스 이름, 문서 등 유니코드 문자의 다음 변환이 지원되지 않습니다. 해당 C# 파일의 모든 유니코드 문자는 '?'로 생성됩니다.
Microsoft .NET용 Modeling Extension이 IBM Rational Software Modeler와 함께 설치되어 있을 때 Microsoft .NET용 Modeling Extension 기능을 데모하는 Viewlet 둘러보기를 개요 > 다른 모델링 접근법... > 모델 변환 추가 정보를 클릭하면 나타나는 환영에서 사용할 수 없습니다. 이 둘러보기는 학습 갤러리에서 사용할 수 있습니다.
Rational Software Modeler에서 둘러보기를 보려면 도움말 > 학습서를 클릭하여 둘러보기를 펼친 다음, UML 모델을 C# 코드로 변환을 클릭하십시오. 둘러보기 시작을 클릭하여 Viewlet을 시작합니다.
일부 경우, 맵핑 및 대상 관계에 소스 생성 옵션으로 UML에서 C#로 변환을 재실행하면 생성된 코드가 손상됩니다. 예를 들어, 코드 주석 및 기타 코드 오류에 "/"가 누락될 수 있습니다.
이는 Manifest 관계가 아티팩트 사이에 이동하기 때문에 발생하므로 이를 사용하여 코드를 하나의 .cs 파일로 결합하거나 코드를 두 파일로 분리할 수있습니다.
이러한 문제는 차후 릴리스에서 수정됩니다.
가져온 XDE 코드 모델에서 C#에서 UML로 변환을 처음 실행하면 조정 대화 상자에서 스테레오타입과 관련된 많은 차이를 표시합니다. 이는 C#에서 UML로 변환이 가져온 모델에 있는 XDE 관련 스테레오타입을 인식하지 못하기 때문입니다. 이러한 문제는 차후 릴리스에서 수정됩니다.
해결 방법:
XDE 코드 모델을 가져온 후 바로 "정리" 변환을 한 번 수행하십시오(모델 또는 코드를 변경하기 전에). C#에서 UML로 변환을 실행하십시오. 조정 대화 상자가 나타나면 임시 모델(왼쪽 분할창의 모델)과 관련된 모든 제안된 변경사항을 승인하십시오. 이로 인해 스테레오타입이 지속 모델에서 제거되어 C#에서 UML로 변환을 차후에 실행해도 더 이상 차이가 발생하지 않습니다.
유형이 설정되지 않고 소스 코드가 어셈블리 유형을 이 요소에 대한 데이터 유형으로 지정하는 <<CSharpProperty>>, <<CSharpField>> 등과 같은 스테레오타입화된 UML 특성을 포함하는 모델을 가정해 봅시다. 이러한 코드 및 대상 모델에서 C#에서 UML로 변환을 실행하면 병합이 요소에 설정될 데이터 유형(UML vizref)을 올바르게 표시하지만 작업이 완료된 후에는 이 요소에 대한 데이터 유형이 누락됩니다(널). 이러한 알려진 문제는 차후 릴리스에서 수정됩니다.
모델 파일 이름에 # 기호가 포함되어 있고 이 기호가 C#에서 UML로 변환 대상으로 지정된 경우, 병합 대화 상자에서 차이를 병합하는 데 필요한 임시와 대상 모델의 두 개 분할창을 표시하지 못합니다. 이러한 문제는 차후 릴리스에서 수정됩니다.
XDE 가져온 모델이 C#에서 UML 변환의 대상으로 지정되고 변환 구성에서 맵핑 모델이 지정되면 C#에서 UML로 변환이 널(null) 포인터 예외로 인해 실패합니다. 이러한 문제는 맵핑 모델이 있는 XDE 가져온 모델에서만 발생합니다.
해결 방법:
가져온 모델에서 패키지 <<아티팩트>>를 삭제한 다음 이 변환을 실행하십시오. 맵핑 모델에 다양한 파일 정보가 있으므로 아티팩트 패키지를 삭제해도 정보 손실이 없습니다. 이러한 문제는 차후 릴리스에서 수정됩니다.
변환 구성 편집기의 새 대상 컨테이너 작성 단추를 사용하여 대상 모델을 작성하는 경우 초점이 새로 생성된 모델로 이동하고 대상 분할창에서 새 모델이 선택되지 않습니다(여기서 C#에서 UML은 다음 변환임).
해결 방법:
수동으로 구성 편집기로 이동하여 대상 모델을 선택하십시오. 이러한 알려진 문제는 차후 릴리스에서 수정됩니다.
사용자가 파일 삭제 대화 상자에서 파일 삭제를 선택하는 경우와 수정된 맵핑 모델로 UML에서 C#로 변환을 실행하는 경우, 그 결과 파일이 삭제되는데 실제로 파일은 삭제되지 않습니다. 컨텐츠를 보존하기 위해 프로젝트에서 제거되었습니다.
나중에 UML에서 C#로 변환을 다시 실행하는 경우, 그 결과 이전 단계에서 삭제된(프로젝트에서 제거) 파일이 다시 작성되는데 이 파일(다시 작성된)에는 새 컨텐츠 대신 이전(원래) 컨텐츠가 있습니다.
해결 방법:
이 문제에 대한 현재 해결 방법은 1 단계 후에 이러한 파일을 파일 시스템에서 삭제하는 것입니다. 이러한 파일의 목록은 다음에서 얻을 수 있습니다.
- 변환이 자동으로 실행되지 않는 경우, 파일 삭제 대화 상자
- 변환이 자동으로 실행되도록 구성된 경우, 프로젝트에 속한 파일과 비교되는 파일 시스템에서 사용 가능한 파일 목록
- 맵핑 모델의 비어 있는 아티팩트 목록(존재하는 경우)
C# 코드에서 @generated 태그를 제거한 후 변환 구성의 공통 페이지에서 선택한 대상 관계에 소스 생성 옵션으로 UML에서 C#로 변환을 다시 적용하면 코드에추가 URI 태그가 생성됩니다. 이러한 경우는 변수에서만 나타납니다.
URI 태그의 형태는 다음과 같습니다.
//@C#_transform [
// _URI=platform:/resource/UML%20project/Blank%20Model%20t1.emx#_cd19cKJhEdurjYIa4vhLGA//]
다시 적용을 여러 번 실행하면 C# 파일에 URI 태그가 더 많이 생성됩니다.
해결 방법:
이 문제에 대해 알려진 해결 방법이 없습니다.
UML에서 C#로 변환을 다시 실행하기 전에 생성된 Setter의 @generated 태그가 제거되고 유형이 변경되는 경우 추가 Setter가 생성됩니다.
해결 방법은 모델 유형을 변경하는 것입니다.
UML 요소 바꾸기 옵션과 함께 UML에서 C#로 변환이 실행 중이면 UML 모델에 있는 선택된 열거 리터럴은 바뀌지 않습니다. 열거 E에 두 리터럴 L1과 L2가 있고 E가 패키지 p에 포함된 경우, 변환을 실행하면 열거 E는 코드에서 생성된 C# 열거의 단축키로 올바르게 바뀝니다. 그러나 리터럴 L1과 L2는 변환 후 패키지 p에 포함되어 나타납니다.
해결 방법:
이 문제에 대해 알려진 해결 방법이 없습니다.
일부 경우에 XDE C# 코드 모델 임포터(파일 -> 가져오기 -> 기타 -> XDE .Net 솔루션)는 C# 색인기의 Setter를 올바르게 이주하지 않습니다. 해당 UML 모델(XDE 기본 모델 임포터를 사용하여 가져온 .emx 파일)을 지정하여 XDE .NET 솔루션에 포함된 C# 프로젝트를 가져온 다음, 이주 모델을 원본으로 이주 프로젝트를 대상으로 하여 UML에서 C#로 변환을 실행하면 이 프로세스 이전에 코드에 있던 것과 동일한 Setter가 작성되지 않을 수 있습니다. 일부 경우에는 Setter가 전혀 생성되지 않고 일부 경우에는 Setter가 컴파일 오류를 일으키는 추가 매개변수(이름 값 있음)와 함께 생성됩니다. C#에서는 Setter의 명시적 매개변수로 이름 값 사용이 허용되지 않기 때문입니다.
해결 방법:
이 문제에 대해 알려진 해결 방법이 없습니다.
변환 구성 편집기의 공통 페이지에 있는 UML 요소 바꾸기 옵션으로 UML에서 C#로 변환을 실행하고 맵핑 모델이 사용될 때, 이 변환으로 인해 폴더의 소스 파일이 생성된 소스 모델의 UML 요소가 바뀌지 않습니다. 대상 C# 프로젝트의 루트 폴더에 생성된 코드에 대한 UML 요소만 코드의 요소에 대응하는 단축키로 바뀝니다.
해결 방법:
UML에서 C#로 변환을 처음 실행하고 나면 UML 모델 및 맵핑 모델이 더티로 표시됩니다. 변환 구성 또는 맵핑 모델을 변경하지 말고 변환을 한 번 더 실행하십시오. 모델의 모든 UML 요소가 단축키로 교체됩니다.
Rational XDE 코드 모델을 가져오면 코드 모델에서 참조하는 "어셈블리 모델"("시스템 모델" 또는 "참조 모델"이라고도 함)도 가져오게 되어 Eclipse 기반 환경에서 참조합니다. 그 결과 가져온 코드 모델을 여는 데 시간이 많이 걸릴 수 있습니다.
해결 방법:
코드 모델을 가져왔으면 가져온 어셈블리 모델을 삭제하십시오. 이 해결 방법은 가져온 코드 모델의 UML 요소를 직접 코드 참조로 바꾸기 위해 "혼합 모델링" 오퍼레이션 이론을 사용할지 또는 코드 모델의 UML 요소를 보존하는 대신 “true 라운드트립 엔지니어링(RTE)” 조작 이론(전후 반복 변환 및 조정)을 사용할지 선택할 때 사용할 수 있습니다.해결 방법의 영향:
1. 어셈블리 모델을 삭제하면 가져온 코드 모델을 더 빠르게 열고 편집할 수 있습니다.2. 가져온 코드 모델이 열릴 때 프로젝트에서 “누락된” 참조 모델에 대해 경고 또는 “오류”를 표시할 수 있습니다. 이러한 경고는 무시해도 됩니다.
3. 가져온 코드 모델에 대해 유효성 검증이 실행될 때 프로젝트에서 “누락된” 참조 모델에 대해 경고 또는 "오류"를 표시할 수 있습니다. 이러한 경고나 오류는 무시해도 됩니다.
예제:
Project1이라는 해당 XDE 기본 모델 "Project1.mdx"를 가진 Visual Studio 2003 C# 프로젝트가 있다고 가정해 봅시다. 이 모델이 5개의 다음 시스템 모델을 참조한다고 가정해 봅시다. System.mdx, mscorlib.mdx, System.Data.mdx, System.Web.mdx 및 System.Drawing.mdx.- VS 2005 이주 유티리티를 사용하여 VS 2003 프로젝트를 VS 2005로 이주를 시작합니다.
XDE 모델 가져오기를 사용하여 프로젝트 모델 Project1.mdx를 가져오십시오(파일 > 가져오기 > 기타 > Rational XDE 모델). 해당 참조 모델 모두 가져오기를 선택합니다(임포터에서는 가져오기 프로세스 중 모델 무결성을 확인하기 위해 이를 요청).- 그 결과 6개의 .emx 파일이 Eclipse 작업공간에 생성되는데 “Project1.emx,” “System.emx mscorlib.emx,” “System.Data.emx,” “System.Web.emx” 및 “System.Drawing.emx입니다.”
- 그 다음엔 Visual Studio 2005 솔루션을 가져 오십시오(파일 > 가져오기 > 기타 > .NET 솔루션). 이 솔루션에서 기존 .mdx 모델이 발견되고 가져온 코드 모델의 이름을 지정하라는 질문이 나타는데 “Project1.emx를 입력하십시오.” 이 때 Project1.emx의 UML 요소를 가져온 솔루션의 코드 참조로 교체할 수 있는 옵션도 제공됩니다. “혼합 모델링”을 실행하려면 이 옵션을 사용하고 “트루 RTE”를 실행하려면 사용하지 마십시오.
- 가져오기 프로세스가 완료되었습니다.이제 모델 “Project1.emx”를 열면 UML 프레임워크가 5개의 참조된 모든 모델을 로드하고 “Project1.emx”에 있는 요소에서 참조된 이들 모델에 있는 요소로의 참조를 해석하려고 합니다. 가져온 XDE 모델을 열고 작업하는 데 시간이 지연되는 원인이 이것입니다.
- 성능 손실을 막으려면 가져온 5개의 어셈블리 모델을 각각 선택하여 삭제하십시오. 위에서 설명한대로 이렇게 하면 성능이 개선되고 “Project1.emx”를 열고 유효성을 검증할 때 경고 또는 “오류”가 나타나는데 “Project1.emx”로 수행할 모델링 및 변환 작업에 아무 부정적 영향도 주지 않습니다.
C#에서 UML로 변환이 자동 모드로 실행될 때 변환 구성 편집기의 기타 모든 옵션이 선택되어 있으면 변환에 실패합니다. 특히 대상 모델의 새 변경사항에 자동 모드로 병합될 스테레오타입 요소(예: <<CSharpStruct>>)가 포함된 경우 이러한 문제가 발생합니다. 이러한 문제는 차후 릴리스에서 수정됩니다.
C#에서 UML로 변환을 != 또는 ==과 같은 과부하 연산자를 포함하는 소스 파일에서 실행하여 이들 연산자를 대상 모델에 가져오거나, 코드를 변경하지 않고 후속 변환을실행하는 경우 병합 대화 상자에 변경사항이 표시되지 않습니다. 하지만 병합 대화 상자에 매개변수 이름 변경과 관련된 변경사항이 올바르지 않게 표시됩니다.
이러한 문제는 차후 릴리스에서 수정됩니다.
C# 변환에서 맵핑 모델은 코드를 구성하는 방법으로 파일 시스템 계층 구조를 지정하는 데에만 사용해야 합니다. 맵핑 모델을 통한 클래스, 인터페이스 등의 이름 바꾸기는 아직 지원되지 않습니다. C# 응용프로그램의 디자인은 2 Perspective에서 수행될 수 있습니다.
1. 논리 시스템 디자인
2. 실제 시스템 디자인(맵핑 모델로 지정됨)
일반적으로 논리 디자인 모델에는 다양한 이름 공간, 다양한 유형 및 상속 관계, 속성, 함수 등이 포함됩니다.
맵핑 모델을 사용하는 실제 디자인 Perspective에는 C# 변환에 대한 배치 정보가 포함됩니다. 이는 변환 방법을 제어하여 다양한 논리 구성을 다른 파일에 배치할 수 있음을 의미합니다. 기본적으로 UML에서 C#로 변환에서는 맵핑 모델을 사용하지 않고 유형 이름과 동일한 파일 이름에 클래스 또는 인터페이스와 같은 유형을 생성하는데 Visual Studio 프로젝트의 루트 폴더에 배치합니다. 예를 들어, 맵핑 모델이 없는 경우 "MyClass" 클래스는 "MyClass.cs" 파일에 생성됩니다. 하지만 코드를 "Test.cs"라는 이름의 파일에 생성하려면 "MyClass" 클래스를 명시하는 아티팩트를 통해 맵핑 모델에 이 파일을 지정해야 합니다.
맵핑 모델은 코들 생성하기 위해 폴더 또는 파일 계층 구조를 지정할 때만 사용합니다. 맵핑 모델을 사용하여 이름을 바꿀 수 없습니다.
논리 디자인(변환 소스 모델) 과 실제 디자인(변환 맵핑 모델)은 둘 다 UML 모델입니다. 한 가지 차이점은 다음과 같습니다.
- 논리 소스 모델의 UML 패키지는 C# 이름 공간을 나타냅니다.
- 맵핑 모델의 UML 패키지는 파일 시스템의 폴더를 나타냅니다.
맵핑 모델 옵션을 사용하고 UML 요소 바꾸기 옵션을 선택하여 UML에서 C#로 변환을 실행한 후 이 변환을 취소하면 맵핑 모델이 올바르지 않은 상태가 됩니다. UML에서 C#로 변환이 다시 잘못된 맵핑 모델에서 실행되는 경우 C# 파일이 올바르지 않은 위치에 생성됩니다.
해결 방법:
사용자가 UML에서 C#로 변환을 다시 실행하기 전에 맵핑 모델의 변경사항을 수동으로 실행 취소해야 합니다. 이를 수행할 수 있는 한 가지 방법은 맵핑 모델을 닫고 변경사항을 저장하지 않는 것입니다.
IBM Rational 소프트웨어 지원을 통해 기술 지원을 제공받을 수 있습니다.
지원이 필요한 경우, 연락처 정보 및 가이드라인 또는 참조 자료는 IBM Software Support Handbook을 참조하십시오.
FAQ, 알려진 문제점 및 수정사항 목록과 기타 지원 정보는 IBM Rational 소프트웨어 지원 웹 사이트를 참조하십시오.
Rational 소프트웨어 제품 뉴스, 이벤트 및 기타 정보는 IBM Rational 소프트웨어 웹 사이트를 참조하십시오.
IBM Rational 소프트웨어 지원 센터에 문의하기 전에 문제점을 설명하는 데 필요한 배경 정보를 수집하십시오. IBM 소프트웨어 지원 전문가에게 문제점을 설명할 때는 전문가가 문제점 해결을 효과적으로 도울 수 있도록 관련 배경 정보를 포함해 가능한 한 정확하고 구체적으로 설명하십시오. 시간을 절약하려면 다음 질문에 대한 답을 준비해 두십시오.
- 문제가 발생했을 때 실행 중이던 소프트웨어 버전은 무엇입니까?
- 문제와 관련된 로그, 추적 또는 메시지가 있습니까?
- 문제점을 재현할 수 있습니까? 이 경우, 문제점을 재현하기 위해 어떤 단계를 수행하였습니까?
- 문제점에 대한 해결 방법이 있습니까? 이 경우, 해결 방법에 대한 설명을 준비해 두십시오.
© Copyright IBM Corporation 2007. All Rights Reserved.
이 정보는 미국에서 제공되는 제품 및 서비스용으로 작성된 것입니다. IBM은 다른 국가에서 이 문서에 기술된 제품, 서비스 또는 기능을 제공하지 않을 수도 있습니다. 현재 사용할 수 있는 제품 및 서비스에 대한 정보는 한국 IBM 담당자에게 문의하십시오. 이 책에서 IBM 제품, 프로그램 또는 서비스를 언급했다고 해서 해당 IBM 제품, 프로그램 또는 서비스만을 사용할 수 있다는 것을 의미하지는 않습니다. IBM의 지적 재산권을 침해하지 않는 한, 기능상으로 동등한 제품, 프로그램 또는 서비스를 대신 사용할 수도 있습니다. 그러나 비IBM 제품, 프로그램 또는 서비스의 운영에 대한 평가 및 검증은 사용자의 책임입니다.
IBM은 이 문서에서 다루고 있는 특정 내용에 대해 특허를 보유하고 있거나 현재 특허 출원 중일 수 있습니다. 이 문서를 제공한다고 해서 특허에 대한 라이센스까지 부여하는 것은 아닙니다. 라이센스에 대한 의문사항은 다음으로 문의하십시오.
135-270
서울특별시 강남구 도곡동 467-12
군인공제회관빌딩
한국 아이.비.엠 주식회사
고객만족센터
전화번호: 080-023-8080
2바이트(DBCS) 정보에 관한 라이센스 문의는 한국 IBM 고객만족센터에 문의하거나 다음 주소로 서면 문의하시기 바랍니다.IBM World Trade Asia Corporation
Licensing
2-31 Roppongi 3-chome, Minato-ku
Tokyo 106, Japan다음 단락은 현지법과 상충하는 영국이나 기타 국가에서는 적용되지 않습니다. IBM은 타인의 권리 비침해, 상품성 및 특정 목적에의 적합성에 대한 묵시적 보증을 포함하여(단, 이에 한하지 않음) 묵시적이든 명시적이든 어떠한 종류의 보증없이 이 문서를 "현상태대로" 제공합니다. 일부 국가에서는 특정 거래에서 명시적 또는 묵시적 보증의 면책사항을 허용하지 않으므로, 이 사항이 적용되지 않을 수도 있습니다.
이 정보에는 기술적으로 부정확한 내용이나 인쇄상의 오류가 있을 수 있습니다. 이 정보는 주기적으로 변경되며, 변경된 사항은 최신판에 통합됩니다. IBM은 이 책에서 설명한 제품 및/또는 프로그램을 사전 통지 없이 언제든지 개선 및/또는 변경할 수 있습니다.
(i) 독립적으로 작성된 프로그램과 기타 프로그램(본 프로그램 포함) 간의 정보 교환 및 (ii) 교환된 정보의 상호 이용을 목적으로 본 프로그램에 관한 정보를 얻고자 하는 라이센스 사용자는 다음 주소로 문의하십시오.
135-270
서울특별시 강남구 도곡동 467-12
군인공제회관빌딩
한국 아이.비.엠 주식회사
고객만족센터이러한 정보는 해당 조건(예를 들어, 사용료 지불 등)하에서 사용될 수 있습니다.
이 정보에 기술된 라이센스가 있는 프로그램 및 이 프로그램에 대해 사용 가능한 모든 라이센스가 있는 자료는 IBM이 IBM 기본 계약, IBM 프로그램 라이센스 계약(IPLA) 또는 이와 동등한 계약에 따라 제공한 것입니다.
비IBM 제품에 관한 정보는 해당 제품의 공급업체, 공개 자료 또는 기타 범용 소스로부터 얻은 것입니다. IBM에서는 이러한 비IBM 제품을 반드시 테스트하지 않았으므로, 이들 제품과 관련된 성능의 정확성, 호환성 또는 기타 주장에 대해서는 확인할 수 없습니다. 비IBM 제품의 성능에 대한 의문사항은 해당 제품의 공급업체에 문의하십시오.
IBM이 제시하는 방향 또는 의도에 관한 모든 언급은 특별한 통지 없이 변경될 수 있습니다.
상표 및 서비스표
다음 표장은 미국 또는 기타 국가에서 사용되는 IBM Corporation의 상표입니다.
- developerWorks
- IBM
- Rational
Java 및 모든 Java 기반 상표는 미국 또는 기타 국가에서 사용되는 Sun Microsystems, Inc.의 상표입니다.
Microsoft, Windows 및 Windows NT는 미국 또는 기타 국가에서 사용되는 Microsoft Corporation의 상표입니다.
Intel 및 Pentium은 미국 또는 기타 국가에서 사용되는 Intel Corporation 또는 그 계열사의 상표 또는 등록상표입니다.
UNIX는 미국 또는 기타 국가에서 사용되는 The Open Group의 등록상표입니다.
Linux는 미국 또는 기타 국가에서 사용되는 Linus Torvalds의 상표입니다.
기타 회사, 제품 또는 서비스 이름은 타사의 상표 또는 서비스표입니다.