게임 개발자를 향해

UML의 다이어그램(Diagram) 본문

정보처리기사/1. 요구사항 확인

UML의 다이어그램(Diagram)

뿌단이 2022. 8. 27. 16:05

1. UML 다이어그램

  • 다이어그램은 사물과 관계를 도형으로 표현한 것이며, 여러 관점에서 시스템을 가시화한 뷰(View)를 제공함으로써 의사소통에도 도움울 준다.
  • UML 다이어그램은 정적 모델링동적 모델링으로 나뉜다.
  • 정적 모델링구조적 다이어그램들을 사용하여 표현하고 동적 모델링행위 다이어그램들을 사용하여 표현한다.

<여기서 Tip!>

시험 문제는 이들을 분류하는 문제 혹은 다이어그램의 그림을 보고 무슨 다이어그램인지 맞추는 문제들이 출제되었다. 

아래 종류와 특징들을 이해하고 기억해아한다.

 

2. 구조적(Structure) 다이어그램의 종류

종류 내용
클래스 다이어그램
(Class Diagram)
- 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현
객체 다이어그램
(Object Diagram)
- 클래스에 속한 사물(객체)들, 즉 인스턴스(Instance)를 특정 시점의 객체와 객체 사이의관계로 표현함
- 럼바우(Runbaugh) 객체지향 분석 기법에서 객체 모델링에 활용됨
컴포넌트 다이어그램
(Component Diagram)
- 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현함
- 구현 단계에서 사용됨
배치 다이어그램
(DeploymentDiagram)
- 결과물 프로세스 컴포넌트 등 물리적 요소들의 위치를 표현함
- 구현 단계에서 사용됨
복합체 다이어그램
(Composite Structure
Diagram)
- 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
패키지 다이어그램
(Package Diagram)
- 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현함.

 

<여기서 Tip!>

구현단계에서 사용하는 다이어그램은 컴포넌트배치 다이어그램이다.

 


- 클래스 다이어그램 : 클래스들의 관계를 표현한 다이어그램

- 객체 다이어그램 : 객체들의 관계를 표현한 다이어그램 (럼바우 객체지향 분석 기법에서 객체 모델링에 활용됨)

- 컴포넌트 다이어그램 :컴포넌트들의 관계를 표현한 다이어그램 (구현단계에서 사용함)

- 복합체 다이어그램 : 클래스나 컴포넌트 등 복합구조 내부구조를 표현한 다이어그램

- 패키지 다이어그램 : 다이어그램 모델 요소들 그룹화한 패키지 들의 관계를 표현한 다이어그램

Tip) 이름과 내용이 같은 다이어그램들이다.

 

- 배치 다이어그램 : 결과물들의 물리적인 위치를 표현한 다이어그램 (구현단계에서 사용함)

Tip) 이건 이름과 내용이 다르다. 배치는 "물리적 구조" 라고 외워라


 

2. 행위(Behavioral) 다이어그램 종류

종류 내용
유스케이스 다이어그램
(Use Case Diagram)
- 사용자의 요구를 분석하는 것으로, 기능 모델링 작업에 사용함.
- 사용자(Actor)사용 사례(Use Case)로 구성됨
시퀸스 다이어그램
(Sequence Diagram)
- 상호 작용하는 시스템이나 객체들이 주고받는 메세지를 표현함
커뮤니케이션 다이어그램
(Communication
Diagram)
- 동작에 참여하는 객체들이 주고받는 메시지객체들 간의 연관 관계를 표현함
상태 다이어그램
(State Diagram)
- 하나의 객체가 자신이 속한 클래스의 상태 변화 혹은 다른 객체와 상호작용에 따라 상태가 어떻게 변화하는지를 표현
- 럼바우(Rumbough) 객체지향 분석 기법에서 동적 모델링에 활용됨
활동 다이어그램
(Activity Diagram)
- 시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현함
상호작용 개요 다이어그램
(Interaction
Overview Diagram)
- 상호작용 다이어그램 간의제어 흐름을 표현함
타이밍 다이어그램
(Timing Diagram)
- 객체 상태 변화시간 제약을 명시적으로 표현함

 

<여기서 Tip!>

구조적 다이어그램행위 다이어그램을 구분하는 방법은 아래 와같이 구분하면 된다.

 

- 구조적 다이어그램의 종류에는 클래스, 객체, 컴포넌트, 복합체, 패키지등 전부 어떠한 구조적인 물체를 뜻하는 단어이다.

- 행위 다이어그램어떠한 행동들을 나타내는 단어이다.

 

여기서 제일 중요한 것은 구조적 다이어그램에 있는 배치 다이어그램이다.

배치 다이어그램구조적 다이어그램이지만 "배치"라는 단어행위 다이어그램으로 오해하기 쉽다.

배치 다이어그램만 뜻을 정확히 안다면 분류는 전혀 문제없다.

 

꼭 기억하자.

배치 다이어그램물리적인 구조를 표현하는 구조적 다이어그램이다.

 


- 유스케이스 다이어그램 : Use Case 사용 사례라는 뜻임. 

- 활동 다이어그램:시스템이 어떤 기능을 수행하는지 객체의 처리 로직이나 조건에 따른 처리의 흐름을 표현함

Tip) 뒤에가면 배우겠지만 이 두 다이어그램은 "기능 모델링"으로,사용자의 관점에서 바라보는 다이어그램이다.

사용자 관점에서 바라보는 다이어그램은 유스케이스와 활동 다이어그램 두가지 뿐이다. 둘이 묶어서 외워라.

 

- 상태 다이어그램 : 상태가 어떻게 변화하는지 표현함. (럼바우 객체지향 분석 기법에 동적 모델링에 활용됨)

- 상호작용 개요 다이어그램상호작용 다이어그램 간의 제어 흐름을 표현함

- 타이밍 다이어그램 : 객체의 상태 변화 시간 제약을 명시적으로 표현함

Tip) 이름과 내용이 같은 다이어그램들이다.

 

- 시퀸스 다이어그램 : 객체들이 주고받는 메시지를 표현한 다이어그램

- 커뮤니케이션 다이어그램 : 객체들이 주고받는 메세지객체들 간의 연관관계를 표현한 다이어그램

Tip) "객체들이 주고받는 메시지" 와 관련된건 시퀸스와 커뮤니케이션 다이어그램이다.

시퀸스와 커뮤니케이션의 다른점을 인지하자.

 

 


 

4. 스트레오 타입(Streotype)

스트레오 타입은 UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현하는 것이다.

길러멧(Guilemet) 이라고 부르는 겹화살 괄호 시에어 표현할 형태를 기술한다.

 

표현 형태 의미
<< include >> 연결된 다른 UML 요소에 대해 포함 관계에 있는 경우
<< extends >> 연결된 다른  UML 요소에 대해 확장 관계에 있는 경우
<< interface >> 인터페이스를 정의하는 경우
<< exception >> 예외를 정의하는 경우
<< constructor >> 생성자 역할을 수행하는 경우

 

<여기서 Tip!>

이건 절대 안나올것 같다.

근데 자주 사용하는 단어니 뜻을 모른다면 알아두는것도 좋다.

 

 

아래는 뒤 챕터를 공부하다 보니 먼저 아는것이 이해에 도움이 될 것 같아서 적었다.

 

맨 처음 UML 설명 부분이다.

 - 정적 모델링은 주로 구조적 다이어그램을 사용한다.

 - 동적 모델링은 행위 다이어그램을 사용한다.

 

시나공 책에서 설명하는 모델링 기법은 기능 모델링, 정적 모델링, 동적 모델링 등이 있다.

모델링 기법 마다 쓰이는 다이어그램이 다르다.

아래는 모델링 마다 주로 쓰이는 다이어그램을 정리한 것이다.

 


<기능 모델링> : 개발될 시스템이 갖춰야할 기능을  표현하는 모델이다.

 - 유스케이스 다이어그램

 - 활동 다이어그램

 

<정적 모델링> : 생성될 객체들 사이에 어떤 관련이 있는지를 구조적인 관점에서 표현하는 모델이다.

 - 클래스 다이어그램

 

<동적 모델링> : 시스템 내부 구성 요소들 간에 이루어지는 동작이라는 관점에서 표현하는 모델이다.

 - 시퀸스 다이어그램

 - 커뮤니케이션 다이어그램

 - 상태 다이어그램


다음 챕터에서는 이 모델링으로 나누어진 다이어그램들을 배워보겠다.

위 모델링에 포함되지 않는 다이어그램인  패키지 다이어그램의 내용도 따로 다룬다.

다음 챕터에서 배울 것은 아래와 같다.

 

 -  (기능 모델링) 유스케이스 다이어그램

 -  (기능 모델링) 활동 다이어그램

 -  (정적 모델링) 클래스 다이어그램

 -  (동적 모델링) 시퀸스 다이어그램

 -  (동적 모델링) 커뮤니케이션 다이어그램

 -  (동적 모델링) 상태 다이어그램

 -  (이외 다이어그램) 패키지 다이어그램

 

읽어주셔서 감사합니다!

 정처기 화이팅!!

'정보처리기사 > 1. 요구사항 확인' 카테고리의 다른 글

정적 모델링  (0) 2022.08.27
기능 모델링  (0) 2022.08.27
UML의 관계(Relationships)  (0) 2022.08.27
UML(Unified Modeling Language)과 사물(Things)  (0) 2022.08.26
요구사항 분석 CASE 와 HIPO  (0) 2022.08.23