/ EXITEM, 정처기

UML다이어그램

UML 다이어그램

UML (Unified Modeling Language) 다이어그램은 객체 지향 소프트웨어 설계에 사용되는 그래픽 표기법입니다.

UML은 객체, 클래스, 상속, 연관, 메서드, 속성 등과 같은 객체 지향 개념을 시각적으로 표현할 수 있는 방법을 제공합니다.
UML 다이어그램은 이러한 개념들을 그래픽으로 표현하여 시스템의 구조, 동작 및 관계이해하기 쉽게 만들어 줍니다.

여러 종류가 있으며, 각각의 다이어그램은 특정한 측면을 다룹니다.
예를 들어 클래스 다이어그램은 클래스와 클래스 간의 관계를 표시하고, 시퀀스 다이어그램은 시간적인 순서에 따른 객체 간의 상호작용을 보여줍니다.

소프트웨어 개발에서 널리 사용되며, 다양한 도구와 언어에서 지원됩니다.
UML 다이어그램을 사용하면 개발자와 설계자들이 공통의 언어로 소프트웨어를 설계하고 개발할 수 있으며, 이는 소프트웨어 개발 프로세스의 효율성을 높이고 소프트웨어의 품질을 향상시키는 데 도움이 됩니다.

유형

  1. 구조 다이어그램 (Strucutral Diagram)
    • 시스템의 정적인 구조를 표현합니다.
    • 클래스 다이어그램, 객체 다이어그램, 컴포넌트 다이어그램, 패키지 다이어그램, 배치 다이어그램 등이 있습니다.
  2. 동작 다이어그램 (Behavioral Diagram)
    • 시스템의 동적인 행위를 표현합니다.
    • 유스케이스 다이어그램, 시퀀스 다이어그램, 상태 다이어그램, 활동 다이어그램, 커뮤니케이션 다이어그램 등이 있습니다.

구조 다이어그램은 시스템을 구성하는 요소들의 관계와 구조를 보여주는 반면, 동작 다이어그램은 시스템이 동작하는 과정과 상호작용을 보여줍니다.

UML 다이어그램은 소프트웨어 설계뿐만 아니라, 다양한 분야에서도 활용됩니다.
예를 들어, 시스템 엔지니어링에서 하드뤠어와 소프트웨어 간의 상호작용을 설명하는 데 사용되기도 합니다.
또한, 비즈니스 분야에서 프로세스의 흐름을 보여주는 등의 용도로도 사용됩니다.

각 다이어그램의 그림에 대해서 궁금하시면 참조하기 좋은 블로그 링크

클래스 다이어그램 (Class Diagram)

  • 클래스, 인터체페이스, 관계 등을 표현합니다.
  • 클래스의 속성, 메소드, 연관 관계(Association Relationship), 일반화, 집합 등을 나타냅니다.
  • 객체 지향 개념을 가장 잘 나타내는 다이어그램 중 하나입니다.

객체 다이어그램 (Object Diagram)

  • 클래스 다이어그램에서 정의된 클래스의 인스턴스인 객체를 표현합니다.
  • 클래스와 객체 간의 관계, 속성, 연관 등을 표현합니다.
  • 객체 관계
    • 연관 관계(Associaion Relationship)
    • 의존 관계(Dependency Relationship)
    • 실체화 관계(Realization Relationship)
    • 일반화 관계(Generalization Relationship)

유스케이스 다이어그램(Use Case Diagram)

  • 시스템의 사용자 또는 액터와 시스템 간의 상호작용을 모델링합니다.
  • 액터, 유스케이스, 관계 등을 표현합니다.
  • 시스템의 기능을 기술하는 데 사용됩니다.

액터(Actor) : 시스템의 외부에 있고 시스템과 상호작용을 하는 사람 참고 블로그 링크

시퀀스 다이어그램 (Sequence Diagram)

  • 시스템의 객체 간 상호작용을 시간적으로 표현합니다.
  • 객체 간의 메시지 교환, 객체의 상태 변화, 예외 상황 등을 보여줍니다.

상태 다이어그램 (State Diagram)

  • 객체의 동작과 상태 전이를 표현합니다.
  • 객체가 각각의 상태에서 어떤 동작을 수행하는지, 상태 전이의 조건 등을 보여줍니다.

상세 참고 블로그 링크

활동 다이어그램(Activity Diagram)

  • 시스템 내의 비즈니스 프로세스, 알고리즘, 기능 흐름 등을 표현합니다.
  • 활동, 연결선, 의사결정 노드, 병합 노드 등을 사용하여 프로세스를 모델링합니다.

컴포넌트 다이어그램 (Component Diagram)

  • 시스템을 구성하는 컴포넌트, 인터페이스, 의존 관계 등을 표현합니다.
  • 컴포넌트 간의 의존 관계, 인터페이스 구현, 라이브러리 등을 나타냅니다.

패키지 다이어그램 (Package Diagram)

  • 패키지, 클래스, 인터페이스 등의 요소가 어떻게 그룹화되어 있는지를 표현합니다.
  • 패키지 간의 의존 관계, 패키지 내의 클래스 관계 등을 보여줍니다.

커뮤니케이션 다이어그램 (Communication Diagram)

  • 객체 간의 메시지 전달과 응답을 표현합니다.
  • 객체와 객체 간의 상호작용을 표현하여 객체 간의 관계를 이해하기 쉽게 합니다.

배치 다이어그램 (Deployment Diagram)

  • 시스템의 물리적인 배치를 나타냅니다.
  • 소프트웨어 컴포넌트, 하드웨어 노드, 네트워크 등을 표현합니다.

타이밍 다이어그램 (Timing Diagram)

  • 객체 간의 시간적인 관계를 보여줍니다.
  • 시간 축에 따라 객체의 상태, 메시지 전달 등을 나타냅니다.

상호작용 개요 다이어그램 (Interaction Overview Diagram)

  • 다른 다이어그램에서 표현된 상호작용을 개요 수준으로 표현합니다.
  • 다른 다이어그램에서 표현된 객체 간의 상호작용을 개요 수준으로 표현하여 전반적인 시스템 흐름을 이해하기 쉽게 합니다.

각각의 다이어그램은 시스템을 모델링하는 데 필요한 다양한 정보와 관계를 표현합니다.
이를 조합하여 전체적인 시스템 구조와 동작을 모델링할 수 있습니다.