catsridingCATSRIDING|OCEANWAVES
Fundamental

UML 클래스 다이어그램 이해하기

jynn@catsriding.com
Dec 05, 2023
Published byJynn
999
UML 클래스 다이어그램 이해하기

UML Class Diagram

이번 포스팅에서는 UML의 클래스 다이어그램에 대해 살펴봅니다.

Class Details

클래스 내부의 상세 정보를 나타내기 위한 표기법입니다. 클래스는 사각형 박스로 표현하며 크게 클래스 이름, 속성, 그리고 오퍼레이션으로 구성되어 클래스의 정보를 표현할 수 있습니다.

what-is-uml-class-diagram_0.png

상황에 따라 속성과 오퍼레이션의 표기는 제외하기도 합니다.

Class Types

클래스의 이름은 사각형 박스의 가장 상위에 위치하며, 구체 클래스는 기울어지지 않은 기본 폰트로 표기합니다.

what-is-uml-class-diagram_1.png

추상 클래스는 이탤릭체를 사용하여 구체 클래스와 구분합니다.

what-is-uml-class-diagram_2.png

인터페이스는 클래스 이름 위에 스테레오 타입 <<Interface>>을 명시하는 것으로 구분합니다.

what-is-uml-class-diagram_3.png

Attributes

속성은 클래스 아래에 위치하며 표기는 가시성 이름: 타입 = 기본값 패턴으로 작성합니다.

what-is-uml-class-diagram_4.png

  • 가시성 종류
    • + : public
    • - : private
    • # : protected
    • ~ : package

Operations

오퍼레이션은 가장 마지막에 위치 하며 표기는 가시성 이름(매개변수 목록): 리턴타입 패턴으로 작성합니다.

what-is-uml-class-diagram_5.png

Relations

다음은 두 객체의 관계를 표현하기 위해 사용되는 기호입니다.

Association

실선(Full-Line)은 두 객체간의 구조적 관계를 표현합니다.

what-is-uml-class-diagram_6.png

  • 연관 이름과 방향
    • 일함 소속됨과 같이 특정 연관을 구분하기 위한 표기법이지만 생략하는 경우가 많습니다.
    • , 연관 방향 기호 역시 연관 탐색이 주로 사용되기 때문에 생략하는 경우가 많습니다.
  • 역할명
    • employee employer ...
    • 두 클래스 간의 상대적인 역할명을 나타낸다.
    • 주로 클래스의 필드 또는 프로퍼티 이름으로 대신합니다.
  • 다중성
    • 0..*, 0..1, 1..*, 1, *
    • 1 : 1 또는 1 : N 등의 관계를 표시하기 위한 기호입니다.
  • 연관 탐색
    • ,
    • 실선에 화살표를 이용해서 탐색 가능 방향을 표기합니다.
    • 양쪽 모두 지정하지 않는 경우 양방향 탐색을 의미합니다.

Dependency

두 객체의 의존 관계를 표현하려면 점선 + 화살표로 표기합니다. 의존 관계란 A가 변할 때 A를 사용하는 B도 함께 변하는 경우이며 ❛B가 A에 의존한다.❜고 설명할 수 있습니다.

what-is-uml-class-diagram_7.png

Realization & Generalization

구현과 상속 관계를 표현하는 방법입니다. what-is-uml-class-diagram_8.png

  • 구현(Realization): 인터페이스와 구현 객체 간의 관계는 점선 + 삼각형 화살표로 표기합니다.
  • 상속(Generalization): 수퍼 클래스와 서브 클래스 간의 상속 관계는 실선 + 삼각형 화살표로 표기합니다.

Aggregation & Composition

집합과 구성 관계를 표현하는 방법입니다.

what-is-uml-class-diagram_9.png

  • 집합(Aggregation): 두 객체의 결합도가 낮은 경우, 실선 + 비어있는 다이아몬드 화살표로 표기합니다.

what-is-uml-class-diagram_10.png

  • 구성(Composition): 두 객체의 결합도가 높은 경우, 실선 + 속이 채워진 다이아몬드 화살표로 표기합니다.

  • Architecture
  • UML