UML에서 Java로 변환


UML에서 Java로 변환은 UML 2.0 스펙을 Java 클래스로 변환합니다. 변환을 사용하여 UML 2.0 스펙에서 Java 프로젝트를 생성할 수 있습니다. 초기 생성 후 변환을 적용하여 갱신된 UML 모델을 기존 Java 코드와 병합할 수도 있습니다.
 

1. 시작하기

UML에서 Java로 변환을 사용하기 위해서는 먼저 UML 2.0 모델 및 Java 프로젝트의 작성 및 편집에 대해 알고 있어야 합니다.

다음 절차는 가장 간단한 Java 변환 사용법을 보여줍니다.

UML 모델에서 Java로 변환하려면 다음을 수행하십시오.
1. 모델링 Perspective로 전환하십시오.
2. 모델 탐색기 보기에서 UML 클래스(예: Class1)를 마우스 오른쪽 단추로 클릭하십시오.
3. 변환 > 변환 실행 > UML2에서 Java로를 클릭하십시오.
4. 변환 실행 대화 상자가 열립니다. 대상 컨테이너 작성 단추를 클릭하십시오.
5. 새 Java 프로젝트 대화 상자가 열립니다. 프로젝트 이름 필드에 단순을 입력하고 완료를 클릭하십시오.
6. 변환 실행 대화 상자에서 완료를 클릭하십시오.

새 Java 프로젝트에는 새 Java 클래스 Class1을 포함하는 기본 패키지가 들어 있습니다.

또한 변환은 소스 모델을 수정하지 않고 이름 대체, UML 오브젝트를 시각화로 바꾸기, UML 모델 및 Java 소스의 변경사항 병합, 잠재적 변환 문제점에 대해 UML 모델 유효성 검증 등과 같은 더 복잡한 여러 가지 다른 기능을 수행할 수 있습니다.
 

2. 변환 세부사항

2.1 변환 소스

UML 2.0 모델, 패키지, 비중첩 클래스, 비중첩 인터페이스 및 열거를 변환의 소스로 선택할 수 있습니다. 다른 항목을 소스로 선택할 경우에도 변환은 진행되지만 그러한 항목은 변환되지 않습니다. 변환이 모델, 패키지, 클래스 또는 인터페이스를 변환할 때 이러한 오브젝트가 포함하는 모든 항목도 변환합니다. 예를 들어, 변환이 클래스를 변환할 때 해당 클래스의 모든 오퍼레이션과 특성도 변환합니다.
 

2.2 변환 대상

하나 이상의 소스 폴더를 변환의 대상으로 가지는 Java 프로젝트를 선택할 수 있습니다.
 

2.3 UML 소스 오브젝트 해석

UML Java 
패키지 동일한 이름 *인 Java 패키지
패키지 - 스테레오타입 <<Perspective>> 무시
키워드가 <<분석>> 또는 <<분석>>인 패키지 무시
클래스 동일한 이름* 및 가시성을 가지는 Java 클래스
(클래스) isLeaf  특성 true인 경우, Java 클래스는 "final"입니다.
(클래스) isAbstract 특성 true인 경우, Java 클래스는 "abstract"입니다.
(클래스) 일반화 Java 클래스는 지정된 수퍼클래스를 "extends"합니다.
구현 Java 클래스는 지정된 인터페이스를 "implements"합니다.
(클래스 대 인터페이스) 실현(realization)
Java 클래스는 지정된 인터페이스를 "구현"합니다.
인터페이스 동일한 이름* 및 가시성을 가지는 Java 인터페이스 
(인터페이스) 일반화 Java 인터페이스는 지정된 인터페이스를 "extends"합니다.
열거
동일한 이름* 및 가시성을 가지는 Java 인터페이스
EnumerationLiteral
동일한 이름* 및 가시성을 가지는 Java 필드
오퍼레이션 동일한 이름* 및 가시성을 가지는 Java 메소드
(오퍼레이션) isStatic 특성 true인 경우, Java 메소드는 "static"입니다.
(오퍼레이션) isAbstract 특성 true인 경우, Java 메소드는 "abstract"입니다.
(오퍼레이션) isLeaf 특성 true인 경우, Java 메소드는 "final"입니다.
(오퍼레이션) 클래스와 동일한 이름을 가짐 Java 생성자
(오퍼레이션) 스테레오타입 <<create>> Java 생성자
매개변수 동일한 이름 *인 Java 매개변수
(매개변수) 유형 특성 Java 매개변수는 지정된 유형을 가지며, 이 유형은 다른 클래스 또는 기본 유형일 수 있습니다.
(매개변수) 방향 특성 Java 메소드는 "return"으로 설정된 경우 "return <param type>"을 가지고, 그렇지 않으면 "<param type> <param name>"을 메소드 서명에 추가합니다.
(매개변수) 다중성 특성  다중성에 대한 정보를 포함하는 다음 테이블을 참조하십시오.
특성  동일한 이름* 및 가시성을 가지는 Java 필드
(특성) isStatic 특성 true인 경우, Java 필드는 "static"입니다.
(특성) isLeaf 특성 true인 경우, Java 필드는 "final"입니다.
(특성) 유형 특성 Java 필드는 지정된 유형을 가지며, 이 유형은 다른 클래스 또는 기본 유형일 수 있습니다.
(특성) 다중성 특성  다중성에 대한 정보를 포함하는 다음 테이블을 참조하십시오.

*  일부 문자는 Java ID에서 유효하지 않습니다(예: 공백). Java 변환은 올바르지 않은 문자를 자동으로 밑줄(_)로 바꾸어 올바른 ID를 작성합니다. 그러나, 이러한 바꾸기로 인해 변환이 중복 클래스 및 인터페이스를 생성하지 못하는 이름 충돌이 일어날 수 있습니다. 유효성 검증 기능을 사용하여 이러한 문제를 발견할 수 있습니다. 이러한 바꾸기 문제를 피하려면 요소의 이름을 바꾸거나 맵핑 기능을 사용하여 소스 모델을 수정하지 않는 다른 이름을 지정하십시오.

특성 및 매개변수에 대한 Java 유형
UML 다중성 생성된 Java 유형
0..1 속성, 포인터 또는 참조(예: 문자열)
1 속성(예: 문자열)
N (N > 1)  배열(예: String[])
1..*, * 또는 x..y  콜렉션. 다음 테이블 참조

1..*, * 또는 x..y 다중성에 대한 Java 콜렉션

isOrdered 특성 isUnique 특성 UML 콜렉션
생성된 Java 유형
True True 순서 지정 세트
java.util.SortedSet
True False 시퀀스
java.util.List
False True Set
java.util.Set
False False 백(Bag)
java.util.Collection

위에 나열된 생성된 유형은 기본값임을 유의하십시오.   이 유형은 변환 구성의 고급 탭에서 겹쳐쓸 수 있습니다.

고급
고급 탭은 일부 코드 생성 옵션을 제공합니다.  모델링 > 변환 > 변환 구성을 클릭하고 UML에서 Java로 구성을 선택한 다음, 고급 탭을 선택하십시오.  탭은 Getter 및 Setter 생성 선택란과 콜렉션 그룹을 포함합니다. 

Getter 및 Setter 생성을 선택하면 변환 시 각 UML 특성에 대한 private 필드가 생성됩니다.   특성의 isLeaf(최종) 또는 isReadOnly가 true로 설정되면 Setter가 생성되지 않습니다.   특성의 isDerived가 true이면 Setter 구현이 비어 있습니다.  

UML에서 Java로 변환에 의해 생성된 콜렉션을 콜렉션 그룹에 지정할 수 있습니다.   예를 들어, 시퀀스 드롭 다운에서 "java.util.Vector"를 선택하면, 변환 시 목록 대신 벡터가 생성됩니다.   또한 드롭 다운에 클래스 이름을 입력하여 사용자 정의 콜렉션 클래스를 지정할 수도 있습니다.   백(Bag) 드롭 다운에 "custom.Bag"을 입력하면, 변환 시 콜렉션 대신 백(bag)이 생성됩니다.  

3. 공통 변환 기술에 대한 지원

3.1 Team Support와의 통합

Java 변환은 Team Support와의 통합을 제공하여 자동 체크아웃 및 소스 제어 시스템에 새 파일 추가를 가능하게 합니다.
 

3.2 변환 맵핑

변환에 대한 소스 모델을 수정하지 않으려면 변환의 대상 요소에 다른 이름을 지정할 수 있습니다. 또한 플랫폼 독립 모델에 Java 특정 세부사항(예: 이름 지정 제한사항)을 포함하려는 경우 또는 소스 모델의 논리 조직이 대상 패키징으로 적절하지 않은 경우 다른 이름을 지정할 수 있습니다. 소스 모델을 수정하지 않고 다른 대상 이름을 지원하려면 변환 맵핑 기능을 사용하십시오.
변환 맵핑 기능을 사용하려면 다음을 수행하십시오.
1. 모델링 Perspective로 전환하십시오.
2. 모델 탐색기 보기에서 UML 모델을 클릭하십시오.
3. 메뉴 표시줄에서 모델링 > 변환 > 변환 구성을 클릭하십시오.
4. 새 UML2를 Java로 변환을 작성하십시오(예를 들어, 변환 맵핑 작성에 이름을 지정하십시오.)
5. 맵핑 페이지에서 맵핑 모델만 작성(변환 없음)을 클릭하십시오.
6. 파일 이름을 지정하고 실행을 클릭하십시오.

맵핑 모델 작성을 클릭하면 Java 변환은 변환 가능한 각각의 요소에 대한 아티팩트를 가지는 별도의 모델인 맵핑 모델을 작성합니다. 아티팩트는 원래 변환 가능한 요소를 나타내고 이 요소와 동일한 이름을 가집니다. 원래 요소에 다른 이름을 지정하려면 아티팩트의 파일 이름 특성에 새 이름을 입력하십시오. 아티팩트의 파일 이름 특성을 변경하지 않으면 변환은 아티팩트의 기본 이름을 가지는 요소를 생성합니다. 패키지에 다른 이름을 지정하는 경우, 다른 이름은 해당 패키지의 모든 클래스류에 영향을 줍니다(클래스류가 완전한 이름을 지정하지 않는 경우). 다음 테이블은 대체 이름의 예를 나열합니다.
 
UML 소스 맵핑 아티팩트 파일 이름 생성된 Java
"Package1" ""  "Package1"
"Package2" "com.ibm.test" "com.ibm.test"
Package1의 "Class1"  "" Package1.Class1
Package2의 "Interface1" "ITestable" com.ibm.test.ITestable
Package2의 "Class2" "com.ibm.test.Testable" com.ibm.test.Testable

맵핑 모델을 사용하려면 다음 단계를 완료하십시오.
1. 모델링 Perspective로 전환하십시오.
2. 모델 탐색기 보기에서 UML 모델을 클릭하십시오.
3. 메뉴 표시줄에서 모델링 > 변환 > 변환 구성을 클릭하십시오.
4. 새 UML2를 Java로 변환을 작성하십시오(예를 들어, 변환 맵핑 사용에 이름을 지정하십시오.)
5. 맵핑 페이지에서 맵핑 모델 사용을 클릭하십시오.
6. 작성한 맵핑 모델을 클릭하고 실행을 클릭하십시오.
변환 실행 시 맵핑 모델에서 지정한 대체 이름을 사용합니다.
 

3.3 내부 시각화 지원

원래 UML 모델을 보존하지 않으려는 경우, 변환의 시각화 기능을 사용하여 UML 요소를 삭제하고 생성된 Java 요소에 대한 단축키로 바꿀 수 있습니다. UML 모델 요소를 삭제하도록 변환을 구성하려면, 변환 구성 창의 공통 페이지에서 UML 요소 바꾸기를 클릭하십시오. 바꾸기로 인해 데이터가 손실될 경우 변환은 요소를 바꾸지 않습니다. 예를 들어, UML 요소가 다이어그램을 포함하는 경우 변환이 다이어그램을 삭제하게 되므로 이러한 요소는 바꾸지 않습니다.
 

3.4 재적용

Java 변환은 생성된 javadocs에서 "@generated" 태그를 사용하여 소스 모델의 변경사항 및 수정된 소스 코드를 병합합니다. 변환은 "@generated"로 표시된 Java 요소를 소유하고 다시 변환 중 이 요소를 겹쳐씁니다. 또는 소스 모델에서 Java 요소가 제거된 경우 이를 삭제합니다. "@generated" 태그를 제거하여 요소의 "소유권"을 요구할 수 있습니다. 그러면 변환이 요소를 겹쳐쓰거나 삭제하지 못합니다.
 

3.5 유효성 검증

Java 변환 플러그인은 잠재적 변환 문제점에 대하여 모델의 유효성을 검증하는 데 사용할 수 있는 UML 프로파일을 제공합니다. 예를 들어, 다중 상속, 순환 일반화 및 이름 지정 충돌은 생성된 Java 코드에서 컴파일 오류를 일으킵니다. 생성된 코드에서 발생할 수 있는 잠재적 문제점 목록을 보려면 프로파일을 소스 모델에 적용하고 유효성 검증 기능을 실행하십시오.
 

3.6 추적성

Java 변환은 생성된 Java 요소에서 UML 소스까지 파생된 관계를 작성할 수 있습니다. 파생된 관계를 작성하려면, 변환 구성 창의 공통 페이지에서 소스 대 대상 관계 작성을 클릭하십시오. 시스템이 생성된 Java 요소를 시각화할 때 요소는 소스 요소에 대해 파생된 관계를 가집니다.
 
이용약관 | 피드백
(C) Copyright IBM Corporation 2004. All Rights Reserved.