2010-04-22 6 views
9

나와 다른 몇몇 개발자는 현재 레거시 코드 기반을 정리하고 있으며 대부분 시각적 및 데이터 계층을 구분합니다. 이 리팩토링에 관여하지 않는 개발자가 모델을 이해할 수 있도록 각 클래스의 범위와 원하는 사용법에 대한 설명과 함께 (다소 비공식적 인) 클래스 다이어그램을 소개하고자합니다. 나는 게으르다. 그래서 UMLGraph를 사용하고 싶다.UML로 mixin/role/trait을 올바르게 표현하는 방법은 무엇입니까?

그러나 작은 문제가 있습니다. 우리는 펄 코드 기반을 가지고 있으며 리팩토링은 무스 역할을 광범위하게 사용합니다. 이제 UML이 롤에 대한 적절한 절제를 발견 할만큼 잘되지는 않습니다. 첫 번째 추측은 인터페이스 일 것이지만 구현을 포함합니다. 다중 상속은 그다지 상속받지 못합니다.

클래스 다이어그램에서 어떻게 역할을 올바르게 나타낼 수 있습니까?

답변

3

처럼 표현했다. 역할을 구성하는 클래스는 스테레오 타입 «does»을 갖는 역할에 대한 연관성을 갖게됩니다.

Simple Composition http://img820.imageshack.us/img820/5665/simplecomposition.png

내가 더 별칭 또는 제외와 역할에 적응하기 위해 필요한 경우에, 나는 제대로 주석 회원과 «adaptation» 관념과 연관 클래스로 그를 만들 것입니다. 연관 클래스의 이름은 중요하지 않습니다. 디자인에서 실제 유형이 아니기 때문입니다. 그래서 나는 그것을 무명으로 남겨 둘 것이다.

Composition with Conflict Resolution http://img828.imageshack.us/img828/244/conflictcomposition.png

(내가 적응 정말 MyCompositionMyRole1 사이의 연결에 연결했다 싶었다 무엇을 구성하고 적응 역할. 연결 "클래스"를 보여 주었다 있습니다. 그것은 단지 내가 사용한 도구가 연관 수업을 지원하지 않는다는 것).

+0

조르도, 나는 그 다이어그램의 모양을 좋아합니다. 어떤 도구를 사용하여 만들었습니까? –

+0

@WayneConrad : 나는 [yUML] (http://yuml.me/)을 사용하여 그것을 확인합니다! –

+0

UML 용 graphviz와 같습니다. 아주 좋아! –

관련 문제