UML 다이어그램이란? UML 다이어그램 종류

1. UML 다이어그램

- UML의 여러 가지 그래픽 요소는 하나의 큰 그림, 즉 다이어그램을 그리는 데 사용한다. 

 

2. 다이어그램의 목적

- 시스템을 여러 가지 시각에서 볼 수 있는 뷰를 제공하는 것이며, 이러한 뷰(view)의 집합을 모델(model)이라 한다. 

 

3. UML 모델

- 시스템 자체의 목적 행동을 설명하는 언어이다. 

- 구현방법을 설명하는 것이 아니다. 구현 전 단계까지 이런 시스템이 이러한 행동을 할 거다.라는 것을 설명하는 것이다. 

 

4. UML 버전

- 1.x와 2.0이 있다. 

- 2.0부터는 기존의 다이어그램에서 표현하지 못한 것 들을 표현하기 위해 추가되었다. 

- 특히 복합체 구조 다이어그램, 교류 개요 다이어그램, 타이밍 다이어그램 등등  추가되었다. 

 

5. 다이어그램 종류

1. Class Diagram (클래스 다이어그램)
- 클래스 : 비슷한 속성과 공통적인 행동 수단을 지닌 것들의 범주 혹은 그룹
2. Object Diagram (객체 다이어그램)
- 객체 : 클래스의 인스턴스 즉, 값이 매겨진 속성과 행동을 가지고 있는 개별적인 개체
- 2개의 UML 객체 아이콘이 존재한다. 왼쪽은 이름이 있는 객체, 오른쪽은 어떠한 객체(틀)를 나타낸다.

 

3. Usecase Diagram (유스케이스 다이어그램)
- 사용자 입장에서 본 시스템의 행동을 나타낸다. 

 

4. State Diagram (상태 다이어그램)
- 객체는 시간에 따라 각기 다른 상태에 있는다. 

  

5. Sequence Diagram (시퀀스 다이어그램)
- 시스템과 관련된 객체들끼리 주고받는 메시지의 순서를 시간의 흐름에 따라 보여준다.
- 객체를 가로축으로 배치가 된다. 
- 지나는 시간을 세로축으로 배치한다.
- 시간의 순서를 나타내지, 각 행동마다의 몇 분 걸리는지 정확한 시간은 나타내지 않는다.

  

 6. Activity Diagram (액티비티 다이어그램)
- 유스케이스 내부 혹은 객체의 동작 중에 발생하는 활동(acivity)은 대개 시퀀스 내에서 발견할 수 있다. 

  

7. Communication Diagram (통신 다이어그램)
- 하나의 시스템을 구성하는 요소들은 다른 요소들과 손발을 맞추면서 시스템 전체의 목적을 이루어 나아간다.
- 이러한 것을 표현하기 위하여 시퀀스 다이어그램과 마찬가지로 디자인되어 있다.
- Sequence Diagram과 비슷하지만 배치가 다르다.

 

8. Componenet Diagram (컴포넌트 다이어그램)
- 한 개의 기능을 구현해서 한 개의 컴포넌트를 의미한다.
- 시스템을 구성할 소프트웨어의 조각, 임베디드 컨트롤러, 바운더리 등 그들의 조직과 종속성을 보여준다.
- 클래스 다이어그램보다 추상화 수준이 더 높습니다.
9. Deployment Diagram (배포 다이어그램)
- 컴퓨터를 기반으로 하는 시스템의 물리적 구조를 나타낸 그림이다.
- 즉, 이 시스템이 어떠한 물리적 구조를 나타내고 있는 그림이다.
- 어떤 데이터베이스, 어떤 네트워크가 연결되어 있는지도 나타내야 한다.
10. Composite Structure Diagram (복합체 구조 다이어그램)
- UML 2.0부터 추가되었다. 
- UML2 에서는 클래스를 계층적인 내부 구조로 분해할 수 있다.
- 내부 구조로 분해한다는것은 복잡한 객체를 여러 개의 부분으로 나눌 수 있도록 해준다는 의미가 된다.
- 즉, 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현한다.
11. Interaction Overview Diagram (교류 개요 다이어그램)
- UML 2.0부터 추가되었다. 
- 각 활동마다 객체 사이에 시간의 흐름을 갖는 메시지가 존재한다면 몇몇 활동 부분은 Sequence Diagram이나 Communication Diagram (혹은 두 다이어그램의 조합)으로 바뀌어야 한다.
12. Timing Diagram (타이밍 다이어그램)
- 한 상태에서 객체가 얼마나 오랜 시간을 지체하는 지를 명시한다. 
- Sequence Diagram은 시간의 흐름인거지 어느 정도의 시간이 걸리는지는 언급이 안된다.

 

13. Package Diagram (패키지 다이어그램)
- 다이어그램의 요소를 조직화한다.
- 탭이 달린 폴더 안에 요소들을 집어넣음으로써 표현 가능하다.

 

 

6. UML 다이어그램을 조직화하고 확장할 수 있는 장치

1. 노트
- 붙였다, 떼었다 할 수 있는 포스트-잇을 생각 하면 된다.
- 주석이라고 생각하면 된다. 
- 어떤 생각을 가지고 했는지 노트에 적어 놓음으로써 다른 사람들이 알 수 있다. 
2. 스테레오타입
- 기존의 UML요소를 기본으로 하여 다른 요소를 새로 만들 수 있게 하는 장치
3. 키워드
- UML 요소가 원래 의미가 아닌 새롭고, 다른 의미로 사용되었음을 나타내며, 거듭인용표 안에 위치한다. 

 

 

7. 왜 이렇게 여러 가지의 다이어그램을 사용해야 할까?

- 시스템을 바라보는 시각이 다 다르기 때문에 모든 사람들을 만족시키기 위해 사용한다.

- 제대로 설계된 시스템 설계라면 가느안 시점의 모든 다이어그램이 포함되어있어야 한다. 

- 각각의 UML 다이어그램은 자신이 나타내고 있는 시점을 하나로 합칠 수 있는 수당을 제공한다.