UML(Unified Modeling Langage)은 객체지향 분석/설계를 위한 통합 모델링 언어이다.
UML은 시스템의 상호작용, 전체 구조, 컴포넌트 간의 관계등을 시각적으로 표현하기 위한 여러 표기법과 다이어그램 구조를 정의하고 있다. 이를 통해 모델링 결과를 시각적으로 표현할 수 있고, 시스템 분석 설계 및 분석의 결과물로 활용할 수 있다.
UML은 구조, 행위 모델링 영역으로 대부분의 다이어그램 구조를 정의하고 있으며 2.5에서는 공통으로 사용될 수 있는 요소들을 추가 영역으로 설명하고 있다.
UML은 분석,설계,구현의 전 과정에서 사용될 수 있으며 가시화 언어, 명세화 언어, 구축 언어, 문서화 언어 네 가지 특징을 가진다.
다이어그램의 종류
UML 다이어그램은 크게 구조와 행위 다이어그램으로 구분된 14개의 다이어그램으로 구성되어 있다.
구성 요소와 뷰
UML은 모델링을 위한 여러가지 표기법을 제공하고 구성 요소들 간의 관계를 다양한 다이어그램으로 표현한다.
소프트웨어 시스템을 가시화하고, 명세화하고, 구축하고 문서화하려면 여러 관점에서 시스템을 볼 필요가 있다.
가장 대표적인 것은 4+1 View로 솔루션 영역인 물리, 논리, 프로세스, 개발의 4가지 뷰와 문제영역인 시나리오 뷰로 구성된다.
4+1 View
복잡한 시스템 구조를 하나의 모델로 이해하기 불가능하기 때문에 여러관점에서 이해할 필요가 있다.
시스템을 바라보는 관점에서 시스템을 구성하는 요소와 그 요소들 간의 관계를 표현한 것이 View이며 아래와 같은 View로 시스템 구조를 표현하고 이해할 수 있다.
시나리오 뷰
Scenario View, UseCase View
- 사용자, 설계자, 개발자 및 테스터의 관점
- 외부 액터가 인식하는 시스템의 기능성을 설명
- 다른 네개의 뷰를 하나로 묶어주는 중심적 위치
- 아키텍처 검증의 기초가 된다.
관련 다이어그램 : UseCase Diagram, Activity Diagram, Sequence Diagram
논리 뷰
Logical View, Design View
- 설계자와 개발자 관점
- 시스템을 구성하는 구성 요소를 찾아내고 기능성이 어떻게 제공되는지 메커니즘을 표현
- 정적구조와 동적 구조 다이어그램 모두 포함
- 논리 뷰가 정의한 시스템 구성요소는 프로세스, 개발 뷰의 참조나 작업 대상이 된다.
- 관련 다이어그램 : Class Diagram, Object Diagram, State Machine Diagram, Sequence Diagram, Activity Diagram
프로세스 뷰
Process View
- 개발자와 시스템 통합자 관점
- 프로세스와 프로세서로 구분되는 시스템의 분할을 설명
- 시스템의 비기능적인 속성으로서 성능, 효율성, 비동기, 이벤트의 처리 등
- 논리 뷰에서 찾은 시스템 구성 요소의 속성이 프로세스 뷰에 영향
- 관련 다이어그램 : State Machine Diagram, Sequence Diagram, Activity Diagram, Component Diagram
개발 뷰
Development View, Implementation View
- 구현 모듈과 의존성 표현
- 컴포넌트 구조와 의존성을 보여주고 컴포넌트에 관한 부가적인 정보 정의
- 재사용할 수 있는 구성요소, 유지보수 단위, 개발 난이도 등 파악 가능
- 관련 다이어그램 :Class Diagram, Package Diagram, Component Diagram
물리뷰
Physical View, Deployment View
- 개발자, 시스템 통합자 및 테스터 관점
- 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가를 보여주는 맵핑
- 프로세스 뷰, 개발 뷰에서 나온 패키지가 실제 어떤 하드웨어에서 작동할지 결정
- 관련 다이어그램 : Deployment Diagram