본문 바로가기

[ Project Plan & Design ]/Uml

UML 요점 정리 #2 - UML의 구성

UML의 구성

 

 

1. UML과 방법론의 차이

 

방법론이란 말그대로 어떠한 작업을 할 때 이러저러한 절차를 가지고 작업을 하면 된다라고 하는 것을 이론적으로 정립을 해놓은 것이다.

UML은 이러한 방법론을 적용할 때의 결과물을 나타내기 위한 도구이다.

예를 들면, 모든 소프트웨어를 설계할 때 어떠한 표준적인 규칙을 가지고 설계도를 그려야 하는데 이때 표준이 되는 것이 UML이다.

각자 다양한 방법론을 자기의 프로젝트에 적용하더라고 UML을 공통적으로 적용할 수 있다.

 

 

2. UML의 구성

 

UML은 8가지 다이어그램으로 나타난다.

 

시스템의 정적인 면을 나타냄

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

 

시스템의 동적인 면을 나타냄 

- 콜레버레이션 다이어그램(Collaboration Diagram)

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

- 스테이트 차트 다이어그램(Statechart Diagram)      

- 액티비티 다이어그램(Activity Diagram)                                   

- 디플로이먼트 다이어그램(Deployment Diagram)                      

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

 

기타

- 유스 케이스 다이어그램(Usecase Diagram)

 

 

(1) 유스케이스 다이어그램(Usecase Diagram)

 

Usecase란 컴퓨터 시스템과 사용자가 상호작용을 하는 하나의 경우이다.

예를 들어 보험처리 프로그램의 경우 "고객이 보험증권에 sign한다", "보험 판매원이 판매 통계량을 종합한다"등이 usecase가 된다.

유스케이스 다이어그램은 시스템 구축 초기에 이 시스템이 어떤 일을 하는지에 대해 사용자 입장에서 이해할 수 있을 정도로 기술을 해야된다. 이러한 유스케이스 다이어그램은 사용자와의 대화수단으로써 앞으로 구축해 나갈때 밑바탕이 되는 것이다.

 

 

 

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

 

시스템 내부에 존재하는 클래스들을 선별하여 나타내고 각 클래스들의 속성과 행위를 기입한다.

클래스들 사이에 여러가지 관계(Relationship)를 가질수 있다.

- 연관 관계(Association): 클래스와 클래스가 어떤 연관을 가지고 있음을 나타낸다

   .복합 연관(Composition)

   .집합 연관(Aggregation)

 

이외에 상속관계(Generalization), 의존관계(Dependency)가 나타날 수 있다.

 

추상화의 단계가 높은 경우 대강의 속성과 행위, 관계를 기입해도 충분하다. 이 단계에서 너무 상세한 내용을 찾고 기입하다보면 클래스 다이어그램 내부의 구현 단계에서 이루어져야 할 일이 이루어지는 오류를 범하게 된다. 이러한 오류는 실제 구현 단계에서 커다란 위험의 요소를 내재하게 된다.

 

 

 

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

 

콜레버레이션 다이어그램과 함께 시스템의 동적인 면을 나타내는 대표적인 다이어그램.

시스템 실행시 생성되고 소멸되는 객체를 표기하고 객체들 사이에 주고 받는 메시지를 나타내게 된다.

콜레버레이션 다이어그램 또한 메시지의 흐름을 나타내지만, 시퀀스 다이어그램만의 특징이라면 횡축을 시간축으로 삼아 시간의 흐름을 나타내 메시지의 순서에 역점을 두고 있다는 것이다.

 

 

 

(4) 콜레버레이션 다이어그램 (Collaboration Diagram)

 

시퀀스 다이어그램과 함께 메시지의 흐름을 나타내지만 객체와 객체들 사이의 관계 또한 표기한다.

클래스 다이어그램과 거의 동일한 오브젝트 다이어그램을 그리기보다는 특별히 클래스 다이어그램과 차이점이 되는 부분을 콜레버레이션 다이어그램에 기입하는 것이 좋다.

 

 

 

 

(5) 상태 다이어그램 (Statechart Diagram)

 

한 객체의 상태 변화를 다이어그램으로 나타낸다.

시스템 실행시 무수한 객체의 상태 전부를 모아 다이어그램으로 나타내는 것은 불가능하므로, 특별히 관심을 가져야 할 객체에 관한, 특정 조건에 만족하는 기간동안의 상태를 표시해야한다.

 

 

(6) 액티비티 다이어그램 (Activity Diagram)

 

플로우 챠트가 UML에 접목되어 시스템 내부에 존재하는 여러가지 행위들, 각 행위의 분기, 분기되는 조건등을 포함한다.

기존 플로우 챠트와 다른 점은 어떤 행위에 따라 객체의 상태를 표기할 수 있다는 것인데 이것을 제외하곤 기존 플로우 챠트와 표기법과 의미만 약간 다를뿐이다.

 

 

 

(7) 디플로이먼트 다이어그램(Deployment Diagram)과 컴포넌트 다이어그램(Component Diagram)

 

시스템의 물리적인 부분의 구성을 나타낸다.

디플로이먼트 다이어그램 실제 하드웨어적인 배치와 연결상태를 나타낸다.

컴포넌트 다이어그램 소프트웨어의 물리적 단위(exe, dll등 library)의 구성과 연결상태를 나타내게 된다.

 

디플로이먼트 다이어그램

 

 

 

컴포넌트 다이어그램


- Reference

  http://jedikim72.blog.me/10025703879