베하!
날이 많이 더워졌습니다. 다들 잘 지내고 계신가요?
오늘은 프로그램 설계를 표현하기 위해 사용하는 UML 다이어그램의 종류와 특징에 대해 알려드리겠습니다.
UML이란?
UML은 Unified Modeling Language의 약자로 통합 모델링 언어입니다.
쉽게 말해, 설계도를 그리기 위한 언어입니다.
UML은 소프트웨어 비즈니스 설계, 자동차 통신 및 네트워크 모델링 등 여러 분야에서 활용이 가능합니다.
또한 공통된 언어와 구조를 사용하기 때문에 여러 사람들과 협업, 소통할 때 설계와 구조에 대한 이해를 높이고 정확성과 일관성을 향상시킬 수 있습니다.
소프트웨어 비즈니스 설계의 관점에서 UML은 객체 지향 소프트웨어 개발에 널리 사용되며, 시스템의 구조, 동작, 상호작용 등을 시각화하고 이해하기 쉽게 표현할 수 있도록 도와줍니다.
UML 구성요소
UML의 구성 요소에는 사물, 관계, 다이어그램이 있습니다.
- 사물 : 시스템을 구성하는 요소들을 표현
- 관계 : 사물 간의 연결과 상호작용을 표현
- 다이어그램 : 사물과 관계를 시각화하여 시스템의 구조나 동작을 표현
UML 다이어그램 종류 및 목적
UML 다이어그램은 크게 구조적 다이어그램과 행위 다이어그램으로 나눌 수 있습니다.
구조적 다이어그램(Structure Diagram)
⇒ 시스템의 개념, 관계 등의 측면에서 요소들을 나타내고 각 요소들의 정적인 면을 보기 위한 것입니다.
행위 다이어그램(Behavior Diagram)
⇒ 각 요소들 혹은 요소들 간의 변화나 흐름, 주고받는 데이터 등의 동작을 보기 위한 것입니다.
구조적 다이어그램의 종류
- 클래스 다이어그램 (Class Diagram)
- 클래스와 클래스가 가지는 속성, 클래스 간의 관계를 표현하여 소프트웨어 시스템의 구조를 분석하고 설계하는 데 사용합니다.
- 객체 다이어그램 (Object Diagram)
- 클래스 다이어그램이 시스템의 실제 클래스 및 관계를 표시하는 반면, 오브젝트 다이어그램은 현재 인스턴스 간의 링크 및 클래스의 특정 인스턴스를 표시합니다.
- 클래스에 속한 사물들 즉 인스턴스를 특정 시점의 객체와 객체 사이의 관계로 표현하여 소프트웨어 시스템의 구체적인 상태를 분석하고 설계하는 데 사용합니다.
- 컴포넌트 다이어그램 (Component Diagram)
- 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현한 다이어그램입니다. 구현 단계에서 사용됩니다.
- 복합체 구조 다이어그램 (Composite Structure Diagram)
- 클래스를 계층적인 내부 구조로 분해하여 복잡한 객체를 여러 개의 부분으로 나누어 클래스와 컴포넌트 내부 구조를 표현한 다이어그램입니다.
- 배치 다이어그램 (Deployment Diagram)
- 하드웨어 자원에 대한 소프트웨어 컴포넌트의 배치 상태를 표현한 다이어그램으로 다른 UML 다이어그램들과 달리 하드웨어 자원들을 명시적으로 정의하여 시스템의 배포 구조를 분석하고 설계할 수 있습니다.
- 패키지 다이어그램 (Package Diagram)
- 패키지 간의 종속성, 포함 관계, 네임스페이스 등을 시각적으로 나타내어 소프트웨어 시스템의 모듈화를 분석하고 설계하는 데 사용됩니다.
- 시스템의 서로 다른 패키지들 사이의 의존 관계를 표현하기 위한 다이어그램입니다.
행위 다이어그램의 종류
- 유스케이스 다이어그램 (Use Case Diagram)
- 사용자가 시스템 내부에 있는 기능 중에 어떤 기능을 사용할 수 있는지 나타내며 사용자의 관점에서 시스템의 서비스, 기능에 대한 요구사항을 분석할 수 있습니다.
- 시퀀스 다이어그램 (Sequence Diagram)
- 특정 행동이 어떠한 순서로 어떤 객체와 어떻게 상호작용(주고받는 메시지)을 하는지 표현하는 행위 다이어그램으로 API 등의 Use Case를 디테일하게 알 수 있습니다.
- 커뮤니케이션 다이어그램 (Communication Diagram)
- 동작에 참여하는 객체들이 주고받는 메시지와 객체들 간의 연관 관계를 표현하는 다이어그램입니다.
- 상태 다이어그램 (State Diagram)
- 객체의 상태와 이벤트, 상태 전이 등을 표현하여 자신이 속한 클래스의 상태 변화 혹은 다른 객체와의 상호 작용에 따른 상태 변화를 파악할 수 있습니다.
- 활동 다이어그램 (Activity Diagram)
- 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현하며 액션, 의사 결정, 병렬 처리 등을 분석, 설계할 수 있습니다.
- 상호작용 개요 다이어그램 (Interaction Overview Diagram)
- 여러 시퀀스 다이어그램이나 액티비티 다이어그램 등의 다른 다이어그램을 포함하고, 이들 간의 상호작용과 흐름을 통합하여 나타낸 다이어그램입니다.
- 타이밍 다이어그램 (Timing Diagram)
- 시간적인 흐름을 표현하여 객체 간의 상호작용과 시간 제약을 시각화한 다이어그램으로, 시간적인 상호작용과 시간적인 성능 분석이 가능합니다.
다이어그램의 종류가 굉장히 많죠!
다음 시간에는 다이어그램 작성법에 대해 알려드릴 예정이에요.
그럼 다음 시간에 만나요 베빠!
(참고 : https://velog.io/@yooha9621/UML다이어그램UML다이어그램-종류2, https://sung0000woo.tistory.com/48)
'Programming' 카테고리의 다른 글
Keycloak (0) | 2023.06.23 |
---|---|
[C#] .NET Winform 간단한 UI 구성 방법 (0) | 2023.06.22 |
JPA란? (0) | 2023.06.14 |
[Vue] Vuex 개념 및 설치 (0) | 2023.06.09 |
Golang 프레임워크 비교 (0) | 2023.06.08 |
댓글