UML 모델과 Java 둘 다를 사용하여 시스템을 계획하고 개발하는 경우 변환 및 해당되는 역변환을 사용하여 작업을 병합하고 동기화할 수 있습니다.
Rational® 모델링 제품에서는 Java 및 UML 사이의 변경사항 병합 기능이 버전 7.5.4에서 변경되었습니다.
예를 들어, 다음 유스 케이스는 7.5.4 이전에 있었던 제품 버전에서 Java 및 UML 사이의 개발 변경사항을 병합한 결과와 일반적인 워크플로우를 보여 줍니다.
Java 코드 및 UML 모델 모두에서 시스템을 개발한 경우 일반적으로 이 워크플로우에 따라 동기화된 둘 사이에 변경사항을 보존할 것으로 예상됩니다.
이 워크플로우를 따른 경우 사용자가 추가한 Java 요소로부터 Java에서 UML로 변환이 생성한 UML 모델 요소에 대해 작성한 변경사항을 병합하려는 시도는 실패합니다. UML에서 Java로 변환은 UML 변경사항을 Java 코드로 전달할 수 없습니다. 수동으로 추가한 Java 요소에는 UML 변경사항을 Java에 병합하기 위해 UML에서 Java로 변환에서 요구하는 @generated 태그가 없기 때문입니다. UML에서 Java로 변환은 @generated 태그 없이 코드를 대체하지 않으므로, UML에서 작성한 변경사항은 Java 코드에 병합되지 않습니다. 이 문제를 해결하고 모델을 코드와 동기화하려면 수동으로 @generated 태그를 새 코드 요소 각각에 추가한 후 UML에서 Java로 변환을 실행해야 합니다.
Java 및 UML 사이에 변경사항을 동기화하려면 추가 단계가 포함되는 이 워크플로우를 따라야 합니다.
버전 7.5.4 이후의 예제
Rational 모델링 제품 버전 7.5.4 이상에서는 UML에서 Java로 변환이 Java 코드의 요소(속성)를 겹쳐쓰도록 지시할 수 있습니다. Java에서 UML로 링크를 클릭하여 호출하는 기능은 사용자가 수동으로 작성한 Java 요소에 자동으로 @generated 태그를 추가하므로, UML에서 Java로 변환이 UML 변경사항을 Java에 전달할 수 있습니다. 이 옵션은 기타 Java 변환 javadoc 주석도 추가하며, //begin-user-code 및 //end-user-code 주석을 추가하여 기존 메소드 본문을 보존합니다. Java에서 UML로 링크를 클릭할 때 Java 요소는 해당되는 UML 모델 요소에 링크되고 UML에서 Java로 변환은 해당되는 소스 코드 요소를 겹쳐쓸 수 있습니다. 이 단추를 클릭하면 후속 변환은 사용자가 예상하는 대로 병합합니다. Java 요소는 해당되는 모델 요소에 링크되기 때문입니다.
버전 7.5.4 이상에서, 이는 Java 및 UML 사이에 변경사항을 동기화하기 위해 따르는 워크플로우입니다.