나의 SW개발 이야기/SW개발 일반

UML 클래스 다이어 그램의 이해

Piano2sky 2017. 2. 14. 11:55

클래스 다이어 그램의 이해


* 정의 : 클래스들 간의 상속, 연관(갖다 쓰기), Interface 구현 등에 관한 내용을 그림으로 표현한 다이어 그램


- 다이어 그램의 박스에는 각각 Class의 Member/ Method들이 표시되어 있다. 실제 그 내용을 다 표시하는 다이어 그램은 많지 않아보임.


- 박스사이의 화살표 표시는 관계를 나타내는 것인데, 

화살표의 헤드 : 상위 개념

화살표의 꼬리 : 하위 개념


혹은 포함관계로 이해할 수 있다. 


클래스의 입장에서 '내가 상속받아 갖다쓰건, 나를 갖다쓰건 상관없이' 논리적 포함관계(상/하위 개념)일 경우에 화살표의 헤드와 꼬리를 표시하는 것임...-> 처음에 많이 헷갈렸음 ㅠㅠ


- 연관 관계

다른 곳의 Class를 갖다 씀, 동시에 서로 갖다 쓰면 화살표 헤드가 필요 없음. 동시에 갖다쓰는 건 논리적인 문제가 발생할 가능성 있음


- 의존 관계

함수의 Parameter 정도로만 갖다 쓰는 경우. 내용을 다 포함하지 않거나, 혹은 일시적으로만 사용하기 때문에 연관 관계보다 상대적으로 약함.


- 집합 연관

연관 관계와 동일하지만 Template/ Vector 류의 여러/ 혹은 다중 Class 들이 사용 될 때 표시. life cycle이 서로 연결되어 있지 않음. 


- 복합 연관

집합 연관가 말만 다르고 의미는 같음. 대신 Life Cycle만 동시에 같음. 집합 연관과 같이 여러 클래스가 연관되어 있는 것은 동일하나, 갖다쓰는 클래스와 얽히고 섥히는 관계(복합)이어서 생명주기가 같다는 것만 차이가 있음.


- 상속 관계

상속하여 갖다쓰는 경우


- 사실 관계

Interface로 구현하여 사용하는 경우


* 상속/사실 관계 및 연관 관계 . 요 셋 빼고는 많이 사용하지 않음. 의존, 집합, 복합... 뭐 이런거 사용할 수는 있는데 다이어 그램에서는 굳이 표시하지 않거나, 사용해도 주석을 달아서 설명하는 경우가 더 많음.