본문 바로가기

[UML DISTILLED 3판] 3장 클래스 다이어그램

3장 클래스 다이어그램 : 필수요소(Class Diagram : The Essentials)

클래스 다이어그램은 클래스의 프로퍼티(property), 오퍼레이션(operation), 객체들이 연결되는 방법에 적용되는 제약사항(constraints)

프로퍼티 (property)

클래스의 구조적인 특징을 나타냄.

프로퍼티는 단일 개념이지만 두 가지의 다른 표기법으로 나타냄

  1. 속성(attribute)
    • 클래스 상자 안에 한 줄의 텍스트로 표시되는 프로퍼티.
  2. 연관(association)
    • 두 클래스 사이의 실선으로 표시, 소스 클래스에서 타켓 클래스를 향함.

일반적으로 값타입에 속하는 날짜나, Boolean 값과 같은 작은 것에는 속성을 사용,

고객이나 주문 같은 더 중요한 클래스에 대해서는 연관을 사용함.

다중성(multiplicity)

얼마나 많은 객체가 프로퍼티에 들어갈 수 있는지.

하한과 상한을 정한다.

다중 값의 프로퍼티는 복수형으로 이름을 붙이는 것을 선호.

ex)

1 : 하나의 주문은 한명의 고객만 가져야 함.

0..1 : 1명의 판매 담당자를 갖거나, 갖지 않거나

*: 0개 이상

오퍼레이션(operation)

클래스가 수행하는 액션

  • 시스템의 상태를 변경하는 오퍼레이션 : 쿼리 (query)
    • 값을 리턴하는 오퍼레이션은 쿼리
  • 시스템의 상태를 변경하지 않는 오퍼레이션 : 변경자(modifier), 커맨드(command)
    • 일반적인 관례는 변경자가 값을 리턴하지 않도록 작성.

  • 오퍼레이션 : 객체에서 호출되는 것(프로시저의 정의)
  • 메소드 : 프로시저의 본체

일반화(generalization)

한 사업에 개인고객과 기업고객이 있을 때,

유사점들은 고객클래스(상위타입)에 넣고 개인 고객과 기업 고객 클래스를 하위타입에 넣는다.

의존 (dependency)

어떤 요소(공급자 또는 타켓)의 정의에 대한 변화가 다른 요소(클라이언트 또는 소스)의 변화를 유발한다는 것을 의미.