2013-01-21 4 views
1

두 UML 모델 간의 (설정?) 차이를 계산하는 방법에 대한 참조 및 아이디어를 알고 싶습니다. 기본적으로, 나는 UML/xmi로 표현 된 시스템을 가지고 있으며,이 시스템에 여러 패턴 (UML/xmi로도 표현됨)을 적용 할 수있다.두 UML 모델의 차이 계산

예를 들어 패턴 b를 시스템에 적용한 결과에 패턴 a를 적용 할 수 있습니다 (Pa(Pb(S))). 그런 다음 dif(Pb, S)을 계산 한 다음 dif(Pa, S)을 계산하고 싶습니다. 패턴을 적용한 후에 병합 된 시스템을 원래 시스템으로 간주 할 수 있습니다.

나는 바퀴를 재발 명하고 싶지 않기 때문에 (문학 작품이든 아니든간에) 그리고 알고리즘을 찾고 있습니다. 결국 Java로 코딩 할 것입니다. 사전에

감사합니다, Eclipse EMF Compare

답변

2

페드로, 당신은 두 개의 서로 다른 EMF 모델 인스턴스를 비교할 수 있습니다. Eclipse에서 UML은 EMF Model 인스턴스로 표현되므로이를 사용하여 UML 모델을 비교할 수 있습니다. 그냥 EMF Compare를 설치하고, 패키지 탐색기 (또는 사용하는보기)에서 UML 모델을 표시하고 상황에 맞는 메뉴에서 비교 -> 서로 ...를 선택하십시오. 비교 편집기를 사용하면 차이점을 .emfdiff 파일로 저장할 수 있습니다.

+0

이것은 재미있어 보이지만, 나의 의도는 두 개의 uml 모델을 비교하고 버전 제어에서 비교하지 않는 것입니다. 적어도 필자는 EMF를 이와 같이 비교했다. 필자는 임의의 모델을 비교할 수 있다면 여전히 문서를보고있다. –

+0

@ PedroDusso 아니, 그것은 그 자체와 비교가 아닙니다. 두 EMF 모델 인스턴스를 서로 비교할 수 있으므로 모든 UML 모델 인스턴스를 사용할 수도 있습니다. – SpaceTrucker

+0

네, 맞습니다! 그러나 나는 "서로"옵션을 사용할 수 없으며 튜토리얼은 도움이되지 않습니다. 이 작업을 수행하기 위해 EMF 프로젝트와 협력해야합니까? –

2

정확한 문헌을 가리킬 수는 없지만 위의 EMF 솔루션을 사용하지 않거나 갈 수 없다면 다음에 대해 생각해보십시오. UML 모델은 그래프입니다. 모서리와 꼭지점은 어쨌든 있습니다. 차이를 얻으려면 정점과 가장자리 세트 모두 symmetric difference이 필요합니다. 그렇게하면 그래프 중 하나에있는 모든 것을 얻을 수 있습니다. 적용된 패턴을 사용하여 원본과 모델 간의 대칭 차이를 계산하면 패턴이 모델에 대해 수행 한 작업을 정확히 알 수 있습니다.

+0

이것은 정말 흥미 롭습니다.이 차이를 코딩하는 알고리즘을 실행하기 위해 모델을 효과적으로 표현하는 방법에 대해 생각해야합니다. –