UML - Class Diagram

Lily·2021년 11월 6일

UML(Unified Modeling Language)


통합 모델링 언어, UML은 객체 지향 프로그래밍에서 코드를 시각화, 명세화, 문서화하기위해 객체관리그룹에서 만든 언어입니다.

사용 목적

프로그램의 코드를 나, 협업자에게 설명하고 이해를 돕기위해 사용할 수 있어요.

diagram으로 도식화하고 시각화하면
전체 구조를 한 눈에 파악하기가 더 쉽고, 의사소통에 이용할 수 있습니다

Class Diagram

UML diagram은 크게 두가지 타입이 있습니다.

  • Structure Diagrams (구조 다이어그램)
  • Behavior Diagrams (행위 다이어그램)

그 중 Structual Diagram에 해당하는 Class Diagram은 클래스간의 관계를 표현한 diagram입니다. 서로 어떻게 참조되고 있는지 의존성을 파악할 수 있으며, 순환루프를 끊는 힌트가 될 수 있습니다🕵🏻‍♀️

UML 표기법

참고글
[UML] 클래스 다이어그램 작성법


관계

연관 관계 (association) ⏤

클래스들이 개념상 연결되어 있음.
한 클래스가 다른 클래스의 멤버 변수로 정의 되어 있는 경우.

연관 관계는 방향성을 가질 수 있습니다.

  • 단방향(←) : 한쪽의 클래스만 다른 클래스를 참조하고 있을 때, 화살은 참조하는 클래스 쪽으로 향하게.
  • 양방향(⏤) : 양쪽의 클래스 모두 서로를 참조하고 있을 때

의존 관계 (dependancy) ⁃ ⁃ ⁃

연관 관계와 같이 한 클래스가 다른 클래스를 참조하고 있지만, 메서드를 실행하는 동안만 같은 짧은 시간 동안만 관계가 유지된다는 점이 다르다.

  • 연산의 argument로 사용될 때
  • 메서드 내부의 지역 객체로 참조될 때

집약 관계 (aggregation)/ 합성 관계(composition)

연관 관계의 특별한 경우로, 전체와 부분의 관계를 명확하게 명시하고자 할때 사용합니다.

두 클래스간의 life time 의존성에 따라,
life time이 의존적인 합성(◆)과, 독립적인 집약(◇)으로 나눌 수 있습니다.

전체를 향하는 클래스에 다이아몬드를 붙입니다.


🖌 Tool

  • lucid chart: 팀원과 동시에 수정 가능
  • Gliffy Diagram
  • drawio
  • miro
profile
i🍎S 개발을 합니다

0개의 댓글