문제
다음 설계 사실과 UML 클래스 다이어그램을 대조하시오. 그림의 연결 ①~③ 중 설계 사실과 맞지 않게 표현된 연결은 하나뿐이다. (1) 잘못된 연결 번호와 (2) 해당 연결에 사용해야 할 올바른 UML 관계명을 [보기]의 영문으로 작성하시오.
[판단 기준] 멤버 필드로 보관하면 Association, 호출 중 매개변수로만 사용하면 Dependency, 상속하면 Generalization이다.
[설계 사실]
DocumentService는Document를 단순 참조하는 멤버 필드로 보관한다. 두 클래스는 전체-부분 관계가 아니다.DocumentService.export(Formatter formatter)는 전달받은Formatter를 호출 중에만 사용하며 멤버로 보관하지 않는다.InvoiceDocument는Document를 상속한다.
[보기] Association, Dependency, Generalization
정답
(1) ② (2) Dependency
해설
①은 멤버로 보관하는 단순 참조이므로 Association이며 그림의 장식 없는 실선이 맞다. ②의 Formatter는 매개변수로 전달되어 호출 중에만 사용되므로 Dependency여야 하지만, 그림에는 Association을 뜻하는 단순 실선으로 그려져 있다. ③은 InvoiceDocument가 Document를 상속하며 빈 삼각형이 Document를 향하므로 Generalization이 맞다.