본문 바로가기
카테고리 없음

[UML] 클래스 다이어그램

by 진진리 2023. 10. 21.
728x90

클래스 다이어그램: 구조 다이어 그램으로 내부 구성요소 및 클래스 간의 관계를 도식화하여 시스템의 전체 모듈이나 일부 및 전체를 구조화한다.

 

요소(element)

 

클래스

이름, 속성(변수), 메소드 순으로 나열.

속성과 메소드는 생략이 가능하지만 이름은 필수

+는 public, -는 private, #은 protected, ~은 default

{readonly}는 final, 밑줄은 static

[*], [0..1]은 변수에 지정된 사이즈: List의 경우 정해지지 않아서 *, Optional의 경우 0이거나 1이므로 [0..1]

(Optional은 NPE(NullPointerException)을 피하기 위해 null이 올 수 있는 값을 감싸는 Wrapper 클래스)

스테레오 타입

인터페이스나 추상 클래스와 같은 요소를 표기하기 위해 << >> (guillemet) 이용

<<interface>>, <<utility>>, <<abstract>>, <<enumeration>> 등

 

추상클래스

추상 클래스를 나타내는 방법:

   1. 이탤릭체(기울어진 글씨)

   2. 클래스명 {abstract}

   3. <<abstract>>

 

클래스 간 관계

  1. Association: 다른 객체를 참조. 변수가 다른 클래스와 연관이 있을 때
    • A -> B: A가 B를 참조. 
    • A - B: A와 B가 서로를 참조할 수 있음.
    • -roleName(역할명)으로 참조될 때 어떤 역할을 가지고 있는지를 의미
  2. Inheritance: 상속 관계, 일반화
    • A -|> B: A가 B를 상속받음
  3. Realization: 인터페이스를 상속받아 실현화
    • A --|> B: A가 B를 상속받아 사용
  4. Denpendency: 클래스간 참조 관계. 메소드의 파라미터나 반환에 사용되는 클래스 관계를 나타낼 때
    • A --> B: A가 B를 참조
  5. Aggregation: 집합 관계. 전체와 부분이 독립적
    • A -<> B: A가 부분, B가 전체
    • Association과 차이를 구분하기 힘들어 사용하지 않는 것이 좋음
  6. Composition: 집합 관계에서 부분이 전체에 종속적
    • A -<> B: A가 부분, B가 전체
    • 부분에 해당하는 인스턴스는 공유될 수 없음