출처 : http://hyeonstorage.tistory.com/14


UML Diagram의 종류







(1) Class Diagram


- 개요 : 객체 타입(클래스)들을 정의하고 그들 간에 존재하는 정적인 관계를 다양한 방식(Association, Aggregation, Generalization, Realization, Dependency) 으로 표현한 Diagram


- 클래스 표기법



- Class Diagram 사용 용도


요구분석 -> Class Diagram (개념)

분석 -> Class Diagram (분석)

설계 -> Class Diagram (설계), Class Diagram (구현)


- Association 표기법



- Multiplicity 표기법


Multiplicity : 한 Class A의 Instance가 생성되었을 때, 다른 Class B의 Instance와 몇 개의 연관이 있는 지를 나타내며 Integer값을 사용함


Abbreviations : Asterisk(*) 는 Zero or more를 나타냄

Multiplicity를 표시하지 않을 수도 있음

Association은 양방향으로 표현되므로 왼쪽으로 또는 오른쪽으로 읽을 수 있음

Left-to-right : 하나의 Car 객체는 2개와 2개의 Door 객체와 연관됨

Right-to-left : 하나의 Door 객체는 연관된 Car 객체가 없거나, 하나의 Car 객체와 연관됨



(2) Component Diagram


- 개요 : 시스템을 구성하는 물리적 단위인 컴포넌트와 그들 간의 관계를 표현


- Component의 종류


UML에서의 컴포넌트

> 배치 컴포넌트 (Deployment component)

> DLL, EXE, DB 테이블

> 작업 결과물 컴포넌트 (Work product component)

> 분석/설계 문서, 소스코드 파일, 데이터 파일

> 실행 컴포넌트(Execution component)

> 메모리, DB 레코드


CBD에서의 컴포넌트

> 계약상의 명시된 인터페이스와 명시적인 의존성을 가진 조합의 단위이며, 독립적으로 전개될 수 있고, 제 3의 컴포넌트와 잘 맞는 SW 부품


UML 1.x


> CBD 프로젝트에서 Component Diagram은 주로 Package를 이용하여 그림


UML 2.x



(3) Deployment Diagram


- 개요 : 전체 시스템을 구성하는 하드웨어의 연결 관계와 SW 컴포넌트의 배치 상태를 표현함


- 구성 요소



> Node : 물리적인 요소로서 시스템이 실행될 때 존재하며 어느 정도의 메모리와 처리 능력을 갖는 전산 자원을 의미

육면체로 표현하며 이름을 표기하고 필요에 따라 탑재되는 컴포넌트를 표기

노드의 성격을 잘 표현할 수 있는 이미지를 사용하여 표현할 수도 있음

> Link : 물리적으로 연결되어 있는 두 노드의 연결 관계를 표현함

연결의 특성을 Stereotype으로 표현함

> Component : 노드에 탑재되는 컴포넌트를 표현하기 위해 사용

> Dependency : 노드와 컴포넌트는 의존 관계로 연결


(4) Use Case Diagram


- 개요 : 개발 주기 초기에 사용자의 기능적 요구사항을 시작적으로 기술하는데 사용

사용자의 시각에서 SW 시스템의 범위와 기능을 정의한 모델

Actor와 Use Case간의 관계를 정적으로 표현


- 구성요소



- Use Case Model 이란?


> UML의 대표적 모델

> Use Case Diagram(Actor와 시스템 사이의 관계를 시각적으로 표현)과 Use Case Description(각각의 내용을 상세히 기술)으로 구성

> 요구사항, 즉 구현해야 하는 기능이 '무엇'인지를 정의하지 '어떻게' 제시할지는 기술하지 않음

> 일반적으로 Use Case는 기능적 요구 사항을 나타내지만 Use Case Description에 해당 Use Case에 관련된 비기능적 요구 사항을 함께 기록하기도 함



(5) Activity Diagram


- 개요 : 기존에 활용하던 DFD나 Flow Chart의 객체 지향 버전의 일종

업무영역, 시스템 영역에서의 처리흐름을 표현한 Diagram

특정 비즈니스 프로세스, 오퍼레이션, Use Case의 내부 업무 흐름 등을 파악할 때 사용


- 표기법



- Activity Diagram의 사용 용도


> 비즈니스 프로세스를 나타내는 용도

> Use Case 내부를 기술하는 용도

> 행위(함수 혹은 메소드)의 내부 프로세스를 표현


(6) Sequence Diagram


- 개요 : 객체간의 동적인 상호관계를 시간 순서에 따라 표현한 모델

Use Case의 기능을 구체적으로 실현

실제 프로그램으로 구현 가능하게 자세히 작성


- 사용 용도


분석    -> Use Case flow 마다 하나

컴포넌트 상호작용    -> Use Case flow 마다 하나

> 설계    -> 컴포넌트의 Interface에 선언된 각각의 Operation마다 하나


- 구성 요소


(7) State Machine Diagram


- 개요 : 하나의 객체를 대상으로 생존 기간 동안 가질 수 있는 상태의 변화를 표현

정적 모델링(Class)과 동적 모델링(Activity)이 동시에 표현

정적 모델링과 동적 모델링 간의 검증


- 사용 용도 : 분석


- 구성 요소




- 사례



(8) Communication Diagram


- 개요 : 객체간의 동적 메시지 전달 관계를 표현한 모델

객체간의 상호관계를 효과적으로 정의

Sequence Diagram과 상호 매핑 됨


- 사용 용도 : Sequence Diagram이 작성되는 태스크와 동일


- 구성 요소



(1) UML 기본 표기법

(2) UML Diagram의 종류

(3) UML 모델링 사례



+ Recent posts