2016-11-03 3 views
0

그래프로 데이터를 만드는 어플리케이션의 UML 클래스 다이어그램을 디자인하고 있습니다.
데이터를 읽고 그래프를 만드는 응용 프로그램 드라이버 클래스 자체가 있습니다. "Vertex"클래스 배열을 포함하여 다양한 특성을 가진 "Graph"클래스가 있습니다.
위에서 언급했듯이 노드와 관련된 특성을 가진 "Vertex"클래스도 있습니다.그래프 어플리케이션 UML 클래스 다이어그램

저는 위의 표현에 대한 최선의 방법을 생각해 내려고합니다.
"Graph"클래스가 "Vertex"클래스의 집합이라고 말하는 것이 맞습니까?
드라이버 클래스에서 그래프를 만드는 방법을 표시해야합니까?
감사합니다.

+0

직접 클래스 다이어그램을 그리는 것이 좋습니다. 또한 단일 프로젝트에서는 하나의 다이어그램 유형과 하나의 다이어그램 유형으로는 충분하지 않습니다. – Ister

답변

2

아래 그림을 참조하십시오. 각 꼭지점이 하나의 그래프에만 포함된다고 가정하면, 나는 강력한 형태의 집계를 사용했습니다.

enter image description here

+0

감사합니다! 내 다이어그램은 컴퍼 지션이 아니라는 점을 제외하고는 매우 유사합니다. 나는 하나의 후속 질문을 가지고 있습니다 - 왜 집계가 더 적절한가? 버텍스가 그래프없이 존재할 수 없기 때문입니까? 내 소프트웨어는 드라이버 클래스 내에 노드를 만든 다음 그래프 인스턴스 (예 : addVertex (Vertex : theVertex))에서 메서드를 호출하여 정점을 추가합니다. – GreenApples53

+1

공유/복합 집계에 대해 너무 신경써서는 안됩니다. 집계 요소에 따라 요소의 수명과 관련이 있습니다. 사용법은 실제로 모델을 이해하는 데 도움이되는 것보다 혼란을 더합니다. 개인적으로이 다이아몬드의 유일한 실제 사용은 외래 키 제약 조건과 메모리 관리에 있다고 생각합니다. –

+0

개인적으로 필자는 열린 다이아몬드 ('공유 집계'), 채워진 다이아몬드 ('합성') 만 사용하여 전체 - 부분 관계를 나타낼 수는 없지만, 인스턴스가 삭제됩니다 (db 용어로 : 계단식 삭제). 그래프가 존재하는 한 그래프의 정점 만 존재하는 경우 컴포지션을 사용하십시오. 그렇지 않으면 일반 할당을 사용하십시오. 적어도 그건 내 충고 일거야. –