UML - Class Diagram

UML

UML은 Unified Modeling Language의 약자로 범용 모델링 언어이다. 시스템의 디자인을 시각화하여 보여 주는 것을 목적으로 한다.

Types

표현하려는 내용과 목적에 따라 크게 두가지 타입과 각 타입의 종류들로 나눌 수 있다.

Structural Diagrams

시스템 구조의 정적인 측면을 표현하는데 사용된다.

  • Class Diagram
  • Composite Structure Diagram
  • Component Diagram
  • Deployment Diagram
  • Object Diagram
  • Package Diagram
  • Profile Diagram

Behavior Diagrams

시스템의 동적인 측면을 표현하는데 사용된다.

  • Activity Diagram
  • Interaction Diagram
    • Communication Diagram
    • Interaction Overview Diagram
    • Sequence Diagram
    • Timing Diagram
  • State Machine Diagram
  • Use Case Diagram

Class Diagram

Class Diagram은 UML의 한 종류로 객체 지향 소프트웨어 시스템을 작성하는 것을 목적으로 한다. 시스템의 클래스들과 오브젝트들의 구조를 시각화 하며, 클래스의 메소드들과 속성들을 포함한다.

Syntax

Class Representation

class representation example

Class를 Row가 세개인 사각형으로 표현한다.

  • 첫번째 Row: Class의 이름을 적는다.
  • 두번째 Row: Class의 Attribute들을 적어 준다. ‘{공개 범위} {이름}: {Type}’의 형식을 갖는다.
  • 세번째 Row: Class의 Method들을 적어 준다. ‘{공개 범위} {이름}: ({Arguments}): {return type}’의 형식을 갖는다.

Visibility

Attribute과 Method의 공개 범위는 다음의 방식으로 표현된다.

  • ’-‘ : private
  • ’+’ : public
  • ’#’ : protected
  • ’~’ : package

Relationships Representation

Relationships Representation

클래스들을 관계에 따른 각 모양으로 클래스들의 관계를 표현한다.

  • Inheritance: super class와 sub class와의 상속 관계를 나타낸다.
  • Realization/Implementation: 인터페이스를 구현하는 경우
  • Dependency: 하나의 클래스가 다른 클래스의 의존성을 가지고 있는 경우. 지역변수로 사용되거나, 메소드의 인자로 사용되는 경우. (x 멤버 변수, 일시적 사용)
  • Association: 클래스의 연관 관계를 나타낸다. 멤버 변수로 사용되는 경우
    • Aggregation: 하나의 클래스가 다른 클래스(전체)의 부분이 되는 경우. 전체 클래스가 부분 클래스를 생성하지는 않는다.
    • Composition: 하나의 클래스가 다른 클래스(전체)의 부분이 되는 경우. 전체 클래스가 부분 클래스를 직접 생성(new)한다.

Multiplicity

각 선에 추가로 숫자를 기입하여 ‘일대다’, ‘다대다’와 같은 연관 관계 Multiplicity를 표현 할 수 있다.

  • ‘1’ : 1
  • ’*’ or ‘0..*’ : 0 또는 그 이상
  • ‘1..*’ : 1 또는 그 이상
  • ‘0.. 1’ : 0 또는 1
  • ‘{숫자1}.{숫자2}.{숫자3}’ : 숫자1 또는 숫자2 또는 숫자3
  • 비어 있는 경우 : 일대일 관계

Example

UML Diagram Example


Source

Leave a comment